Saya telah secara sukarela duduk dan berbicara tentang kehidupan dan pekerjaan Pengembang dengan seorang siswa pengalaman kerja berusia 15 tahun minggu depan.
Tangkapannya adalah itu
- Saya hanya punya setengah jam, dan
- Saya akan menjadi salah satu dari orang-orang yang berbicara dengannya - orang lain dalam peran berbeda dalam bisnis ini juga akan menjalankan elemen pekerjaan mereka dengannya sepanjang hari.
Apa yang harus saya liput, dan apa yang bisa saya harapkan untuk mengajarinya hanya dalam setengah jam?
Saya berasumsi bahwa dia mungkin tidak memiliki pengalaman dengan pengembangan atau pemrograman.
teaching
profession
Dexter
sumber
sumber
Jawaban:
Saya sering berinteraksi dengan siswa sekolah menengah, jadi saya cukup sering menjawab pertanyaan ini. Ingatlah bahwa anak berusia 15 tahun jauh lebih mudah untuk menjelaskan pemrograman dari pada usia 50 tahun - jadi Anda tidak perlu bodoh atau menggunakan analogi yang dibuat-buat.
Saya biasanya memulai dengan contoh program apa:
Setelah itu, saya biasanya menjelaskan bahwa kita membuat kode program dalam bahasa formal yang dapat dikenali oleh komputer, sering kali mengetiknya dalam sesuatu yang sederhana seperti Notepad. Bahasa terlihat seperti persilangan antara matematika dan bahasa Inggris, menggambarkan konsep dan memberikan formula dan instruksi untuk diikuti oleh komputer.
Kemudian mereka biasanya bertanya apakah saya di komputer sepanjang waktu, apakah ini sebabnya saya selalu di Facebook, dan mengapa mata saya belum memburuk. Cowok bertanya apakah saya tahu cara "meretas orang", dan cewek bertanya apakah itu uang baik atau berapa banyak cewek di kelas ilmu komputer.
Setelah itu, jika mereka masih tertarik, mereka biasanya mulai mengajukan pertanyaan spesifik yang jauh lebih mudah untuk dijawab (atau setidaknya untuk Wiki): hal-hal seperti bagaimana Anda membuat game, cara kerja Windows Messenger dll.
Jika Anda memiliki komputer, Anda dapat menunjukkan dan memberi tahu beberapa kode - sesuatu yang akan memiliki efek nyata, seperti handler klik tombol dari kotak dialog pengaturan di Firefox, loop utama atau kode fisika dalam mesin permainan, beberapa Sumber JavaScript dari situs web dll.
sumber
Saya menjelaskannya kepada anak saya yang berumur lima tahun dengan yang berikut:
Saya: "Anda tahu bagaimana, dalam cerita, orang mengatakan kata-kata ajaib, dan mengubah hal-hal di dunia?"
Her: "Yeaaa?"
Saya: "Itulah pemrograman komputer."
Dia (diam-diam): "Wow."
15-30 menit tidak cukup untuk menjelaskan sesuatu yang nyata, dan menjelaskan kompleksitas yang mendasarinya adalah cara yang pasti untuk membuat mereka berlari menjerit. Anda bekerja di dalamnya setiap hari, Anda lupa betapa kerennya itu. Tidak ada profesi lain di dunia yang menciptakan hal-hal fungsional hanya dengan kata-kata ... Pada titik tertentu, semua orang harus masuk ke dunia daging, dan mulai memukuli benda-benda dengan palu. Itulah satu-satunya cara mereka dapat membuat ide mereka menjadi sesuatu yang berhasil.
Bukan kita.
sumber
Seorang anak berusia 15 tahun dapat memahami konsep apa pun. Saya sendiri mulai pemrograman pada usia 14 tahun (di sekolah, bertahun-tahun yang lalu)
30 menit sudah cukup untuk demo. Tunjukkan padanya keajaiban pemrograman dengan sesuatu yang tersebar luas seperti browser.
sumber
Langkah
Sebagai anak berusia hampir 15 tahun, saya dapat dengan yakin mengatakan kepada Anda bahwa Anda harus memiliki awal yang spektakuler .
Jelaskan bagaimana Anda membuatnya.
10101010
sepanjang hari. Katakan kepada mereka Anda bahkan tidak tahu bagaimana melakukan itu. ( Lie. Anda tidak tahu apa10101010
artinya, benar;?)) Katakan kepada mereka bahwa itu adalah tahun yang lalu.Tunjukkan pada mereka contoh beberapa pseudocode. Mudah dimengerti:
Lakukan langkah demi langkah itu. Katakan pada mereka ini bukan seperti apa bentuk kode itu. Seperti kode
English + Math
. Tetapi tidak sulit untuk mempelajari "bahasa" (baca: sintaksis) tempat Anda berbicara.Tunjukkan pada mereka sebuah contoh dengan sedikit lebih "matematika", kali ini.
Jelaskan bahwa kode itu menambahkan dua angka bersamaan, seperti kalkulator. Tunjukkan pada mereka kode "nyata" untuk ini. (Pastikan Anda meletakkan sebagian besar UI dan hal-hal lain dalam file terpisah, dan simpan file yang Anda tunjukkan singkat dan sederhana.) Ubah ke program pengurangan (dengan mengubah tanda dari
+
menjadi-
) tepat di depan mata mereka.Jelaskan apa yang perlu mereka ketahui untuk melakukan pemrograman. (Di berbagai tingkatan.)
x + 1 = 2
, lalux = 1
.Ketentuan yang bisa Anda gunakan
Kami tahu lebih dari yang Anda pikirkan.
Ketentuan yang harus Anda jelaskan
Ya, kami masih perlu menjelaskan beberapa hal.
10101010
.Ketentuan yang tidak dapat Anda gunakan
Beberapa dari kita tahu hal ini, tapi tolong jangan katakan itu.
sumber
Jika Anda masuk untuk mulai membicarakan hal-hal seperti proses, pola, persyaratan, dan semacamnya, dia akan segera tutup. Anak-anak sekarang ini memiliki grafik dan motivasi visual, jadi saya akan membawa sesuatu untuk membantu mempromosikan jenis-jenis stimulus itu. Tunjukkan padanya sesuatu yang manis di web dan kemudian pada tingkat tinggi jelaskan kepadanya apa yang membuat ITU terjadi. Saya bahkan menyarankan membawa laptop pengembangan Anda dan membuat sesuatu yang "keren" terjadi di layar - ubah kode di depannya dan kemudian saksikan perubahan di layar. Pada usia itu, mereka SANGAT cerdas dan visual apa pun akan membantu memicu minat.
sumber
Alice
?Ada dua analogi hebat yang saya andalkan ketika menjelaskan pekerjaan pemrogram. Salah satunya adalah resep; metafora itu berguna untuk menjelaskan dalam skala kecil apa yang dilakukan setiap baris kode. Pekerjaan seorang programmer adalah menulis resep, dan komputer adalah juru masak.
Analogi lainnya adalah bahwa program besar itu seperti perusahaan besar. Ada sejumlah departemen yang berbeda yang fokus pada bidang yang berbeda dan mengirim pesan bolak-balik, dan akhirnya mencapai tujuan perusahaan. Pekerjaan seorang programmer adalah merancang bagaimana pengaturan organisasi, dan komputer adalah semua orang di perusahaan.
sumber
Saya akan mengatakan tetap umum. Pemrograman dan banyak profesi lain bermuara pada pemecahan masalah. Tunjukkan padanya bagaimana Anda memecahkan masalah setiap hari. Anda mungkin memberi tahu dia tentang proyek yang sedang Anda kerjakan dan bagaimana itu akan membantu klien Anda. Juga sertakan sedikit tentang mengapa Anda (mungkin) menyukai pekerjaan Anda.
Dalam kasus saya, saya telah mengembangkan situs web tutorial video pendidikan tempat anggota staf lainnya memposting tutorial. Saya akan menjelaskan tentang motivasi untuk proyek (mengajar orang lain dari jarak jauh tanpa harus mengikat orang), masalah yang saya hadapi (saya tidak harus melihat ini sebagai masalah sulit) dan bagaimana saya menyelesaikannya. Saya juga berbicara tentang mengapa saya suka pemrograman sejak awal: Saya suka menciptakan sesuatu dan kontribusi pemrograman ke dunia modern.
sumber
Berikan dia contoh perangkat lunak yang telah Anda kerjakan. Apakah Anda memiliki klien yang menggunakan perangkat lunak Anda secara publik? Apakah Anda mengembangkan aplikasi in-house yang bisa Anda tunjukkan padanya? Tunjukkan padanya hasil akhir dari pekerjaan Anda, apa yang dilihat dan digunakan pengguna akhir.
Kemudian, jelaskan bahwa Anda membantu menulisnya. Bacalah bagian-bagian yang Anda tulis. Perlihatkan beberapa kode jika Anda bisa. Uraikan bagaimana garis-garis kode tersebut membuat beberapa bagian dari aplikasi berfungsi.
Bicara tentang seberapa banyak kenikmatan yang Anda dapatkan dari melihat kode Anda digunakan oleh orang-orang.
Begitulah cara saya menjelaskannya kepada sepupu saya yang berusia 14 tahun. Dia cukup terkesan dan memutuskan untuk mengambil kelas pemrograman untuk semester berikutnya.
sumber
Apakah Anda terbiasa dengan permainan papan Robo Rally?
Saya telah menemukan bahwa itu adalah analogi kesenangan prefek untuk pemrograman. Anda pada dasarnya memprogram robot Anda menggunakan perintah sederhana (kebanyakan panah) untuk mencapai tempat tertentu di papan permainan sebelum yang lain.
Man aku berharap aku masih punya BigTrak saya ...
sumber
Perlihatkan sesuatu yang sederhana, tetapi bermanfaat. Contoh yang baik menurut saya adalah sebagai berikut:
Alasan saya menyukai pendekatan ini adalah:
Anda mungkin dapat memikirkan contoh yang lebih baik, tetapi saya pikir gaya ini membantu untuk "intro pertama".
sumber
Sebagian besar anak berusia 15 tahun "hari ini" memiliki banyak pengalaman dengan komputer. Saya akan pergi untuk pendekatan yang lebih dekat. Saya akan menunjukkan padanya sedikit kode (jangan mencoba menjelaskannya secara terperinci, tetapi mungkin membahas dasar-dasar ekstrim dari "aliran") dan menunjukkan kepadanya apa hasilnya. Bahkan HTML akan berfungsi untuk contoh semacam ini. Lalu katakan "Setiap hari, pada dasarnya saya melakukan itu .. kecuali dengan puluhan ribu baris kode dan program yang sangat besar dan kompleks".
Kemudian jelaskan masalah apa yang Anda selesaikan dengan pemrograman, dan mengapa Anda suka melakukannya. Sebagai contoh, saya katakan saya suka pemrograman karena "Saya suka melihat kode saya menjadi hidup di komputer sebagai aplikasi"
sumber
Pertama, Anda memiliki persaingan yang perlu Anda sanggah.
Film, budaya populer, dan bahkan orang-orang di lapangan ( dan pertanyaan ini ) mencoba menggambarkan pemrograman (dan sebagian besar bidang ilmu komputer) sebagai semacam sihir. Itu bukan sihir.
Pemrograman hanya menggambarkan tugas-tugas dan kemudian menggabungkan tugas-tugas itu untuk menyelesaikan masalah. Jika Anda mencoba mencari paralel, gunakan matematika. Komputer seperti guru matematika yang mengharuskan Anda menunjukkan semua pekerjaan Anda .
Dari sudut pandang fisik, komputer tidak pintar - mereka hanya tahu sebanyak yang kami katakan. Jadi ketika seorang programmer komputer ingin membuat sebuah program yang, misalnya memainkan musik dari CD, mereka 'hanya' perlu memberi tahu komputer cara membaca data yang disimpan dalam CD, lalu bagaimana mengubah data itu menjadi gelombang suara dan terakhir , bagaimana cara mengeluarkan gelombang suara dari speaker Anda.
Mengambil ide ini ke tingkat berikutnya, Anda dapat melanjutkan tentang bagaimana pemrograman membangun tugas di atas satu sama lain. Sama seperti dia harus belajar aritmatika sebelum mereka bisa belajar aljabar dalam matematika, komputer juga perlu diberitahu bagaimana 'melakukan dasar-dasar' sebelum Anda dapat memberi tahu mereka cara melakukan tugas yang lebih rumit. Selama bertahun-tahun, para ilmuwan dan pemrogram komputer telah mampu 'mengajar' komputer cukup dasar sampai-sampai kita dapat mulai 'berbicara' dengan mereka lebih dekat dengan bagaimana kita berbicara satu sama lain.
Kembali ke kehidupan nyata, guru matematika Anda mungkin memberi tahu Anda untuk menyelesaikan "15 pangkat 3", tetapi Anda hanya tahu bagaimana melakukannya karena sebelumnya Anda diajarkan bahwa "X pangkat Y" terurai menjadi tugas "Kalikan X dengan X , dan lakukan itu Y kali" [secara teknis Y -1 kali, tapi eh.]
Sama seperti kelas matematika Anda, programmer telah membangun basis tugas yang 'diketahui' sehingga kita tidak perlu fokus pada detail hal-hal kecil dan dapat mencurahkan waktu kita untuk menyelesaikan masalah yang sebenarnya dan tidak begitu banyak bagaimana melakukan yang mendasarinya tugas - kita sekarang dapat menganggap komputer memahami bagaimana melakukan hal-hal dasar.
sumber
Saya akan melakukan apa yang membuat saya ketagihan ketika saya berusia sekitar 9. Ambil C64 keluar dari loteng, dan lakukan:
10 PRINT "YOU SMELL"
20 GOTO 10
(Terimakasih ayah).
Lalu ketika kesenangan itu berakhir. Saya akan menunjukkan padanya permainan menebak angka. Yap, semuanya dalam BASIC. Tidak perlu sekarat untuk bahasa modern untuk menunjukkan komputer mengambil instruksi.
sumber
Mungkin bermanfaat untuk memulai dengan sesuatu yang dia lakukan secara rutin, seperti Facebook, dan menjelaskan kepadanya bagaimana satu aspek sederhana seperti masuk bisa sangat rumit.
Anda dapat bercabang dari sini ke dalam basis data, desain aplikasi, dan kemudian ke dalam beberapa aspek keamanan yang merupakan sesuatu yang bermanfaat yang dapat diambilnya.
Anda bahkan dapat bertanya padanya sesuatu seperti, "Jika ada satu hal tentang Facebook yang bisa Anda ubah, apakah itu?" Kemudian ajak dia jalani bagaimana Anda bisa membuat perubahan dan berapa banyak orang yang akan terlibat.
Saya pertama kali belajar memprogram Pascal dan saya semua bersemangat bahwa program saya menerima input saya, mengacaukannya, dan mencetak sesuatu yang berbeda. Saya ketagihan dari sana. Beberapa orang mudah mengunci.
sumber
Saya berharap telah pergi untuk penempatan kerja di suatu tempat yang mungkin mengembangkan perangkat lunak bahwa dia harus memiliki minat di bidang ini?
Tidak ada jawaban yang pasti, saya akan menanyai selama 5-10 menit tentang apa yang dia tahu kemudian hanya mencoba dan membangun yang terbaik yang Anda bisa.
sumber
Mulai level tinggi. Mungkin menjelaskan bahwa pemrograman komputer adalah tentang pemecahan masalah: mengambil masalah dan menyusun solusi yang ditulis sebagai banyak instruksi yang dapat digunakan dan dipahami mesin.
Bagian yang sulit mungkin muncul dengan contoh-contoh yang menurut seorang gadis berusia 15 tahun menarik dan relevan . Karena belum pernah dalam situasi itu dan tidak mengenalnya, saya tidak yakin apa yang harus direkomendasikan untuk itu ... Hindari sampel kode, sampai mendekati akhir, dan kecuali untuk kasus yang sangat sederhana atau menarik, seperti program "Hello world" atau sesuatu yang sederhana dan grafis (gambar beberapa bentuk di jendela, lacak tetikus, dll ...).
sumber
Inilah pendapat saya setelah beberapa upaya gagal dan beberapa yang cukup bagus:
Pemrograman adalah pemecahan masalah.
Mulailah dengan hal-hal konkret yang diprogram yang mereka gunakan setiap hari - browser internet (facebook), ponsel, mesin kasir, dll. Dapatkan mereka untuk memberi Anda banyak contoh. Tetapkan bahwa semua hal ini memiliki sejenis komputer di dalamnya. Jantung komputer adalah prosesor.
Prosesornya seperti pekerja yang sangat cepat, tetapi sangat bodoh. Jika Anda memberikan beberapa instruksi, itu akan melakukannya persis seperti yang Anda katakan. Itu tidak akan melakukan apa pun ekstra dan tidak akan memberi tahu Anda jika sesuatu yang Anda katakan itu salah. Prosesor ini melakukan segalanya - jika Anda tahu persis bagaimana melakukannya, ia dapat melakukan panggilan telepon atau memasukkan gambar ke dalam surel.
Tanyakan padanya bagaimana ia akan memberi tahu pekerja yang sangat cepat tetapi sangat bodoh untuk membeli sekaleng soda dari mesin soda. Ketika dia mulai menjelaskan langkah-langkahnya ("Masukkan uang ke dalam mesin dan tekan tombolnya.") Mulailah membedahnya seperti sebuah program ("Apa itu uang? Bagaimana saya memasukkannya ke dalam mesin? Ketika saya memasukkan uang ke dalam mesin dan tekan tombol pada saat yang sama, tidak ada yang terjadi. "). Jika Anda memiliki papan tulis, mulai di sebelah kiri dengan set instruksi pertamanya. Ketika dia merevisinya, letakkan daftar baru yang lebih besar di sisi kanan. Ketika Anda memiliki seperangkat instruksi yang baik, mulailah menggeneralisasi potongan-potongan ("Keluarkan uang dari saku Anda dan keluarkan soda dari baki dengan suara yang serupa - bagian mana yang sama / berbeda?") Ambil generalisasi dan letakkan di tengah dan mencoret potongan-potongan yang sekarang mereka jangkau. Cobalah untuk akhirnya mengikat potongan-potongan agar sesuai dengan instruksi aslinya, semacam panggilan fungsi seperti. Latihan bagus lainnya: kirim surat, melewati pintu, menggambar lingkaran / persegi / segitiga.
Jadi Pemrograman adalah pemecahan masalah: memecah masalah menjadi beberapa bagian, mengidentifikasi bagian-bagian yang umum, dan mengelompokkan bagian-bagian itu kembali untuk menyelesaikan masalah. Segera, Anda mengetahui bahwa beberapa bagian adalah umum di banyak masalah, dan kemudian Anda mulai menyatukan bagian-bagian untuk memecahkan masalah yang Anda bahkan tidak tahu Anda punya.
Oke, pada titik ini dia mungkin mengerti tapi dia mungkin bosan. Lanjutkan dengan serangkaian contoh pemrograman keren. Shader dan kode visual terkait mudah untuk didemonstrasikan - Anda dapat memasang gambar dan mulai membuat perubahan dengan perubahan kode yang sangat kecil. Jika dia menyatakan minatnya pada Facebook, pamerkan berbicara dengan Facebook melalui REST untuk melihat data teman teman (6 derajat). Jika dia menyukai video game, pamerkan beberapa demo permainan sumber terbuka bersama dengan beberapa cuplikan kode mereka dan bagaimana mereka membantu permainan bekerja. Akhiri dengan menunjukkan beberapa alat dan sumber daya gratis yang bisa dia selidiki di rumah. (Python, C #, dll.)
Usaha saya yang gagal: mencoba menjelaskan perhitungan pi (mereka bertanya), permainan papan C-Jump http://c-jump.com/ (mereka tidak mendapatkannya dan instruksinya buggy), dan langsung mengkode 2d game (tidak bisa menahan minat, tidak peduli seberapa kecil langkah yang saya ambil di antara demo).
Semoga berhasil!
sumber
Buat program sederhana. Tidak, bukan "Hello World!"
Apa yang akan saya lakukan adalah mengatakan bahwa ada banyak jenis bahasa pemrograman - yang membuat game, yang mengendalikan robot - tetapi yang akan Anda kerjakan adalah HTML.
Buat halaman web tanpa apa-apa di atasnya, lalu tambahkan formulir yang akan mengirim email ke alamat emailnya. Dia mungkin memiliki ponsel yang mampu memberi tahu pemilik bahwa mereka memiliki email baru, sehingga Anda dapat memberitahunya bahwa itu adalah cara yang bagus untuk teman dan keluarganya untuk menghubunginya. Jika dia mendapatkan situs webnya sendiri di masa depan, Anda dapat memberitahunya bahwa dia dapat meletakkan formulir di situs webnya, sehingga pelanggan dan mitra bisnisnya dapat menghubunginya.
Atau, jika dia sedikit nakal, saya akan memberi tahu Anda apa yang membuat saya tertarik untuk memprogram: peretasan. Kembali pada hari itu, saya membuat program terbaik yang pernah dibuat untuk bermain-main di AOL (di luar satu program yang mengungguli saya hanya satu dari banyak hal yang saya lakukan) - pada usia 14-15. Di sisi topi putih, saya juga membuat salah satu program penghapusan spam pertama (1995). Saya bisa membuat pengalaman online saya jauh lebih menyenangkan, dan kami akan membiarkannya begitu saja. Segala sesuatu yang ingin saya lakukan di komputer adalah petualangan atau teka-teki yang harus saya pahami, dan hal-hal yang ingin saya lakukan di komputer tidak ada habisnya. Tentu saja, membuatnya kadang-kadang sulit, tetapi menulis sebuah program yang menyelesaikan hal-hal dengan lebih baik dan lebih cepat daripada yang dilakukan manusia mana pun, atau melakukan hal-hal yang tidak mungkin dilakukan oleh masyarakat umum, seperti membuat mesin yang bagus yang bisa dibanggakan orang. Sekarang, Anda mungkin menghindari sesuatu yang serius, tetapi akan sangat mudah untuk membuat sesuatu dalam Visual Basic yang dapat diluncurkan saat start-up (duduk di sisi layar atau baki sistem,) dan dari sana, Anda dapat membuatnya meluncurkan situs web favoritnya, program favoritnya, dll. Anda dapat memperkenalkannya pada perintah yang diperlukan untuk meluncurkan exe dan situs web, dan kemudian hanya memintanya untuk membuat beberapa tombol, lalu menambahkan kode ke tombol-tombol itu , memasukkan situs web favoritnya (facebook, twitter, dll.) dan program (iTunes, pengolah kata, dll.) Jika komputernya ada di kamarnya, Anda juga dapat melemparkan jam alarm di atasnya untuk menambah fungsionalitas. Tentu saja, 30 menit terlalu singkat untuk membawanya, jadi Anda harus sudah menyelesaikannya. Pada akhirnya, Anda akan mengirim email manual pengguna 2-3 halaman kecil, kode, dan .exe padanya ... dan kemudian meninggalkannya dengan sedikit promosi dagang: awalnya tidak mudah, tetapi begitu Anda mendapatkan menguasainya, itu tidak terlalu buruk, akan sangat berguna dalam hidup, dan akan membantu mengembangkan pemikiran analitisnya.
sumber
Saya dulu mengajar mahasiswa berusia 18 tahun, dan saya kira usia 15 tahun hampir sama. Jangan berharap sukses tanpa latihan. Butuh beberapa minggu di kelas pertamaku untuk "pecah".
Hal terbesar yang harus saya pelajari adalah bahwa apa yang saya pikir sangat sederhana dan jelas sehingga saya takut tidak dapat mengisi waktu sama sekali tidak kepada siswa. Saya belajar bahwa Anda harus pergi dalam langkah-langkah kecil - kalau tidak itu hanya sihir "wah jagoan".
Betapa cocoknya Anda dalam 30 menit ini, saya tidak yakin, tetapi hal pertama yang saya lakukan adalah menunjukkan kepada mereka sedikit komputer buatan rumah yang saya buat, yang diprogram untuk memainkan nada kecil dengan mengeklik speaker masuk dan keluar. Saya menjelaskan bahwa itu bisa memainkan catatan dengan mengurangi penghitung, untuk bertindak sebagai penundaan, di antara klik. Saya baru saja menulis pseudo-code di papan tulis, seperti resep. Lalu, ada kapasitor kecil yang bisa saya kaitkan di bawah kawat yang akan menjalankan semuanya sekitar 1000 kali lebih lambat. Lalu mereka bisa mendengar klik - tunggu - klik - tunggu ... Lalu ketika saya melepas kapasitor, itu meledak dengan nada kecil.
Intinya adalah untuk mengetahui bahwa komputer hanya melakukan hal-hal sederhana, dan melakukannya satu per satu. Mereka tidak memulai setiap langkah sampai langkah sebelumnya selesai. (Ya, ya, saya tahu - perpipaan dan semua itu, tetapi kami sedang berbicara dengan pemula .) Hanya kecepatan elektronik yang membuat mereka tampak melakukan semuanya sekaligus, itulah yang cenderung diasumsikan oleh pemula (bersamaan dengan membaca pikiran) . Itu adalah salah satu konsep dasar yang tanpanya Anda tidak dapat mulai memahami pemrograman dan komputer. Bagi kami, ini sangat rumit sehingga kami bahkan tidak menyadari bahwa kami mengetahuinya, tetapi pemula tidak mengetahuinya.
sumber
Saya tahu ini bukan bahasa pemrograman tetapi saya pikir HTML adalah tempat yang baik untuk memulai. Karena Anda mendapatkan hasil langsung .... mulai dengan
Halo Dunia
Lalu lakukan:
Halo <b> Dunia </b>
Dll
sumber
Jika itu aku, aku akan memberitahunya bahwa pemrograman adalah tentang membagi tugas menjadi tugas-tugas kecil dengan cara yang membantu Anda menyelesaikannya; dan kemudian mengekspresikan tugas-tugas kecil itu dalam bahasa yang tidak bisa disalahpahami oleh komputer idiot. Tetapi Anda juga harus melakukannya sedemikian rupa sehingga programmer lain dapat memahaminya dengan mudah juga - dan itu bukan hal yang sama.
Yaitu, di atas apa yang orang lain katakan ...
sumber
Ini lebih dari pengalaman pribadi saya daripada "jawaban" langsung.
Mengapa saya tertarik? Orang tua saya membeli IBM PC XT pada tahun 1984 (saya lahir pada tahun 1984). Ini memiliki 640kb RAM dan 20MB HDD dan 5 "FDD dan menjalankan MS-DOS v3.2. Saya tidak diizinkan untuk menyentuhnya sampai saya berada di standar ke-5 dan ketika saya akhirnya diizinkan untuk menggunakannya, saya menuangkan semua tahun saya rasa ingin tahu yang terakumulasi ke dalamnya.
Sebaliknya, saudara perempuan saya diizinkan menggunakan PC yang sama dan mackintosh Quadra 610 itu setiap kali ia menginginkannya dan ia membayar sebanyak yang ia perhatikan saat ia membayar ke meja yang telah disiapkan.
Mengajar saudara perempuan saya ... Saya mencoba mengajar pemrograman komputer saudara perempuan saya di BASIC. Saya membuatnya untuk segalanya dengan benar dari mulai komputer untuk mengetik dalam program dan menjalankannya. Itu sebagai program baris.
Ini membutuhkan waktu setengah jam. Ketika dia akhirnya mengeksekusinya, itu dicetak kata 'CAT' dan dia sangat marah. Dia mengharapkan gambar kucing muncul. Dia bergegas keluar dari ruangan dan itu adalah akhir dari pemrograman selamanya!
Moral: Output lebih baik sebanding dengan waktu dan upaya yang mereka lakukan.
Mengajar anak-anak sekolah menengah Labview dan Lego NXT Saya adalah seorang mentor untuk Robotika PERTAMA selama satu tahun dan harus membimbing anak-anak dalam pemrograman robot di NI Labview. Terus terang, keterampilan pemrograman yang dibutuhkan jauh di atas tingkat anak SMA. Tetapi kompetisi itu dimaksudkan untuk membuat anak-anak bersemangat tentang teknik dan meningkatkan kemampuan mereka dalam menghadapi tantangan. Selama program hanya memiliki pernyataan if dan satu loop, semuanya baik-baik saja. Orang-orang keluar dari bagian pemrograman robot ketika mereka melihat diagram kode yang saya buat untuk robot yang kami buat tahun sebelumnya.
Sebanyak orang menyatakan bahwa anak berusia 15 tahun dapat melakukan hal-hal yang rumit dan dapat memiliki rentang jam perhatian, saya menemukan kurangnya motivasi yang aneh pada mereka untuk melakukannya. Mereka ingin melakukan hal-hal mudah yang tidak membebani otak mereka. Mereka lebih suka CAD dan bagian pabrik pada mesin bubut daripada program menulis.
sumber
Apa itu CS?
Saya pikir sebelum Anda masuk ke demo, ada baiknya Anda mengambil posisi CS di dunia secara singkat. Saya menyukai deskripsi Hal Abelson tentang CS relatif terhadap matematika: sementara matematika membantu Anda menggambarkan dunia dalam hal hukum, CS membantu Anda menggambarkan cara melakukan sesuatu. Contohnya adalah fungsi akar kuadrat: matematika akan mendefinisikannya, tetapi tidak akan membantu Anda menemukannya untuk setiap input yang diberikan. CS akan. Pada tingkat yang lebih rendah, teknik listrik dan fisika meletakkan dasar bagi perangkat keras yang memungkinkan internet, tetapi membuka pertanyaan tentang bagaimana membuat orang menggunakannya.
Bagaimana rasanya menjadi seorang programmer?
Lalu ada pertanyaan bagaimana rasanya menjadi seorang programmer. Yang membuat saya tertarik adalah bahwa ia memiliki perputaran yang lebih cepat dari mencoba-sesuatu, mengujinya, memperbaikinya, daripada bidang teknis lainnya. Ini pemecahan masalah tanpa henti, sedangkan di bidang lain waktu penyelesaian untuk satu putaran mungkin berbulan-bulan. Ini juga berguna untuk hampir setiap bidang teknis lainnya, yang lebih dari yang dapat dikatakan untuk ... sebagian besar bidang teknis lainnya. Jadi, jika Anda belum tahu apa yang ingin Anda lakukan (kemungkinan), itu bagus untuk menjadi baik di awal. Di perguruan tinggi, beberapa hal akan membuat Anda lebih berguna bagi lebih banyak profesor daripada mampu membuat kode eksperimen mereka.
Permen mata, terikat dengan kode
Maka tentu saja, jangan lupakan demo. Mungkin keren untuk mendapatkan salinan gempa (open-source), dan membuat perubahan satu baris (misalnya mengubah kekuatan gravitasi) dan mengkompilasi ulang, misalnya. Juga minta dia melihat kode. Yakinkan dia bahwa dia tidak berharap untuk mengerti banyak, itu mungkin tampak seperti omong kosong sekarang, tapi sekali lagi, begitu juga surat kabar dalam bahasa asing yang dia belum pelajari. Anda dapat mengatakan bahwa meskipun demikian dia dapat melihat bahwa benda-benda ditugaskan untuk benda-benda, benda-benda diberi tahu apa yang harus dilakukan, dan di sinilah kita mengatur gravitasi, dll.
sumber
Saya mulai pemrograman ketika saya berusia 14 tahun. Sementara sebagian besar (47 dari 50 siswa yang mendaftar) putus sekolah pada pertengahan tahun atau hanya memutuskan untuk tidak melanjutkan ke kursus lanjutan tahun depan, saya bertahan dan belajar sesuatu yang sangat penting:
Pemrograman memberi Anda kemampuan untuk membuat sesuatu dari ketiadaan. Anda memiliki kekuatan untuk mengubah kata-kata menjadi alat yang berguna yang memenuhi kebutuhan, kegiatan yang menghibur untuk Anda dan teman-teman Anda, atau hanya sesuatu yang dapat Anda perlihatkan kepada teman-teman Anda dan katakan, "Lihat apa yang saya lakukan."
Kami diajari "Hello World" untuk memulai, tetapi saya tidak tertarik sampai saya dapat membuat kode saya berinteraksi dengan pengguna . Saat kami diajari membaca masukan dengan "cin", saya mulai membuat program Mad-Lib yang bisa kami mainkan di kelas. Rintangan pertama saya adalah membaca input yang berisi spasi, diikuti dengan memformat output. Kemudian saya ingin dapat menyimpan cerita-cerita ini ke file dan jadi saya perlu belajar file IO. Mengatasi hambatan untuk mencapai tujuan saya sendiri adalah apa yang membuat saya tetap terlibat.
Kemudian pada tahun itu kami menemukan bahwa admin jaringan mencatat penggunaan "Net send" kami dan klien Novell SendMessage yang telah kami gunakan untuk berkomunikasi selama kelas komputer, dan mereka menonaktifkannya setelah siswa menggunakannya untuk menyontek saat ujian. Jadi saya menulis ruang obrolan untuk menggantikan yang dinonaktifkan oleh admin. Itu adalah hal pertama yang benar-benar berguna yang telah saya buat. Saya memodelkannya setelah sistem obrolan Battle.Net, lengkap dengan pendaftaran pengguna, moderator dan bahkan enkripsi dasar dan sistem file bayangan untuk mencegah pengguna dari gangguan (semua file harus berada di drive jaringan bersama agar siswa dapat akses dan gunakan program). Ini bukan konsep yang sudah saya sadari, tetapi solusi yang saya buat sendiri untuk memecahkan masalah. Bagi saya, itu adalah kegembiraan pemrograman.
Jadi untuk menjawab pertanyaan dengan benar, di luar diskusi tentang apa artinya mengembangkan perangkat lunak, demo interaktif mungkin merupakan ide bagus. Lebih disukai sesuatu yang memecahkan masalah yang dia miliki, seperti mengubah ukuran semua gambar raksasa dari kameranya secara otomatis. Meskipun sedikit lebih rumit, dia mungkin bersenang-senang dengan halaman web cuti-pesan sederhana yang bisa dia bagikan dengan teman-temannya. Anda dapat mengirim email kepada seseorang kapan saja pesan baru diposting, dan minta dia mengedit kode untuk mengirimnya ke emailnya alih-alih milik Anda. Juga, minta halaman menunjukkan jumlah X komentar terakhir, dan minta dia untuk menyesuaikan nomor itu juga, dan lihat apa hasilnya.
sumber
Di tempat saya dulu bekerja, kadang-kadang ada anak-anak yang punya pengalaman kerja. Ada yang tertarik dengan komputer, ada yang tidak. Kami biasa membuat mereka untuk menempatkan mereka di depan komputer dan membuat mereka untuk menulis permainan menebak. (Komputer secara acak memilih nomor, pengguna mendapat umpan balik jika tebakan mereka terlalu tinggi / rendah.) Mudah dilakukan dan ini benar-benar hasil yang menyenangkan. Tidak ada yang lebih kuat daripada menunjukkan kepada mereka secara nyata apa yang bisa mereka ciptakan.
sumber
Ketika Anda ingin mendapatkan --dan menjaga - perhatian seseorang, maka MEMINTA, jangan KATAKAN. Tanyakan bagaimana mereka akan melakukan tugas sederhana, seperti minum air. Kemudian tunjukkan kepada mereka bagaimana mengikuti instruksi yang mereka berikan (Seperti "Turun aula") tidak benar-benar menangani masalah kapan harus belok kiri, belok kanan, berhenti, dll. Memahami dan menangani kondisi batas itu, itulah bisnisnya pemrograman! Kemudian Anda dapat menunjukkan bagaimana loop "lakukan-sampai" dapat menangani situasi "berjalan sampai Anda datang ke dinding", untuk membuat meta-tugas dari tugas satu-kaki-di-depan-dari-yang-lainnya berjalan.
sumber
Saya tidak yakin apakah ini adalah legenda atau kisah nyata, tetapi saya membaca tentang mengapa beruntung suatu hari nanti. Bagian dari sebuah cerita adalah bagaimana dia menunjukkan pemrograman kepada seorang anak (atau mungkin bahkan anak-anak) yang dia temui di kereta.
Seperti beberapa dari Anda mungkin tahu, _why adalah seorang pria Ruby (dan Ruby, well, cukup ramah kepada manusia biasa). Dia sedang mengerjakan beberapa game di Ruby, sementara beberapa anak mendekatinya untuk melihat apa yang dia lakukan. Dia menunjukkan hasilnya pertama - permainan kerja. Kemudian, dia menunjukkan kepada anak itu bagaimana dia dapat memodifikasi hal-hal dalam kode untuk mengubah hasilnya. Lalu ia membiarkan anak itu bermain dengan kode dan melihat hasil yang dimodifikasi.
Saya pikir itu harus menjadi alur kerja umum Anda - hasil, modifikasi, mainkan. Anda harus menemukan beberapa proyek (permainan akan menjadi pilihan terbaik) dalam bahasa yang ramah manusia dan menunjukkannya kepada anak itu.
Karena saya sedih, saya tidak tahu apakah cerita ini benar atau tidak. Itu masih sangat keren.
Juga, satu hal lagi. Saya ingat pengalaman pertama saya dengan pemrograman -
MessageBox
di Delphi. Itu keren, karena saya bisa membuat komputer melakukan apa yang saya inginkan dan segera melihat hasilnya.Kemudian, mikrokontroler muncul. Mereka bahkan lebih baik, karena kode saya dapat mengubah dunia nyata. Maksud saya, memberikan beberapa nilai pada variabel berhenti menjadi abstrak, karena menyebabkan tegangan muncul pada port keluaran, yang kemudian menyebabkan mesin saya bergerak. Itu keren. Anda mungkin ingin memilih cara ini - perlihatkan kepada anak itu sesuatu seperti Arduino.
Anda lihat, saya pikir ini semua tentang mengubah dan melihat hasilnya.
sumber
Tunjukkan padanya hasil akhir dari beberapa hal yang telah Anda lakukan. Bicara secara umum tentang peran Anda dalam proyek. Mungkin bahkan membantunya melakukan halo dunia jika dia tertarik.
sumber
Analogi favorit saya untuk pemrograman adalah sihir (gaya harry potter), seperti Satanicpuppy. Saya menggunakan ini untuk teman-teman nonteknis dan juga anak-anak, tampaknya bekerja dengan cukup baik, dan jelas menyampaikan kekuatan yang diberikan komputer kepada kita.
Komputer adalah tongkat ajaib kita. Mereka memungkinkan kita untuk melakukan sihir mengingat gerakan pergelangan tangan kanan dan mantra. Sebagai pemrogram, kami memiliki akses ke buku mantra (perpustakaan) yang berfungsi dan disempurnakan oleh pendahulu kami. Kita dapat membuat mantra dan mantra baru atau bekerja dengan mantra yang sudah ada. Ada yang mudah, ada yang mengambil lebih banyak latihan untuk benar-benar menggunakan secara efektif, sering ada pertukaran dan banyak cara berbeda untuk memecahkan masalah yang sama (haruskah saya menggunakan ramuan yang baik atau mantra?).
Metafora yang diperluas ini benar-benar dapat diregangkan dengan baik dan seringkali memungkinkan saya untuk menyampaikan hasrat saya untuk pemrograman dengan cara yang dapat diakses oleh orang-orang di luar lapangan.
sumber
Cara terbaik untuk memahami anak-anak adalah menjadi anak-anak pertama ..! Sebagai seorang anak saya dulu benci mengerjakan pekerjaan rumah, pemaksaan dll.! jadi ada titik masuk di mana Anda dapat menarik perhatian mereka. Dalam rentang 30 menit meskipun kami tidak dapat menjelaskan semuanya, kami dapat mencoba memberi mereka semacam paparan di mana pada anak-anak yang tertarik menemukannya sebagai inspirasi. Mulailah dengan topik terkait seperti pekerjaan rumah, dll. Beri tahu mereka bagaimana komputer dapat menulis pemaksaan hanya dalam beberapa detik, dll.
Saya berharap yang terbaik untukmu.. ! kerja bagus
sumber