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!
Jawaban:
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:
sumber
Jangan lupa programmer mainframe. Mereka juga merupakan sub budaya.
sumber
Saya mewakili kontingen kesepian Delphi Devs di bawah 30. Kaukus kami kecil, tetapi hati kami besar.
sumber
Saya kira ada beberapa budaya yang entah bagaimana hidup berdampingan ketimbang berkelahi dan entah bagaimana transenden:
Harap dicatat bahwa:
Saya pikir saya saat ini kebanyakan Open Source dengan sedikit pengaruh Academia (pasif).
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber
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.
sumber
Hitung saya sebagai pria 'sekolah tua'. Saya tidak pernah melakukan LISP dengan baik. Emacs? Nah,
vi
danset -o vi
di shell saya untuk saya terima kasih.sumber