Jalankan melintasi ini, dan bertanya-tanya apakah ada yang punya cara untuk membuktikan atau membantah pernyataan ini:
Sesuatu yang perlu diingat ... apa paruh pengetahuan di teknologi tinggi? Itu sesuai dengan Hukum Moore: setengah dari semua yang Anda tahu akan usang dalam 18-24 bulan.
SUMBER: Dalam jawaban oleh Craig Trader untuk pertanyaan ini, " Apa hal paling efektif yang Anda lakukan untuk meningkatkan keterampilan pemrograman Anda? "
Statement = (True or False)
Iya nih.Jawaban:
Pernyataan ini hanya berlaku untuk teknologi fana, yang Anda hanya harus belajar sesuai kebutuhan saja. Yang mengatakan, Anda akan belajar banyak dari mereka selama karier Anda.
Prinsip dan teknik pemrograman fundamental adalah abadi.
sumber
Omong kosong
Orang-orang yang mengatakan hal-hal seperti itu hanya berusaha menjadi sensasional, atau mereka mempelajari hal-hal yang salah.
sumber
Tes terbaik (terburuk?) Yang bisa saya pikirkan adalah hanya memikirkan kembali setahun. Berapa banyak pengetahuan pemrograman yang Anda gunakan setiap hari dipelajari dalam 18 - 24 bulan sebelumnya? Apalagi berapa yang ditemukan dalam 18-24 bulan sebelumnya? Prinsipnya tampaknya sangat mencurigakan bagi saya, karena mayoritas pemrograman dan pengetahuan teknis yang saya gunakan setiap hari diperoleh lebih dari 5-10 tahun.
Sekarang jika Anda sedang mengembangkan sesuatu seperti platform ponsel, mungkin itu adalah ballgame yang berbeda.
sumber
Dalam pengalaman saya, ada keterputusan besar antara media / citra publik di mana teknologi adalah New New Thing, dan apa yang sebenarnya digunakan di dunia nyata di luar sana.
Ambil sesuatu seperti Visual C ++ / MFC di ruang aplikasi desktop. Walaupun mungkin terlihat tua dan ketinggalan zaman, dan mungkin bukan sesuatu yang harus dipelajari oleh programmer baru saat ini untuk pengembangan desktop, masih ada banyak proyek dunia nyata dan pekerjaan di luar sana yang tertulis di dalamnya yang sedang dipertahankan - dan mungkin akan dipertahankan selama bertahun-tahun dan beberapa dekade mendatang. Saya akan memberikan COBOL sebagai contoh, tetapi itu akan berbicara secara teoritis - Saya benar-benar tahu contoh VC ++ / MFC secara pribadi dengan sangat baik.
Pada dasarnya, bukan karena teknologi menjadi tidak berguna dan tidak digunakan ketika mereka menjadi "usang", itu lebih karena mereka tidak lagi dipandang sebagai cara paling mutakhir dalam melakukan sesuatu dan memulai proyek baru. Tetapi penonaktifan sistem perangkat lunak dunia nyata besar yang tidak rusak dan tidak perlu diperbaiki terjadi jauh lebih lambat. Banyak proyek Visual C ++ / MFC yang telah saya kerjakan (yang dimulai pada awal 1990-an) masih sangat hidup, dan mempekerjakan banyak programmer (baik dalam pemeliharaan dan pengembangan baru), dan tampaknya tidak ke mana-mana dalam waktu dekat Bahkan, saya yakin sebagian besar yang saya pikirkan masih ada sekitar tahun 2020, dan lebih lama.
Tentu saja, ini bahkan bukan masalah utama. Masalah utamanya adalah bahwa banyak konsepnya mirip, atau terkait, dan Anda tidak "memulai dari awal" ketika mempelajari beberapa teknologi baru. Misalnya: setelah Anda memahami bahasa markup dan tentang apa itu, sangat mudah untuk mempelajari yang baru. Jadi tidak masalah JSON adalah hal baru yang baru dan yang telah Anda gunakan selama bertahun-tahun adalah XML. Ini hanya masalah mempelajari sintaksis baru - sebagai lawan beberapa non-programmer yang tidak tahu apa-apa tentang bahasa markup, atau konsep internal di balik data yang mereka wakili, dll.
TL; DR: 1) Ada banyak teknologi "usang" yang digunakan di luar sana, tetapi karena itu bukan hal baru yang seksi, Anda tidak banyak mendengarnya - tetapi jauh dari tidak berharga bagi mereka yang bekerja dengannya . 2) Konsep pemrograman membangun di atas satu sama lain dan berkembang. Beberapa hal benar-benar sesuatu yang harus Anda pelajari sepenuhnya dari awal dan lupakan yang lama.
sumber
Itu semua tergantung pada apa yang Anda fokuskan untuk belajar, menghafal, dan umumnya mengisi otak Anda. Detail mungkin menjadi usang dengan cepat, tetapi prinsip-prinsip harus bertahan lebih lama.
Contoh dari hal-hal yang saya sangat terlibat dalam baru-baru ini:
Hal-hal yang saya pelajari dalam huruf tebal akan bertahan lebih lama daripada hal-hal di sisi kiri. Jika Anda ingin menghindari jebakan usang dalam pemrograman, fokuslah pada prinsip-prinsip tersebut .
sumber
Robert Harvey memakukan ini , tetapi setelah memikirkannya, saya terdorong untuk melemparkan singkat ke angin dan menjawab.
Saya harus menambahkan penafian, saya tidak pergi ke Perl On Rails saat diumumkan. Saya merasa bahwa itu bekerja dengan baik untuk penggunaan yang sangat lokal yang dirancang untuk itu dan membuat catatan untuk referensi di masa mendatang.
Saya juga tidak menyerah pada lebih dari 50 permutasi ke pustaka C standar selama dua dekade terakhir, saya berharap saya bisa menautkannya, tetapi tampaknya sekarang ditantang secara eksistensial.
Ketika sesuatu yang baru keluar, ambil dan lihatlah. Jika Anda mengatakan 'ick', jatuhkan. Jika Anda mengatakan 'wow', tingkatkan itu. Jika Anda tidak dapat merenungkan keputusan seperti itu, pilihlah otak orang-orang yang bisa.
Menilai segala sesuatu berdasarkan kemampuan teknis saja . Senilai waktu Anda berarti menghemat waktu Anda sementara mendapatkan jempol dari mayoritas teman-teman Anda.
Sekarang, saya akan menjawab pertanyaan Anda secara langsung:
Anda harus memberi tahu kami dalam 18 - 24 bulan. Perusahaan membayar sejumlah besar untuk membuat orang berbicara tentang betapa hebatnya produk mereka. Kita harus mengarungi tidak hanya memulai perusahaan tetapi mendirikan raksasa yang membayar sejumlah besar uang tunai untuk:
Anda tentu saja dapat membuat keputusan sendiri berdasarkan pengalaman sebelumnya dan cobaan Anda dengan sesuatu yang baru. Saat melakukan itu, hindari majikan yang memiliki manajer yang membagikan perintah berdasarkan pada pembaca RSS mereka.
Saya punya, tetapi memiliki perpustakaan bangunan jembatan baru yang menakjubkan ini yang cukup pintar untuk beralih antara Brooklyn dan London berdasarkan lokasi Anda. Ini akan menjadi besar, apakah Anda ingin masuk di lantai dasar?
Jawaban saya memang sengaja sinis dan mungkin anti boolean, tapi benarkah? Untuk tujuan penanganan pengecualian, jawaban saya salah besar .
Jika Anda berpikir ada sesuatu yang secara teknis terdengar - merangkulnya, kalau tidak itu bisnis seperti biasa. C adalah bahasa utama saya, ia berfungsi dengan baik dan hampir dua dekade yang lalu, sementara saya dibayar lebih dari dua kali lipat dan saya lakukan hampir dua dekade yang lalu.
Saya mengagumi bentuk ringkas dan kutipan Anda, tetapi ini tampaknya merupakan percobaan pelanggaran .
Sudah selesai dilakukan dengan baik :)
sumber
Itu tergantung pada apa yang Anda habiskan untuk belajar. Saya belajar pemrograman Bourne shell dan C pada tahun 1980. Saya masih menggunakannya setiap hari. Di sisi lain, waktu yang saya habiskan untuk mempelajari struktur menu Compuserve benar-benar hilang, dan itu tidak terlalu berguna bahkan pada saat itu. Lalu ada di antara hal-hal seperti pin-out kabel RS-232 dan protokol serial: tidak berguna hari ini, tetapi penting untuk sekitar sepuluh tahun hidup saya. Pilih teknologi yang Anda curahkan banyak waktu untuk hati-hati.
sumber
Prinsipnya benar. Nilai sebenarnya - setahu saya - jauh lebih besar.
Saya ingat presentasi Programmer Pragmatis di mana mereka mengatakan sekitar tujuh tahun, tetapi saya tidak dapat menemukannya sekarang, sehingga nilainya mungkin sedikit berbeda.
Coba pikirkan bagaimana teknologi telah berubah: Lima belas tahun yang lalu web adalah merek baru dan kami semua mencoba untuk menulis halaman web - mungkin bahkan dengan tabel - dan gif animasi. Tujuh tahun lalu, AJAX lepas landas. Saat ini beberapa orang menulis game mirip Doom untuk ponsel.
Taruhan terbaik Anda adalah mempelajari hal-hal umum yang dapat diterapkan dengan teknologi berikutnya yang muncul alih-alih mengatakan "Mulai! Saya hanya tahu Visual Basic!" (atau setara dalam 15 tahun).
sumber
Saya tidak berpikir itu akurat sama sekali.
Itu pernah mendekati kenyataan - dulu, Anda tidak punya banyak pilihan selain memprogram pada tingkat abstraksi yang relatif rendah, yang berarti mengetahui sejumlah besar detail yang tidak lagi relevan pada platform baru.
Namun, seiring waktu, semakin banyak pemrograman yang dilakukan pada tingkat abstraksi yang semakin tinggi. Tingkat abstraksi yang lebih tinggi diterjemahkan kurang lebih secara langsung menjadi kurang perhatian dengan detail yang cenderung berubah dan menjadi usang dengan cepat.
Jelas ada orang yang bekerja pada hal-hal seperti driver perangkat atau sistem tertanam kecil yang masih harus bekerja pada tingkat abstraksi yang rendah. Di luar daerah seperti itu, bagaimanapun, relatif ada sedikit alasan untuk hal-hal seperti itu. Ya, banyak orang yang belajar banyak hal-hal sepele yang mereka tidak pernah butuhkan, tetapi jika Anda benar-benar menggunakan hal-hal seperti itu dalam kode Anda, kemungkinan cukup bagus bahwa Anda tidak membuat keputusan yang sangat baik. Sebagian besar hal seperti itu dapat (dan yang lebih penting, harus) umumnya dihindari.
sumber
Mungkin benar, mungkin juga tidak; namun, bahkan jika hal-hal aktual yang dipelajari menjadi usang segera setelah mempelajarinya, konsep dan ide di baliknya dapat berguna lebih lama.
sumber
Jika itu terjadi hanya 5.39x10 -6 dari Mythical Man-Bulan akan relevan saat ini. Karena ada sangat sedikit prinsip utama yang rincian Fred Brooks yang berkencan secara signifikan atau terbukti salah secara fundamental.
sumber
Sebagian besar pengetahuan Anda akan tetap relevan selama pengujian waktu (meskipun mungkin perlu beberapa pembaruan dari waktu ke waktu), terutama fundamental, seperti struktur data dll.
Tentu saja, jika Anda tahu bahasa pemrograman X dan Y, belajar bahasa Z akan lebih mudah daripada jika Anda tidak tahu X atau Y, sehingga Anda dapat menggunakan pengetahuan sebelumnya untuk mengadaptasi pengetahuan baru.
Perlu juga disebutkan bahwa banyak keterampilan yang relevan beberapa dekade yang lalu masih relevan saat ini, bahkan teknologi spesifik, seperti C (awal 1970, masih relevan saat ini).
Ada kemungkinan bahwa setengah dari apa yang Anda ketahui akan menjadi usang dalam beberapa waktu, dan mungkin lebih dari setengah, tetapi setiap 18-24 bulan terdengar agak ekstrem.
sumber
Fakta tunggal tidak memiliki relevansi yang besar. Anda mengambilnya, memahaminya, menerapkannya untuk saat ini saja.
Tetapi melakukan hal itu mengajarkan Anda proses menangani fakta atau setidaknya menangani sekumpulan fakta tertentu. Saya telah belajar banyak matematika di sekolah yang sebenarnya tidak pernah saya gunakan. Masih saya belajar dan melatih pemikiran matematika.
Saya bekerja sebagai programmer web dengan Ruby on Rails. Dan sementara saya tidak menulis situs web saat ini, itu sangat mempengaruhi pemikiran saya tentang kode dan membuat saya lebih baik C ++ coder. (Gunakan lebih banyak STL misalnya).
Serupa dengan belajar Racket. Saya tidak pernah menulis program besar, tetapi itu memberi saya sudut pandang baru untuk diterapkan pada beberapa ruang masalah.
Ini hanya tentang melatih pikiran Anda ...
sumber
Saya pikir Anda dapat dengan mudah membantah pernyataan itu dengan bermain-main dengan objek yang Anda miliki di 'setengah dari semua yang Anda tahu'.
Ada beberapa distribusi pengetahuan yang diberikan, beberapa di antaranya akan menjadi usang (terlepas dari tingkat). Jadi, jika seseorang yang diberikan hanya berisi pengetahuan dari setengah dari spektrum ini yang akan tetap setelah 18-24 bulan, mereka melanggar pernyataan itu.
sumber
Berikut versi kalimat yang lebih baik: setengah dari semua yang Anda pelajari hari ini (atau minggu ini, atau bulan ini, atau tahun ini) akan usang dalam satu atau dua tahun. Itu benar - Anda belajar cara melakukan sesuatu dalam versi 5 alat, dan ketika 6 keluar melakukannya secara otomatis, atau Anda belajar bagaimana melakukan sesuatu dalam bahasa yang tidak menarik, sehingga Anda tidak pernah menggunakannya lagi. Tetapi separuh dari apa yang Anda pelajari setiap hari tetap bersama Anda, dan tumbuh, dan itulah yang membuat pengembang pengalaman 20 tahun lebih baik daripada pengembang pengalaman dua tahun.
sumber
Ada nugget kebenaran atau relevansi di sini, tetapi saya pikir itu disajikan secara tidak akurat.
Cara yang lebih baik untuk menyajikan ini adalah
atau
Ini mungkin tergantung pada bidang yang Anda tangani, tetapi saya tahu bahwa saya terus-menerus bekerja pada teknologi baru. Setiap proyek tampaknya memiliki sejumlah besar hal baru yang perlu saya pelajari - kerangka kerja & pola baru, pendekatan baru untuk masalah yang sedikit bervariasi, atau hanya alat baru yang (seharusnya!) Lebih baik dari apa yang sebelumnya kami gunakan.
Jika setiap proyek enam bulan hanya membutuhkan 12,5% pengetahuan baru, maka selama dua tahun penuh 50% dari pengetahuan yang digunakan akan menjadi 'baru'.
Karena itu, ini tidak terlalu bermakna atau akurat.
sumber
Ya Tuhan, jawaban akal sehat yang luar biasa itu ada di atas. Kerja bagus.
Sederhananya, jika itu tren atau tren panas, jika Anda seorang programmer yang baik, Anda akan membacanya, lalu kembali ke apa yang biasanya Anda lakukan atau kerjakan.
Kecuali ada sesuatu yang vital untuk apa yang Anda lakukan, atau praktik baru yang masuk akal bagi Anda.
Hanya karena sesuatu itu baru, agak baru, atau agak lama, tidak menjadikannya solusi yang harus digunakan untuk apa pun.
Saya memiliki ungkapan sederhana, yang mencakup semua ini.
"Jika berhasil, gunakan itu"
Itu berarti, jika teknologi baru ini sangat keren, tetapi tidak apa pun yang membuat pekerjaan Anda lebih produktif, atau lebih berkualitas, atau lebih rentan kesalahan, atau menyelesaikan masalah teknis seperti solusi seluler atau klien / server. Daripada yang terbaik untuk membacanya, lalu abaikan, sampai Anda memiliki penggunaan praktis untuk itu.
Saya telah melihat dan membaca lebih banyak orang yang membuang-buang waktu, mencoba mencari hal baru yang panas, kemudian menggunakan hal baru yang panas. Yang biasanya berakhir dengan buang-buang waktu dan uang.
Penting untuk selalu belajar, dan berlatih, serta meningkatkan keterampilan dan keahlian Anda.
Namun Anda harus mempelajari apa yang berguna, atau apa yang memberi Anda perspektif berbeda untuk menyelesaikan masalah yang biasanya Anda miliki.
Tapi selain itu, harus kembali ke dasar-dasar menjadi programmer yang hebat.
Saya melakukan praktik terbaik akal sehat, yang kita semua pelajari dari pengalaman kami. Jangan buang waktu untuk hal-hal yang hanya keren.
Karena jujur, keren itu tidak keren.
sumber
Saya pernah mendengar ungkapan ini dikaitkan dengan bidang teknik, bukan pemrograman. Lebih khusus lagi, saya pernah mendengar, "Pada saat Anda menerima gelar Sarjana Teknik, dua tahun pertama studi Anda akan didasarkan pada teknologi lama." (Atau sesuatu untuk efek itu.)
Saya tidak berpikir itu berlaku untuk pemrograman sama sekali. Satu-satunya cara saya bisa melihatnya terkait adalah ketika fitur sudah usang atau dihapus dari bahasa pemrograman / perpustakaan / apa pun.
sumber
Platform teknologi rata-rata bertahan sekitar 10 hingga 25 tahun, jadi ini sepertinya tidak mungkin bagi saya, bahkan jika Anda sepenuhnya mengabaikan fakta bahwa pengetahuan tentang pola bertahan melalui teknologi. Jika Anda menggunakan platform utama apa pun, Anda dapat mengandalkan tumpukan itu yang populer selama setidaknya 5 atau 6 tahun sebelum bahkan mulai menghilang. Saya tahu programmer yang telah mengkode dalam RPG selama 30 tahun menggunakan perangkat keras dan perangkat lunak yang hampir identik.
sumber