Bagaimana Anda mengatasi sifat dinamis dari pengembangan perangkat lunak tingkat tinggi? [Tutup]

25

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?

Hemant
sumber
1
Apa, Anda pikir Anda tidak bisa mengelola Singularity? Setiap pengembang yang baik bisa! - bercanda, jangan dengarkan aku ...
Klaim

Jawaban:

30

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:

  • Praktisi yang lebih muda / kurang berpengalaman suka menunjukkan bagaimana senior mereka gagal melakukan X atau Y, ketika mereka gagal memahami bahwa pengalaman menunjukkan bahwa itu adalah ide yang buruk. Namun setiap generasi praktisi baru tampaknya ingin mengulangi kesalahan itu. Fenomena itu biasa terjadi pada semua profesi, tidak hanya pemrograman.
  • Tidak semua orang yang telah bekerja beberapa tahun berpengalaman, matang, atau baik. Dibutuhkan upaya untuk menjadi lebih baik. Banyak upaya yang dilakukan ketika Anda masih muda membangun tubuh pengalaman yang baik yang bisa Anda manfaatkan nanti.

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.

Berin Loritsch
sumber
1
Ingin menguraikan downvote? Anda mungkin tidak menyukai apa yang saya katakan, tetapi itu benar.
Berin Loritsch
4
The persepsi bahwa ia memiliki adalah bagian besar dari teka-teki nya. Yang saya lakukan hanyalah berurusan dengan persepsi itu secara langsung. Singkatnya, saya lebih peduli dengan alat mengejar daripada saya kemampuannya untuk menjadi pengembang yang baik berpengalaman . Dia bahkan mungkin menjadi hebat . Itu tidak akan terjadi jika semua pengalamannya mengatakan kepadanya bahwa pengembang yang lebih tua payah. Itu adalah demotivator yang mengerikan untuk berupaya mencapai apa yang diinginkannya.
Berin Loritsch
1
@Berin Loritsch: Itu poin yang adil. Niat Anda baik. // Di Amerika Serikat, terlalu banyak orang yang tersesat untuk memarahi orang lain karena membuat generalisasi. Saya mengambil pengecualian untuk respons Anda karena sepertinya Anda melakukan ini.
Jim G.
1
Mudah-mudahan, apa yang akan Anda pelajari dari waktu ke waktu adalah kapan menginvestasikan waktu untuk mempelajari teknologi baru dan kapan harus mengabaikannya. Intinya adalah bahwa waktu adalah sumber daya yang berharga. Ketika SOAP / XML RPC pertama kali keluar, masih terlalu dini untuk mengatakan apa yang sebenarnya akan dilakukan. Sekarang dengan beberapa tahun di ikat pinggang kami, kami telah belajar beberapa pelajaran yang menyakitkan, dan memodifikasi pendekatan dengan layanan berbasis REST. Selain itu, kami para lelaki tua membutuhkan para lelaki muda dengan energi tanpa batas untuk mencari tahu apa yang pantas untuk dipelajari. Kita mungkin sedikit lebih lambat untuk menarik pelatuk, tetapi tidak butuh waktu lama bagi kita untuk mempercepat.
Berin Loritsch
2
@Berin Loritsch: Mungkin saya mengerti sekarang. Bahkan, saya telah melihat beberapa senior (termasuk bos saya saat ini) yang hanya goyang ketika datang ke pemecahan masalah. Dia tidak melompat dengan gembira ketika saya mengatakan Anda bisa melakukan X dengan mudah menggunakan kerangka kerja ini tetapi dia tidak takut menggunakannya ketika dia melihat itu sebenarnya berguna. Jadi mungkin senior lain yang tidak baik, tidak baik karena mereka tidak pernah ada. Bukan karena mereka tidak terhubung karena teknologi baru. Saya merasa jauh lebih baik sekarang. (Saya harap apa yang saya tulis masuk akal)
Hemant
20

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.

