Seorang programmer penuh waktu profesional dapat melakukan pekerjaan dengan baik dengan terus belajar dari pekerjaan mereka. Bagaimana seorang programmer amatir bisa menjadi programmer yang baik?
** Jika Anda suka bermain musik atau bernyanyi, Anda dapat melakukannya karena itu adalah hobi Anda dan Anda tertarik, dan Anda bisa menjadi penyanyi atau pemutar musik yang bagus. Tetapi Anda tidak perlu menjadi penyanyi profesional atau menyanyi untuk mencari nafkah. Apakah ini juga berlaku untuk programmer? Adakah programmer amatir yang terkenal?
Jawaban:
Kunci untuk menjadi sangat baik adalah bekerja dalam tim yang baik. Banyak amatir bekerja sendirian, jadi mereka hanya sampai sejauh itu. Dalam sebuah tim, Anda belajar dari orang lain, dan Anda menjadi disiplin karena teman-teman Anda akan memukul Anda dengan apa pun yang berguna.
Untuk alasan itu, saya sarankan Anda bergabung dengan tim, misalnya proyek sumber terbuka, atau membuat proyek hobi dengan beberapa teman.
sumber
Jalan untuk menjadi baik dalam pemrograman sama dengan menyanyi atau bermain musik: latihan, latihan, latihan. Jika Anda menghabiskan cukup waktu secara teratur mengembangkan perangkat lunak selama beberapa tahun, kemungkinan Anda akan menjadi ahli dalam hal itu - baik di dalam maupun di luar jam kerja.
Sekarang, selain menghabiskan lebih banyak waktu untuk berlatih, ada alasan lain mengapa para profesional biasanya menjadi lebih baik daripada amatir dalam arti tertentu (dalam musik maupun dalam pemrograman). Jika Anda seorang profesional, Anda harus melakukan tugas-tugas yang tidak selalu Anda sukai, tetapi termasuk pekerjaan yang lebih luas untuk mengembangkan perangkat lunak (misalnya pengujian, diskusi dengan pelanggan, menulis dokumentasi, mengatur lingkungan pengembangan / pembuatan, menulis skrip pembuatan dll. ). Dan sesekali Anda juga terdesak untuk masuk ke area asing, untuk belajar bahasa atau platform baru. Sebagai seorang amatir, Anda tidak dipaksa untuk melakukan apa pun yang tidak Anda inginkan, yang memungkinkan Anda untuk tetap berada dalam zona nyaman untuk sebagian besar hidup Anda. Dengan kata lain, Anda dapat dengan mudah menjadi terbatas pada satu atau beberapa area spesifik yang paling Anda sukai,
OTOH, banyak pengembang profesional juga terlibat dalam hal ini, tetap di perusahaan yang sama melakukan pekerjaan rutin yang sama, hampir tidak mempelajari hal baru selama beberapa dekade ... Jadi kunci untuk menjadi lebih baik adalah sikap Anda. Jika Anda terus belajar, dan secara sadar mencari peluang untuk keluar dari zona nyaman Anda ke wilayah baru yang asing, Anda pada akhirnya akan mengungguli kelompok-kelompok "profesional" yang perlahan-lahan memfosil. Cara yang baik untuk ini mungkin berkontribusi pada beberapa proyek open source.
Bacaan yang disarankan adalah The Pragmatic Programmer: Dari Journeyman hingga Master , dengan banyak nasihat yang bagus dan sangat praktis tentang cara untuk tetap menjadi lebih baik.
sumber
Anda menjadi lebih baik dengan belajar, yang merupakan bagian dari melakukan, bagian yang merefleksikan apa yang telah dilakukan.
Jadi pada dasarnya, tidak ada perbedaan antara hobi dan profesional, tetapi 'perangkap' disusun sedikit berbeda.
Amatir Perangkap adalah, imho
kebutuhan untuk menyelesaikan proyek Anda, apa pun yang terjadi, tidak sekuat ketika Anda tidak profesional . Ini bisa menjadi hal yang baik, karena Anda tidak akan terbiasa memotong sudut dalam hal kualitas, tetapi menyelesaikan (sama sekali! Tepat waktu lebih baik) adalah keterampilan yang sangat penting, yang lebih sulit untuk dilatih sebagai seorang amatir, karena mudah membiarkan sebuah proyek mati dan memulai yang lain.
kebutuhan untuk berkomunikasi dengan baik tidak sekuat itu. Pada proyek profesional, ada insentif kuat untuk benar-benar memahami pelanggan, bahkan jika mereka benar-benar tidak dapat membentuk hanya satu kalimat yang koheren tentang masalah apa yang mereka ingin Anda selesaikan. Jika Anda salah paham, atau (kasus biasa) tidak memperhatikan, bahwa mereka tidak membicarakan sesuatu yang perlu Anda pahami, itu akan menjadi masalah Anda, cepat atau lambat. Proyek amatir dapat dengan mudah kehilangan semua pengguna potensial, karena tidak menyelesaikan masalah mereka, dan 'selesai' dengan cara teknis.
Jebakan Profesional adalah
seringkali ada sedikit motivasi untuk menjadi lebih baik . Anda berada di sana 40 jam / minggu, tidak masalah jika Anda menemukan obat untuk kanker atau hanya minum kopi dengan cara yang terlihat produktif. Belajar adalah sesuatu yang Anda lakukan terutama untuk diri sendiri, dan sering kali, jika Anda mencoba menerapkan hal-hal yang Anda pelajari, ada kekuatan yang bekerja melawan hal itu (kelompok konservatif, hierarki, bahkan panduan gaya dapat digunakan sebagai senjata melawan peningkatan). Dibutuhkan banyak cinta untuk profesi untuk tidak hanya menyerah, merobohkan jam Anda, dan mencari tujuan alternatif dalam hidup.
sering ada sedikit yang bisa dipelajari . Ya, seseorang BISA mencoba untuk menganggap segala sesuatu sebagai tantangan, tetapi kita harus jujur: setelah 1 Tahun kode Spaghetti Anda tidak boleh melakukan refactor ("Anda menyulitkannya!") Dalam bahasa yang Anda miliki bertahun-tahun pengalaman dalam daripada yang mungkin akan berlangsung, satu-satunya hal yang dipelajari adalah membangun toleransi terhadap frustrasi dan politik perusahaan.
Anda tentu saja tidak perlu, tetapi berapa banyak Musisi akan menolak kesempatan untuk benar-benar keluar dari pekerjaan mereka dan menghasilkan uang dengan musik mereka?
Dalam IT, peluang ini sedikit lebih mungkin daripada di Musik, oleh karena itu saya pikir, bukan tidak mungkin menjadi amatir yang terkenal, tetapi seringkali, para amatir membuat gairah mereka menjadi pekerjaan mereka (dengan masalah yang sama yang dimiliki musisi ketika mereka harus mencari tahu garis mereka antara perdagangan dan seni)
sumber
Saya khawatir ada lebih banyak kemungkinan untuk belajar untuk amatir daripada untuk drone perusahaan penuh waktu. Sebagai seorang amatir, Anda tidak dibatasi oleh teknologi, lingkungan, desain, dan metodologi pengembangan apa pun. Anda dapat melakukan apa pun yang menurut Anda berguna untuk pengembangan pribadi Anda. Sebagai pengembang penuh waktu, Anda mungkin akan mengerjakan produk yang sama selama bertahun-tahun, mengikuti rutin yang sama, dibatasi oleh pedoman perusahaan yang sama. Bagi kebanyakan dari kita itu hanyalah stagnasi. Sedikit dapat dipelajari dari lingkungan perusahaan, setelah Anda terbiasa dengan dasar-dasar umum.
Itulah alasan mengapa banyak pengembang penuh waktu juga amatir, mereka terus mengkodekan setelah bekerja, mereka bermain dengan proyek mainan mereka sendiri - itu adalah sedikit kebebasan yang diperlukan untuk pertumbuhan.
sumber
Sebagai seorang programmer amatir, saat ini Anda memiliki banyak kemungkinan untuk meningkatkan keterampilan Anda. Saya melakukan yang berikut untuk meningkatkan keterampilan saya saat belajar rekayasa perangkat lunak.
Tentu saja Anda juga perlu menerapkan pengetahuan Anda. Lakukan ini melalui magang, proyek dengan teman atau kursus studi. Ada banyak cara untuk meningkatkan diri, Anda hanya perlu menginvestasikan waktu luang Anda. Juga, bersenang-senanglah mempelajari sesuatu yang baru !
sumber
Ya, itu mungkin , namun butuh waktu lama:
Lagi dari sumber yang sama :
sumber
Sebagai seorang amatir, Anda memiliki lebih banyak opsi untuk mencari praktik yang lebih baik daripada banyak profesional. Profesional sering di bawah tekanan untuk "menyelesaikannya".
Saya belum pernah melihat kursus seperti saya belajar pemrograman, tetapi saya belajar dari beberapa kursus pendek (1-3 jam) gratis yang disajikan oleh Universitas yang saya hadiri. Mereka dimaksudkan untuk memungkinkan orang-orang bisnis memahami kode yang ditulis untuk mereka. Kursus menyajikan kode tertulis yang sangat baik (termasuk komentar) yang memecahkan masalah kehidupan nyata yang umum. Kode kemudian ditinjau dengan penjelasan tentang fitur bahasa dan mengapa mereka digunakan dengan cara mereka di mana. Tidak satu pun dari kursus bahasa lengkap yang saya lihat menghasilkan kode yang mendekati kualitas dari apa yang saya pelajari dari kursus itu. Itu beberapa tahun sebelum saya beralih belajar Ilmu Komputer.
Internet dan perpustakaan menyediakan banyak sumber daya dan contoh. Saya menemukan banyak contoh tidak baik untuk apa pun kecuali menyelesaikannya. Saat melihat contoh, lihat dulu kodenya. Bisakah Anda memahaminya tujuan dan struktur tanpa penjelasan? Jika demikian, Anda mungkin telah menemukan contoh yang bagus.
Beberapa praktik utama yang harus Anda pelajari dan terapkan:
sumber
Tidak semuanya. Ini rekayasa perangkat lunak . Itu tidak didasarkan pada "bakat alami". Menjadi programmer hebat didasarkan pada tahun pendidikan dan tahun pengalaman . Anda hanya dapat bekerja pada proyek nyata .
sumber
Pada wawancara kerja yang pernah saya kunjungi (di pihak pemberi kerja), saya selalu meminta hal-hal yang diwawancarai oleh pemrograman yang telah diwawancarai sebagai seorang amatir (kecuali tugas sekolah) - setelah melakukan itu merupakan tanda pasti dari minat yang tulus di bidang ini dan memiliki hasrat untuk belajar sendiri. Itu tidak hanya mungkin, itu hampir merupakan persyaratan untuk menjadi baik.
sumber
Apa itu mungkin? Iya. Namun, semakin banyak waktu yang Anda habiskan untuk pemrograman, semakin banyak waktu yang Anda miliki untuk menjadi lebih baik. Dikatakan butuh 10 tahun / 10 000 jam praktik deliberatif untuk mengembangkan keahlian pada keterampilan teknis. Itu bukan 10.000 jam melakukan jenis pengkodean yang sama di zona nyaman Anda (misalnya, menulis kode jQuery sederhana untuk situs web yang berbeda), tetapi 10.000 jam belajar / membaca tentang pemrograman / membaca kode sumber / menulis kode sumber / belajar bahasa lain / bekerja dengan orang lain, dll.
Jika Anda akan mencurahkan tingkat waktu itu untuk itu; Anda mungkin juga mendapatkan pekerjaan sebagai programmer dan melepaskan status amatir. (Kecuali jika Anda secara mandiri kaya).
sumber
Setiap orang adalah amatir dalam segala hal pada satu titik. Jika Anda ingin menjadi programmer yang baik dan itu adalah sesuatu yang Anda sukai, Anda akan melakukannya. Kuncinya adalah pemrograman sendiri. Sekolah akan mengajarkan Anda apa-apa. Sebagian besar pembelajaran Anda akan dilakukan sendiri dan di tempat kerja. Jika Anda ingin menjadi baik, lakukan yang baik.
sumber
mengingat arti asli yang
sesungguhnyadari kata tersebut ( "pecinta" amatir Prancis , dari Perancis Lama dan akhirnya dari amatorem nom. amator , "kekasih" - Wikipedia), orang ingin percaya bahwa sejumlah besar profesional juga amatir. Jika Anda tidak menyukai kerajinan Anda, apakah Anda akan mempraktikkannya?Tentu saja itu mungkin - jika Anda suka pemrograman, Anda akan mempraktikkannya dan, seiring waktu, Anda akan menjadi ahli dalam hal itu. (Mungkin tidak pernah hebat, diberi bakat pribadi atau kekurangannya), tapi setidaknya bagus
sumber
Saya tidak mengerti apa yang dimaksud dengan programmer yang baik. Tetapi mempelajari sesuatu milik mereka sendiri dan bekerja dengan sekelompok orang adalah sesuatu yang berbeda. Pemrogram amatir yang bersemangat benar-benar mempelajari hal-hal baru dan peretasan. Di sana mereka menemukan hal-hal yang lebih menarik. Tetapi bekerja dengan sekelompok orang sedikit tindakan disiplin di mana Anda berkolaborasi, berkomunikasi, berbagi / mendapatkan informasi dari para ahli di bidang itu.
Namun mendapatkan pengetahuan hanyalah masalah hasrat. Ada orang yang menghabiskan malam untuk mempelajari barang-barang sendiri dan akhirnya membawa sesuatu yang baru ke dunia seperti Bill G Mark Zuck dll. Tidak dapat dengan mudah membandingkan. tetapi jika Anda ingin menjadi insinyur perangkat lunak yang lebih baik (saya tidak akan memanggil Programmer) bergabung dengan perusahaan atau bekerja untuk beberapa produk bagus yang digunakan oleh orang lain.
Akhirnya, bacalah banyak untuk meningkatkan keterampilan Anda, sikap, pembaruan industri, mengembangkan rasa dan pergi dengan semangat. Segalanya akan dengan mudah mengikuti Anda!
sumber
Untuk pertanyaan, "adakah programmer amatir menjadi terkenal?" Jawabannya adalah "Ya, tetapi sebagian besar tidak tetap seperti itu." Contoh paling terkenal yang dapat saya pikirkan adalah Roy Fielding yang melakukan beberapa pekerjaannya yang paling penting sementara (saya percaya) tidak dibayar di Universitas (amatir berarti tidak dibayar menurut definisi).
Trik untuk menjadi berkualitas profesional adalah memiliki mentor atau serangkaian mentor (seperti tim dalam proyek open source) dan pengabdian waktu yang serius untuk topik tersebut. Sebagai mantan musisi profesional, pengalaman saya adalah bahwa keduanya diperlukan untuk menjadi baik sebagai profesional atau amatir. Beberapa dapat dipelajari dengan buku, tetapi tanpa kritik eksternal yang konsisten menjadi sangat sulit untuk melewati kebiasaan buruk yang didapat sebagai seorang pemula.
Yang mengatakan, dalam kasus programmer, secara substansial lebih mudah untuk belajar daripada musisi - itu adalah pengalaman saya bahwa sebagai seorang musisi itu jauh lebih sulit sebagai musisi untuk melihat kesalahan pedagogis Anda daripada melihat kode yang hanya tidak bekerja Di sisi lain, itu juga membutuhkan investasi waktu yang jauh lebih besar untuk menjadi pengembang yang baik.
sumber
Seperti hal lain, cara terbaik untuk menjadi lebih baik dalam sesuatu adalah dengan membenamkan diri dalam lingkungan di mana Anda ingin menjadi baik, dan mengelilingi diri Anda dengan orang-orang yang jauh lebih unggul dari Anda yang bersedia mentolerir Anda dan mengajar Anda. Tidak mudah dilakukan, tetapi itulah yang saya temukan adalah cara terbaik untuk belajar menjadi pandai dalam sesuatu yang tercepat.
Tetapi ketika datang untuk menjadi programmer yang benar-benar berbakat, Anda harus seperti itu, berbakat. Jika Anda bukan pemain biola yang berbakat secara alami, Anda tidak akan pernah sebagus master tidak peduli seberapa keras Anda mencoba atau instrumen apa yang Anda beli. Demikian juga, jika Anda tidak memiliki karunia yang membuat programmer benar-benar jenius, Anda tidak akan pernah menjadi mereka juga.
sumber