Satu bahasa untuk memerintah mereka semua

Tersembunyi di bawah lapisan kod, bahasa merana, rindu untuk dipelajari.

Satu bahasa untuk memerintah mereka semua

Sehingga penulisan ini, pertanyaan "memprogram bahasa mana yang perlu dipelajari dahulu" mengembalikan 517 juta hasil carian. Setiap tapak ini akan memuji satu bahasa tertentu, dan 90% daripadanya akan mengesyorkan Python atau JavaScript.

Tanpa berlengah lagi, saya ingin menyatakan bahawa kesemua 517 juta laman web ini adalah salah dan bahasa yang perlu anda pelajari dahulu ialah logik asas.

Hanya mengetahui cara membuat kod tidak mencukupi. Pasaran begitu tepu dengan graduan institut dan kursus sehingga kedudukan junior hampir tidak lagi wujud*. Untuk berjaya dalam dunia hari ini, anda mesti kod dan mempunyai pemikiran logik asas yang maju.

*selepas ini, sila ingat bahawa ini adalah terjemahan, dan situasi di pasaran buruh untuk pengarang dan di negara anda mungkin berbeza (serta nuansa lain), yang, bagaimanapun, dengan sendirinya tidak memburukkan artikel asal - lebih kurang terjemahan

Pelajaran sains komputer pertama saya

Pendedahan pertama saya kepada sains komputer ialah elektif yang saya ambil dalam gred 10. Pada hari pertama, memasuki kelas, saya sangat gembira melihat di hadapan saya sejumlah besar baldi aiskrim dan pelbagai topping. Selepas semua orang duduk, guru mengumumkan:

“Hari ini kami akan merasai aiskrim yang disediakan sendiri. Tetapi dengan satu syarat: anda mesti membuat senarai arahan khusus tentang cara menyediakan pencuci mulut, dan saya akan mengikutinya."

“Tiada masalah,” saya fikir, “pelajaran ini tidak akan lama lagi.” Dalam masa seminit atau lebih saya telah mencatatkan resipi yang sempurna untuk aiskrim impian saya:

  1. Senduk dan letak tiga sudu ais krim raspberi ke dalam mangkuk
  2. Buka sos coklat dan masukkan dua sudu besar ke dalam mangkuk yang sama
  3. Masukkan krim putar ke dalam mangkuk
  4. Taburkan semuanya dengan batang gula dan letakkan ceri di atasnya

Guru saya—“komputer” dalam metafora comel itu—mempamerkan persembahan yang lebih sarkastik dan literal daripada yang pernah saya lihat sebelum ini. Dia mula bersungguh-sungguh mencucuk baldi aiskrim dengan sudu tanpa menyentuh penutupnya.

“Baiklah, okey, tetapi anda perlu membukanya dahulu!” - Saya berseru, cuba mendapatkan rawatan secepat mungkin.

"Anda tidak menulis ini dalam arahan, dan saya tidak boleh membuat ais krim untuk anda. SETERUSNYA!"

Mari cepat ke hadapan untuk mencuba #2

  1. Buka ais krim raspberi dengan menanggalkan penutup
  2. Senduk dan letak tiga sudu ais krim raspberi ke dalam mangkuk
  3. Buka sos coklat dan masukkan dua sudu besar ke dalam mangkuk yang sama
  4. Masukkan krim putar ke dalam mangkuk
  5. Taburkan semuanya dengan batang gula dan letakkan ceri di atasnya

Nah, sekarang sudah pasti tidak ada masalah. Untuk berjaga-jaga, saya memastikan semua bahan untuk membuat karya kulinari saya terbuka.

