Pembelajaran mendalam dalam pemrograman: apa, mengapa dan bagaimana

Penafian: Artikel ini ditulis oleh Skillbox bekerja sama dengan Egor Yakovishen, pengembang utama Setka Editor dan pelacak IIDF.



Saat ini, belajar memprogram pada tingkat dasar relatif mudah. Misalnya, tunawisma Amerika Leo Grand, yang hanya memiliki pendidikan dasar, hanya dalam tiga bulan mampu membuat aplikasi mobile sendiri, yang disebut Trees for Cars.

Mengapa belajar pemrograman? Mungkin ada banyak jawaban, dari keinginan untuk berkembang dan diakhiri dengan keinginan untuk menghasilkan uang besar. Tapi anggaplah kita belajar bagaimana kode dan mencapai tingkat tertentu. Ada pekerjaan, uang juga sepertinya ada di sana, kepuasan dengan kehidupan (sebagian atau penuh) tersedia. Tampaknya Anda dapat berhenti dan hanya menikmati pencapaian Anda. Bahkan, jangan berhenti. Mengapa Kami akan membicarakan ini.

Mengapa memperbaiki sama sekali?


Jika Anda tidak meningkatkan spesialisasi yang Anda pilih, setelah beberapa saat Anda dapat menemukan diri Anda sebagai seorang troglodyte, ditutup di sebuah gua, yang dikelilingi oleh bangunan melayang masa depan yang jauh. Hmm, yah, atau bayangkan "Peradaban" dengan AI yang sudah memiliki senjata nuklir dan seorang pemain masih bertarung dengan bantuan senapan.

Untuk seorang programmer, perbandingan seperti itu sangat relevan, karena secara harfiah setiap hari muncul platform baru, kerangka kerja, perangkat keras, dan Anda perlu menulis sesuatu yang baru. Jika Anda terlibat dalam bisnis yang sama selama beberapa tahun, maka kesulitan mungkin timbul dengan pekerjaan dan kepuasan dengan kehidupan yang kita bicarakan di atas.

Bahkan jika kita mengambil tugas yang relatif sederhana - misalnya, otomatisasi proses lokal dengan membuat skrip pada VBScript untuk Microsoft Office - maka kita tidak akan berhenti dalam hal ini: paket kantor diubah, fungsi tertentu ditambahkan dan dihapus, VBScript sendiri diubah. Beberapa tahun - dan solusi hari ini tidak cocok. Apa yang bisa kita katakan tentang bahasa pemrograman seperti Ruby atau JavaScript, yang berada di garis depan pengembangan teknologi.

Untuk mengikuti perkembangan teknologi baru (atau, jika Anda seorang pemula, segera lakukan sesuatu yang relevan, dan jangan belajar solusi yang sekarat) - daftar untuk salah satu kursus pemrograman Skillbox. Namun, area kami yang lain juga dapat berguna bagi Anda untuk memompa keterampilan yang terkait dan mulai memahami rekan kerja dan proses kerja dengan lebih baik.



Kasing? Saya memilikinya


Salah satu contoh paling cemerlang tentang apa yang dapat terjadi pada seseorang yang telah bekerja di bidang yang sama selama bertahun-tahun tanpa berkembang adalah situasi dengan pengembang Flash dan mereka yang memutuskan untuk memilih Flex, bahasa pemrograman interaktif berdasarkan Flash. Untuk waktu yang lama mereka "menunggang kuda" - sangat laris dan menerima banyak uang (dalam hal apa pun, lebih dari banyak spesialis TI lainnya). Kerja bagus, rasa hormat dari rekan kerja - apa lagi yang dibutuhkan seseorang untuk kebahagiaan?

Tetapi setelah beberapa waktu, dengan munculnya iPhone dan proklamasi oleh Steve Jobs dari slogan "Flash kami tidak akan mendukung," teknologi ini secara bertahap ditinggalkan. Seiring waktu, Apple mengikuti dan pengembang untuk platform lain.

Jelas bahwa semua ini tidak terjadi dengan sangat cepat, tetapi flash'er merasakan perubahan. Seseorang hampir segera mulai mencari area kerja baru dan belajar bahasa pemrograman lain. Yah, seseorang terus melakukan apa yang biasa dia lakukan, dan akhirnya tetap tidak bekerja sama sekali, karena tidak ada waktu untuk pelatihan ulang.

