Belajar memprogram dengan open source

Lebih dari sepuluh tahun yang lalu, saya berhenti menjadi dosen universitas di departemen ilmu komputasi dan mulai bekerja penuh waktu di perusahaan saya sendiri. Itu bukanlah keputusan yang mudah untuk dibuat, tetapi pilihan hidup tertentu berarti saya harus meninggalkan kuliah demi "pekerjaan yang layak". Selama sepuluh tahun di universitas itu, saya mengajar kursus tentang sebagian besar aspek ilmu komputasi, mulai dari metrik perangkat lunak hingga konkurensi melalui spesifikasi program formal – tetapi mungkin kursus yang paling sulit untuk diajarkan adalah pengantar pemrograman.

Belajar memprogram dengan open source

Ada banyak alasan untuk ini. Pemrograman adalah bagian dari DNA komputasi, dan jika Anda ingin menjadi ilmuwan komputer, maka Anda akan membutuhkan pengetahuan yang baik tentang apa itu pemrograman, dan mungkin penguasaan praktisnya juga. Karena itu, ada perdebatan sengit tentang metode yang tepat yang harus digunakan untuk mengajarkan pemrograman, dan apa yang harus dan tidak boleh diajarkan. Setengah masalahnya adalah tidak ada konsensus atas jawaban atas banyak pertanyaan yang muncul, dan khususnya tidak ada kesepakatan tentang jenis bahasa pemrograman apa yang harus diajarkan.

Bahkan jika ada kesepakatan tentang jenis pemrograman yang akan diajarkan, pilihan bahasa tetap penuh. Haruskah Anda mengajarkan bahasa yang "baik untuk mengajar", atau apakah Anda mengajar bahasa yang memiliki "kesempatan kerja langsung"? Beberapa keputusan telah dibuat pada kursus yang saya ajarkan: Saya akan mengajar pemrograman berorientasi objek dan saya akan melakukannya di C++, tetapi memastikan bahwa siswa juga dapat menulis C biasa.

Tidak ada bahasa yang dapat mencegah programmer yang buruk menulis program yang buruk, tetapi beberapa bahasa memberikan kesempatan kepada orang berikutnya yang harus membaca kode yang buruk untuk memahaminya.

Tak satu pun dari keputusan ini yang membuat hidup saya mudah: Saya harus mengajarkan dua gaya pemrograman, bukan satu, dan menggunakan bahasa yang besar, kompleks, dan, pada saat itu, diimplementasikan dengan buruk. C++ bukanlah bahasa yang buruk, tetapi seperti C itu sendiri, membuatnya terlalu mudah untuk menulis program yang buruk. Tentu saja, tidak ada bahasa yang dapat mencegah pemrogram yang buruk menulis program yang buruk, tetapi beberapa bahasa memang memberi kesempatan kepada orang berikutnya yang harus membaca kode yang buruk untuk memahaminya!

Jadi mengapa membawa ini sekarang? Karena beberapa kali tahun lalu saya ditanya bagaimana seseorang harus belajar pemrograman saat ini, dan saya pikir saya akan melihat sumber daya di luar sana untuk membantu seseorang yang ingin belajar pemrograman. Sebagian besar saya akan melihat pemrograman pengantar, tetapi saya juga akan menyebutkan beberapa sumber daya bagi mereka yang sudah dapat memprogram tetapi ingin mencoba bahasa yang berbeda.

Belajar memprogram

Ketika saya mulai di universitas, saya berada di tahun pertama yang tidak harus menggunakan kartu berlubang untuk kursus pemrograman mereka – kami memiliki akses ke terminal interaktif! Beberapa orang bahkan mendapatkan akses ke komputer pribadi seperti BBC Micro, yang mungkin lebih baik daripada komputer mini yang harus kami gunakan, tetapi itu jarang terjadi. Setiap kali kami menyelesaikan sebuah program, itu membawa rasa pencapaian yang nyata, karena komputer tempat kami bekerja tampak sama primitifnya dengan program yang baru saja kami tulis. Saat ini, program siswa mana pun pasti jauh lebih primitif daripada sistem yang digunakan untuk menulisnya.

Ketika saya mengajar pemrograman, misalnya, sekitar minggu ketiga saya menetapkan latihan untuk menulis program yang dapat dibaca dua angka dan menampilkan tabel perkalian - ketik 12 dan 10 dan itu akan mencetak "tabel perkalian dua belas". Ini hanya melibatkan penulisan loop bersarang sederhana, tetapi ada detail tertentu yang harus diselesaikan dengan benar oleh siswa. Misalnya, tabel harus diformat dengan baik dengan semua angka berbaris dengan benar, jadi kolomnya angka - 0, 12, 24 dan seterusnya - perlu dibenarkan dengan menempatkan spasi di depan beberapa mereka. Namun, mereka belum diajari cara memformat keluaran, jadi mereka harus menyelesaikannya sendiri.