Guru membuka penutup, mencedok dan meletakkan tiga sudu aiskrim ke dalam mangkuk. “Akhirnya, aiskrim cantik saya telah mula menjadi kenyataan!” Dia kemudian membuka sos coklat dan menambah dua sudu besar ke dalam mangkuk. Dia tidak "menambah sos coklat dari dua sudu besar" - jangan fikir begitu - dia, sudah tentu, meletakkan sudu itu sendiri ke dalam mangkuk. Tiada sos di dalamnya. Sekali lagi, saya tidak bersusah payah untuk menulis semuanya dengan tepat. Selepas selebihnya dilakukan dengan semangat yang sama, saya menerima semangkuk ais krim dan dua sudu besar, hampir tidak kelihatan di bawah lautan krim disebat. Di atas adalah sepasang batang gula.

Nampaknya pada masa ini saya akhirnya menyedari: komputer adalah logik dalam vakum. Dia tidak menyedari keadaan sekeliling dan tidak membuat andaian. Dia hanya melaksanakan arahan yang dirumus dengan jelas dan mengikutnya perkataan demi perkataan.

Keputusan akhir saya adalah hasil daripada siri percubaan dan kesilapan yang panjang tetapi perlu:

  1. Jika anda belum berbuat demikian, buka setiap pakej berikut: ais krim raspberi, sos coklat, krim putar, batang gula.
  2. Keluarkan mangkuk dan letakkan di hadapan anda
  3. Ambil senduk ais krim dan letak tiga sudu ais krim raspberry satu persatu ke dalam mangkuk. Letakkan semula sudu aiskrim di tempatnya.
  4. Ambil balang sos coklat, cedok sos dan tuangkan kandungan sesudu besar ke dalam mangkuk. Ulangi proses mencedok dan menuang sekali lagi. Letakkan semula sudu dan balang di tempatnya.
  5. Ambil bungkusan krim putar terbalik dan, pegang di atas mangkuk, tuangkan ke atas ais krim selama 3 saat, kemudian kembalikan bungkusan itu ke tempatnya.
  6. Ambil balang batang gula, tuangkan kira-kira empat puluh batang ke dalam mangkuk dan letakkan kembali balang.
  7. Ambil sebiji ceri dari mangkuk ceri dan letakkan di atas ais krim.
  8. Beri pelajar mangkuk dengan aiskrim siap dan sudu.

Perkara terakhir adalah sangat penting, kerana tanpa itu, masa kedua terakhir guru hanya mula makan aiskrim saya.

Tetapi ini adalah pengaturcaraan. Tekanan mencipta set arahan yang teliti untuk komputer. Pada asasnya, inilah yang menjadi dasar setiap bahasa pengaturcaraan - menulis arahan.

Kerjaya dalam pengaturcaraan

Pengaturcaraan telah mencapai tahap yang sukar untuk dibincangkan sebagai satu industri, sama seperti sukar untuk menggunakan satu perkataan "pengaturcara" sebagai huraian kerja. Dua pembangun boleh mendapat permintaan yang sama oleh pasaran, mengetahui bahasa yang sama sekali berbeza, yang bermaksud bahawa keupayaan untuk membangun adalah lebih penting daripada pengetahuan tentang bahasa tertentu. Atribut universal yang dikongsi oleh semua pembangun yang berjaya ialah logik asas.

Pengaturcara terbaik ialah orang yang mampu melihat kod dari sudut yang baru. Dan ini pada asasnya penting, kerana kebanyakan produk perisian adalah koleksi serpihan kod buruk yang tidak didokumenkan. Mereka sentiasa perlu dibawa bersama, mengisi jurang yang diperlukan. Orang yang tidak dapat menyambungkan titik-titik yang berbeza dengan satu baris perlu sentiasa berada di luar talian.

Semua ini membawa saya kepada satu lagi pengisytiharan, kali ini dalam huruf tebal: pengetahuan asas sentiasa dan akan menjadi yang terpenting bagi seorang pengaturcara.

Bahasa datang dan pergi. Rangka kerja menjadi usang, dan syarikat bertindak balas terhadap permintaan dengan menukar tindanan teknologi yang mereka gunakan. Adakah terdapat satu perkara yang tidak akan berubah? Ya - pengetahuan asas, yang dipanggil asas kerana ia mendasari segala-galanya!