Masalah serupa dapat muncul di antara spesialis CMS Bitrix yang membuat situs dengan tipe yang sama berdasarkan pada sistem ini dan tidak mengalami kemajuan dalam apa yang semula mereka latih dalam pemrograman. Jika sesuatu terjadi dan Bitrix tidak lagi begitu populer, maka mantan "programmer" akan tetap tidak bekerja, karena mereka tidak mengembangkan keterampilan pengembangan mereka, tetapi melakukan hal yang sama untuk waktu yang lama.

Programmer polyglot atau spesialis profil sempit?


Ketika seorang programmer telah mencapai tingkat keterampilan tertentu, muncul pertanyaan: kemana harus pindah? Beberapa, setelah mendapatkan beberapa pengalaman dalam salah satu bahasa pemrograman, mulai mempelajari yang kedua, kemudian yang ketiga dan seterusnya.

Tetapi masalahnya adalah bahwa waktu kita adalah era spesialisasi yang sempit. Jumlah informasi yang perlu dipelajari dalam bahasa pemrograman mana pun sangat besar sehingga sangat sulit untuk menjadi spesialis dalam hal lain - mungkin tidak cukup waktu. Untuk mulai menulis dengan relatif baik dalam salah satu bahasa, Anda perlu tiga tahun (seseorang berbicara sekitar 10.000 jam). Tetapi untuk menjadi pro keren di bidang yang dipilih, dibutuhkan lebih banyak, lebih banyak waktu.

Ini tidak berarti sama sekali bahwa tidak ada programmer polyglot yang tahu 2, 3, 5 bahasa atau lebih. Memang, tetapi orang-orang seperti itu sangat jarang. Selain itu, pengetahuan tentang beberapa bahasa bukan jaminan bahwa seseorang akan sepenuhnya memahami segalanya. Tidak sama sekali: dalam banyak kasus, programmer hanya "mengambil dirinya sendiri" dan akan menganggap dirinya universal universal. Tapi beri dia tugas khusus - dan pengetahuannya mungkin tidak cukup untuk menyelesaikannya.

Lebih baik berpegang pada golden mean - sangat baik untuk memahami salah satu bahasa pemrograman, terutama, dan jika Anda ingin belajar sedikit dari yang lain, hanya untuk pengembangan umum. Keterampilan tambahan belum melukai siapa pun.

Apa tepatnya yang harus dipilih?


gambar

Untuk memilih arah yang tepat untuk pengembangan dan peningkatan, Anda harus sedikit visioner. Dengan kata lain, Anda perlu memahami teknologi dan bahasa pemrograman apa yang terkait dengannya akan menjadi populer dalam waktu dekat.

Yang terbaik adalah memilih area di mana tidak ada banyak profesional saat ini, dan mulai mengembangkan, mendapatkan pengalaman dan pengetahuan yang diperlukan sebagai profesional bahkan sebelum menjadi arus utama.

JavaScript adalah contohnya. Sekarang bahasa ini sangat populer, secara harfiah ada di bibir semua orang. Tetapi pada awal pengembangannya, JS adalah produk khusus. Mereka yang segera mulai berkembang di bidang ini telah menjadi spesialis yang dicari dan dicari oleh banyak orang (ya, bukan tanpanya). Sekarang semuanya tertulis di atasnya: frontend, backend, bahkan aplikasi seluler. Bahasa ini saja sudah cukup untuk mengetahui untuk menulis aplikasi dari kompleksitas yang paling beragam untuk menyelesaikan hampir semua tugas.

Cara yang baik untuk menangkap tren dalam bahasa pemrograman, kerangka kerja, dll. - melacak penggunaan alat-alat tertentu dalam produk-produk perusahaan besar. Jika suatu perusahaan mulai terlibat dalam produk niche, memperkenalkannya ke dalam produknya, maka ada baiknya mempertimbangkan mengapa. Jika ini bukan kecelakaan, maka kemungkinan besar itu bisa segera menjadi arus utama dalam pemrograman.

Tiga paus pemrograman modern: JavaScript, Python, Java


