Jadi saya sudah pemrograman selama sekitar 9 bulan sekarang, dan saya telah belajar sendiri beberapa Python, beberapa PHP dan beberapa Javascript.
Saya ingin menjadi lebih baik dalam bahasa-bahasa ini - saya dapat meretas sesuatu, tetapi banyak hal seperti OOP, menggunakan daftar dengan cara yang paling efektif, dll, hilang pada saya.
Apa cara terbaik untuk menjadi programmer "ahli"? Apakah itu tergantung pada nuansa bahasa, atau lebih umum? Apakah ada matematika yang harus saya pelajari bersama? Jelas banyak tergantung pada apa yang ingin Anda lakukan dengannya - sejauh ini saya sebagian besar telah melakukan aplikasi internal skala kecil serta pemrograman web. Bagaimana saya mencari tahu tentang desain program yang bagus?
php
javascript
python
Jack Seskatchi
sumber
sumber
Jawaban:
Satu-satunya solusi adalah Pengalaman . Anda akan menjadi ahli ketika Anda memiliki banyak kode (seperti benar-benar banyak ) dalam bahasa-bahasa ini. Mengembangkan proyek akan membuat Anda menghadapi masalah, jadi Anda harus menemukan solusinya, dan suatu hari Anda akan melihat solusi yang cukup untuk masalah yang Anda sebut diri Anda seorang ahli .
Pengkodean, membaca kode, meninjau kode, semua ini akan membantu Anda mengetahui cara membuat kode dengan desain yang baik. Anda tidak bisa hanya mengandalkan satu cuplikan kode yang Anda lihat di Internet untuk mengatakan bahwa Anda tahu apa desain yang bagus untuk apa yang ingin Anda capai. Anda perlu melihat banyak dari mereka untuk mengetahui apa yang akan menjadi solusi terbaik untuk masalah Anda.
sumber
Keahlian, seperti persahabatan, adalah produk waktu. Kutipan favorit saya pada subjek (saya lupa sumbernya):
"Penilaian yang baik adalah hasil dari pengalaman. Pengalaman adalah hasil dari penilaian yang buruk."
Masukkan jam, pelajari kerajinan Anda. Berusaha keras tidak hanya untuk solusi langsung, tetapi untuk kecantikan dan efisiensi.
sumber
Pertama-tama, penting untuk memahami pemrograman pada tingkat agnostik. Mengetahui prinsip, konsep, metodologi dan semacamnya akan membantu Anda dalam jangka panjang. Berikut ini beberapa tautan ke beberapa buku bagus untuk membantu Anda:
Buku:
Kode Bersih: Buku Pegangan Pengerjaan Perangkat Lunak Agile
Kode Lengkap (2nd Ed) oleh Steve McConnell
The Man-Month Mythical
Pola Desain: Elemen Perangkat Lunak Berorientasi Objek yang Dapat Digunakan Kembali
Hanya ingat ketika Anda menciumnya juga lebih baik kering jika Anda ingin hubungan yang lebih solid dengan pemrograman. :)
sumber
1) Anda berada di tempat yang tepat. Forum komunitas seperti pertukaran tumpukan adalah cara terbaik untuk menemukan informasi.
2) Cari tahu OOP sebelum melanjutkan. Ini suatu keharusan sebelum beralih dari skrip ke pengembangan yang lebih maju. net.tutsplus.com adalah situs yang bagus untuk referensi dan saya menemukan panduan ini di sini: http://net.tutsplus.com/tutorials/php/object-oriented-php-for-beginners/
3) Setelah Anda belajar OOP dan berlatih menggunakannya, unduh kerangka kerja dengan dokumentasi yang baik dan ikuti panduan "Memulai" (kerangka kerja adalah kumpulan alat yang membantu Anda berkembang lebih cepat dalam bahasa). Symfony adalah yang bagus untuk PHP dan Anda dapat mengikuti panduan di sini: http://www.symfony-project.org/getting-started/1_4/en/ . Mereka juga memiliki tutorial "Jobeet" untuk Anda ikuti
4) Seiring dengan # 3, pelajari pola MVC (Model View Controller). Ini adalah pola pemrograman populer yang digunakan dalam berbagai kerangka kerja. Ini adalah suatu keharusan jika Anda ingin pindah dari pemula ke menengah.
Semoga berhasil!
sumber
Kerjakan proyek kode dengan programmer yang lebih baik dari Anda
Protip: ini tampaknya bekerja untuk apa pun yang Anda ingin menjadi lebih baik, bukan hanya kode!
Tapi serius, jika Anda dapat menemukan orang-orang berbakat yang bersedia memberi tahu Anda ketika Anda melakukan kesalahan, cobalah untuk mengerjakan proyek bersama mereka.
Baca hal-hal yang ditulis oleh programmer yang lebih baik dari Anda
Daveo ditautkan dengan beberapa buku bagus. Anda juga dapat menemukan banyak blog yang ditulis oleh orang-orang yang ingin menjadi pemrogram yang lebih baik (dan biasanya pemrogram itu sendiri cukup hebat).
sumber
Menjadi programmer yang ahli mungkin kemampuan umum untuk bernalar dan memecahkan masalah pemrograman, baik tugas umum maupun tidak umum. Ini mungkin bahasa yang independen, tetapi saya katakan Anda juga harus sangat fasih dengan setidaknya beberapa bahasa pemrograman dan alat-alat mereka.
Tidak ada resep ajaib untuk menjadi seorang ahli, kecuali dengan kerja keras: membaca tutorial, banyak google, mendengarkan ahli, mengerjakan masalah, banyak kode, bekerja di proyek yang ada dengan orang lain, dan umumnya memperoleh banyak pengalaman dunia nyata .
Semua ini adalah saran independen bahasa.
sumber
Tentu saja ada beberapa pendekatan yang akan mengarah pada kesuksesan. Seperti yang sudah dikatakan Pengalaman adalah yang paling penting, tetapi itu tergantung pada Anda berapa banyak waktu yang Anda butuhkan untuk menyebut diri Anda seorang ahli. Namun rentang waktu akan diukur dalam tahun atau bahkan beberapa dekade.
Saya mulai belajar pemrograman 15 tahun yang lalu, dan saya pikir peningkatan terbaik dalam keterampilan saya adalah karena alasan berikut:
Tekanan buruk. Jaga suasana hati yang baik dan lupakan masalah yang tidak terpecahkan hari ini hanya untuk kembali kepada mereka besok (dan bertanya-tanya mengapa itu tampak sangat rumit sehari sebelumnya)
Saya mulai pemrograman ketika saya masih kecil dan tidak ada yang memaksa saya untuk belajar apa pun. Jangan salah paham: Anda tidak perlu memulai sebagai seorang anak untuk menguasai bahasa pemrograman. Motivasi Anda sendiri - tanpa memaksakan diri Anda untuk mencapai tujuan yang tidak realistis dalam waktu yang terlalu singkat - akan menjadi kunci kesuksesan.
Anda juga tidak perlu menulis sistem operasi Anda sendiri seperti yang dilakukan Linus. Tidak seorang pun berharap Anda memiliki situs web yang sukses dikunjungi oleh ratusan pengguna sehari. Kutipan sederhana dari proyek Anda akan menunjukkan (bos Anda, pelanggan Anda, kolega Anda ...) bahwa Anda tahu apa yang Anda lakukan.
Tetap pada topik sampai Anda (hampir) menguasainya. Pelajari dasar-dasarnya.
Penguasaan adalah sesuatu yang tidak bisa dicapai. Sepertinya tidak tahu segalanya. Tetapi pastikan untuk mempelajari dasar-dasarnya, dan jangan meremehkan konsep bahasa pemrograman, paradigma atau aturan sintaksis tertentu atau praktik terbaik.
Tapi tolong: jangan hanya menerimanya jika Anda mendengar atau membaca TIDAK PERNAH atau SELALU. Setiap kali seseorang berbicara tentang tidak pernah melakukan sesuatu, jangan ragu untuk bertanya mengapa. Ada alasan mengapa ada aturan. Tetapi hanya alasan yang akan memberi tahu Anda apakah itu hal yang baik untuk situasi Anda atau tidak. Apa yang baik dalam satu bahasa bisa menimbulkan masalah dalam bahasa lain.
Terus melangkah.
Jangan bertahan pada topik yang sama selama beberapa dekade. Setelah 10 tahun Javascript, akan ada sangat sedikit orang yang dapat mengajari Anda sesuatu yang baru. Tetapi dalam 10 tahun tidak ada yang akan berbicara tentang Javascript ... mengapa? ah sekarang kamu menangkapku. Prediksi tentang masa depan selalu rentan terhadap kesalahan;)
Namun setelah beberapa bulan atau bertahun-tahun mengumpulkan pengalaman dalam satu bidang, Anda akan melihat bahwa hal-hal yang Anda pelajari tidak akan sebesar pada awal "misi" Anda. Akan ada saat ketika orang-orang mulai meminta bantuan Anda ketika mereka memiliki masalah (masalah nyata, bukan hal-hal pekerjaan rumah yang harus saya lakukan).
Ini adalah indikator yang baik bahwa Anda telah menjadi semacam pakar. Pada titik ini tanyakan pada diri Anda apakah masih ada potensi untuk mengembangkan diri Anda. Atau mungkin ada sesuatu yang baru yang ingin Anda letakkan di tangan Anda, tetapi tidak ada yang membiarkan Anda karena Anda hanya ayam yang sempurna untuk kandang ini.
Pergi keluar dengan teman, istri, anjing ...
Ini akan memberi istirahat pikiran Anda. Masalah seperti Android vs Iphone, Flash vs. Silverlight, App vs Program ... akan menjadi masalah apa yang terbaik untuk kebutuhan Anda dan bukan pusat keberadaan Anda.
Memiliki kehidupan sosial (jangan bingung dengan Facebook) juga akan membantu menjaga atau bahkan meningkatkan soft skill Anda. Jika Anda tahu cara membuat kolega Anda menyetujui solusi terbaik (belum tentu Anda) bisa lebih berharga daripada mengetahui ratusan bahasa pemrograman.
Gunakan otakmu
Jangan menulis surat kepada saya dalam 10 tahun yang memberi tahu saya bahwa saya mengacaukan hidup Anda. Jika Anda senang dengan strategi yang sama sekali berbeda atau mengetahui menjadi petani atau presiden Amerika Serikat layak untuk menghabiskan sisa waktu Anda: lakukanlah.
sumber
Saya sarankan menjadi anggota situs seperti Topcoder atau Usacogate , di mana Anda dapat mempelajari langkah demi langkah dan menyelesaikan masalah algoritmik. Misalnya, menyelesaikan pelatihan Usacogate tidak akan membuat Anda menjadi seorang profesional ilmu komputer, tetapi memberi Anda banyak keterampilan untuk menangani banyak masalah kehidupan nyata. Ini mengajarkan Anda pengujian dan mengharuskan Anda untuk memberikan solusi yang efisien.
Namun pilihan lain untuk mendapatkan lebih banyak pengalaman adalah belajar bahasa dengan paradigma yang berbeda. Misalnya, Haskell adalah bahasa pemrograman fungsional. Mempelajari hal itu dapat membantu Anda mendekati masalah dari sudut pandang yang berbeda bahkan dalam bahasa lain. Sebagai contoh, Python dapat diprogram dalam gaya yang sangat fungsional.
sumber
Berlawanan dengan beberapa jawaban, pengalaman bukanlah satu-satunya syarat untuk menjadi "ahli". Saya pikir kebanyakan orang di setiap industri (bukan hanya pemrograman) tidak menjadi ahli di bidangnya. Mereka menjadi kompeten dan efisien, tetapi mereka tidak menjadi sedekat yang mereka bisa.
Alasannya adalah pengalaman itu tidak cukup. Anda membutuhkan saran ahli. Anda perlu belajar cara melakukan sesuatu dari seseorang yang ahli.
Untungnya bagi kita, ada banyak sumber daya bagi programmer untuk menjadi ahli. Mungkin yang terbaik adalah buku. Sumber daya luar biasa lainnya adalah programmer .StackExchange.
Habiskan sebagian besar waktu Anda menulis kode, tetapi juga habiskan sebagian untuk membaca dan mengintegrasikan pengetahuan dari buku-buku seperti Clean Code http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 . Anda dapat menemukan buku-buku terbaik dengan menganalisis ulasan di Amazon, memeriksa situs ini, dan Stack Overflow.
Jika Anda menginvestasikan cukup waktu untuk mempelajari dan menggunakan informasi dalam 2 atau 3 buku per tahun, itu akan sangat meningkatkan keterampilan Anda. Juga, cari cara untuk merekam dan mengingatkan diri sendiri tentang segala sesuatu yang Anda pelajari. Kalau tidak, akan sulit untuk benar-benar mengetahui dan menggunakan informasi tersebut.
Perhatikan topik yang diminati oleh programmer ahli: pola desain, pengujian unit, pilihan karir, dll. Lihatlah dunia (atau setidaknya pekerjaan Anda) dari perspektif programmer ahli.
Ketika Anda diberi tugas untuk membuat kode, berhenti dan pikirkan sebentar. Tanyakan pada diri Anda beberapa pertanyaan. Apa yang telah saya pelajari yang dapat membantu saya? Apa risikonya? Apa pendekatan terbaik? Apa sajakah algoritma berbeda yang dapat saya gunakan? Berapa lama waktu yang dibutuhkan untuk menjalankan program? Apa yang mungkin menjadi hambatan CPU? Fungsionalitas apa yang bisa diubah atau ditambahkan?
Semoga ini membantu.
sumber