Kita semua berkait rapat dengan pengaturcaraan, baik itu sebagai pengguna, sebagai pentadbir, sebagai pengaturcara itu sendiri, tetapi pada akhirnya ia adalah sesuatu yang akan lebih berkaitan dengan kehidupan kita seiring bertahun-tahun.
Dalam artikel ini (permulaan siri kecil yang saya rancangkan untuk dibuat), saya ingin berkongsi dengan anda beberapa konsep tentang perkara yang telah saya temui tentang pengaturcaraan selama ini. Saya tidak cuba terlalu teknikal, saya akan menerangkan mengapa kemudian. Tetapi apa yang saya berniat adalah untuk membuatkan anda melihat dunia dengan mata saya, dan jika anda menyukai rupanya, maka pergilah lebih mendalam ke dalamnya ļ
Saya akan menyerang titik paling mudah terlebih dahulu sebelum memperincikannya.
Mengapa saya tidak akan membuat jawatan teknikal?
Baik untuk mereka yang telah membaca catatan saya mengenai arahan linux terbaik, anda akan mengetahui sedikit mengenai punca tumpuan ini. Teknologi sentiasa berubah, dan jika saya menulis sesuatu hari ini, jika catatan itu diterima dengan baik, saya akan sentiasa mengemas kini maklumat. Dalam bahasa yang paling biasa sekarang ini, satu-satunya perkara yang pasti adalah perubahan. Maksud saya ini (dan pengaturcara dapat membuktikan saya betul) kerangka kerja selalu berkembang dan dimodifikasi dari intinya, ini kerana kesilapan timbul, ada yang boleh dianggap sederhana pepijat, sementara yang lain mungkin menjadi kelemahan. Inilah sebab mengapa menulis siaran tentang bahasa tertentu, hari ini, akan menjamin saya mungkin beberapa bulan berguna, paling baik satu atau dua tahun, tetapi itu bukan idea ļ
Elektrik adalah penting
Anda yang telah membuat sedikit kajian mengenai bahasa pengaturcaraan perisian terendah akan mengetahui bahawa semuanya bermula dari elektrik. Pada masa lalu, pengaturcaraan dilakukan di tingkat perkakasan, ini berarti bahawa jam lama, kalkulator, dan banyak peranti lain, dapat memenuhi nasib mereka dengan memprogram dengan perkakasan.
Masalahnya
Menukar pengaturcaraan perkakasan adalah mahal dan rumit ļ (sekurang-kurangnya itu yang mereka beritahu saya ļ ). Inilah sebabnya mengapa pemproses muncul, yang sebenarnya mengaburkan lapisan perkakasan untuk memberi kita beberapa perintah agar dapat melakukan semua yang mungkin melalui perkakasan, hanya sekarang di lapisan perkakasan. perisian.
Pemproses
Pemproses hari ini mempunyai sebilangan fungsi yang dipanggil arahan dalam banyak buku. Ini membolehkan anda melakukan fungsi paling asas yang dapat dilakukan oleh perkakasan, dan untuk menggerakkan maklumat melalui memori komputer.
Daftar
Daftar adalah ruang di mana pemproses menyimpan maklumat untuk dapat melakukan pekerjaan pada kernel, bergantung pada arsitektur mereka dapat memiliki ukuran dan susunan yang berbeda, tetapi dengan cara yang mudah, fungsinya adalah untuk menyimpan data yang memberitahu pemproses salah satu jenis pekerjaan berikut: memindahkan data, aritmetik dan logik, dan kawalan aliran. Segala-galanya dapat disimpulkan dalam jenis fungsi ini.
Binario
Pemproses berfungsi pada tahap binari, ini bermakna mereka hanya memahami 0sy 1s ļ . Fakta yang ingin tahu di sini ļingat kebenaran GNU / Linux? baik,pernahkah anda terfikir bagaimana pemproses benar-benar mengenali kebenaran tersebut? Perduaan ļ mudah. Pada tahap paling rendah, pemproses akan memahami kebenaran sebagai urutan 0s dan 1s, dan itulah sebabnya oktal yang kita bentuk mempunyai nilai 1 untuk pelaksanaan, 2 untuk membaca dan 4 untuk menulis. Bagi mereka yang boleh membaca binari, mereka akan memahami bahawa:
111100101111
Mereka meletakkan kebenaran membaca, menulis dan melaksanakan kebenaran untuk kumpulan itu lain sambil meletakkan persembahan dan membaca untuk kumpulan kumpulan dan baca hanya untuk pemilik fail. Untuk yang paling ingin tahu, tiga 1s terakhir mengaktifkan setguid, setuid dan sticky bit. Jika anda tidak tahu apa itu binari, saya boleh menerangkannya dalam catatan lain, jika anda tidak tahu setuid, setgid dan bit yang melekit, maka saya akan menyerahkannya kepada kerja rumah anda ļ tetapi saya juga boleh menerangkannya di tempat lain jika perlu.
Apabila rasa ingin tahu memanggil ...
Sekiranya anda mengikuti saya di sini, maka rasa ingin tahu anda akan mula bertanya banyak perkara, yang pertama saya ingin jawab (dan mungkin satu-satunya yang dibenarkan oleh siaran ini kerana saya sudah banyak menulis) adalah: Sekiranya panggilannya sama, mengapa programnya berbeza?
Psikologi
Pengaturcaraan ialah seni belajar membaca minda ļ Saya ingin memulakan bahagian ini dengan petikan yang saya baca sebentar tadi, Edsger Dijkstra berkata:
Sekiranya debugging adalah proses debugging, maka pengaturcaraan mestilah proses memperkenalkannya
Dan saya tidak dapat mencari cara yang lebih baik untuk menerangkan semua ini ļ Mengapa pengaturcaraan seni memperkenalkan ralat? Lebih daripada satu akan bertanya pada masa ini. Jawapannya mudah, kerana fikiran kita adalah manusia, dan manusia melakukan kesilapan ļ ia adalah fitrah kita, dan ia akan berada di sana selagi manusia wujud di planet ini.
Komputer tidak salah
Kita adalah orang yang melakukan kesilapan, pasukan akan selalu mengehadkan diri untuk menghasilkan semula apa yang kita katakan kepada mereka, mereka tidak menganggap apa-apa, mereka tidak menafsirkan apa-apa, mereka tidak membantah apa-apa, mereka hanya membaca dan bertindak. Oleh itu, dalam buku C lain saya pernah membaca seperti ini:
C adalah bahasa yang tidak sopan, anda boleh melakukan banyak perkara dengannya, tetapi ia tidak akan menghalang anda untuk menembak diri sendiri jika anda mahu melakukannya, atau demikian anda memaklumkannya.
Ini adalah kebenaran yang agak ingin tahu ļ Memandangkan apabila bekerja pada tahap yang begitu rendah, ada kemungkinan bahawa banyak operasi yang dilakukan boleh merosakkan, sesuatu yang tidak berlaku dengan bahasa pada tahap yang lebih tinggi sedikit, kerana lapisan pencegahan ralat Mereka lebih tua .
Segala-galanya adalah psikologi
Setiap bahasa, kerangka, pengaturcara, menghormati dan mengikuti semacam filosofi, dan jika tidak, ia tidak memiliki masa depan yang sangat menjanjikan. Bagi kita yang menggunakan UNIX dan derivatif mungkin akan mengetahui ungkapan lama:
Lakukan satu perkara, dan lakukan dengan baik.
Falsafah ini adalah yang diikuti oleh beberapa projek seperti kernel, fungsi yang cukup kecil yang hanya melakukan satu perkara, tetapi lakukan dengan sebaik mungkin.
Sekiranya kita pergi ke bahasa lain, masing-masing akan mempunyai fungsi dan objektif, ada yang lebih permis dan yang lain lebih membatasi, tetapi semuanya mengikut cara pemikiran mereka sendiri.
Belajar membaca minda
Terdapat pepatah yang agak biasa di kalangan pengaturcara bahawa terdapat beratus-ratus cara untuk menyelesaikan masalah yang sama. Ini benar, tetapi ada sesuatu yang lebih mendalam tentang aspek ini. Membaca kod sumber membolehkan anda membaca fikiran ļ bukan sebarang fikiran, tetapi pengaturcara (atau pengaturcara) yang menulisnya. Ia adalah sejenis diari maya yang mendalam ļ membolehkan anda mengetahui secara mendalam fikiran pembangun, dan dalam kes projek yang meluas, ia membolehkan anda melihat bagaimana pemikiran logik dan kritis mereka telah berkembang dari semasa ke semasa. Sesuatu yang luar biasa dan sangat menyuburkan minda anak bongsu, kerana anda boleh belajar tentang laluan terbaik daripada orang yang terpaksa menemuinya ļ
Untuk konsisten
Banyak pengaturcara dan pakar mengatakan bahawa kita harus keluar dari kita zon selesa, dan walaupun memang benar, perlu untuk mengekalkan proses dan format tertentu. Ini mudah dijelaskan, fikiran kita berulang-ulang dan menghormati struktur, jika anda menulis kod dengan cara yang sama setiap hari, dalam masa yang singkat anda akan berhenti memikirkan bentuknya dan anda akan dapat menumpukan perhatiannya. dana. Ini membolehkan anda melihat logik daripada program dan bukannya sintaksis bahasa. Dan inilah sebab mengapa saya menganggap bahawa belajar konsep akan selalu menjadi lebih penting daripada belajar bentuk-bentuknya. Ini adalah pendapat peribadi, tetapi saya harap selepas membaca semua ini anda dapat memahami mengapa saya menganggapnya seperti ini ļ dan ini dikatakan oleh seseorang yang terpaksa memprogram dalam C, Java, Javascript, Python, Ruby, PHP, dan yang lain ļ mengetahui konsep menjadikannya lebih mudah untuk menulis kod.
Pendek kata
Nah, ini adalah langkah pertama dalam siri yang saya harap akan membantu anda berfikir secara berbeza tentang seni pengaturcaraan, malah menjemput anda untuk menyelidiki konsep yang membolehkan anda melaksanakan kod yang telah anda tulis mungkin beratus-ratus kali, tetapi mereka tidak berhenti untuk memikirkan apa sebenarnya yang dilakukannya. Dan bagi mereka yang belum memulakan pengaturcaraan, tetapi ingin dapat memberi keutamaan sedikit tentang perkara yang benar-benar penting untuk diketahui ļ Salam