Jika kita sudah berbicara tentang pilihan, maka ada baiknya memberikan contoh spesifik. Jadi, bahasa Java Script dan Python saat ini adalah salah satu yang paling menjanjikan. Yang pertama adalah karena bersifat universal. Yang kedua adalah karena itu adalah salah satu yang paling sederhana (relatif) dan pada saat yang sama bahasa yang populer untuk dikuasai: proyek-proyek dari bidang pembelajaran mesin, jaringan saraf, AI ditulis di atasnya. Dengan Python, yang ditulis secara keseluruhan atau sebagian, berbagai produk Dropbox, Google dan Yandex.

Java juga tetap merupakan bahasa universal yang digunakan, khususnya, untuk menulis aplikasi untuk Android.

Bagaimana cara menjadi guru?


Pada prinsipnya, ini tidak terlalu sulit. Hal utama adalah pemahaman tentang dasar-dasar, pikiran yang fleksibel, ketekunan dan PRAKTEK. Ya, itu adalah modal. Faktanya adalah bahwa tidak ada teori, tidak peduli bagaimana Anda mempelajarinya, akan membantu untuk menjadi seorang profesional jika tidak ada pengalaman praktis. Ini seperti dalam bahasa yang digunakan orang berbicara: Anda dapat menghafal ratusan kata asing, membaca aturan tata bahasa, tetapi jika Anda tidak berbicara dan menulis, semua ini masuk ke dalam kepasifan, dan lama kelamaan itu benar-benar dilupakan.

Oleh karena itu, ada dua rekomendasi utama bagi mereka yang ingin meningkatkan di bidang yang mereka pilih:

  • Baca kode orang lain.
  • Tulis kode Anda.

Tips ini dapat digunakan dalam urutan apa pun - tidak akan ada salahnya, hanya manfaatnya. Mengapa Semakin banyak produk yang Anda buat, kode yang Anda tulis, semakin banyak latihan. Masalah tertentu dipecahkan, prinsip kerja sedang dikembangkan, dan keterampilan sedang dibentuk. Dalam hal ini, Anda perlu mem-parsing kode orang lain. Untuk seorang pemula, ini perlu hanya karena dia tahu sedikit, dan, membaca apa yang telah ditulis orang lain, junior akan dapat memahami apa dan bagaimana cara kerjanya. Untuk menengah, parsing kode orang lain memungkinkan Anda untuk menemukan solusi yang berhasil untuk masalah yang terjadi ketika mengembangkan produk tertentu. Nah, untuk senior, ini, pertama, mencari kesalahan dalam kode orang lain dan membantu mereka, dan kedua, perbaikan diri. β€œAkan selalu ada orang Asia yang melakukan sesuatu yang lebih baik dari Anda” adalah meme yang terkenal, tetapi ia adil, dan tidak hanya berkenaan dengan orang Asia. Mempelajari kode orang lain, Anda dapat menemukan solusi yang elegan untuk masalah apa pun yang Anda harus gunakan "kruk" sebelumnya.

gambar

Sekarang ada layanan yang bisa disebut Twitch untuk programmer. Salah satunya adalah livecoding.tv. Programmer yang terdaftar pada sumber daya menulis program mereka sendiri dengan demonstrasi kode secara real time.

Dan, tentu saja, kita juga membutuhkan teori. Untuk mengisi cadangan pengetahuan, Anda perlu banyak membaca, dan tidak hanya dalam pemrograman, tetapi juga dalam disiplin ilmu terkait.

Sebagai kesimpulan, kita dapat mengingat kutipan dari "Alice in Wonderland" (bahkan anak-anak prasekolah mengetahuinya, ya, tapi itu tidak meniadakan nilai pernyataan itu): "Kita harus berlari secepat hanya untuk tetap di tempat, tetapi untuk mencapai suatu tempat, kita harus lari setidaknya dua kali lebih cepat! " Bahkan, di dunia teknologi yang serba cepat, Anda harus melakukan upaya yang kuat untuk tetap menjadi programmer yang baik. Dan untuk menjadi lebih baik, Anda perlu bekerja dan belajar dua kali, jika tidak tiga kali lebih banyak.

Source: https://habr.com/ru/post/id415509/


All Articles