Adik laki-laki saya ingin memulai pemrograman. Dia berusia 14 tahun, dan secara teknis cenderung, tetapi tidak ada pemrograman pengalaman nyata. Dia mencari saya untuk bimbingan, dan saya merasa pengalaman saya tidak cukup, jadi saya pikir saya akan bertanya di sini.
Dia lebih tertarik pada pemrograman web, tetapi juga memiliki minat pada aplikasi desktop / mobile / server.
Apa yang akan menjadi jalur pembelajaran yang baik baginya untuk mengambil? Aku akan membelikannya banyak buku untuk Natal untuk memulai; pertanyaannya adalah, apa yang harus dia pelajari, dan dalam urutan apa?
Cara saya melihatnya, ia perlu belajar teori dan kode. Saya ingin memulai dengan Python atau Ruby atau PHP. Jika dia ingin masuk ke web, dia juga perlu belajar HTML, CSS, Javascript, dll.
Dari ketiga domain tersebut (Bahasa, Teori, Markup / Dll.), Apa urutan terbaik menurut Anda untuk dipelajari? Juga, apakah saya kehilangan sesuatu?
Terima kasih!
Jawaban:
Daftarkan dia akun untuk StackOverflow.com dan Programmers.StackExchange.com
dan biasakan dia menelusuri pertanyaan yang berbeda saat dia bosan . Mulailah dengan pertanyaan panas / paling populer.
Juga
Bantu dia menemukan tujuan dari sesuatu yang ingin dia ciptakan yang sedikit di luar jangkauannya, permainan sederhana, aplikasi yang dapat mengirim tweet? Itu pasti sesuatu yang mengasyikkan . Ini akan membantu membimbing topik-topik yang ia paparkan pada dirinya sendiri dan memberinya motivasi melalui hasil nyata yang ia ciptakan.
Dan
Jika memungkinkan, jangan membeli buku dalam bentuk fisik jika ia bekerja dengan baik dengan cetak digital , saya yakin salah satu dari Anda memiliki android atau iphone atau blackberry atau ipod touch? Dapatkan aplikasi ibooks atau kindle dan beli versi digital .
Harus berurusan dengan buku fisik memperlambat proses akuisisi pengetahuan; alat yang dibangun menjadi pembaca digital memberikan banyak manfaat untuk membaca teknis.
Catatan: seperti yang disebutkan dalam komentar, ada kekurangan untuk buku digital vs buku cetak, jadi ambil poin ini dengan sebutir garam
sumber
Saya sangat suka cara saya datang ke pemrograman; satu-satunya hal yang dapat saya bayangkan berubah adalah akses saya ke buku. Keluarga saya tidak memiliki uang untuk semua buku yang bisa saya makan, dan perpustakaan kecil kami tidak benar-benar menyediakan manual teknologi. Dalam skema besar, ini adalah nitpick kecil.
Dengan sepenuh hati saya tidak setuju dengan mereka yang mengatakan Anda tidak dapat belajar teori pada usia 14. Semakin awal Anda mempelajari teori tersebut, semakin baik. Saya membaca The Art of Computer Programming di 14, meskipun saya sudah coding beberapa saat.
Hal terbaik yang dapat Anda lakukan untuk saudara Anda adalah memberinya alat untuk mengejar minatnya, dan memasukkannya ke komunitas peretas / pembuat kode kapan pun memungkinkan, sehingga ia dapat mempelajari pola pikir seorang pembuat kode yang hebat.
Dorong dia menjauhi alat-alat berpemilik sedapat mungkin. Ada jauh lebih banyak tersedia baginya di dunia open source. Saya mendapatkan sebagus saya sebagian besar karena bimbingan yang saya terima dari orang-orang yang lebih berpengalaman di komunitas open source.
Jika Anda mampu, belikan dia akun Safari , atau bantu dia membeli buku saat diperlukan. Bahkan meminjamkan apa yang sudah Anda miliki dapat membantu.
Pastikan ia memiliki akses ke desktop atau laptop yang layak dan server atau VPS untuk bereksperimen. Jika aplikasi seluler sesuai keinginannya, pastikan ia memiliki ponsel atau perangkat demo untuk bekerja.
Tunjukkan padanya cara menemukan saluran IRC, milis, dll. Untuk hal-hal yang ia minati.
Pastikan dia tahu bagaimana mengajukan pertanyaan yang cerdas dan, sebaliknya, informasi tentang lintah pendukung sehingga dia tahu apa yang tidak boleh dilakukan.
Bahasa pemrograman pertamanya bukan faktor terpenting. Totalitas bahasa pemrograman yang ia pelajari sangat penting. Coders satu bahasa tidak pernah melewati level tertentu (relatif rendah) dari coding-foo.
sumber
Saya akan belajar hal-hal untuk arena ponsel, itu real estat utama di sana. Siapkan dia dengan IDE yang memiliki emulator telepon, dan berikan dia telepon yang bisa dia gunakan untuk mendorong aplikasi .
Atur dia untuk penggunaan dunia nyata dan peretasan, ditambah dengan beberapa teori dari buku Anda untuk membimbingnya. Pastikan mereka memiliki sampel yang baik.
sumber
Saya akan pergi ke sekolah, jika usia kuliah. Saya akan membawanya sekolah menengah, jika usia sekolah menengah.
Saya akan punya misi dan menyesuaikan kurikulum sesuai dengan di 14.
banyak orang akan mengecewakan saya untuk ini tetapi Visual Basic. NET tampaknya lebih mudah untuk beberapa orang, hanya mengatakan orang. Tampaknya seperti itu bagi banyak orang yang tidak berada di inisiat.
sumber
Memulai dengan web dev adalah ide bagus. Anda bisa mendapatkan hasil bahkan jika Anda seorang pemula sejati, dan jika Anda berantakan, itu tidak masalah.
Saya akan mengatakan Html / CSS + Php. Seperti yang dikatakan Jeff dalam komentarnya, memiliki situs yang di-host akan menjadi masalah, dan host Php tidak mahal, sering kali bahkan gratis.
Adapun teori, saya hanya akan melupakannya untuk saat ini. Dari cara saya memahaminya, dia kebanyakan ingin bersenang-senang, dan mari kita hadapi itu, teori tidak terlalu menyenangkan. Selain itu, jika dia suka pemrograman, dia akan punya banyak di sekolah.
Jelas kita semua peduli tentang kode yang bagus, tetapi jika dia hanya akan bermain-main, apa bedanya jika kode-nya berantakan?
sumber
pemrograman web / desktop / seluler / server? Sepertinya saya, dia tertarik pada segalanya. Namun masalahnya, dia harus mulai dengan sesuatu.
Banyak yang akan tidak setuju, karena tentu saja tidak ada jawaban "benar" untuk ini, tetapi saya akan membelikannya sebuah buku tentang Python ( Mempelajari Python cukup tebal dan cukup teliti untuk membuatnya sibuk untuk waktu yang lama), dan jelas merupakan bahasa yang akan memberinya rasio yang baik dari hal-hal yang saya pelajari vs. permen mata (yaitu apa yang dapat dicapai dengan itu). Ini juga merupakan titik awal yang baik untuk banyak hal di atas.
Setelah itu, lihat apa yang paling ia sukai dari yang disebutkan di atas, dan arahkan dia lebih lanjut dengan nasihat ke arah itu.
sumber
Apakah sekolah menengahnya menawarkan kelas-kelas dalam ilmu komputer? Sebagai contoh di Amerika Serikat, program Advanced Placement memiliki kelas ilmu komputer yang melalui sedikit konsep dasar ilmu komputer (aliran kontrol, praktik pengembangan berorientasi objek dasar, loop, dll.).
Saya dapat menghadiri sekolah menengah yang menawarkan kursus ilmu komputer pada dasarnya selama 4 tahun (dari kursus pengantar hingga LIPS dasar, MIPS, dan Open GL). Saya akhirnya menguji dasar-dasar di perguruan tinggi dan kemudian belajar kembali banyak bahasa dan topik lain dalam kursus tingkat atas. Saya dapat memberi tahu Anda bahwa otak yang berusia 14-17 tahun memiliki lebih banyak kesulitan membungkus teori daripada otak yang berusia 18-22 tahun. Topik-topik seperti rekursi, aritmatika pointer, pemrograman tingkat rendah, topografi jaringan, dan pemrograman fungsional membutuhkan waktu lama untuk masuk sekolah menengah, tetapi untuk kedua kalinya di perguruan tinggi, saya merasa mudah, mungkin karena saya '
Meskipun sulit, berpikir melalui CS mulai 14 sangat membantu. Melakukannya tanpa guru sepertinya akan rumit. Saya akan menghabiskan waktu mengembangkan halaman web untuk bersenang-senang karena itu yang saya sukai saat itu (dan sekarang), tetapi saya tidak akan pernah mengajarkan diri saya petunjuk, rekursi, dan LISP untuk bersenang-senang pada saat itu.
sumber
Saya pribadi tidak akan memulai dengan teori hardcore. Saya akan mulai dengan pemrograman praktis yang bercampur dengan beberapa elemen teori. Itu bisa membuat seseorang lebih termotivasi dan tidak membuatnya takut.
Misalnya dengan sekolah musik. Sebagian besar siswa berhenti karena mereka bosan dengan teori dan akhirnya kehilangan minat.
Selain itu, teorinya tidak begitu baik ketika dipelajari sebelum membuat tangan Anda kotor dengan latihan. Anda tidak akan tahu kapan dan bagaimana menerapkannya.
Tetapi jika Anda memiliki pengetahuan teori maka banyak berlatih, setelah itu kursus yang serius di bidang TI akan mendorong Anda pada tingkat yang berbeda. Kalau tidak, tahun-tahun yang dihabiskan di universitas hanya sia-sia pada tahun tuli.
Dalam urutan itu:
Beberapa teori dasar tentang perangkat keras, arsitektur komputer dan pemrograman perangkat keras itu. Dasar saja.
Kemudian kembangkan hal-hal praktis. Aplikasi dasar untuk menjaga minat. Pertama lokal, lalu sesuatu dengan grafis. Halaman web belum karena Anda ingin menunjukkan pemrograman sisi server dan sering kali tidak berguna tanpa database.
Jatuhkan beberapa tanaman basis data pengetahuan
Interface aplikasi lokal Anda dengan database. Kemudian coba pengembangan web.
Sesuaikan kursus saat Anda pergi.
sumber
Preferensi logis saya berdasarkan apa yang saya ketahui sekarang:
Mencari tahu bagaimana hal-hal bekerja sekarang - Saat Anda menyatakan dia cenderung secara teknis, seberapa baik dia mengerti bagaimana komputer bekerja pada saat ini? Misalnya, apakah dia memahami perbedaan antara mark-up dan skrip? Bagaimana dengan menulis skrip kecil untuk melakukan ini atau itu? Ini akan menjadi saran saya untuk titik awal karena demystifying apa yang kita miliki di sekitar kita adalah titik awal yang baik mengingat semua hal yang dapat dieksplorasi dengan cukup bebas.
Pilih bahasa, IDE, dan kontrol sumber. Sekarang sementara ini mungkin tampak seperti sedikit terlempar ke seseorang, ini adalah alat yang agak mendasar yang dengan sedikit latihan ia mungkin kemudian beralih ke hal-hal yang lebih besar. Mencari tahu cara membuat "Hello World!" halaman web yang memiliki pesan yang tertanam dalam JavaScript bukanlah titik awal yang buruk jika seseorang menginginkan sesuatu yang lebih konkret di sini.
Sekarang mulailah menambahkan beberapa hal yang lebih sulit. Bagaimana cara melakukan loop atau kondisi? Ini belum benar-benar semewah itu, tetapi kita masih memahami tahap pembangunan di sini. Terakhir perkenalkan ide kelas dan apa saja ide di balik konsep ini.
Itu akan menjadi tempat saya memulai jika seseorang ingin mendapatkan dasar-dasar keahlian saya.
sumber
Saya tidak pernah berpikir saya akan mengatakan ini, tetapi berikan dia Alice 3.0 .
Saya membenci Alice dengan amarah yang membakar ribuan matahari, tapi itu pasti melakukan pekerjaan yang baik untuk mengajarkan dasar-dasar pemrograman (loop, pernyataan, fungsi, dll.) Ketika digabungkan dengan tutorial yang layak.
Begitu dia solid pada dasar-dasarnya, beralihlah ke bahasa berbasis teks yang lebih praktis.
sumber
Ini masuk akal. Berikan beberapa keterampilan dasar dan bantu dia menyempurnakan ide untuk proyek yang menantang dan akan tetap menarik baginya.
Pengalaman pertamanya tidak perlu sempurna, bahkan itu akan membantu jika dia membuat banyak kesalahan lebih awal. Anda hanya ingin memastikan bahwa dia tetap tertarik untuk memperluas pengetahuannya. Ketika dia mencapai batasannya, dia akan memohon bantuan dan Anda dapat mengarahkannya ke arah yang benar jika dia belum membuka bahan referensi.
sumber
Dapatkan dia buku tentang Test Driven Development. Ini akan membuat unit solid menguji sifatnya. Saya berharap saya belajar memiliki tes sebagai inti dari pemrograman saya dari satu persegi.
sumber
Saya akan memulainya dengan bahasa berbasis C. Saya telah menemukan bahwa ada sumber daya yang lebih bermanfaat bagi mereka. Anda juga dapat melihat cara mendapatkan buku tentang cara mendesain dan memformat kode Anda sehingga ia mulai menggunakan prinsip-prinsip pengkodean yang baik. Saya memiliki kelas yang didedikasikan untuk itu dan kami menggunakan sebuah buku berjudul, "Kode Bersih" dan yang lain berjudul, "Pengembangan Perangkat Lunak: Prinsip-prinsip Desain" jika saya ingat dengan benar. Saya juga berharap bahwa saya akan diperkenalkan ke situs ini lebih cepat haha.
Yang paling membantu saya adalah mendapatkan magang di awal karier kuliah saya. Saya pergi ke pameran karir sebagai mahasiswa baru dan menerima magang tahun kedua saya. Saya juga mencoba memiliki proyek yang sedang saya kerjakan setiap saat dan saya suka melakukan sesuatu yang belum pernah saya lakukan sebelumnya sehingga saya bisa terus belajar. Saat ini saya sedang bekerja menggunakan Raspberry Pie dan mengimplementasikan Apple's Siri untuk sistem otomasi rumah.
Pada dasarnya, lakukan apa saja untuk membuatnya tetap menyenangkan. Jangan frustrasi. Istirahat. Jangan terlalu terjebak dalam buku. Terkadang cara terbaik untuk belajar adalah dengan melakukannya dan menggunakan coba-coba.
Oh ... dan pelajari caranya ke Google :)
sumber
level diikuti
jangan lupa untuk membuat modular hal-hal ketika Anda mengajar, undesrtand dia tidak akan mengerti javascript sampai dia tahu c / c ++ atau python dll
Ditambahkan pada 04/07/2013
pada usia 14 ketika Anda ingin mencoba tangan Anda pada pemrograman pertama Anda perlu memahami sumber daya apa yang saya butuhkan untuk menyelesaikan tugas atau proyek atau pedoman dasar, serta saya disebutkan dalam posting saya belajar pemrograman dasar terlebih dahulu, ini akan membantu Anda untuk memahami bagaimana program atau perangkat lunak bekerja dengan perulangan dan kondisi, ketika berikutnya Anda pikir saya mengerti semua hal tetapi saya tidak tahu bagaimana mengakses mouse atau melakukan sesuatu ketika saya mengklik suatu tempat, Anda akan mencoba beberapa perpustakaan seperti grafik dan mouse, sehingga Anda mengerti bagaimana ini bekerja, pertanyaan berikutnya akan muncul di pikiran Anda bagaimana menempatkan tombol saya dan menambahkan acara sehingga mereka dapat berinteraksi dengan kode saya, sehingga Anda akan suka belajar pemrograman acara maka ketika Anda menyelesaikan tahap ini, pertanyaan berikutnya akan muncul saya membuat sangat besar kode dan saya tidak tahu bagaimana memanggil fungsi itu agak rumit,maka Anda akan mencoba modularisasi, objek dan kelas untuk aplikasi,
Setelah itu Anda akan berpikir saya tahu bagaimana membangun aplikasi dasar tetapi saya ingin membuat aplikasi untuk database, kemudian Database muncul di pikiran, Anda suka belajar tetapi masalahnya adalah Anda merasa sulit untuk terhubung dengan kode sehingga Anda akan bekerja pada database command prompt,
pendekatan programnya percaya, saya lakukan dan belajar dari cara yang sama dan dasar-dasar saya sangat jelas sehingga saya bisa mengerti bagaimana rutinitas atau program bekerja,
setelah Anda mengerti dan lebih percaya diri tentang Anda dapat membuat aplikasi untuk desktop coba keterampilan yang sama untuk HTML
ketika Anda mencoba html, Anda akan merasa jauh lebih mudah daripada apa yang Anda pelajari sebelumnya, hanya karena Anda menghabiskan banyak waktu untuk hal-hal dasar.
dalam html, pahami struktur dan cara kerja kode, setelah Anda mengetahui hal-hal ini, Anda ingin memberikan validasi dan konektivitas basis data untuk aplikasi, mencoba dan berhasil dalam sehari, Anda dapat dengan mudah membangun tombol tempat dan memvalidasi dengan penghentian javascript, maka Anda akan mengajukan pertanyaan kepada diri sendiri saya membuat segalanya tetapi bagaimana dengan mencarinya dosnt cocok dengan apa yang saya lihat di internet, jadi cobalah dengan css, saya sangat yakin jika Anda secara konsisten mencoba css dengan IDE atau dreamweaver terbaik, Anda akan jatuh cinta dengan hTML / css.
cukup bagi Anda untuk membuat aplikasi sederhana atau web dengan HTML,
pada titik tertentu Anda akan mengajukan pertanyaan lain kepada diri sendiri bagaimana membuatnya dinamis ketika Anda tahu hyperlink berfungsi dengan baik, lalu apa yang dinamis, mari kita pikirkan tentang database, yang Anda pelajari sebelumnya. ,
ya itu maksud saya, tampilkan rekaman, masukkan catatan, hapus rekaman dan mainkan dengan basis data secara lokal dengan javascript dan pemrograman sisi server, maka konsep lain akan muncul di pikiran Anda secara otomatis, untuk membuat pengguna, validasi, sesi, riwayat pengguna, internasionalisasi dll
dan Anda akan melanjutkan tanpa bimbingan karena basis Anda jelas dan Anda tahu apa yang harus dilakukan dan sumber daya apa yang Anda butuhkan untuk menyelesaikan tugas
itulah semua tahapannya. Dasar-dasar adalah langkah yang sangat penting dan benar juga. Setelah Anda mengetahui dasar-dasarnya, Anda dapat dengan mudah mempelajari bahasa lain atau bermigrasi dari satu bahasa ke bahasa lain,
terima kasih telah membaca
Ditambahkan pada 04/07/2013
progarme tidak lain adalah serangkaian instruksi dan rutinitas, misalnya rutinitas harian kita, kita bangun, mandi, makan siang, bekerja, makan malam, tidur.
tetapi jika kita salah satu dari tugas yang kita rasa tidak nyaman itu adalah jika hari minggu ketika Anda tidak bekerja atau berlibur kondisi berubah dan rutinitas sehari-hari juga, sehingga Anda dapat mencocokkan dengan hal-hal lain, itulah yang seperti pendekatan pemrograman, pelajari dari praktis bukan dari apa yang dikatakan buku kepada Anda, buku bagus untuk referensi tetapi memahami cara alami kita bereaksi, bekerja dengan bantuan pernyataan if-else, misalnya: misalkan kita memiliki dua pekerjaan dan keduanya sangat penting, tetapi kita hanya dapat melakukan satu per satu, Anda memilih yang pertama dan menyelesaikan kemudian Anda bisa pergi ke rumah, jika Anda memilih yang kedua maka Anda harus bekerja 5 jam berikutnya, jika Anda menyelesaikan keduanya bekerja, Anda mendapatkan cuti 1 hari, itu tentang pendekatan pemrograman
sumber