Saya seorang insinyur perangkat lunak yang memiliki posisi pemrograman di VBA (meskipun saya tidak berani mempertimbangkan pengalaman 'nyata', karena itu adalah trial and error!), Perl w / CGI, C #, dan ASP.NET. Dua yang terakhir adalah pascasarjana, dengan pintu masuk saya ke 'dunia nyata'. Saya 2 tahun lulus dari perguruan tinggi, dan telah memiliki 5 tahun pengalaman (total) di berbagai bahasa yang saya sebutkan. Namun, ketika datang ke resume saya, saya hanya bisa meletakkan 2 tahun untuk C #, dan kurang dari setahun untuk ASP.NET.
Saya merasa seperti tahu C #, tetapi saya masih harus menghabiskan waktu untuk 'Apa metode ini lakukan?', Sedangkan beberapa insinyur tingkat yang lebih senior dapat langsung mengatakan, "Oh, Metode X melakukan ini, tanpa pernah melihat itu metode sebelumnya. " Jadi saya tahu secara empiris bahwa ada jurang di sana, tapi saya tidak yakin bagaimana menjembataninya. Saya sudah mulai pemrograman di Project Euler , dan saya mengambil buku tentang pola desain, tapi saya masih merasa seperti saya menghabiskan setiap hari menapaki air, bukannya bergerak maju.
Itu bukan untuk mengatakan bahwa saya tidak merasa seperti saya membuat kemajuan, itu hanya berarti bahwa sejauh saya datang setiap hari, saya masih melihat puncak gunung di kejauhan.
Pertanyaan saya adalah ini: Bagaimana Anda mengatasi dataran tinggi ini? Berapa lama waktu yang Anda butuhkan? Metode apa yang bisa Anda sarankan untuk membantu saya dalam hal ini?
Saya telah membaca Kode Lengkap , Bulan Mythical Man , dan CLR melalui C #, edisi ke-2 - pertanyaan saya adalah: Apa yang harus saya lakukan sekarang?
Sunting : Saya baru saja menemukan pertanyaan ini pada proyek - proyek untuk programmer tingkat menengah. Saya pikir itu menambah diskusi (meskipun tidak menggantikan pertanyaan saya). Karena itu, saya menambahkannya ke pertanyaan sebagai "Untuk Informasi Lebih Lanjut".
sumber
Jawaban:
Selamat!
Dari deskripsi Anda, Anda adalah pengembang perantara.
Fase ini akan berlangsung sekitar 3-8 tahun, tergantung pada keinginan Anda untuk belajar di atas dan di luar masalah saat ini
Untuk mempercepat proses, baca, jelajahi, blog, pergi ke pertemuan kelompok pengguna, cari mentor, lakukan riset independen, proyek sampingan kode, dan kubur diri Anda dengan teknologi baru. Ini mungkin mencukur satu atau dua tahun.
Atau Anda bisa memiliki kehidupan di luar pemrograman ;-)
Serius, tetap terkini dan introspeksi, tetapi matikan #% $ @ hal sesekali
Tambahan: saat Anda pergi ke luar, ingatlah untuk mengenakan celana.
sumber
Salah satu cara terbaik mendaki gunung adalah dengan menulis sesuatu untuk diri sendiri karena Anda menginginkannya. Pemrogram terbaik memiliki jawaban yang bagus untuk pertanyaan 'program apa yang paling menarik yang Anda tulis di waktu luang Anda.' Jika Anda tidak menulis kode apa pun di waktu luang, Anda tidak cukup menyukai kerajinan tangan Anda untuk menjadi lebih baik.
sumber
Anda harus melalui tahap larva.
Meskipun sekarang saya memprogram di VB.NET pada Windows, saya melewati tahap larva di Linux x86 dengan perakitan sebagai bahasa utama saya.
Untuk sesaat, Anda harus mengabdikan diri pada kerajinan sampai Anda menguasainya. Apa yang disebut insting seorang programmer master adalah perilaku yang benar-benar dipelajari. Itu adalah budaya bersama. Pemrogram harus berpikir seperti satu sama lain, dan seperti mesin.
Ketahui dan pahami. Keterampilan terbesar bukanlah yang terikat pada bahasa tertentu, tetapi dapat diterapkan pada hampir semua bahasa. Ketahui konsepnya, cari baik dalam masalah maupun bahasa, bersiaplah untuk menemukan hal-hal baru bila perlu.
Inilah jalan menuju kebesaran.
sumber
Saya sudah pemrograman sejak saya berusia 8 ... Saya akan berusia 33 pada Malam Natal. Saya masih melihat gunung di kejauhan. Tidak peduli seberapa jauh Anda datang, selalu ada lagi yang harus dipelajari.
Dapatkan paradigma di bawah ikat pinggang Anda dan cari tahu bagaimana bahasa yang Anda koding saat ini mengimplementasikan paradigma tersebut. Pemrograman adalah pengalaman seumur hidup yang selalu memiliki lebih banyak untuk dipelajari. Itulah kegembiraannya, tidak peduli seberapa mahir Anda, selalu ada lagi.
Salah satu cara saya menemukan untuk mempelajari hal-hal baru yang biasanya tidak saya pelajari adalah menghabiskan waktu di sini dan forum pemrograman lain seperti Bytes dan Experts Exchange di mana orang-orang mengajukan pertanyaan. Jika Anda dapat menjawab pertanyaan, langsung saja, jika Anda tidak bisa, maka coba dan cari tahu sendiri bagaimana menyelesaikan tugas itu, OP tidak hanya akan menghargai upaya dan bantuan Anda, tetapi Anda juga akan belajar sesuatu yang baru.
Saya menemukan bahwa saya belajar lebih banyak dengan membantu orang lain menemukan jawaban untuk hal-hal yang belum saya ketahui daripada yang pernah saya lakukan dengan hanya memprogram hal-hal sehari-hari saya yang saya lakukan hari demi hari.
sumber
Status pemrograman antara menyiratkan bahwa Anda keluar dari kode "mental lebih cepat" dan masuk ke ranah yang ingin membangun sistem nyata sebagai karier. Ini adalah perubahan profesional utama dan, terus terang, ini bukan tentang keterampilan teknis. Bekerja di tingkat menengah (alias "pengembang") membutuhkan keahlian orang yang sangat maju.
Berikut beberapa gejala yang bisa Anda pikirkan:
Ringkasan terbaik yang dapat saya buat adalah bahwa programmer menengah (atau "pengembang") telah belajar untuk menjadi lebih produktif dalam delapan jam kerja sehingga mereka bisa pulang kerumah dan memiliki kehidupan di luar pekerjaan.
Poin bonus diberikan jika Anda berhasil menemukan pasangan dan mereproduksi ....
sumber
Apa yang Anda lakukan sekarang hebat, tetapi jika Anda ingin mempercepat kemajuan Anda, Anda dapat melakukan dua hal tambahan:
1) "Mengajar" - Cara sederhana untuk melakukan ini adalah memulai sebuah blog, dan berusaha menyumbangkan sesuatu yang bermanfaat secara teratur (mungkin mingguan). Bertujuan tentang hal-hal yang baru Anda pelajari, atau yang belum Anda ketahui . Itu berarti Anda akan memaksakan diri Anda untuk meneliti, memahami dan mengeluarkan kembali.
BTW, Anda dapat dengan mudah mendaftar untuk akun SingingEels di mana Anda mendapatkan blog gratis di komunitas pengembangan yang ada.
2) Menulis banyak program mini - Dengan ini, maksud saya sekitar 1 per minggu. Anda dapat menggunakan ini di persimpangan dengan di atas ... atau hanya untuk bersenang-senang. Apa yang saya lakukan sebagai pengembang muda hanya secara acak memilih (saya tidak bercanda) namespace dalam kerangka NET. Di dalamnya, pilih kelas yang belum pernah Anda lihat / gunakan sebelumnya, dan buatlah sebuah program kecil yang menggunakannya.
sumber
Mencoba untuk
Baca LEBIH BANYAK buku. Ambil judul-judul besar dari Amazon dan baca. Misalnya, penulis Code Complete telah menulis buku yang bagus tentang rekayasa perangkat lunak - Pengembangan Perangkat Lunak Cepat, beli satu dan bacalah.
Belajar bahasa pemrograman yang berbeda Bahasa scripting seperti python / ruby layak untuk dipelajari. Atau mungkin bahasa pemrograman fungsional :) Ini dapat mengubah pikiran Anda tentang pemrograman. Anda mungkin tahu bahwa beberapa pola GOF tidak diperlukan untuk bahasa-bahasa semacam itu.
Bergabung dengan komunitas Orang-orang dapat bertukar pikiran dengan mendengarkan dari orang lain dan memberikan presentasi.
sumber
Temukan pemrogram yang cerdas dan belajarlah dari mereka. Tiru mereka. Perhatikan hal-hal yang mereka lakukan secara berbeda dari yang Anda lakukan.
Apakah perusahaan Anda melakukan tinjauan kode? Itu salah satu cara terbaik untuk belajar. Anda mungkin kagum dengan saran yang dibuat oleh programmer yang lebih maju dan hal-hal yang mereka pertahankan saat coding.
sumber
bagaimana dengan terlibat dalam proyek open source lainnya yang sedang berlangsung, sehingga setidaknya pekerjaan Anda akan bernilai sementara bagi seseorang dan Anda dapat belajar dan berinteraksi dengan pengembang lebih maju lainnya melakukan pekerjaan dunia nyata.
sehingga setidaknya Anda tidak terbatas pada apa yang ingin Anda pelajari atau jenis proyek apa yang ingin Anda lakukan. dan itu sudah alat gratis yang Anda gunakan, Anda bisa bangga bahwa Anda benar-benar membantu membuatnya lebih baik.
dan itu muncul dengan baik dengan resume Anda juga. :)
jadi jika itu masih memberi Anda waktu luang, mengapa tidak menyimpan blog yang mendokumentasikan pembelajaran, pengalaman, dan apa yang tidak. siapa tahu, Anda bisa menjadi joel berikutnya pada perangkat lunak atau pengkodean horor: p
sumber
Untuk unggul sebagai pengembang C # baca dua berikut. Perhatikan bahwa fokus buku-buku ini lebih pada bahasa (C #) bukan kerangka (.NET) ..
Anda telah membaca CLR melalui C # , jika tidak, itu mungkin saran ketiga oleh siapa pun untuk pengembang C #.
Ini juga harus membuat Anda menjadi pengembang yang lebih baik: Pedoman Desain Kerangka Kerja dan Efektif dengan Kode Legacy .
sumber