Tersembunyi di bawah lapisan kode merana bahasa yang ingin dipelajari.
Pada saat penulisan ini, permintaan "pemrograman bahasa mana yang harus dipelajari pertama" menghasilkan 517 juta hasil pencarian. Masing-masing situs akan memuji satu bahasa tertentu, dan 90% dari mereka pada akhirnya akan merekomendasikan Python atau JavaScript.
Tanpa pengantar lama, saya ingin secara resmi menyatakan bahwa semua 517 juta situs ini salah dan menyatakan bahwa bahasa yang harus dipelajari terlebih dahulu adalah logika dasar .
Hanya mengetahui cara kode tidak cukup. Pasar begitu jenuh dengan lulusan lembaga dan kursus sehingga posisi junior hampir tidak ada *. Untuk berhasil di dunia saat ini, Anda harus memiliki kode dan memiliki pemikiran logis yang maju.
* selanjutnya, harap diingat bahwa ini adalah terjemahan, dan situasi di pasar tenaga kerja untuk penulis dan di negara Anda mungkin berbeda (seperti nuansa lainnya), yang, bagaimanapun, tidak dengan sendirinya membuat artikel aslinya lebih buruk - kira-kira. perev.
Pelajaran ilmu komputer pertama saya
Kenalan pertama saya dengan ilmu komputer adalah pilihan, yang saya ambil di kelas 10. Pada hari pertama, pergi ke audiensi, saya senang melihat sejumlah besar ember es krim dan berbagai topping di depan saya. Setelah semua orang duduk, guru itu menyatakan:
βHari ini kita akan mencicipi es krim yang disiapkan sendiri. Tetapi dengan satu syarat: Anda harus membuat daftar instruksi spesifik tentang cara menyiapkan makanan penutup, dan saya akan mengikuti mereka. "
Tidak masalah, saya pikir, pelajaran ini tidak akan lama. Sekitar satu menit kemudian, saya membuat sketsa resep hebat untuk es krim impian saya:
- Angkat dan masukkan tiga bola es krim raspberry ke dalam mangkuk
- Buka saus cokelat dan tambahkan dua sendok makan ke mangkuk yang sama.
- Tambahkan krim kocok ke mangkuk
- Taburkan semuanya dengan tongkat gula dan letakkan ceri di atasnya
Guru saya, "komputer" dalam metafora yang bagus ini, memainkan pertunjukan literal yang lebih sarkastik daripada yang pernah saya lihat sebelumnya. Dia mulai dengan bersemangat menyodok ember es krim dengan sendok untuk bola, bahkan tanpa menyentuh tutupnya.
"Bagus, bagus, tapi pertama-tama kamu harus membukanya!" - Saya berseru, berusaha mendapatkan hadiah sesegera mungkin.
"Kau tidak menulis ini dalam instruksi, tapi aku tidak bisa membuatkanmu es krim. BERIKUTNYA! β
Kami melewatkan waktu sebelum upaya No. 2
- Buka es krim raspberry dengan melepas tutupnya.
- Angkat dan masukkan tiga bola es krim raspberry ke dalam mangkuk
- Buka saus cokelat dan tambahkan dua sendok makan ke mangkuk yang sama.
- Tambahkan krim kocok ke mangkuk
- Taburkan semuanya dengan tongkat gula dan taburkan ceri di atasnya
Nah, sekarang pastinya tidak ada masalah. Untuk berjaga-jaga, saya memastikan bahwa semua bahan untuk membuat karya kuliner saya terbuka.
Guru membuka tutupnya, mengambil dan meletakkan tiga bola es krim ke dalam mangkuk. "Akhirnya, es krimku yang indah mulai diwujudkan dalam kenyataan!" Lalu dia membuka saus cokelat dan menambahkan dua sendok makan ke mangkuk. Anda tidak "menambahkan saus cokelat dari dua sendok makan" - Anda tidak berpikir - dia, tentu saja, memasukkan sendok sendiri ke dalam mangkuk. Tidak ada saus di dalamnya. Sekali lagi, saya tidak repot-repot mengecat semuanya dengan pasti. Setelah sisanya dilakukan dengan semangat yang sama, saya mendapatkan mangkuk berisi es krim dan dua sendok makan, hampir tidak terlihat di bawah lautan krim kocok. Di atas adalah sepasang batang gula.
Tampaknya pada saat ini saya akhirnya menyadari: komputer adalah logika dalam ruang hampa. Dia tidak tahu tentang keadaan di sekitarnya dan tidak membuat asumsi. Dia hanya mengikuti instruksi yang dirumuskan dengan jelas dan mengikutinya kata demi kata.
Hasil akhir saya adalah hasil dari serangkaian trial and error yang panjang namun perlu:
- Buka, jika belum dilakukan, masing-masing paket berikut: es krim raspberry, saus cokelat, krim kocok, tongkat gula.
- Keluarkan mangkuk dan letakkan di depan Anda
- Ambil sendok untuk es krim dan satu per satu masukkan tiga bola es krim raspberry ke dalam mangkuk. Taruh sendok es krim di tempatnya.
- Ambil sebotol saus cokelat, ambil sausnya dan tuangkan isi satu sendok makan ke dalam mangkuk. Ulangi dengan meraup dan menuangkan saus sekali lagi. Taruh sendok dan toples di tempatnya.
- Ambil dan balikkan paket whipped cream terbalik dan, pegang di atas mangkuk, tuangkan es krim ke atasnya selama 3 detik, lalu kembalikan paket ke tempatnya.
- Ambil sekaleng tongkat gula, taburkan sekitar empat puluh batang ke dalam mangkuk dan letakkan kaleng di tempatnya.
- Ambil satu buah ceri dari semangkuk ceri dan letakkan di atas es krim.
- Berilah siswa mangkuk dengan es krim dan sendok yang disiapkan.
Poin terakhir sangat penting, karena tanpanya, saat terakhir, guru mulai memakan es krim saya.
Tapi ini pemrograman. Membuat serangkaian instruksi untuk komputer dengan penuh tekanan. Pada dasarnya, inilah yang menjadi dasar setiap bahasa pemrograman - penulisan instruksi.
Pemrograman Karier
Pemrograman telah mencapai titik di mana sulit untuk membahasnya sebagai industri tunggal, seperti halnya sulit untuk menggunakan kata tunggal "programmer" sebagai deskripsi pekerjaan. Dua pengembang dapat dituntut oleh pasar, mengetahui bahasa yang sama sekali berbeda, yang berarti bahwa kemampuan untuk berkembang lebih penting daripada pengetahuan tentang bahasa tertentu. Atribut universal yang umum untuk semua pengembang yang sukses adalah logika dasar .
Programmer terbaik dapat melihat kode dari sudut pandang baru. Dan ini pada dasarnya penting, karena sebagian besar produk perangkat lunak adalah kumpulan potongan kode buruk yang tidak berdokumen. Mereka terus-menerus perlu disatukan, menutup celah yang diperlukan. Orang-orang yang tidak dapat menghubungkan titik-titik yang tersebar dalam satu baris harus selamanya berada di sela-sela.
Semua ini menuntun saya ke deklarasi lain, kali ini bolde: pengetahuan dasar selalu dan akan menjadi yang terpenting bagi programmer .
Bahasa datang dan pergi. Kerangka kerja menjadi usang, dan perusahaan merespons permintaan dengan mengubah tumpukan teknologi yang digunakan. Apakah ada hal yang tidak akan pernah berubah? Ya - pengetahuan mendasar, itulah mengapa disebut fundamental, yang mendasari segalanya!
Cara meningkatkan pengetahuan mendasar
Foto oleh Christopher Yeshke di UnsplashJika Anda mencari titik awal untuk meningkatkan pemikiran logis mendasar Anda, coba mulai di sini:
Ketahui kompleksitas program Anda
Juga disebut Big O, "kompleksitas algoritma" mengacu pada ketergantungan waktu yang diperlukan untuk menjalankan suatu program pada ukuran data inputnya (n) . Mengikuti perkembangan algoritma yang digunakan adalah langkah penting.
Ketahui struktur data Anda
Struktur data adalah inti dari setiap program modern. Mengetahui struktur mana yang digunakan dalam hal ini adalah disiplin yang independen. Struktur data secara langsung terkait dengan kompleksitas runtime dan memilih struktur yang salah dapat menyebabkan masalah kinerja mendasar. Pencarian elemen dalam array adalah O (n) , yang menunjukkan tingginya biaya penggunaan array sebagai input. Pencarian dalam tabel hash adalah O (1) , yang berarti bahwa dalam hal ini waktu pencarian untuk nilai tidak tergantung pada jumlah elemen.
Orang-orang datang kepada saya untuk wawancara yang mengklaim bahwa lebih cepat untuk mencari dengan array daripada dengan tabel hash. Itu adalah tanda paling pasti bahwa Anda tidak boleh mempekerjakan mereka - ketahui struktur data Anda.
Baca / Tonton / Dengar
Situs- situs seperti Udemy , Pluralsight , dan CodeAcademy adalah pilihan bagus untuk mempelajari bahasa pemrograman baru. Tetapi untuk dasar-dasarnya, periksa buku-buku tentang prinsip-prinsip umum, praktik, dan gaya penulisan kode. Buku-buku yang paling direkomendasikan adalah Pola Desain, Refactoring. Meningkatkan Kode yang Ada "," Kode Sempurna "," Kode Bersih "dan" Pragmatis Programmer ". Akhirnya, setiap pengembang harus menyimpan salinan " Algoritma " di tangan.
Berlatih!
Anda tidak akan bisa memasak telur goreng tanpa memecahkan telur. Situs- situs seperti HackerRank , CodeWars , CoderByte , TopCoder, dan LeetCode menawarkan ribuan tugas menarik untuk menguji pengetahuan Anda tentang struktur data dan algoritma. Cobalah keberuntungan Anda untuk menyelesaikan masalah yang Anda sukai, poskan versi Anda di Github, dan kemudian lihat bagaimana orang lain mendekatinya. Yang membawa kita ke titik terakhir:
Baca kode orang lain
Kesalahan terbesar yang hanya bisa dilakukan dengan mengikuti jalur pengembangan adalah membuat jalur ini sendiri. Pengembangan perangkat lunak sebagian besar merupakan kerja tim. Bersama-sama kita menciptakan standar, membuat kesalahan bersama, dan, terlepas dari semua kegagalan, kita menjadi lebih baik bersama. Waktu yang dihabiskan untuk membaca kode orang lain akan terbayar dengan baik. Pastikan ini adalah kode yang baik.
Nah, saran terbaik yang bisa saya berikan adalah jangan pernah malu bahwa Anda belum tahu sesuatu. Seperti yang telah disebutkan, industri kami sangat besar, dan jumlah teknologinya sangat besar. Dibutuhkan banyak waktu dan upaya untuk membangun gambaran keseluruhan, bahkan lebih untuk menjadi seorang profesional dalam sesuatu yang spesifik, dan urutan besarnya lebih untuk mengasah keterampilan di bidang Anda. Saya akan memberi tahu Anda kapan saya akan mencapai ini sendiri.