Saya tidak akan mengganggu Anda dengan detail diskusi saya jadi saya akan menyajikannya dalam bentuk contoh singkat.
Seorang lelaki java telah mengikuti artikel dan publikasi seorang programmer terkenal (semacam Martin Fowler dari negara saya). Dia mengatakan bahwa dia berbagi beberapa rahasia yang tidak dibagi oleh programmer terkenal lainnya.
Saya tidak pernah percaya bahwa ada beberapa rahasia seperti penyihir di area pemrograman. Tetapi beberapa programmer yang belum bagus di bidang ini berpikir bahwa programmer terkenal lainnya sukses karena mereka tahu beberapa rahasia yang tidak kita ketahui.
Saya benar-benar tidak setuju dengan ini dan saya mendiskusikannya dengan seseorang dan akhirnya dia berkata kepada Anda bahwa Anda 2 tahun di bidang ini dan dia (orang Jawa) adalah 20 tahun programmer profesional sehingga dia tahu lebih baik dari Anda.
Saya ingin memastikan bahwa saya tidak salah. Itu sebabnya saya ingin tahu ini.
Jawaban:
Saya hampir akan mengatakan itu sebaliknya ....
Saya telah bekerja dengan orang-orang yang suka menipu karena alasan apa pun. Memang, mereka sebenarnya adalah programmer yang cukup bagus - ketika diambil dalam ruang hampa - tetapi kode yang mereka hasilkan seringkali cukup tumpul dan sulit dipelihara oleh orang lain. Tidak ada gunanya melakukan sesuatu yang cerdik yang menghemat beberapa penekanan tombol, ketika dua tahun kemudian seseorang yang mempertahankan kode tersebut akan menyia-nyiakan satu hari ketika mereka dikacaukan oleh trik tersebut.
Bahkan, jika saya harus mencalonkan satu hal terpenting yang telah saya pelajari dalam sepuluh tahun pengalaman komersial saya sebagai seorang programmer - itu adalah pemeliharaan adalah penting . Ini mengendalikan jauh di atas mengetahui beberapa hacks dan trik yang tidak jelas yang mungkin berguna dalam situasi yang jarang terjadi, tetapi yang hampir pasti akan membuat basis kode lebih sulit untuk dipertahankan dalam jangka panjang.
Sejujurnya, saya akan mengatakan bahwa semua pengkodean harus dilakukan sedemikian rupa sehingga setiap lulusan baru dengan pengetahuan inti yang relatif dasar dalam bahasa / platform yang diberikan harus dapat mengambilnya dan bekerja dengannya. Jika itu sangat rumit dan tidak jelas sehingga Anda membutuhkan seseorang dengan 20 tahun pengalaman dalam bahasa / platform yang tahu setiap trik internal kecil, maka proyek ini dalam utang teknis yang mengerikan.
sumber
programmer dengan lebih banyak pengalaman tahu lebih banyak hal
mereka bukan rahasia
Kedengarannya seperti dia mencoba menjual sesuatu padamu!
sumber
<rant>
Saya pertama kali bertemu omong kosong seperti ini lebih dari 30 tahun yang lalu. Itu membuatku kesal dan lebih membuatku kesal sekarang. Ini disebut Argument from Authority (AKA Proof by Authority ) dan murni, omong kosong * murni. Setiap orang yang saya temui yang telah mencoba mengklaim ini untuk diri mereka sendiri memiliki masalah serius dengan harga diri ... dan sering tahu jauh tentang subjek daripada mereka pura-pura tahu.
Saya secara pribadi mengenal beberapa programmer yang pintar-pintar yang masih di sekolah menengah dan telah mengkode hanya satu atau dua tahun. Hanya 2 contoh: sistem forum asli ditulis pada tahun 1973 oleh seorang anak berusia 15 tahun, dan implementasi pertama dari pesan instan multi-pengguna ditulis pada tahun 1974 oleh seorang anak berusia 13 tahun yang minum susu sementara para insinyur lainnya mengalami bir pada hari Jumat sore.
Saya juga tahu beberapa dinosaurus yang belum mengambil teknologi baru dalam 10 atau 15 tahun. Banyak dari mereka akan mengakui untuk tidak melacak apa yang terjadi di masa sekarang, tetapi ada beberapa yang melihat ini sebagai lencana kehormatan. Ini bukan.
</rant>
Setelah mendapat yang keluar dari sistem saya, saya ingin memperluas pada titik yang dibuat dalam jawaban Tabel @Bobby dan @Developer Art: menggunakan "rahasia," menulis "kode pintar," atau melakukan sesuatu dalam kode yang merupakan "bukti "Bagaimana Anda bisa membuat sesuatu menjadi salah . Titik. Ini adalah tindakan orang yang tidak matang, egois, yang tidak memikirkan kepentingan proyek / perusahaan. Mereka memasang ranjau pemeliharaan yang akan meledak beberapa waktu di masa depan, mungkin setelah mereka pindah ke majikan
korbanlainnya .Kebalikan dari "pintar" adalah menulis kode yang jelas dan ringkas yang menggunakan bahasa pemrograman dengan baik; menggunakan standar penamaan yang konsisten; komentar end-of-line yang sesuai; komentar blok yang bagus untuk menjelaskan bagian utama; didokumentasikan (dengan contoh yang sesuai); dan diuji. Itulah yang diberikan oleh programmer profesional sejati .
Dan ketika mereka selesai, mereka berbalik dan membimbing generasi berikutnya dari programmer profesional.
sumber
Saya tidak yakin bagaimana orang dapat berbicara dengan pengetahuan hipotetis orang lain, tetapi pengalaman saya adalah bahwa tidak ada "rahasia" untuk pemrograman komputer. Memang, itu adalah domain yang hampir ditentukan oleh keterbukaan dan berbagi pengetahuan. Beberapa proyek yang paling kompleks (yang bisa dibilang paling diuntungkan dari "rahasia" semacam itu) adalah open source, seperti kernel linux.
Saya menemukan ide bahwa programmer diam-diam menimbun teknik khusus untuk menjadi absurd tetapi cukup sulit untuk membuktikan negatif - terutama ketika itu murni hipotetis.
sumber
Satu-satunya rahasia yang saya ketahui adalah:
keras yangbaik .sumber
[^a]
- tidak hanya membuat ekspresi lebih cepat, itu juga termasuk sejumlah karakter extended / Unicode yang tidak terjawab. Saya mengatakan bahwa, paling tidak dalam hal pemrograman, kerja keras tidak ada artinya. Tidak ada pengganti untuk pekerjaan yang baik .Saya tahu satu rahasia bahwa programmer muda cenderung tidak tahu atau menerima. Begitu seseorang sudah cukup maju untuk memahami hal ini, dia biasanya menemukan jawabannya sendiri.
<TheSecret> Semua kode menyebalkan. Terutama milikmu. Milik saya juga. Kode semua programmer jenius di dunia --- ya, itu menyebalkan juga. Terima saja dan selesaikan pekerjaan sebaik mungkin. </TheSecret>
sumber
Saya punya pengalaman 50 tahun. Saya telah belajar banyak hal yang belum dimiliki oleh programmer muda. Saya benar-benar ingin membagikannya, dan saya mencoba, dengan banyak cara.
Belajar adalah sesuatu yang harus Anda ingin lakukan.
Saya sering mendengar bahwa pemeliharaan sangat penting, dan saya setuju sepenuhnya. Namun, itu tidak datang secara gratis. Ini mungkin memerlukan lebih atau kurang dari kurva pembelajaran di pihak pengelola.
Seorang programmer baru dengan gelar Master di bidang Ilmu Komputer akan melihat kode saya dan mengatakan itu tidak dapat dipelihara dan penuh rahasia. Bahkan, dia sama sekali tidak selesai mempelajari hal-hal baru.
Pilot mengatakan, ketika Anda lulus tes yang diperlukan dan diserahkan "tiket" pilot Anda. Mereka mengatakan itu adalah Lisensi Untuk Belajar.
Pendidikan tidak berhenti ketika Anda mendapatkan ijazah. Itu baru dimulai.
sumber
Mengetahui sedikit rahasia kecil yang tersembunyi dari bahasa atau kerangka kerja pemrograman tertentu memiliki sedikit manfaat praktis.
Sebagian besar pengembangan perangkat lunak praktis tidak menemukan fitur-fitur tersembunyi ini dalam praktiknya. Terlebih lagi, salah satu praktik terbaik menyarankan Anda dengan sengaja menghindari menjelajah ke area tersembunyi dari teknologi yang Anda gunakan karena itu membuat kode kurang dapat dipelihara dan lebih rentan terhadap kesalahan karena kebanyakan programmer tidak akan mengetahui "rahasia" ini.
Daripada menghabiskan / membuang (memilih satu) waktu untuk mempelajari rahasia satu teknologi tertentu, umumnya lebih baik untuk memperluas jangkauan pengetahuan seseorang dan mempelajari alat yang berdekatan atau bahkan lebih baik meningkatkan keterampilan non-pemrograman Anda atau mempelajari lebih lanjut tentang bisnis tempat Anda berada. .
Dengan kecepatan perubahan di bidang kami, investasi yang dalam menjadi alat khusus tidak sepadan - pengetahuan akan segera ditinggalkan.
Sekarang, hanya jika Anda memposisikan diri sebagai ahli teknologi dan berniat untuk menawarkan layanan konsultasi Anda di bidang khusus ini, masuk akal untuk berinvestasi secara mendalam. Kalau tidak, itu adalah usaha yang sia-sia.
sumber
Anda sedang dijual barang di sini. Seseorang sedang mencoba untuk menggunakan konsep Rahasia Misterius ™ yang membuat Anda Programmer Elite ™ dengan mata ke arah membuat Anda membayar untuk Rahasia Rahasia ™ tersebut. Langkah selanjutnya adalah seseorang yang menawarkan untuk mengajari Anda Rahasia Misterius ™ itu dalam bentuk video atau pidato atau podcast atau buku-buku yang dicetak buruk dengan harga rendah, harga rendah <masukkan apa pun yang menurut pramuniaga yang bersedia Anda bayarkan>.
Bagaimana saya bisa yakin akan hal ini? Saya sudah pemrograman sejak 70-an dan saya tahu metrik ton lebih banyak bahasa pemrograman daripada hanya Jawa. Saya telah melihat pemrograman (secara profesional dan skolastik) dari yang terkecil dari yang kecil (sistem tertanam dengan ratusan byte - yaitu byte - RAM) hingga Big Iron ™ yang sangat besar.
Ada rahasia untuk menjadi programmer yang baik dan hanya satu: Anda perlu bekerja untuk meningkatkan diri Anda terus-menerus. Siapa pun yang memberi tahu Anda sebaliknya adalah pembohong dan / atau bodoh.
sumber
Satu-satunya rahasia yang tidak diketahui oleh programmer muda adalah: programmer tidak secerdas yang mereka pikirkan .
Setelah Anda tahu itu, Anda berhenti menulis kode yang tidak akan Anda mengerti bulan depan, Anda mulai menghargai kontrol versi, Anda tidak memperbaiki kode yang sudah berfungsi, Anda mendokumentasikan kode Anda, Anda tidak menafsirkan spesifikasi, Anda tidak perlu t fitur kode yang mungkin berguna suatu hari nanti, Anda tidak menolak kode warisan, ...
Dengan kata lain, rahasianya adalah pengalaman.
sumber
Jelas, seseorang dengan pengalaman 20 tahun akan memiliki pengalaman yang lebih baik daripada seseorang yang hanya 2 tahun. Tetapi tidak ada rahasia - apa gunanya?
(Tentu saja, seseorang yang berusaha menjaga rahasia akan mengatakan bahwa ...)
sumber
Sementara pengalaman itu penting, kita bisa belajar dari pengalaman orang lain. Saya baru saja selesai membaca "The Clean Coder" di mana Robert C Martin (Paman Bob) berbagi kesalahan yang telah ia buat dan pelajaran yang telah ia pelajari. Banyak yang terdaftar dalam jawaban di sini seperti terus belajar.
sumber
Segala sesuatu yang hanya sedikit yang diketahui dapat dianggap sebagai rahasia.
Segala sesuatu yang kita ketahui hari ini pernah ditemukan.
Jadi semuanya pernah menjadi rahasia.
Beberapa pengetahuan menyebar dengan cepat dan beberapa menyebar dengan lambat.
Beberapa programmer tidak pernah menemukan sesuatu sendiri (, tetapi mungkin menerapkan rahasia orang lain dengan sangat sukses).
Beberapa programmer (mis. John Carmack, Ken Perlin, Donald Knuth) tampaknya menemukan rahasia baru setiap hari.
Jadi ya, ada programmer yang tahu beberapa rahasia yang belum diketahui orang lain ...
sumber
Pengetahuan saja bukan kekuatan, aku akan memberimu itu. Namun, seseorang mungkin telah mengembangkan keterampilan mereka lebih jauh dari Anda yang mungkin berarti mereka memiliki tips dan strategi yang dapat membantu Anda memajukan diri sendiri. Perhatikan bahwa ada beberapa "mungkin" dalam kalimat terakhir karena itu bukan kepastian bahwa ini akan benar-benar menggerakkan Anda. Dengan demikian, ada potensi untuk ini menjadi hal yang baru atau mengejutkan bagi Anda.
Pada saat yang sama, ada berbagai praktik dan strategi yang pada suatu waktu kelihatannya radikal meskipun hari ini kita menganggap remeh. Kontrol sumber, integrasi berkelanjutan, dan pengujian unit semuanya baru di beberapa titik, bukan?
sumber
Mungkin saja Anda dan sebagian besar orang yang menjawab pertanyaan ini terlalu berfokus sepenuhnya pada kata 'rahasia'.
Jika kita mengambil bagian 'tersembunyi' dari itu, maka ya, sangat mungkin bahwa programmer terkenal ini memiliki beberapa tips dan trik yang berguna atau pengetahuan yang dimenangkan melalui pengalaman yang akan menguntungkan Anda dalam beberapa cara. Saya berbicara tentang pengetahuan seperti yang akan Anda temukan dalam buku-buku SE atau CS klasik, seperti Rapid Development atau The Pragmatic Programmer . Ini dikombinasikan dengan kerja keras benar-benar dapat membantu.
Jadi dalam hal itu programmer terkenal yang terkenal mungkin memiliki pengetahuan yang belum dimiliki orang lain.
Tetapi tidak ada resep rahasia apa pun yang akan mengubah seorang 'programmer yang tidak begitu bagus di bidang ini' menjadi resep terkenal dengan banyak kesuksesan.
sumber
Tidak ada rahasia kecil. Hanya kode yang rumit ... yang akhirnya diubah menjadi kode efisien yang disederhanakan.
sumber
Rahasianya terletak pada jenis masalah, area masalah dan bagaimana Anda menyelesaikannya. Sebagai contoh, saya menulis sebuah program php untuk membuka file dan membaca datanya dan mengubah data menjadi xml dan kemudian saya menggunakan xml itu untuk menyajikan data ke elemen html yang berbeda yaitu kotak pilihan dll. Setelah 1 tahun kami memiliki programmer junior baru untuk bergabung dengan Tim dan dia bagus dalam algoritma sehingga dia memecahkan masalah secara matematis yang membuat kode terlihat sulit dengan pergeseran kiri dan membagi array dll. tetapi waktu eksekusi berkurang hingga 40% dari apa yang saya tulis. Pendekatannya untuk menulis pernyataan php mengejutkan saya. Jadi saya percaya ada trik tertentu yang memang bukan rahasia; Satu hal lagi adalah berapa banyak alternatif yang bisa Anda pikirkan.
sumber
Maaf jika saya kehilangan sesuatu, tetapi saya tidak dapat menemukan ini di atas, setidaknya tidak secara eksplisit dinyatakan.
Rahasianya sebenarnya menggunakan alat yang tepat untuk pekerjaan itu. Bahkan itu adalah alat yang programmer tua hargai dan jangan ungkapkan dengan mudah. Mereka akan berbicara kepada Anda tentang kesalahan BETON Anda, tetapi jarang akan menyarankan alat mana yang dapat membantu Anda untuk menghindarinya. Alat mereka adalah salah satu rahasia utama produktivitas mereka.
Memberi contoh saja, orang dapat menghafal buku 600 halaman tentang layanan web, memahami seluk-beluk spesifikasi WSDL (saya mencoba sendiri sekali .. untuk memahami seluk-beluk), dan masih belum dapat memahami apa yang salah dengan API dia menggunakan ketika dia mencoba untuk membuat panggilan ke layanan web yang ada ..
Di sisi lain, orang mungkin memiliki sedikit pengetahuan tentang spesifikasi (tetapi gagasan umum yang jelas) dan menggunakan Wireshark ..
Orang dapat mengingat semua C ++ (oh my ..) dan masih tidak mengerti apa yang salah dengan kode yang ditulis dengan vi, dan dikompilasi dengan gcc (tidak ada peringatan ..). Tetapi IDE grafis dengan debugger mungkin membantu ..
Dan kemudian Google. Rahasia terbesar dari semuanya.
sumber