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!