Amir Rezaei
sumber
1
Ya, ditambah kemampuan / kejujuran untuk mengetahui kapan alat / keterampilan Anda yang tersedia tidak menyelesaikan masalah. Jadi, Anda belajar beberapa hal baru dan kemudian kembali ke "kemampuan untuk menyelesaikan masalah."
Peter Rowell
1
eh ... Ini agak kabur, dan tbh, ini agak sulit. Jika seorang dev masih sangat senang "memecahkan masalah" di vb6 ... well, saya tidak benar-benar ingin bekerja dengan kode mereka. Tetap terkini tidak memprediksi masa depan, membutuhkan waktu / pekerjaan, dan ada sedikit peluang untuk itu ketika Anda memiliki keluarga.
Steven Evers
5

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:

  • Tidak setiap proyek perangkat lunak atau perusahaan membutuhkan teknologi terbaru absolut - bahkan dalam perangkat lunak. Perubahan ini paling dramatis di sisi pendarahan - perusahaan yang berjalan sedikit di belakang pendarahan sering memiliki banyak peluang untuk pertumbuhan dan perubahan, tetapi tidak permintaan mendesak luas untuk perubahan konstan segera.
  • Semakin berpengalaman seorang programmer, semakin mereka harus dapat memanfaatkan pengalaman sebagai pengganti kata kunci terbaru / terhebat. Saya telah memperhatikan orang-orang yang paling saya kagumi dengan 20+ tahun di industri ini memiliki banyak metafora tentang bagaimana hal C # terbaru adalah jawaban sempurna untuk masalah yang mereka miliki di akhir tahun 80-an dengan C. Dengan memanfaatkan masalah dan solusi sebelumnya, mereka membawa lebih banyak pemahaman ke meja dengan sedikit penelitian.
  • Setiap kali saya harus menilai programmer di tim, kemampuan untuk menyelesaikan sesuatu dan bermain dengan baik dengan orang lain telah mengungguli berbagai teknologi yang digunakan oleh programmer. Meskipun industri akan mengembangkan banyak, bersaing, bahasa baru, API, dan alat, kemungkinan bagus bahwa proyek hanya akan menggunakan pesaing pada suatu waktu. Tetapi menyelesaikan sesuatu, dan membantu orang lain melakukan hal yang sama tidak pernah ketinggalan zaman dan bagaimana hal itu dilakukan berkembang jauh lebih lambat - bukan bahwa IM, media sosial, ponsel pintar dan segala hal lain di era digital tidak mengubah aspek pemrograman juga.
bethlakshmi
sumber
Mungkin juga menarik untuk bekerja di sebuah perusahaan yang menjalankan sedikit lebih jauh di belakang pendarahan, katakan 3-4 tahun. Anda dapat melihat dengan lebih jelas kesalahan yang dilakukan orang lain, dan mendapatkan keuntungan dari alat dan implementasi yang lebih matang.
Michael K
Saya setuju. Saya sendiri sebenarnya bekerja sedikit di belakang, dan saya suka mengetahui bahwa orang lain telah melawan sedikit sebelum mereka harus mencobanya. :)
bethlakshmi
5

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.

Karl Bielefeldt
sumber
3

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.

bit-twiddler
sumber
Jadi Anda tidak merasa kesulitan untuk tetap diperbarui dengan teknologi baru ketika mereka matang?
Hemant
1
Industri ini bersifat siklus. Sebagian besar teknologi baru lebih dari sekadar gagasan lama yang dikemas ulang. Jika fundamental seseorang kuat, ia tidak akan memiliki masalah untuk mempertahankannya. Ingat, seseorang tidak harus berada di ujung tombak teknologi untuk mendapatkan kehidupan yang layak sebagai insinyur perangkat lunak.
bit-twiddler
2

Selama bertahun-tahun pengalaman saya:

  • Bahasa telah berubah (biasanya relatif lambat).
  • Berbagai masalah yang bisa dipecahkan secara praktis telah tumbuh (agak lebih cepat);
  • Ukuran dan kompleksitas solusi telah meningkat (relatif cepat);
  • Ada sesuatu yang 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 Cansindrom. 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 newpengemasan ulang dari sesuatu yang ada. Biasanya, pengemasan ulang ini membuat hal-hal lebih mudah untuk dipahami dan diterapkan dengan tepat.

BillThor
sumber
2

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.

kevin cline
sumber
1

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 .

Stephen Bailey
sumber
1

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.

JeffO
sumber
1

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).

SnoopDougieDoug
sumber
Saya tidak yakin dengan situasi di mana Anda tinggal, tetapi di Australia ada persyaratan bagi para profesional medis untuk terlibat dalam pendidikan dan pemeriksaan berkelanjutan untuk mempertahankan pendaftaran mereka (dan karenanya kemampuan untuk mempraktikkan kedokteran).
Sedate Alien
0

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.

Kevin Hsu
sumber