Saya menganggap diri saya sebagai pengembang perangkat lunak tingkat tinggi. Saya senang membaca banyak, dan itu membantu saya selama karir saya. Saya pikir saya baik-baik saja.
Saat ini, saya menghabiskan banyak waktu mempelajari hal-hal baru. Saya tidak payah ketika harus menulis kode sekarang, tetapi saya akan memulai sebuah keluarga, dan saya secara teratur melihat banyak manula dengan pengalaman 14-15 tahun yang — karena mereka mengurangi belajar hal-hal baru — sekarang payah di pemrograman. Mereka adalah tokoh-tokoh yang menginspirasi di beberapa titik waktu, tetapi mereka tidak lagi.
Anda mungkin berpendapat bahwa dasar-dasarnya tidak pernah berubah, tetapi tampaknya membuat perbedaan ketika Anda mengode Delphi selama 10 tahun dan tiba-tiba semua orang menggunakan kerangka .NET. Memang benar bahwa pengembang yang berpengalaman akan memakan waktu kurang ketika belajar kerangka baru, tetapi masih tidak waktu permintaan dan usaha.
Bagaimana pengembang perangkat lunak mengelola tuntutan pekerjaan sambil tetap dapat berkonsentrasi pada hal-hal yang membuat Anda keluar dari pekerjaan, seperti memulai sebuah keluarga?
Jawaban:
Sesuatu yang Anda katakan menonjol: "Saya secara teratur melihat banyak manula dengan pengalaman 14-15 tahun ... mereka sekarang payah dalam pemrograman". Itu sapuan kuas yang cukup luas yang Anda gunakan untuk melukis orang dengan pengalaman. Saya ingin menunjukkan beberapa hal untuk dipertimbangkan:
Mungkin orang yang Anda maksud tidak pernah baik. Mungkin saja mereka memandang Anda berpikir, mengapa Anda bersikeras melakukan sesuatu dengan cara yang sulit?
Memang benar, bahwa ketika Anda memulai sebuah keluarga, Anda memiliki lebih sedikit waktu untuk mengikuti mainan baru. Anda benar-benar memiliki lebih sedikit waktu karena anak-anak Anda bertambah tua daripada yang Anda lakukan ketika mereka masih muda. Mainan tidak menjadikan Anda seorang programmer yang lebih baik. Juga tidak ada alat. Apa yang membuat Anda baik adalah kemampuan untuk memecahkan masalah dan membangun solusi yang berfungsi. Apa yang membuat Anda hebat adalah kemampuan untuk mengajar orang lain untuk menjadi baik. Di situlah pengalaman mulai bersinar.
sumber
Sulit untuk memprediksi masa depan. Tapi satu hal yang paling berharga untuk teknologi apa pun.
Ini adalah kemampuan pengembang untuk memecahkan masalah .
Banyak kualitas pengembang yang independen teknologi. Misalnya kemampuan analitis adalah kualitas paling penting yang saya ketahui. Ini seperti belajar matematika. Itu hanya abadi.
sumber
Saya berharap saya memiliki pemikiran positif atau konkret - tapi saya pikir bagaimana seorang programmer tetap up to date dan menyeimbangkan pekerjaan / keluarga sangat bervariasi dari programmer ke programmer.
Pikiran acak:
sumber
Pertama, Microsoft dalam bisnis penjualan alat dan platform pengembangan perangkat lunak untuk menjalankan perangkat lunak itu. Ini memberikan insentif kepada mereka untuk melakukan perubahan apakah dibutuhkan atau tidak. Itu tidak berarti semua perubahan mereka tidak berguna, hanya saja ada banyak bidang dalam profesi kita yang jauh lebih stabil. Dengan pengalaman, Anda lebih bisa membedakan kereta musik mana yang layak untuk dilompati segera, dan yang bisa Anda tunggu hingga matang.
Kedua, pengalaman hanya membutuhkan waktu. Sebagian besar pengembang dengan 15 tahun pengalaman yang buruk sekarang adalah 15 tahun yang lalu. Jangan salah mengartikan usia yang bisa dijelaskan dengan tidak kompeten.
Ketiga, jangan bingung memiliki pengetahuan yang ketinggalan zaman dengan tidak dapat menggunakan yang terbaru dan terhebat ketika dibutuhkan. Biasanya cukup hanya dengan mengetahui apa yang ada di luar sana. Sebagai contoh, sampai saat ini pengetahuan pemrograman web saya adalah vintage akhir 90-an, tetapi ketika saya ingin membangun situs web untuk saudara saya, saya cukup tahu untuk memeriksa teknologi "bermodel baru" seperti CSS, jQuery, dan sistem manajemen konten, dan cukup adil hingga kecepatan dalam beberapa minggu. Dengan kata lain, jika Anda tidak membutuhkan sesuatu dalam 10 tahun terakhir, Anda tidak mungkin memiliki keadaan darurat di mana Anda berharap Anda dapat mempercepat saat ini.
Akhirnya, menjadi orang tua memang merupakan komitmen waktu yang besar, tetapi waktu yang kurang dari banyak orang tanpa anak tampaknya berpikir. Orang tua masih bisa membaca buku, menonton TV, bermain game, menjelajahi web, dan bahkan mengambil kelas sesekali. Shocker, saya tahu. Anda hanya melakukannya dalam porsi yang lebih kecil dan membuat prioritas. Tentang satu-satunya hal yang saya hentikan sepenuhnya adalah menonton tayangan ulang.
sumber
Saya dapat meyakinkan Anda bahwa orang-orang yang menunjukkan keterampilan pemrograman yang buruk setelah sepuluh hingga lima belas tahun tidak pernah benar-benar mengembangkan pengembangan perangkat lunak. Menguasai seperangkat alat tidak sama dengan menguasai seni pengembangan perangkat lunak.
Saya telah menulis kode selama lebih dari tiga puluh tahun. Saya telah melalui beberapa periode di mana saya harus menempatkan karir saya secara autopilot karena kewajiban dan / atau minat di luar. Apa yang harus dipelajari untuk dilakukan seiring bertambahnya usia adalah menghindari melompat pada kereta musik teknologi sejak dini. Sebagian besar teknologi gagal memenuhi hype mereka. Sebagai seorang praktisi yang lebih tua dengan kewajiban di luar pekerjaan, seseorang harus pelit dengan waktu seseorang. Seorang praktisi yang berpengalaman dapat menunggu beberapa tahun untuk teknologi baru menjadi matang karena ia telah menguasai seni pengembangan perangkat lunak.
sumber
Selama bertahun-tahun pengalaman saya:
flavor of the day
(kadang baik, sering buruk).Seperti dicatat pada diskusi tentang pola, geng empat tidak menemukan pola. Mereka datang dengan terminologi dan template untuk solusi yang sudah diterapkan.
Tidak seperti banyak bidang lain, masih banyak yang tidak biasa dilakukan. Saya telah melihat banyak barang canggih datang dan pergi. Banyak dari ini adalah pengutipan ulang teknik yang sudah dalam praktek, dan yang biasanya berhasil sampai batas tertentu. Yang lain lebih atau kurang telah pergi, dan sebagian besar di mana pendekatan baru. (Adakah yang melihat bahasa generasi ke-5 belakangan ini?)
Programmer yang saya lihat yang paling efektif dapat memilih dan merakit komponen yang telah terbukti menjadi solusi yang berfungsi. Ini jarang melibatkan sesuatu yang canggih, yang umumnya akan meningkatkan risiko proyek. Kemampuan untuk membangun di atas pekerjaan yang telah dilakukan, memungkinkan kita untuk meningkatkan ruang lingkup dari apa yang mungkin.
Bahasa pemrograman cenderung masuk dalam keluarga yang relatif sedikit. Keakraban dengan satu bahasa dalam keluarga membuat bekerja dengan bahasa yang serupa menjadi lebih mudah. Memahami perpustakaan yang tersedia dalam bahasa dan memanfaatkannya dapat sangat meningkatkan produktivitas dan keandalan. Secara umum, saya akan memilih bahasa yang lebih lama dengan perpustakaan yang sesuai daripada bahasa yang lebih baru tanpa perpustakaan yang sesuai.
Saat menerapkan teknologi baru penting untuk menghindari
Because We Can
sindrom. Menambahkan teknologi baru karena citarasa tahun ini, cenderung menyebabkan lebih banyak masalah daripada memecahkannya. Mengetahui kapan teknologi akan memecahkan masalah nyata, dan kapan itu hanya akan menambah kompleksitas adalah keterampilan yang berguna.Pemrogram yang sangat baik akan memecahkan masalah baru, dan menggunakan solusi yang ada untuk sisanya. Hanya sedikit perusahaan yang membutuhkan teknologi canggih, semua membutuhkan solusi yang solid.
Saya biasanya menyesal meluncur ke bawah pisau cukur. Saya tidak ingat pernah menyesal menggunakan teknologi yang sudah terbukti. Namun, banyak dari apa yang digambarkan sebagai
new
pengemasan ulang dari sesuatu yang ada. Biasanya, pengemasan ulang ini membuat hal-hal lebih mudah untuk dipahami dan diterapkan dengan tepat.sumber
Tidak ada yang bisa mengikuti semuanya. Anda mungkin cukup sibuk mengikuti penawaran Microsoft. Sudahkah Anda melihat Ruby di database RAILS dan Python dan NoSQL serta Hadoop dan pembuatan aplikasi seluler serta CSS dan HTML5 serta jQuery dan ExtJS dan ...?
Saya sudah menggunakan software cukup lama. Saya mencoba untuk mengikuti teknologi yang benar-benar baru, seperti ide-ide baru untuk database paralel besar-besaran, dan mengabaikan yang jelek (misalnya MFC, WinForms, SOAP, XML, EJBs) dan sepele mungkin sebanyak mungkin. Sebagian besar kita hanya melihat ide-ide lama yang hebat dikemas ulang dan akhirnya diadopsi. Pemrograman fungsional? Saya menggunakan INTERLISP pada tahun 1977. Aplikasi ponsel? Ini adalah grafik UI dan 2D yang digerakkan oleh kejadian yang sama yang telah kami lakukan selama setidaknya 30 tahun. Tentu, ada seni untuk merancang aplikasi yang dapat digunakan untuk layar sentuh kecil, tetapi pemrogramannya tidak baru sama sekali.
sumber
Saya setuju dengan @Amir bahwa keahlian Anda bukan menyelesaikan masalah domain lanaguage Anda, tetapi saya menghargai perhatian Anda, jadi:
Jika Anda memiliki kebebasan untuk menjemput Anda lanaguage saat ini maka pilih yang sedekat mungkin dengan prinsip pertama mungkin (yaitu lanaguage tipe C ++) sehingga ketika Anda bekerja mendorong ke domain baru, kurva belajar lebih sedikit - karena itu hanya abstraksi di atas Anda. Jika saat ini Anda hanya berinvestasi dalam bahasa tingkat tinggi yang menggunakan abstraksi jauh lebih sulit (bahkan jika hanya dalam persepsi).
Jika Anda tidak memiliki feedom itu maka cukup gunakan 8 jam di tempat kerja .. jika gairah Anda tinggi Anda tidak akan "macet", dan Anda akan selalu menemukan masalah menarik untuk dipecahkan dengan secara alami akan mengarahkan Anda untuk belajar lebih banyak .
sumber
Itu akan tergantung pada pekerjaan Anda dan pekerjaan yang Anda inginkan. Ada posisi di mana para pengembang masih menggunakan teknologi yang lebih tua. Masih banyak COBOL untuk terus berjalan (saya yakin ada sesuatu yang berubah.).
Bekerja di perusahaan yang melakukan perubahan besar seperti yang Anda jelaskan dapat membuat beberapa orang keluar dari pekerjaan. Terkadang perusahaan membuat investasi dalam mendapatkan pelatihan alih-alih mengharuskan Anda untuk mempelajarinya sendiri.
Memiliki keluarga dapat membatasi pilihan pekerjaan Anda. Dapat membuat Anda kurang mobile. Bisakah Anda bekerja pada permulaan untuk setengah gaji Anda dengan harapan hari gajian besar - mungkin tidak dengan anak-anak dan hipotek.
Yang lebih baru tidak selalu lebih baik dan banyak yang tidak bertahan lama.
sumber
Saya tidak di bidang medis, tetapi bagaimana dengan analogi antara pengembang dan dokter? Kedua bidang telah melihat perubahan luar biasa dalam 20 tahun terakhir dan laju perubahan semakin cepat. Apakah semua dokter mengikuti? Tidak. Apakah semua pengembang mengikuti? Tidak. Bisakah Anda membuat generalisasi tentang pengembang atau dokter dengan pengalaman 14-15 tahun? Lebih banyak pengalaman berarti Anda memiliki serangkaian jawaban yang lebih besar untuk masalah yang sama. Apakah pengalaman bunga truf? Tidak dalam jangka panjang.
Berpikirlah seperti hiu yang harus terus berenang atau mati. Teruslah belajar atau mati (atau pindah ke manajemen, yang merupakan tujuan paling banyak ketika garis karier pengembangan memuncak sekitar 10-15 tahun).
sumber
Saya memiliki keprihatinan yang sama di benak saya, tetapi pemikiran saya baru-baru ini tentang ini adalah untuk berhenti mencoba memprediksi kemampuan Anda sendiri untuk beradaptasi dan hanya beradaptasi. Saya menemukan bahwa jika saya menganggap saya bisa mengikuti, saya biasanya hanya melakukannya. Jika saya khawatir akan ketinggalan jaman, itu bisa membuatnya menjadi ramalan yang terpenuhi dengan sendirinya.
Seperti yang Anda katakan, tetap di kaki Anda. Dan jika Anda tidak bisa mengikuti, jangan terlalu banyak berkeringat. Teknologi memiliki cara yang lucu untuk memutar lingkaran penuh, dan Anda mungkin akan segera kembali ke arus utama dengan sangat baik.
sumber