Bagaimana untuk meningkatkan pengetahuan asas

Satu bahasa untuk memerintah mereka semuaFoto oleh Christopher Jeschke pada Unsplash

Jika anda sedang mencari titik permulaan untuk meningkatkan pemikiran logik asas anda, cuba mulakan di sini:

Ketahui kerumitan program anda

Juga dipanggil Big O "kerumitan algoritma" merujuk kepada pergantungan masa yang diperlukan untuk melaksanakan program pada saiz data inputnya (n). Menjaga jari anda pada nadi algoritma yang digunakan adalah langkah penting.

Ketahui struktur data anda

Struktur data berada di tengah-tengah setiap program moden. Mengetahui struktur mana yang hendak digunakan dalam hal ini adalah satu disiplin yang tersendiri. Struktur data berkaitan secara langsung dengan kerumitan masa jalan, dan memilih struktur yang salah boleh membawa kepada masalah prestasi asas. Mencari elemen dalam tatasusunan ialah O (n), yang menunjukkan kos tinggi untuk menggunakan tatasusunan sebagai data input. Carian jadual hash − O (1), yang bermaksud bahawa dalam kes ini masa untuk mencari nilai tidak bergantung pada bilangan elemen.

Orang datang kepada saya untuk temu bual dan mendakwa bahawa mencari melalui tatasusunan adalah lebih pantas daripada mencari melalui jadual cincang. Ini adalah tanda paling pasti bahawa anda tidak sepatutnya mengupah mereka - ketahui struktur data anda.

Baca / tonton / dengar

Tapak seperti UdemyPluralsight и CodeAcademy - Pilihan terbaik untuk mempelajari bahasa pengaturcaraan baharu. Tetapi untuk perkara asas, rujuk buku tentang prinsip pengekodan umum, amalan dan gaya. Buku yang paling disyorkan ialah "Corak Reka Bentuk", "Pemfaktoran Semula. Memperbaiki Kod Sedia Ada", "Kod Sempurna", "Kod Bersih" dan "Pengaturcara Pragmatis". Akhir sekali, setiap pembangun harus menyimpan salinan "Algoritma" di tangan.

Berlatih!

Anda tidak boleh memasak telur hancur tanpa memecahkan telur. Tapak seperti Kedudukan HackerCodeWarsCoderByte, TopCoder и LeetCode menawarkan beribu-ribu teka-teki yang menarik untuk menguji pengetahuan anda tentang struktur data dan algoritma. Cuba nasib anda dalam menyelesaikan masalah yang anda suka, siarkan penyelesaian anda pada Github, dan kemudian lihat cara orang lain mendekatinya. Yang membawa kita ke titik terakhir:

Baca kod orang lain

Kesilapan terbesar yang boleh anda lakukan semasa menyusuri laluan pembangunan adalah dengan melakukannya sendiri. Pembangunan perisian sebahagian besarnya adalah usaha pasukan. Kami mencipta standard bersama-sama, membuat kesilapan bersama-sama dan, walaupun semua kegagalan, menjadi lebih baik bersama-sama. Masa yang dihabiskan untuk membaca kod orang lain akan membuahkan hasil yang lumayan. Hanya pastikan ia kod yang baik.

Nah, nasihat terbaik yang boleh saya berikan ialah jangan pernah malu kerana anda belum mengetahui sesuatu. Seperti yang telah dikatakan, industri kami adalah besar dan jumlah teknologi tidak berkesudahan. Ia memerlukan banyak masa dan usaha untuk membina gambaran keseluruhan, lebih-lebih lagi untuk menjadi seorang profesional dalam sesuatu yang khusus, dan susunan magnitud yang lebih untuk mengasah kemahiran anda dalam bidang anda. Saya akan memberitahu anda apabila saya mencapai ini sendiri.

Sumber: www.habr.com

Tambah komen