Suatu hari ayah saya mengajukan pertanyaan yang tidak pernah saya harapkan darinya.
"Bagaimana saya bisa belajar C ++?"
Ayah saya berusia 56 tahun ini dan komputer adalah konsep yang jauh baginya. Dia tidak tahu cara menggunakan telepon dengan sangat baik selain memanggil nomor (tidak ada panggilan cepat atau kontak); meskipun dia sudah mulai belajar komputer sedikit lebih baik - sampai-sampai dia tahu cara membuka internet (di Windows) dan menjelajah (dan telah berhasil menyelesaikan beberapa lamaran pekerjaan sepenuhnya di online-nya sendiri, di mana dia ditawari posisi juga ). Tapi tetap saja, ini pengalaman yang terlalu sempit sehingga tidak berarti banyak.
Meskipun dia mungkin tidak memiliki latar belakang, ayah saya tahu cara membaca. Maksud saya membaca sebagai keterampilan, bukan hanya kemampuan. Dia memiliki sedikit atau tidak ada pendidikan perguruan tinggi (masalah keuangan, keluarga, dll) dan cukup beruntung untuk menyelesaikan sekolah menengah, tetapi masih belajar sendiri untuk menjadi ahli listrik dan telah menjadi salah satu selama hampir 30 tahun sekarang. Dia melakukan hal yang sama dengan gitar, belajar bermain di level yang sangat profesional dan telah dipuji karena keahliannya. Di sekolah menengah, ia mengambil buku angkat berat - dan merupakan satu-satunya orang di sekolah menengahnya saat itu yang memenuhi syarat secara resmi sebagai "atlet" dengan standar nasional.
Dalam semua kasus, dia hanya perlu sesuatu untuk dibaca. Sesuatu untuk diajarkan padanya. Dia menyerap informasi seperti spons.
Saya tidak ragu dengan motivasi atau kemampuan ayah saya untuk melakukan ini, jadi tujuan umum saya hanyalah:
Dapatkan ayah saya ke dunia komputer, dan bawa dia di jalan menuju pemrograman.
Saya sangat percaya bahwa begitu saya berhasil melewati dasarnya, dorongan dan keterampilan membaca akan membuatnya terus berjalan sendiri.
Jadi saya bertanya kepada Anda semua: di mana saya harus mulai dengan semua ini? Dan apa sumber daya terbaik di luar sana? Haruskah saya membuatnya memulai Linux, bukan Windows? Apakah C ++ adalah ide yang buruk?
Ingat, dia perlu (IMO) mempelajari komputer terlebih dahulu, dan kemudian mendapatkan pemahaman pertama (pengalaman Hello world) pemrograman.
Demi uang dan pada preferensi teratas, saya ingin sumber daya online gratis yang bisa dia baca, tetapi dengan segala cara saran baik di media cetak atau berbayar-online dipersilakan (bahwa saya mungkin bisa melihat nanti untuk membeli).
Dan juga, saya bermaksud memulainya dengan C ++ (tanpa Python, Java, dll.), Karena saya tahu itu yang terbaik dan akan dapat membantunya sepanjang jalan dengan kode. (Saya memiliki pengetahuan minimal sekarang dalam bahasa lain).
Sunting: Saya mendapatkan banyak saran terus-menerus untuk menggunakan Python. Satu-satunya alasan saya ingin melakukan C ++ adalah bahwa saya TAHU dan dapat SANA ketika ayah saya membutuhkan bantuan. Paparan SANGAT PERTAMA saya untuk pemrograman adalah Java. Saya belajar Java, dan saya pandai. Saya terbuka untuk saran lain, tapi tolong berikan aplikasi saran yang efektif.
EDIT # 2: Saya mengerti pendekatan / pemikiran / pengetahuan saya bisa kurang di sini. Saya seorang mahasiswa tingkat sarjana sarjana CS mayor. Jika Anda tidak setuju dengan apa pun dalam posting saya, katakan alasannya - beri saya ide, informasi - itu sebabnya saya bertanya. Untuk mempersempit tujuan umum saya ke tujuan spesifik yang dapat dicapai.
Jawaban:
Pertama, bahkan jika Anda secara pribadi mengenal C ++ dengan baik, itu adalah bahasa pertama yang mengerikan , mengerikan untuk pemula, dan saya tidak bisa merekomendasikan cukup kuat untuk membuatnya sejauh mungkin dari itu jika ia ingin berhasil belajar menulis kode. Mempelajari pemrograman bukan tentang bahasa, ini tentang belajar mengekspresikan persyaratan abstrak dalam logika formal. C ++ membuat itu sulit untuk fokus karena Anda terus-menerus tersandung masalah bahasa tertentu.
Jika dia ingin belajar mengekspresikan ide dalam logika formal, cari sesuatu yang membuatnya sesederhana itu. Pilihan saya adalah Pascal (untuk pengembangan tingkat aplikasi) atau Python (untuk pekerjaan tingkat skrip) karena keduanya dirancang dengan intuitif dan mudah dipelajari sebagai prioritas inti. Begitu dia benar-benar tahu prinsip-prinsip cara menulis kode, maka jika dia benar-benar peduli tentang C ++ secara spesifik, dia bisa mengambilnya.
Untuk alasan yang sama, jangan mulai dia di Linux, bukan Windows, karena dengan begitu dia memiliki dua masalah untuk fokus pada: belajar Linux dan belajar coding, pada saat yang sama! Pertahankan gangguan seminimal mungkin.
Adapun sumber daya pemrograman yang sebenarnya, cukup mudah untuk menemukan tutorial online, tetapi saya telah menemukan bahwa cara terbaik untuk belajar pemrograman adalah dengan pemrograman. Temukan sesuatu yang ingin Anda lakukan, dan kemudian mulai mencari tahu bagaimana melakukannya.
Beberapa tahun yang lalu, saya melihat permainan dan saya berpikir, "Saya bisa melakukan ini, dan saya bisa melakukannya dengan lebih baik." Jadi saya menyalakan Delphi dan mulai mencari tahu prinsip-prinsip yang terlibat. Saya masih belajar hal-hal baru dari proyek pribadi itu, dan sepanjang jalan, saya telah menjadi pembuat kode yang sangat baik! Jadi coba itu; tanyakan pada ayahmu apa yang ingin dia lakukan jika dia bisa memprogram - dan pastikan itu mungkin, dan cakupannya cukup kecil karena dia belum memiliki pengalaman - dan kemudian duduk bersamanya dan mulai mencari tahu bagaimana cara melakukannya Itu.
Dan jika dia memiliki pertanyaan, berikan dia akun StackOverflow. :)
sumber
Saya pikir minat ayah Anda pada C ++ jelas rapi tetapi itu bukan pilihan saya untuk bahasa pemrograman pertama - kecuali dia memiliki persyaratan yang sangat spesifik yang ingin dia temui. (Bahkan kemudian, belajar C ++ setelah mempelajari bahasa lain yang lebih sederhana mungkin masih jauh lebih mudah.)
Ada beberapa hal yang penting untuk pemrograman:
Dalam banyak hal, sintaks dan semantik bahasa tertentu mendekati akhir dari keterampilan yang diperlukan untuk pemrograman. Lagipula, jika Anda mendekati kanan, kebanyakan kompiler akan memberi tahu Anda kesalahan apa yang telah Anda buat - meskipun perlu pengalaman untuk memecahkan kode apa yang dikatakan oleh kompiler secara spesifik.
Jadi, saya menyarankan agar ayah Anda menangani bahasa pemrograman yang jauh lebih sederhana pada langkah pertama: Ruby, Python, C, C #, Haskell, dll. (Haskell jelas sulit bagi orang yang hanya memprogram bahasa imperatif, tetapi saya ' Anda ingin tahu apakah novis yang sama sekali sama mengalami perasaan "kehabisan air".)
Tetap dengan bahasa yang lebih sederhana di muka berarti ayah Anda akan lebih sukses lebih awal, dan akan lebih mudah untuk "bermain". Lingkaran REPL interaktif dari banyak bahasa adalah tempat yang sangat baik untuk belajar.
Setelah ayah Anda terbiasa dengan fungsi, kelas, objek, metode, maka detail dan nuansa C ++ tidak akan terasa begitu luar biasa. Heck, bahkan mulai dengan C akan lebih mudah: tidak memaafkan , tetapi ada beberapa fitur membingungkan yang perlu dikhawatirkan.
Anda ingin tahu tentang Linux vs Windows; Saya tidak yakin perbedaan itu penting. Jika dia sudah terbiasa dengan satu atau lingkungan lain, beralih hanyalah rintangan lain. Jika dia tidak tahu, saya sarankan Linux, tetapi terutama karena menginstal alat yang bagus itu sangat mudah:
apt-get install <foo>
bekerja pada sebagian besar distribusi, dan distribusi yang tidak mendukungapt
sering kali memberikan hal yang serupa. Semenit kemudian, paket baru Anda yang rapi terinstal, seringkali lebih cepat daripada yang saya perlukan untuk menemukan sumber unduhan yang dapat diandalkan untuk binari Windows yang dikompilasi yang tidak berbau kuda Troya.sumber