Latar belakang saya adalah teknik listrik, lebih tepatnya DSP. Perusahaan tempat saya bekerja saat ini mengerjakan banyak proyek yang beragam, kebanyakan membangun perangkat keras analog. Menjadi agak lebih dekat dengan komputer daripada orang lain di sekitar sini. Saya sering kali menulis kode untuk kedua perangkat yang disematkan (yang saya baik-baik saja dengan) dan Windows atau OS Linux. Yang terakhir inilah yang merupakan wilayah asing bagi saya.
Saya dapat kode, dan saya tahu beberapa bahasa (C / C ++, Java, beberapa VB.NET), tetapi saya hanya menggunakannya untuk simulasi algoritma dalam pemrosesan sinyal dan gambar, jaringan saraf, dan aplikasi serupa lainnya. Bagi saya pemrograman telah menjadi alat komputasi lebih dari apa pun. Namun, saya mendapatkan semakin banyak proyek di mana saya harus menulis perangkat lunak lengkap yang tepat, dan saya tidak benar-benar tahu bagaimana melakukannya, karena saya tidak pernah harus melakukannya, dan saya tidak pernah benar-benar cukup tertarik. Saya sendiri pernah melihat beberapa insinyur yang dikonversi menjadi coders ke tingkat tertentu karena tuntutan pekerjaan, dan kebanyakan dari mereka tidak terlalu hebat dalam apa yang mereka lakukan. Saya yakin banyak orang mengalami hal yang sama.
Jika saya belajar menulis perangkat lunak yang tepat dengan antarmuka pengguna yang baik, arsitektur internal yang baik dan sebagainya, bagaimana saya melakukannya? Kami tidak memiliki siapa pun di tempat kerja yang bisa memberi tahu saya apa praktik yang baik dan yang tidak. Mengingat bahwa saya dapat menulis kode dalam arti kata yang paling murni, apa lagi yang perlu diketahui tentang menulis perangkat lunak yang baik dan bagaimana saya bisa sampai di sana sendiri?
sumber
Jawaban:
Ada beberapa buku yang akan banyak membantu Anda. Saya sarankan untuk selalu di sebelah Anda Kode Lengkap . Ini adalah referensi yang sangat berharga. Di perusahaan sebelumnya tempat saya bekerja, ini juga buku yang kami berikan kepada setiap programmer junior setelah dipekerjakan.
Programmer Pragmatik juga merupakan sumber yang sangat berguna dan cukup singkat, tetapi saya sarankan Anda membacanya setelah Kode Lengkap.
Buku-buku ini akan membantu Anda memulai, lalu kode, kode, kode, dan kode lainnya ... tetapi tahu kapan harus berhenti, perangkat lunak Anda tidak akan pernah sempurna.
sumber
Perusahaan saya melakukan ini sepanjang waktu ... dan itu membuat saya gila.
"Saya seorang pengembang perangkat lunak, bagaimana cara menjadi EE?"
Yah, saya pikir jawabannya cukup jelas. Butuh banyak waktu dan kerja keras. Dan tentu saja materi pembelajaran yang tepat. Latar belakang Teknik membantu, di universitas saya CS dan sekolah teknik berada di gedung yang sama dengan banyak tumpang tindih. Algoritma dan dasar matematika ada di sana.
Kesalahan yang saya lihat kebanyakan pendatang baru lakukan adalah menggigit lebih banyak daripada yang bisa mereka kunyah. Materi pembelajaran di UI, arsitektur, kode kualitas ... banyak sekali . Sesuatu yang benar-benar memakan waktu bertahun-tahun dan sering dilakukan oleh tim ahli yang berbeda di perusahaan perangkat lunak.
Bukan untuk mengatakan Anda tidak bisa cukup baik sendiri, jika Anda meluangkan waktu. Hanya mengenali besarnya bahan sehingga Anda tidak membebani diri sendiri dan A. Berhenti atau B. Bangun utang teknis utama ke dalam aplikasi Anda dengan mengambil jalan pintas utama dalam proses belajar Anda.
Karena semua ini, tidak ada "catch-all" menjadi dev hebat dengan buku ini di luar sana. Saya sarankan Anda mulai dengan mengambil buku berperingkat bagus di bahasa yang paling sering Anda gunakan dan juga berpartisipasi dalam komunitas Stack terutama untuk ulasan kode.
Coba Amazon.com, mereka memiliki ulasan buku yang bagus.
sumber
Buku : Hal utama adalah membaca buku-buku (bagus) tentang bahasa pilihan Anda. Setelah Anda tahu bahasa pilihan Anda, Anda bisa mendapatkan " X Lebih Efektif " atau "Praktik Terbaik Y" dan seterusnya. Saya menemukan buku masak sangat bagus dalam menjembatani kesenjangan yang mungkin Anda miliki. Jadi, saya kira itu setidaknya tiga buku yang perlu Anda dapatkan. Satu hal: lakukan latihan dan kode kata untuk meningkatkan pemahaman Anda tentang bahasa. Tentu saja, Anda memerlukan pola xUnit yang baik .
Algoritma adalah kekhasan yang penting dan Anda harus memilih buku yang memerinci mereka - sekali lagi, dalam bahasa pilihan Anda. Pola Desain dan Anti-Pola bermanfaat saat mengetahui dalam bahasa apa pun.
Intinya: butuh waktu. Jangan terburu-buru.
sumber
Anda payah dalam coding. Iya nih.
Tapi - ini tidak berarti Anda tidak dapat mengirim perangkat lunak, itu membuat orang senang;)
Jadilah rendah hati. Tulis logika "bisnis" , yang Anda butuhkan. Gunakan kode perpustakaan untuk yang lainnya. Jangan mencoba untuk menulis algoritma dasar (seperti pengurutan array ), jangan gunakan "trik mewah", tetap pada beberapa konvensi kode yang kejam .
Gunakan IDE yang bagus. Ini sangat penting, karena akan membantu Anda memformat kode Anda dan melacak kesalahan ketik / sederhana.
Baca buku seperti " Kode Lengkap " dan " Pragmatis Programmer ", coba paksa diri Anda dan pelajari OOP (ini sederhana, dan akan membantu Anda menjaga kode Anda lebih mudah dikelola).
Gunakan SVN , sering-sering komit, - jadi Anda akan dapat mengembalikan perubahan Anda (saat Anda akan merusak sesuatu).
Temukan seseorang, yang merupakan programmer nyata , dengan latar belakang akademis, jika memungkinkan. Jadi, Anda akan dapat berbicara dengannya berbagi masalah pemula Anda, dan mendapatkan jawaban yang mencerahkan.
Dan, tentu saja, hal yang paling penting adalah menjaga koding, koding, koding .
ps: jika Anda dapat menulis kode C ++ yang berfungsi, dan Anda menulis jaringan saraf (!) - maka otak Anda sangat cocok untuk pemrograman;) Semoga Sukses!
sumber
Ada jawaban yang bagus di sini.
Putaran besar yang menguntungkan Anda adalah fakta sederhana yang ingin Anda ketahui.
Banyak rekayasa perangkat lunak (yang harus Anda lakukan dengan skeptisisme yang sehat, tentu saja) adalah tentang bagaimana melakukannya dengan cara yang tidak akan Anda sesali nanti. Salah satu contoh adalah penggunaan sistem kontrol versi kode sumber. Lain adalah membagi kode menjadi file sehingga lebih mudah untuk bekerja sedikit demi sedikit. Yang lain adalah menjadi stickler tentang keteraturan - pemformatan kode dan konvensi penamaan. Kebaktian yang tepat tidak masalah sebanyak konsisten tentang itu.
Dengan begitu, ketika Anda kembali ke kode dalam setahun atau lebih, Anda tidak akan berpikir "Siapa yang membuat kekacauan ini?" Anda akan dapat menemukan sesuatu dan mengubahnya tanpa terlalu banyak risiko kerusakan. **
Cara yang baik untuk memulai adalah dengan menemukan berbagai program contoh dan menyelesaikannya. Kemudian Anda dapat menyesuaikannya dengan kebutuhan Anda.
** Salah satu sakit kepala terbesar saya adalah mencoba bekerja dengan kode yang ditulis oleh orang-orang yang tidak menganggap format atau penamaan itu penting.
sumber
Walaupun ada banyak dan banyak sumber daya yang baik tentang bagaimana melakukan dan tidak melakukan hal-hal, pada akhirnya yang paling penting adalah melihat banyak kode dan bekerja dengannya dan melihat betapa mudah atau rumitnya untuk mempertahankannya sendiri.
Cara yang baik untuk belajar adalah memiliki seseorang yang berpengalaman untuk melakukan desain awal dan daripada meninjau kode Anda dan menunjukkan teknik yang berguna seperti yang Anda gunakan untuk mereka. Jadi jika Anda secara kebetulan berhasil membujuk atasan Anda untuk mempekerjakan setidaknya satu insinyur perangkat lunak dengan pengalaman dalam memimpin proyek perangkat lunak (kecil) dan merancang perangkat lunak untuk memimpin proyek, saya pikir itu akan menjadi pilihan terbaik.
Jika Anda tidak dapat membuat siapa pun menidurkan Anda, ada beberapa hari ini gerakan open-source yang kuat. Mungkin Anda menggunakan beberapa alat sumber terbuka dalam pekerjaan Anda, jadi coba perbaiki bug di dalamnya atau tambahkan fitur sederhana yang telah Anda gunakan untuk dan diskusikan bagaimana melakukan hal-hal tersebut dengan komunitas masing-masing. Ini adalah latihan belajar langsung yang tidak berguna untuk mempelajari cara menerapkan aturan umum apa pun yang akan Anda temukan di buku tentang masalah praktis yang sebenarnya.
sumber
Satu hal yang saya benar-benar akan merekomendasikan untuk belajar pengkodean kualitas dan masalah arsitektur akan menjadi ajaran "Paman Bob" (Robert Martin). Dia memiliki beberapa video $ 1 yang berukuran sangat baik, jika mungkin terlalu aneh, dan juga beberapa buku bagus.
sumber