Bahasa pemrograman terbaik untuk pemula

Saya selalu tertarik pada ide-ide berbeda tentang belajar pemrograman. Mungkin ini karena saya tetap menjadi siswa abadi di bidang ini. Tapi hari ini saya berkenalan dengan satu ide yang tidak terduga untuk saya - untuk mulai belajar dengan Java. Dan saya tidak bisa diam.

Saya bukan spesialis pedagogi yang hebat - mungkin dalam ilmu komputer adalah kebiasaan untuk melempar siswa ke dalam air, memilih tempat yang lebih dalam, dan di sana - mereka yang ditakdirkan untuk datang. Tetapi bagi saya masih terasa bahwa pelatihan akan paling efektif jika guru memperkenalkan siswa pada berbagai konsep pemrograman satu per satu, seiring meningkatnya kompleksitas. Oleh karena itu, persyaratan utama untuk PL "pelatihan" adalah kemampuan untuk menggunakan fitur Anda secara terpisah, dimulai dengan yang paling dasar.

Sekali lagi, menurut pendapat amatir saya, mudah untuk memeriksa apakah bahasa pemrograman memenuhi persyaratan ini. Cukup buka bagian "Hello World" pada Rosetta Code .

Mari kita coba daftar konsep yang diperlukan untuk memahami program-program dasar ini.

Ini dilengkapi atas permintaan pendengar radio. Brainfuck, PHP, C, Julia.


Python 2


print 'Hello world!' 


Saat mem-parsing kode ini, guru setidaknya harus menjelaskan secara singkat kepada siswanya apa kata kunci , operator, dan tipe data string . Tentu saja, bahkan tanpa penjelasan seperti itu, beberapa siswa (tetapi tidak semua!) Dapat dengan cepat mengembangkan pemahaman intuitif tentang fitur-fitur ini. Namun, lebih baik segera mencapai kepastian.

Ruthon 3


 print('Hello world!') 


Konsep fungsi ditambahkan ke kata kunci dan baris . Ya, fungsi print merupakan nilai tambah dari Python 3 sebagai bahasa industri. Tetapi pada saat yang sama, suatu fungsi adalah fitur level yang lebih tinggi daripada operator, dan ini mempersulit studi tentang Python 3 sebagai PL pertama. Ya, Anda sebagai guru dapat menunda penjelasan tentang perlunya menggunakan tanda kurung untuk salah satu kelas berikut, tetapi ini akan tetap menyebalkan di otak siswa Anda.

Julia


 println("Hello world!") 


Konsep dasar yang sama seperti dalam kasus Python 3. Tetapi Julia adalah Java dinamis kinerja tinggi yang dikompilasi ke dalam kode asli. Bravo!

Dasar


 10 PRINT "Hello world!" 


Kata kunci , string AP , operator , penomoran baris kode. Penomoran baris dalam Dasar adalah konsep tingkat rendah yang agak rumit yang meniru perangkat memori fisik komputer. Itu bisa menjadi batu sandungan bagi siswa jika guru tidak memperhatikannya.

Dalam dialek selanjutnya, seperti VisualBasic, baris kode menjadi label yang sederhana dan tidak dapat dikomputasi. Pada program pertama, tag tidak diperlukan. Karena itu, bahasa menjadi lebih mudah untuk pembelajaran dasar.

Pascal


 program HelloWorld(output); begin writeln('Hello, World!'); end. 


Kata kunci , string TD , operator , fungsi , dan apa lagi? Karena program ini mengambil beberapa baris, blok , pembatas (atau terminator ? Saya selalu membingungkan mereka) dan indentasi ditambahkan ke konsep pertama. Dan pernyataan program tidak sesederhana itu ... Tampaknya keramahan Pascal agak dilebih-lebihkan.

C


 #include <stdlib.h> #include <stdio.h> int main(void) { printf("Hello world!\n"); return EXIT_SUCCESS; } 


Kata kunci , string AP , operator , fungsi , blok , pembatas dan lekukan , serta arahan preprocessor dan makro . Itu mungkin dilakukan tanpa makro dalam contoh ini, tetapi return EXIT_SUCCESS dalam kasus ini sangat indikatif: C adalah bahasa pemrograman sistem tradisional, oleh karena itu disarankan untuk mempelajarinya berdasarkan pemahaman yang baik tentang pengoperasian sistem operasi dan dengan fokus pada portabilitas . Kalau tidak, PL ini tampaknya sedikit lebih rumit daripada Pascal.

Php


 <?php echo "Hello world!\n"; ?> 


Selain memahami kata kunci , string AP , operator dan pembatas (atau terminator ?), Contoh ini tidak dapat dipelajari tanpa pemahaman dasar tentang teknologi web tertentu seperti bahasa markup (HTML) dan mesin templat . Sebenarnya, PHP adalah bahasa templat, semacam DSL. Akibatnya, PHP adalah bahasa pembelajaran yang bagus untuk vendor front-end yang ingin mempelajari lebih dalam teknologi backend. Tetapi belajar PHP dari awal cukup sulit.

C ++


 #include <iostream> int main () { std::cout << "Hello world!" << std::endl; } 


Kata kunci , string AP , operator , fungsi , blok , pembatas dan lekukan , serta preprosesor dengan arahan, ruang lingkup , streaming input / output ... Ugh, apakah itu semua?

Jawa


 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } } 


Kata kunci , string AP (bahkan dua string AP, tetapi Anda dapat tetap diam tentang hal itu), mengosongkan AP , array , blok , pembatas dan lekukan , serta kelas , objek (secara implisit, tetapi Anda tidak akan menjelaskan static sebaliknya), atribut , metode , pengubah akses ... Tuhan, aku sudah ingin melihat semua ini! Lagi pula, saya hanya ingin menulis mod untuk Minecraft!

C #


 namespace HelloWorld { class Program { static void Main(string[] args) { System.Console.WriteLine("Hello world!"); } } } 


Java yang sama, pengubah akses dikurangi, plus ruang nama . Tidak ada yang menarik, kami lewat.

Brainfuck


Saya tidak ingin mendaftar di sini - terlalu tebal dan monoton. Saya hanya akan mencantumkan konsep dasar yang perlu dipelajari untuk memahami contoh ini: kata kunci , operator , variabel , pointer , kondisi , loop , representasi numerik karakter (tabel ASCII). Ya, Brainfuck bukan bahasa yang paling mudah diakses untuk pemula.

Kesimpulan


Tentu saja, selain โ€œentri cepatโ€ (kemudahan memahami program dasar), ada sejumlah faktor yang memengaruhi pilihan PL untuk pelatihan. Ini adalah ketersediaan lingkungan yang nyaman dan alat untuk pengkodean, dan kualitas dokumentasi, dan, akhirnya, penerapan praktis. Tetapi jika langkah-langkah pertama dalam belajar dihubungkan dengan rasa sakit dan kesalahpahaman, ini mungkin lebih penting dari semua argumen lainnya. Secara umum, belajarlah dengan mudah dan jangan repot-repot!

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


All Articles