Sub-budaya pemrograman / perangkat lunak apa yang ada? Apa yang mendefinisikan mereka? Anda milik siapa? [Tutup]


13

Bagi dunia luar, pemrogram, ilmuwan komputer, insinyur perangkat lunak, dan pengembang mungkin semuanya tampak sama, tetapi itu jauh dari kasus bagi orang-orang yang menciptakan perangkat lunak untuk mencari nafkah. Kemampuan dan pengetahuan programmer tunggal dapat berkisar sangat luas, serta alat-alat mereka (OS, bahasa, dan ya, editor pilihan), dan keragaman itu memunculkan banyak sub-budaya dalam perangkat lunak - seperti programmer yang secara aktif menggunakan Stack Overflow dan situs ini, versus banyak lagi yang tidak.

Saya ingin tahu dari orang lain tentang sub-budaya perangkat lunak yang mereka temui, milik, kagumi, tidak suka, atau bahkan buat. Sebagai permulaan, saya temui:

  • Perusahaan dan pengembang yang digerakkan Microsoft : seluruh tumpukan mereka berasal dari Redmond, WA. E-mail adalah Outlook adalah e-mail. Web adalah IE dan IIS. Mereka memiliki binder besar langganan MS Developer Network mereka yang penuh dengan beberapa versi VB, .net, Visual Studio, dll. Hindari bekerja dengan shell / command-line. Jangan melihat apa-apa dengan open-source dan semacamnya. Perusahaan MS-centric cenderung 9-5 dan cukup korporat (digerakkan oleh manajer bisnis, bukan orang perangkat lunak). Saat ini (mengingat ketersediaan luas alat-alat non-MS), ini adalah kebalikan dari budaya peretas.
  • Orang-orang CS sekolah tua : mereka sering mengenal Lisp dan Unix dengan sangat baik; kadang-kadang, mereka mungkin telah menulis Lisp semi-populer sendiri, atau utilitas sistem. Hanya sedikit, jika ada, "rekayasa perangkat lunak" yang baru bagi mereka, juga tidak terkesan oleh hal itu. Ketahui referensi, sejarah, dan implikasi tingkat tinggi dari bahasa pemrograman seperti Lisp, C, Prolog, dan Smalltalk. Dapat pahit tentang hasil AI dari 80-an dan 90-an. Cenderung menjadi pengguna Emacs. Dapat mengetikkan perintah multi-line shell tanpa berkedip. Nasihat mereka dapat dengan samar, tetapi mengandung emas setelah dipahami.
  • Pengembang web sekolah baru : bermain dengan komputer dan permainan video, tetapi seringkali hanya benar-benar memulai pemrograman di akhir tahun 90-an atau awal tahun 00-an. Nyaman dengan 1 hingga 1,5 bahasa scripting / dinamis; berpikir C dan bahasa di luar Ruby / Perl / Python tidak perlu / ajaib. Mungkin menganggap HTML sebagai pemrograman pada awalnya. Cenderung mendapatkan Mac dan bersikap fanatik / tidak rasional tentang hal itu. Gunakan kerangka kerja lebih dari membangunnya. Seringkali terlalu antusias tentang NoSQL dan / atau Ruby On Rails.
  • CS sekolah baru : banyak pelatihan statistik, model Bayesian, dan kesimpulan; jangan katakan "AI," katakan "pembelajaran mesin." Lebih banyak Java daripada Lisp, tetapi juga bisa menjadi programmer Haskell yang ahli. Melihat kesuksesan dunia nyata utama oleh para ahli di bidangnya (Google, keuangan / quants) sering membuat mereka (over) percaya diri. Tetapi data besar, dan pemrosesan terdistribusi seperti itu, benar-benar mengubah dunia.

Contoh-contoh di atas tidak berarti lengkap, benar, ortogonal, atau objektif. :) Hanya apa yang saya lihat secara pribadi, dan menyediakan untuk memicu beberapa diskusi dan garis besar pertanyaan yang lebih luas. Jangan ragu untuk tidak setuju!


1
'Lil' samar-samar, tapi terdengar menarik.
Benteng

6
Saya pikir jawabannya menunjukkan satu hal: pertanyaannya adalah mencoba untuk menarik garis pemisah yang jelas di mana tidak ada. Kami sedang berhadapan dengan sekitar 5 konsep ortogonal, masing-masing kontinum, dan mencoba untuk membagi hyperplane itu menjadi kelompok diskrit yang mudah diidentifikasi. IMO, itu adalah upaya tanpa harapan.
Jerry Coffin

