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!