Terlepas dari bahasa pemrograman atau sistem operasi yang digunakan atau lingkungan yang mereka kembangkan, apa yang harus diketahui setiap programmer?
Beberapa latar belakang:
Saya tertarik menjadi programmer terbaik yang saya bisa. Sebagai bagian dari proses ini saya mencoba memahami apa yang tidak saya ketahui dan akan sangat bermanfaat bagi saya jika saya tahu. Walaupun ada banyak daftar di sepanjang baris "n hal yang harus diketahui oleh setiap pengembang [masukkan bahasa pemrograman]", saya belum menemukan hal serupa yang tidak terbatas pada bahasa tertentu.
Saya juga berharap informasi ini menarik dan bermanfaat bagi orang lain.
language-agnostic
skills
Matt Lacey
sumber
sumber
Bagaimana berpikir seperti pengguna, dan bukan seperti programmer geek techie.
sumber
Kapan meminta bantuan, dan kapan TIDAK meminta bantuan.
sumber
Cara membaca kode orang lain.
sumber
Keakraban dengan sistem kontrol versi. Tidak harus setiap orang, tetapi konsep dasar yang dapat diterapkan untuk semuanya harus diketahui.
sumber
Inilah 10 bit saya:
sumber
Mungkin terlalu halus, tetapi saya menganggapnya sebagai "mengetahui masalah mana yang harus dipecahkan." Banyak programmer (dan orang normal) menyia-nyiakan upaya luar biasa untuk menyelesaikan hal-hal yang sebenarnya tidak terlalu penting; atau mereka menciptakan solusi, dengan banyak pekerjaan ekstra, itu tidak cukup apa yang dibutuhkan.
sumber
Bagaimana cara santai. Itu rahasia produktivitas.
Akhirnya, kemauan keras dan kafein tidak cukup. Kontraksi konstan yang kita lakukan ini sangat merusak.
Ini masalah besar.
sumber
Tipe data dasar & teori algoritma. Hal-hal seperti notasi O Besar, array, antrian, dll.
sumber
Bagaimana memilih alat yang tepat untuk tugas yang tepat, dan tidak ikut serta dalam perang api konyol tentang alat pemrograman favoritnya.
sumber
Nah, ini $ 0,02 saya:
sumber
Anda tidak dapat menguji kualitas menjadi suatu produk.
sumber
Setiap programmer harus memahami pola desain .
sumber
Saya sedikit terlambat untuk yang ini, tapi saya akan pergi dengan pengetahuan yang diberikan oleh Edsger Dijkstra:
Jika Anda tidak dapat menulis paragraf yang bagus, kemungkinan Anda juga tidak bisa menulis kode yang baik.
sumber
if (BlowUpTheSystem = 1)
. Memang, diberikan pengujian unit yang tepat, Anda cenderung menghemat waktu saja. Tapi waktu itu sangat penting.Jangan terlalu terikat secara emosional, melekat pada, atau beragama tentang teknologi, OS, atau bahasa tertentu - tidak ada yang sempurna - dalam jangka panjang Anda akhirnya berharap Anda bisa membuat ala carte sendiri dari apa yang Anda inginkan. suka tentang masing-masing yang berbeda.
Pikirkan itu seperti mobil - Anda mungkin tidak pernah mengendarai mobil tertentu sebelumnya, tetapi mereka semua memiliki kunci, roda kemudi, akselerator, dan rem - Anda harus bisa masuk dengan cepat dan pergi begitu Anda memilah-milah di mana. Perlakukan OS dan bahasa dengan cara yang sama dan fokus pada mempelajari konsep-konsep penting yang mendasari mereka bahkan jika Anda berada di pergolakan spesifik dari setiap contoh yang diberikan.
Dan seiring waktu coba untuk memahami dan menghargai leluhur, warisan, dan kesamaan berbagai teknologi yang akan membantu Anda menjaga perspektif. Sadarilah misalnya bahwa, sementara pohon evolusi secara aktif bercabang dan penuh jalan buntu, teknologi dari waktu ke waktu cenderung berulang kali berkumpul di sekitar 'praktik terbaik' dan 'skala ekonomi' ( misalnya, perhatikan bahwa Mac tidak jauh berbeda dari PC di bawah tenda hari ini ...).
Terakhir, ingatlah betapa pun menyenangkannya Anda dengan semua itu, teknologi pada dasarnya mewakili lensa yang tidak sempurna antara apa yang dapat dibayangkan oleh pikiran Anda dan apa yang sebenarnya Anda hasilkan. Lakukan yang terbaik, belajar untuk belajar, dan tetap bisa beradaptasi ...
sumber
Cara memprogram dalam C.
sumber
Bahwa hari Anda berhenti belajar harus menjadi hari Anda tidak lagi seorang programmer.
sumber
Pengujian dan debugging unit.
sumber
Itu disebutkan sebelumnya tapi saya pikir itu layak untuk jawabannya sendiri.
sumber
Tidak seorang pun ingin menggunakan perangkat lunak. Mereka ingin masalah diselesaikan.
sumber
Kopi dan IntelliSense adalah teman terbaik Anda.
sumber
Cara mengamati objek rumit besar dan menguraikannya menjadi objek kecil sederhana yang masih menyelesaikan tugas yang sama ketika disatukan kembali.
sumber
Jangan pernah mempercayai pengguna ( terutama jika aplikasinya publik!), Mereka akan sering melakukan apa saja untuk menghancurkan aplikasi Anda dengan satu atau lain cara.
Jadikan itu bukti di masa depan & dapat diperluas - Anda tidak pernah tahu kapan Anda ingin mengembangkannya dalam beberapa tahun mendatang dan menyadari betapa banyak upaya yang diperlukan untuk membuat ulang kode yang dibuat dengan buruk.
sumber
Bahwa programmer tidak tahu segalanya dan harus selalu mencoba mempelajari bahasa / teknologi baru, dll.
sumber
Dasar-dasar desain UI yang baik dan desain komunikasi (grafis) .
Saya melihat begitu banyak aplikasi dan proyek hancur oleh desain yang buruk atau kegunaan yang buruk. Hanya mempelajari dasar-dasarnya dapat membuat dunia berbeda. Ditambah teknik pemecahan masalah visual (yaitu, bagaimana mengkomunikasikan konsep secara visual) adalah tantangan yang merangsang yang harus membuka mata Anda terhadap cara pandang baru, yang pada gilirannya akan berdampak pada kode Anda.
Buku yang direkomendasikan adalah Buku Desain Non Desainer oleh Robin Williams
Inilah yang dikatakan Joel Spolsky tentang hal itu :
sumber
Setiap programmer harus tahu cara belajar dengan cepat. Banyak kali Anda datang ke pekerjaan dan akan diminta untuk mengembangkan teknologi yang belum pernah Anda gunakan. Mereka mungkin memberi Anda sekitar satu minggu atau lebih untuk berdiri (jika Anda beruntung) sebelum Anda diminta untuk menulis kode kualitas produksi.
sumber
Kontrol versi. Dan mengutip teman perempuan saya: "Saya tidak hanya ingin Anda mencuci piring, saya ingin Anda menyukainya !"
sumber
Persyaratan berubah, kode Anda harus beradaptasi, dan itu mungkin atau mungkin bukan Anda yang harus menyesuaikannya.
Ada beberapa pertanyaan di sini terkait dengan topik yang dipengaruhi oleh ini.
sumber
Dari atas kepala saya:
Sangat sedikit masalah pemrograman yang membutuhkan matematika di luar penjumlahan, pengurangan, perkalian, dan pembagian. Jika Anda berpikir untuk menggunakan kalkulus untuk menyelesaikan masalah, teliti alternatifnya secara menyeluruh sebelum melakukannya.
Setiap kali Anda menebak-nebak cara kerja sesuatu, Anda salah melakukannya. Bukan tugasmu untuk menjadi telepati.
Orang yang memberi Anda spek jarang tahu semua yang dia inginkan sampai Anda menghapusnya.
Lebih dari setengah menjadi programmer hebat berasal dari berurusan dengan manusia. Berinteraksi dengan tim Anda, mengelola manajer Anda, dan menangani pengguna akhir adalah setengah dari pekerjaan.
Kode yang baik ditulis untuk dibaca oleh orang sebanyak yang dibaca oleh kompiler Anda.
Praktik terbaik dan realitas praktis akan bertentangan lebih dari yang dipikirkan oleh programmer, tetapi kurang dari yang dilakukan oleh manajer. Ketika mereka tampak dalam konflik, terserah Anda untuk melukiskan dan memahami konflik dan kemudian menyerah pada yang praktis. Solusi yang halus dan pintar hanya lebih baik daripada solusi yang jelek dan brutal jika lebih efektif dalam jangka panjang.
Alat yang hebat tidak bisa menjadi programmer yang hebat, tetapi alat yang buruk membuat kita sama buruknya.
Jangan pernah meremehkan teknologi, tetapi selalu mencari alternatif terbaik.
Semakin banyak bahasa yang Anda kenal, semakin baik Anda menggunakan bahasa yang Anda gunakan.
Jangan diganggu oleh lambannya pemikiran berorientasi pemrograman ke dalam kehidupan sehari-hari Anda. Bahkan ketika kita tidak berada di depan komputer, kita semua menderita keterbatasan bandwidth, memiliki penalti kinerja dari pengalihan tugas, dan perlu memuat sesuatu dari penyimpanan cadangan. Komputer seharusnya meniru pemikiran manusia dan analognya ada di mana-mana.
sumber
Membaca kode orang lain tidak akan merusak otak Anda, tetapi mencari tahu mengapa Anda tidak melakukannya dengan cara itu (jika lebih baik atau tidak adalah pertanyaan lain).
Ini memberi Anda pemrograman percobaan gedanken , dan kadang-kadang Anda menemukan seseorang yang mengimplementasikan sesuatu dengan lebih baik! Seperti cara yang lebih baik.
Jawaban ini secara alami diperluas untuk membaca kode Anda sendiri, sehingga diperluas untuk menggunakan kontrol versi dan DIFF, dan dengan demikian menjadi 42.
sumber