3
@ Jerry Coffin - ya, setuju. Belum lagi bahwa beberapa jawaban berbatasan dengan beberapa "budaya", IMHO. Namun, jawaban-jawaban ini bagus dengan cara mereka menunjukkan apa yang dipikirkan hari ini (programmer? Atau setidaknya komunitas ini) tentang komunitas lain, yang membentuk bahkan bagian dari yang ini (dalam persentase kecil).
Benteng

@JerryCoffin Ya, ada orang yang ingin menggunakan kata "orthogonal" dan yang tidak hanya karena sudah populer di tumpukan dalam beberapa dekade terakhir ...
Erik Reppen

Jawaban:


12

Saya akan menganggap diri saya sebagai bagian dari grup Sistem Real-Time . Ada beberapa karakteristik 'Sekolah Tua' tetapi dengan kurang fokus pada CS, lebih pada perangkat keras.

Pola dasar:

  • Memiliki pengetahuan ahli tentang 'C'
    • Memiliki salinan asli K&R
    • Menulis dalam bahasa lain seolah-olah itu hanya sintaks alternatif untuk 'C'
  • Dapat memprediksi output assembler dari kode mereka.
  • Dapat membaca diagram sirkuit
  • Tidak tahu cara menulis kode tanpa melakukan 'optimasi prematur'.
  • Cukup nyaman dengan baris perintah.

Menarik, terima kasih. Saya telah bertemu beberapa orang sistem waktu nyata, tetapi belum pernah bekerja di tempat seperti itu sehingga tidak berusaha untuk mengkarakterisasi budaya. Saya pikir banyak dari kita programmer akan memanggil kalian "hard-core." :)
limist

1
Saya pikir ini seperti disiplin lainnya - ada "bintang rock" yang keras, dan ada bebatuan tua yang sederhana. (Saya harap saya berada di suatu tempat di antara)
AShelly

2
Saya di grup ini juga. Sebagian besar kolega saya telah "naik" ke tempat ini dari latar belakang teknik elektronik, tetapi saya "turun" ke sana karena menjadi pengembang basis data / aplikasi. Saya sangat nyaman dalam grup ini sekarang, dan kadang-kadang latar belakang saya yang berbeda dapat membawa perspektif berguna yang berbeda.
Vicky

1
Juga, itu mungkin persepsi saya, tetapi rasanya seperti wanita bahkan lebih jarang di kelompok ini daripada di beberapa kelompok lain.
Vicky

1
Wow - ini menggambarkan saya hampir dengan sempurna, kecuali saya tidak hanya membaca diagram sirkuit, saya merancang sirkuit juga. Bekerja pada sistem embedded pertama saya (di PL / M-86) pada akhir 1970-an.
tcrosley

6

Jangan lupa programmer mainframe. Mereka juga merupakan sub budaya.


1
Saya senang mendengar lebih banyak tentang budaya coder mainframe; Saya telah bertemu sangat sedikit yang bahkan menghabiskan banyak waktu dengan mainframe, apalagi kode mereka secara teratur.
limist

1
Ini adalah orang-orang dengan potongan rambut terhormat dan tidak bisa dibedakan dari orang lain yang mengenakan setelan bisnis. Mereka suka COBOL. Bagi mereka, tidak ada sistem selain sistem / 360.
oosterwal

5

Saya mewakili kontingen kesepian Delphi Devs di bawah 30. Kaukus kami kecil, tetapi hati kami besar.


Beberapa rekan kerja saya <30.
Toon Krijthe

2
Baiklah, katakan untuk memulai pertukaran tumpukan dan kita bisa bicara tentang fitur-fitur baru kita akan meminta Johnny Borland tua untuk menerapkan setelah kamu akan mati ;-)
Peter Turner

4

