Hai habr. Baru-baru ini, saya berdiskusi dengan seorang rekan stereotip dan mitos umum yang diperoleh industri pemrograman. Bagi saya, ide ini layak ditulis di sini, meskipun ada materi tentang topik ini. Untuk semua pendatang - selamat datang di kucing.
Tampaknya profesi yang rasional dan berbasis logika seperti itu tidak rentan terhadap semua jenis fiksi, tetapi komunitas pengembang masih dihadapkan dengan mitos yang begitu meluas sehingga mereka mulai menembus ke dalam kenyataan. Jika semua mitos ini benar, dunia pemrograman akan menyerupai sekelompok geek berusia 20 tahun yang menggunakan keterampilan matematika tinggi mereka untuk kode kapan saja siang atau malam hari. Jika Anda bekerja di bidang ini, kemungkinan besar Anda tahu bahwa ini sama sekali tidak terjadi. Namun, bahkan para pengembang itu sendiri cenderung memercayai beberapa prasangka. Mari kita perbaiki.
1. Pengembang yang baik bekerja sepanjang waktu
Terlepas dari keengganan untuk menyerah pada pemikiran stereotip, gambar seorang pria segera muncul di kepalanya dengan mata mengantuk dan seorang pria energi di tangannya, sebagai atribut yang tidak berubah dari setiap programmer. Ya, ada beberapa kebenaran dalam hal ini - terkadang tenggat waktu yang mendekat membutuhkan pengorbanan tidur, terutama ketika menyangkut startup. Namun, ini tidak selalu terjadi.
Selain itu, setiap orang telah lama mengetahui bahwa kurang tidur tidak meningkatkan produktivitas, tetapi menghambat prosesnya. Hanya sedikit orang yang puas dengan keadaan ini, karena banyak pengembang memiliki keluarga, teman, dan urusan pribadi mereka, yang lebih memungkinkan mereka mencurahkan waktu luang mereka. Alih-alih mengolah ide ini, komunitas pemrograman harus mencari cara lain untuk meningkatkan alur kerja dan fokus pada penetapan tujuan, mengikuti metodologi Agile. Hanya sedikit orang yang puas dengan pekerjaan "untuk keausan", dan ini berlaku tidak hanya untuk programmer.
2. Semakin banyak orang memeriksa kode, semakin sedikit bug
Diciptakan oleh Eric S. Raymond, pepatah "dengan mata yang cukup, semua bug ada di permukaan" menyiratkan keuntungan untuk open source karena setiap pengembang dapat meninjau dan memperbaiki bug. Pada kenyataannya, ini tidak sepenuhnya benar, karena program open-source memiliki lebih banyak pengguna yang tidak dapat memperbaiki kesalahan dalam kode daripada orang-orang yang siap untuk berkontribusi. Sederhananya, ketujuh pengasuh memiliki anak tanpa mata. Solusi terbaik dalam situasi ini adalah mempekerjakan tim yang berfokus pada masalah dengan perangkat lunak pelacakan bug yang baik.
3. Keterampilan matematika menentukan keterampilan pengembangan
Ya dan tidak, karena tidak mungkin untuk mengatakan dengan tegas kemampuan apa yang akan menjadi faktor penentu dalam pertumbuhan profesional Anda. Kecanduan matematika tidak menjamin kesuksesan seratus persen, seperti ketidakhadirannya tidak mengarah pada kegagalan. Dengan pengecualian game, sebagian besar pengembang hanya menggunakan aljabar dasar dan statistik untuk mengetahui efektivitas kode, tetapi di sinilah pengetahuan mendasar dilibatkan.
4. Pengembang adalah genius
Anda tidak perlu menjadi jenius untuk menjadi seorang programmer, Anda hanya perlu termotivasi dan dapat belajar. Kesalahan adalah bagian integral dari pengembangan profesional, dan bahkan pengembang yang cerdik pun membuatnya. Penting untuk mengubahnya menjadi pelajaran bermanfaat yang memungkinkan Anda meningkatkan keterampilan.
5. Cukup menguasai satu hal
Dunia pemrograman berubah dengan kecepatan cahaya, yang berarti Anda akan selalu memiliki sesuatu untuk dipelajari. Setelah menguasai hanya satu bahasa, cepat atau lambat Anda akan menemui jalan buntu yang membutuhkan solusi fleksibel. Berhenti untuk membentuk, Anda akan mengalami stagnasi dan berhenti menjadi kompetitif, jadi bersiaplah bahwa Anda harus meningkatkan diri sepanjang karier Anda.
6. Bahasa X lebih baik
Yang benar adalah, tidak ada satu bahasa mahakuasa untuk semua perkembangan. Setiap bahasa mengisi ceruk khusus di lingkungan ini dan dirancang untuk tujuan tertentu. Untuk pengembangan perangkat lunak interaktif, pengembang lebih cenderung menggunakan JavaScript, dan untuk sesuatu yang berorientasi pada kecepatan tugas - C ++. Perdebatan tentang keunggulan satu bahasa di atas yang lain sama sekali tidak pantas, karena masing-masing berfokus pada tugas tertentu yang tidak ada hubungannya dengan prasangka pribadi.
7. Anda dapat menguasai bahasa dalam beberapa minggu.
Aku benci membunuh antusiasme para pemula, tetapi beberapa minggu tidak akan cukup. Bahkan jika Anda dapat mempelajari prinsip-prinsip dasar bahasa dalam dua hingga tiga minggu, untuk semua hal lain Anda akan membutuhkan banyak kekuatan, ketekunan dan latihan. Dengan tidak adanya minat dan kesabaran, Anda tidak akan cukup untuk waktu yang lama, dan menguasai seperangkat keterampilan besar dalam waktu singkat tidak mungkin.
Gambarlah paralel antara pekerjaan seorang programmer dan pekerjaan seorang dokter: seorang ahli bedah yang tidak berpengalaman tidak dapat melakukan operasi yang sukses tanpa praktik yang baik di belakangnya, seperti seorang programmer tidak dapat menulis kode kompleks tanpa menghabiskan waktu mempelajari semua aspek. Dengan kata lain, pengembang yang baik membutuhkan memori otot sebanyak ahli bedah.
8. Pelepasan produk ke produksi = akhir pekerjaan pada proyek
Pada kenyataannya, pengembangan perangkat lunak jarang lengkap. Tentu saja, manajemen dan pengembang ingin percaya bahwa perangkat lunak multi-level besar yang mereka buat akan berfungsi dengan baik selama bertahun-tahun. Namun, seiring waktu, masalah baru mungkin muncul yang perlu diperbaiki, dan aplikasi akan berubah dan membutuhkan penambahan fitur baru, sehingga proses ini tidak ada habisnya. Anda perlu mengingat biaya dukungan dan pemeliharaan, serta berinvestasi dalam pengembangan inovasi untuk mempertahankan daya saing.
9. Pemrograman hanya menulis kode
Banyak orang secara keliru percaya bahwa pengembang hanya mengubah ide menjadi kode, tanpa memahami esensi dari keputusan yang dibuat dalam proses penulisan itu. Ini adalah kesalahpahaman besar, karena pada setiap tahap pengembang harus membentuk solusi abstrak untuk masalah dan mengantisipasi kemungkinan bug bahkan sebelum mereka terjadi, yang membutuhkan pengetahuan dan pemahaman yang mendalam tentang masalah tersebut. Antara lain, mereka harus berurusan dengan banyak persyaratan non-fungsional dan keputusan desain yang gagal, dan hanya pengembang yang baik yang dapat melacak dan mengkomunikasikannya dengan jelas kepada tim, membuat keputusan yang lebih kecil sendiri.
10. Pemrograman bukan kegiatan kreatif
Stereotip semacam itu paling sering didasarkan pada ide-ide dangkal orang-orang yang jauh dari bidang ini, karena menulis kode, algoritma, dan momen-momen lain dari dunia pemrograman tampaknya bagi orang awam yang sederhana menjadi sesuatu yang asing bagi kegiatan kreatif. Ya, logika dan bidang pengetahuan ilmiah dan teknis tidak diragukan lagi dapat disebut sebagai dasar pemrograman, tetapi ini tidak meniadakan sisi kreatifnya. Hingga taraf tertentu, ini bisa disebut bentuk seni, karena banyak pengembang mencoba mendesain kode dengan indah, menyusun dan membuatnya lebih bersih. Ini tidak lebih dari proses kreatif.
11. Pengembang memiliki keterampilan sosial yang rendah
Menurut banyak orang, pemrogram adalah penyendiri, siap untuk menghabiskan seluruh waktu luang mereka sendirian dengan komputer mereka, dan begitu berbicara mengenai komunikasi sosial, mereka kehilangan akal dan cenderung menutup diri dari dunia luar. Mitos ini dapat dikaitkan dengan poin pertama.
Namun, posisi seorang programmer, seperti halnya yang lain, tidak akan membuat Anda menjadi sosiofob yang tidak ramah dan tidak mungkin memengaruhi karakter. Mengalah pada stereotip ini, banyak manajer berinteraksi dengan pengembang sedemikian rupa sehingga kontribusi komunikatif mereka diremehkan. Setiap pengembang adalah individu dengan sifat batin mereka sendiri, dan hanya karena mereka suka menulis kode tidak berarti mereka takut pada orang.
12. Pengembang muda menganggap diri mereka sebagai spesialis terbaik
Mungkin ini adalah usia, tetapi di awal karir mereka, banyak pengembang cenderung berpikir bahwa mereka lebih baik daripada kolega mereka yang berpengalaman. Mereka telah menguasai teknologi baru yang mereka yakini lebih produktif dan, pada gilirannya, lebih berharga daripada menggunakan platform lama. Faktanya, banyak pengembang mempelajari teknologi baru bahkan ketika mereka tumbuh (jika tidak sulit untuk bersaing dan tetap diminati). Dan lulusan baru yang berpendidikan sering mengabaikan faktor penting: kedalaman dan luasnya pengalaman yang hanya datang seiring waktu.
13. Pemrograman itu membosankan
Apakah Anda akan mengabdikan hidup Anda untuk apa yang terasa membosankan bagi Anda? Jawabannya jelas, semua orang menentukan ruang lingkup minat mereka. Pemrograman bisa sama asyiknya dengan aktivitas lain karena merupakan campuran arsitektur, matematika, dan bahasa. Orang-orang yang menganggap pengembangan membosankan tidak memahami semua seluk beluk. Tetapi pengembang tahu bahwa pengembangan adalah pelatihan yang berkelanjutan, pencarian solusi yang efektif dan kesempatan untuk merasa seperti pencipta sesuatu yang penting dan berguna. Betapa membosankannya itu?
14.Setelah 35, karier pengembang berakhir
Ageism adalah bagian yang sangat nyata dari dunia pemrograman, tetapi usia bukanlah sesuatu yang dapat mengakhiri karir. Orang-orang yang terjebak dalam bahasa yang sama atau belum mampu menguasai platform dan teknologi baru berkontribusi pada konfirmasi mitos ini.
Ini tidak berarti bahwa pengembang sepenuhnya meninggalkan pemrograman setelah 35. Banyak pindah ke posisi kepemimpinan atau membuat perusahaan mereka sendiri. Orang lain terus belajar dan berkembang dengan cinta untuk pekerjaan mereka sepanjang karir mereka, itu hanya masalah ingin menjadi up-to-date dan tetap mengikuti perubahan.
15. Pengembang adalah komoditas
Seringkali orang berpikir bahwa semakin banyak baris kode yang ditulis pengembang, semakin produktifnya mereka, tetapi pengembangannya bukan peletakan batu bata. Adalah bodoh untuk menyewa pemrogram yang lebih murah dan mengharapkan pekerjaan dilakukan juga. Pengembang terutama orang. Masing-masing memiliki keterampilan khusus, karakteristik pribadi, dan pengetahuan. Seperti dalam kasus bahasa, dalam beberapa proyek, programmer dapat membuktikan diri mereka lebih baik daripada yang lain, yang pada gilirannya akan mempengaruhi efisiensi proses pengembangan.
Kesimpulan
Akan menarik bagi saya untuk mendengar tentang stereotip konyol yang Anda temui selama latihan (dan saya yakin ada beberapa dari mereka). Tinggalkan opsi Anda di komentar.