Saya kira ada beberapa budaya yang entah bagaimana hidup berdampingan ketimbang berkelahi dan entah bagaimana transenden:

  • Peretas / budaya Sumber Terbuka : kode berbagi, menggunakan nama asli atau tidak. Terkonsentrasi mungkin pada alat kecil yang menyelesaikan satu masalah. Mengizinkan peretasan dalam program. Bahasa: C , Lisp , C ++ , Python . Mungkin tumpang tindih dengan orang -orang CS sekolah tua Anda .
  • Akademisi : konsentrasi pada algoritma dan melakukan sesuatu dengan cara yang benar. Nama asli harus (tetap muncul di atas kertas). Bahasa: Jawa , Haskell , ( F # ?)
  • Corportate : konsentrasi pada solusi (mungkin segalanya). Jika open source yang memberi nama tidak perlu . Bahasa: Jawa , C # , VB.net , Ruby .
  • " SMA ": barang jika itu berfungsi tetapi tidak harus. Konsentrasi pada nama-nama seperti "SuperProgram 1.0 untuk Windows XP". (maaf - saya belum menemukan nama yang bagus tapi maksud saya programmer yang mulai menguasai CS dan tidak pandai - setidaknya belum). Bahasa: PHP , VB , Ruby
  • Pengembang Web Sekolah Baru : Seperti di atas.

Harap dicatat bahwa:

  • adalah mungkin untuk mencampur budaya dalam organisasi dan dalam satu orang. Bahkan sering terjadi.
  • Bahasa adalah CONTOH dan itu misalnya kelompok "peretas" yang cukup besar yang bekerja pada C #. Ini lebih merupakan permainan asosiasi studi nyata jadi tolong jangan tersinggung (ya - saya tahu bahwa ada banyak program bagus yang ditulis dalam PHP dengan praktik engeneering yang baik, dll. Tetapi cenderung menjadi bahasa utama bagi banyak orang yang tidak t tahu apa misalnya XSS adalah)
  • Saya tidak ingin menyinggung siapa pun dengan nama SMA. Maksud saya sering kali merupakan langkah pertama dalam pemrograman melalui budaya ini (dan mudah-mudahan tidak bertahan lama)
  • Sunting: Akademisi tidak berarti bahwa orang itu ada di dunia akademis dan juga di dunia akademis tidak berarti bahwa seseorang termasuk dalam dunia akademis (meskipun ilmuwan / peneliti hebat dll.). Ini menunjukkan bahwa ia lebih suka alat yang memberikan solusi yang jelas, jelas benar bahkan jika tidak memiliki kinerja / membutuhkan waktu lebih lama ... SimilaryBudaya perusahaan tidak setara dengan perusahaan.

Saya pikir saya saat ini kebanyakan Open Source dengan sedikit pengaruh Academia (pasif).


Saya hanya berpikir tentang tumpang tindih berat subkultur CS / akademis modern, dan programmer Haskell. Setelah bermain-main sedikit dengan Haskell, saya bisa melihat mengapa itu menarik bagi mereka yang memiliki pelatihan dalam ilmu formal (CS, matematika), dan memang, saya menemukan Haskell membantu melihat pemrograman dari tingkat yang lebih tinggi.
limist

Hanya Java dan Haskell di Academia? Bagaimana dengan Fortran, C, C ++, R, MATLAB, * sh + awk (ya, saya kenal orang-orang seperti itu), Mathematica, Python, LabVIEW? Haskell juga harus diganti dengan "bahasa fungsional".
mbq

Itu contohnya. Contoh BIASED . Seperti yang saya catat, bahasa TIDAK spesifik untuk budaya. Perlu diketahui juga bahwa budaya akademia tidak terbatas pada akademia dan tidak semua orang di akademia harus merangkul budaya akademia. Meskipun saya setuju bahwa Fotran / C / C ++ / R / Matlab / ... digunakan di dunia akademis, mereka tidak membentuk hubungan yang kuat dengannya dalam pikiran saya. * sh + awk jelas non-akademis (sebagai budaya - pengguna dapat bekerja di akademisi dan menjadi ilmuwan yang brilian - itu hal yang sangat berbeda0.
Maciej Piechotka

1
Saya pikir Anda akan menuju akademisi sains komputer.
mbq

2

Saya agak di kamp CS Alt.NET/old-school. Saya bekerja dengan teknologi Microsoft (C #, dll.), Tetapi saya sadar bahwa ada seluruh dunia di sekitar saya, bahasa lain, algoritme, kerangka kerja, "barang-barang di bawah tenda", dll. Tidak sempurna, tentu saja, tetapi ini adalah karya sedang berlangsung.


1
Kerumunan Alt.NET sangat jelas merupakan subkultur pemrograman, dan benar-benar berbeda dari deskripsi limist tentang budaya berbasis Microsoft (yang terdengar lebih seperti apa budaya itu sepuluh tahun yang lalu daripada seperti sekarang, bagi saya).
Carson63000

2

Saya tidak sepenuhnya setuju dengan pernyataan ini tentang subkultur MS: "Tidak melihat apa yang diributkan dengan open-source dan semacamnya - selain itu, siapa yang perlu tahu bahasa lain? Secara umum, saya telah menemukan tempat seperti itu untuk menjadi 9-5 dan sangat korporat (didorong oleh manajer bisnis, bukan orang perangkat lunak). Anti-tesis budaya peretas. " Saya telah bekerja di dua toko Net sekarang dan lingkungan sebenarnya sangat seperti hacker. Kami telah menggunakan banyak proyek sumber terbuka dalam pekerjaan kami. Dalam pilihan saya, itu semua tergantung pada jenis orang yang bekerja dengan seseorang. Jika mereka adalah pengembang sejati, mereka akan terus mencari cara untuk meningkatkan, berkembang. Teknologi apa yang mereka gunakan tidak relevan.

Jangan lupa tentang subkultur Metodologi Agile yang menggabungkan pengembang dari berbagai latar belakang.


Ya, orang Agile adalah sub-budaya bagi diri mereka sendiri. Poin bagus kembali. pengembang vs. alat, dan tentu saja pengalaman Anda bisa sangat berbeda dari saya. Dari pengambilan sampel saya yang terbatas, saya baru saja menemukan bahwa alat-alat tersebut cukup membentuk pembuatnya.
limist

Saya pernah bekerja di sebuah toko MS (dan saya bahkan mungkin seorang fanboy) tetapi mentalitas yang saya alami adalah "lihat ke MS dulu, jika gratis maka gunakan saja. Kalau tidak, cari apa saja dan segala sesuatu yang tersedia untuk memenuhi kebutuhan. . "
Steven Evers

2

Saya pikir akan ada beberapa jalan tengah antara Old School CS dan New School Web Developers .

Secara tradisional saya akan menganggap diri saya seorang "Pengembang Web." PHP dan Java dan warga negara kelas pertama bagi saya, bersama dengan HTML / CSS yang tepat, simantis, valid . Lemparkan dalam SQL dan Anda memiliki seperangkat keterampilan yang kuat, berpengetahuan luas.

Pindahkan Sekolah Baru ke Script Kiddies dan ganti merek Web Developer .

Script Kiddies - Orang dengan sedikit, jika ada, pengetahuan "di bawah tenda" tentang bahasa tersebut. Cenderung ke Google untuk tutorial sebelum menyalin / menempelkan kode secara membuta ke tempatnya. Biasanya tidak sepenuhnya memahami sintaksis lebih dari satu bahasa.


2

Akademisi yang melakukan penelitian menggunakan komputer, bukan penelitian tentang komputer.

Mereka:
- menulis perangkat lunak yang dapat mengkonsumsi jumlah yang tidak terbatas waktu CPU, memori dan disk space sehingga mereka peduli (atau setidaknya mencoba untuk perawatan) kinerja, baik dengan menggunakan hal-hal seperti -O3, time, profiler, memcheck, dan menghabiskan berjam-jam lebih atau kurang secara acak mengubah kode untuk mengumpulkan beberapa percepatan atau tanpa berpikir menerapkan beberapa trik mitos ke skrip mereka.
- Gunakan bilangan real dan tahu bahwa itu cukup rumit sehingga ilmu yang terpisah bernama "numerik" bisa ada.
- sering menggunakan beberapa bahasa pemrograman yang sangat spesifik / perpustakaan / program dan sangat fanatik tentang hal itu; perang api adalah umum, kebanyakan tentang kinerja.
- panggil program mereka "kode" untuk menyoroti bahwa mereka memiliki antarmuka pengguna yang sangat membingungkan sehingga hanya pembuatnya yang tahu cara menggunakannya.
- biasanya bekerja di Linux atau setidaknya menggunakan Putty untuk ssh ke beberapa workstation / cluster Linux.


1
Ya, saya di klub ini juga. Daftar ini adalah awal yang baik untuk deskripsi fisikawan energi tinggi tipikal (maksud saya, studi quark, tidak punya terlalu banyak kopi) atau astronom yang bekerja dengan instrumen besar saat ini.
DarenW

1
Dan, karena subkultur ini sangat memperhatikan efisiensi praktis, berulang, dan ekstrem, mereka sering tidak peduli dengan sebagian besar hal yang terjadi di dunia ilmu komputer, kecuali jika itu berkaitan dengan pemrosesan paralel, skema caching yang cerdas, HPC dan semacamnya. .
DarenW

@ DarenW: Apa maksudmu mereka tidak peduli dengan dunia sains komputer? Apakah maksud Anda seperti mereka tidak peduli dengan praktik perangkat lunak yang baik dan sejenisnya? Karena saya akan tidak setuju. Peduli tentang kinerja tidak perlu Anda membuang prinsip-prinsip rekayasa perangkat lunak yang baik.
n1ckp

1

Saya mungkin kombinasi dari orang -orang CS sekolah-tua dan pengembang web sekolah-baru : Saya belajar pemrograman dengan menulis situs web dengan PHP, Javascript dan SQL, dan saya sekarang masuk universitas di mana semuanya dilakukan dalam command-prompt dan Emacs di bawah UNIX.


0

Hitung saya sebagai pria 'sekolah tua'. Saya tidak pernah melakukan LISP dengan baik. Emacs? Nah, vidan set -o vidi shell saya untuk saya terima kasih.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.