Saya telah diminta untuk mengambil seseorang di departemen TI kami yang tidak memiliki pengalaman pemrograman tetapi adalah orang yang cerdas dan mampu dan membantunya pindah ke pemrograman di katakanlah pengembang tingkat pemula yang mendukung aplikasi .Net yang ada. Saya yakin orang ini bisa melakukannya tetapi saya mencari cara tercepat untuk membuatnya cepat. Saya punya banyak ide tetapi ingin melihat apa yang dipikirkan orang lain. Saya tahu ini juga akan sangat tergantung pada bagaimana dia belajar, tetapi saya berbicara secara umum.
Jadi pertanyaannya: Menurut Anda apa cara terbaik untuk mempercepat pengembangan non-pengembang (.Net dalam kasus ini)?
Jawaban:
Saya biasanya meresepkan urutan yang sama untuk siapa saja yang ingin belajar pemrograman. Ini sangat teoritis, tetapi meletakkan dasar yang bagus. Perlu waktu tiga atau empat bulan belajar penuh waktu, tetapi pemrograman bukanlah sesuatu yang Anda pelajari dalam semalam.
Jika Anda tidak bisa melewati urutan ini, Anda tidak akan bisa memprogram, jadi sebaiknya Anda menyerah sekarang.
Aturan saya adalah: kerjakan jalan Anda melalui tiga buku dengan kekuatan semata, jika perlu. Ajukan pertanyaan yang Anda miliki, tetapi hanya setelah berjuang untuk mencari tahu sendiri. Jika Anda bisa melewati ketiga buku itu, selamat, Anda seorang programmer, sekarang saya bisa melempar Anda PERL DALAM 15 MENIT atau sampah apa pun yang ada di toko buku di Rak Buku Besar Jawa dan Anda akan berhasil dengan baik. Jika Anda tidak bisa melewati ketiga buku itu, menyerah, pulang, Anda tidak akan pernah mendapatkannya.
Saya pikir Anda tidak perlu belajar C dan Skema, jujur saja. Itu hanya fondasi untuk pembelajaran di masa depan. Kedua buku yang cukup sederhana ini keduanya sangat sederhana di permukaan (C dan Skema adalah bahasa super-mudah) tetapi mereka menjadi sangat mendalam pada seni pemrograman nyata tanpa membuang waktu pada sintaks yang membingungkan, sehingga mereka sangat baik untuk mulai memasang kembali kawat Otak Anda menjadi programmer yang baik.
Upaya untuk mengambil jalan pintas dan langsung belajar hal yang tepat yang ingin Anda pelajari sekarang (seperti memulai dengan C # dan ASP.NET) hancur.
sumber
up to speed quickly
.Cara terbaik untuk mempercepat non-pengembang dengan cepat adalah menginspirasi mereka !
Agar sukses, kandidat harus paling tidak ingin tahu, jika tidak bersemangat , tentang pemrograman (terlepas dari platform).
Sementara saya setuju dengan Joel dalam kasus kandidat ideal, saya akan berhati-hati untuk tidak menjejalkan terlalu banyak teori ke dalam pikiran yang lemah - itu hanya akan membuat mereka pergi. Jika mereka terinspirasi, ingin tahu, dan mudah-mudahan bersemangat, mereka akan ingin memahami teorinya setelah mereka melihat keajaiban.
Saya sepenuhnya setuju dengan @karudzo - pencapaian mandiri dan tinjauan konstruktif bisa sangat menginspirasi.
sumber
Cara tercepat mungkin untuk memberinya waktu yang dibutuhkan , meskipun itu bisa dengan mudah satu atau dua tahun.
Tentu, tampaknya mudah untuk mengajarinya bahasa yang sederhana (C #, jika dia melakukan hal-hal .NET), tetapi belajar bahasa bukanlah belajar memprogram.
Jika dia tidak pernah memprogram, maka, selain sintaks dan pustaka dari setidaknya satu bahasa, dia harus belajar tentang array, daftar yang terhubung, model kompilasi dari bahasa apa pun yang dia pelajari, modularisasi, manajemen sumber daya, paradigma, pola, Big- O-notasi ... - seluruh enchilada. Itu banyak hal yang harus dibajak, dan kebanyakan dari kita membutuhkan beberapa tahun hanya untuk mempelajari dasar-dasar ini, dan bahkan lebih untuk menjadi programmer profesional sejati.
Ada materi di luar sana yang mencakup banyak hal ini (seperti buku terbaru Stroustrup yang mengajarkan pemrograman menggunakan C ++, daripada mengajarkan bahasa C ++), tetapi tidak banyak dan tidak ada yang membahas semuanya. Jadi lelaki itu harus mau belajar, dan membaca banyak buku dan artikel.
Mengenai cara melakukan ini: Saya tidak memiliki kurikulum lengkap untuk ditempel di sini. (Maaf.) Namun,
apa yang saya sarankan adalah memulai dengan mengajarinya satu bahasa pemrograman, sehingga ia memiliki kesempatan untuk membuat beberapa kemajuan awal yang cepat dan mendapatkan beberapa hasil yang menggembirakan. Ada beberapa buku di luar sana untuk mengajarkan bahasa seperti itu, pilihlah yang sudah Anda kenal. Jika buku ini memiliki banyak latihan, dan ia bersedia melakukannya, bersiaplah untuk menghabiskan banyak waktu membantunya. Jika buku tidak memiliki (m), mulailah memikirkan yang Anda miliki jauh di depan, tetapi bersiaplah untuk menyesuaikannya dengan tingkat / kecepatan pemahamannya.
Jika bahasa pertama itu bukan C atau C ++, IMO ia harus belajar salah satu dari ini selanjutnya. K&R bagus untuk itu, seperti halnya TCPL Stroustrup atau, jika dia bisa (dengan bantuan Anda) menangani kurva pembelajaran yang curam, Koenig / Moo. Alasan saya akan merekomendasikan ini adalah, begitu Anda tahu C atau (lebih disukai IMO) C ++, relatif mudah untuk mengambil salah satu dari turunan C seperti C #, Java, ObjC ...
Selebihnya, sediakan buku dan artikel bagus untuknya. Saya tidak berpikir itu sangat membantu jika kami menyarankan terlalu banyak dari itu, karena 1) itu harus sesuai dengan budaya perusahaan Anda, dan 2) Anda harus merasa nyaman mengatakan kepadanya untuk mempelajari hal-hal itu.
sumber
Saya tidak akan memulainya di .NET. Saya telah melakukan kesalahan ini terlalu sering. Jangan biarkan majikan menekan Anda untuk membuat programmer yang tidak kompeten karena waktu. .NET mungkin merupakan platform pengembangan cepat, tetapi tidak memaksa pengembang untuk belajar pemrograman. Dalam C # saja, Anda akan menemukan pengembang terjebak pada jenis referensi, objek seumur hidup, mereka akan meninggalkan kebocoran memori yang sangat besar (ya itu mungkin di .NET), dan akan memiliki desain yang buruk. Akan jauh lebih baik untuk memulai mereka pada C atau C ++ (mungkin c ++ karena mereka akan perlu menggunakan konsep OOP) dan kemudian mengatakan sesuatu seperti: "Sekarang bukankah lebih baik jika ingatan Anda dikelola untuk Anda, setiap hal adalah objek -berorientasi, dan Anda tidak harus berurusan dengan semua petunjuk jahat ini? " Ini adalah C # dan JAWA. Jika mereka telah menguasai c ++, mereka akan menaklukkan keduanya dalam satu atau dua minggu masing-masing. Saya merekomendasikan resimen Joel. Itu adalah daftar yang diberikan guru 101 CS saya, dan saya jauh lebih baik ketika saya menekan analisis numerik karena itu. Ini juga akan memungkinkan Anda untuk mengetahui lebih awal apakah kandidat akan memotong mustard atau tidak. Juga, setelah Anda mendapatkan c dan c ++, Anda akan secara otomatis memahami c # dan java setelah membaca pengantar buku. Anda tidak hanya akan memahaminya, tetapi Anda akan memahaminya lebih baik daripada seseorang yang tidak tahu c dan c ++.
sumber
hWND
dari tahun 80an kan? Jelas Anda menggunakan abstraksi yang bagus sebagai gantinya (Yang abstraksi adalah perdebatan yang sama sekali berbeda). Tentu mengetahui cara kerjanya di bawah tenda itu bagus tetapi Anda tidak perlu C # .NET untuk abstraksiBeri mereka sesuatu yang sederhana, tetapi berguna untuk dipecahkan. Biarkan mereka meraba-raba sedikit dan membantu mereka memolesnya. Tidak ada yang seperti prestasi kecil untuk membantu memacu mereka (meskipun seseorang tidak tertarik pada pemrograman w
sumber
Memasangkan pemrograman. Biarkan mereka membayangi Anda saat Anda menulis kode Anda sendiri - kode apa pun. Dalam beberapa jam, kemudian minta mereka memasukkan kode Anda untuk Anda, sementara Anda memberi tahu mereka apa yang harus dilakukan, keystroke demi keystroke bahkan jika perlu. Jawab beberapa pertanyaan mereka, tetapi jangan sampai Anda diperlambat - biarkan mereka menyerap semuanya. Mereka juga akan menemukan kesalahan ketik dan bug Anda lebih banyak daripada yang mungkin Anda pikirkan. Dalam beberapa hari, mereka akan dapat mulai 'menavigasi' dengan memberi tahu Anda kode apa yang harus dimasukkan untuk tugas yang mirip dengan yang pernah mereka lihat sebelumnya.
Saya belajar banyak dari apa yang saya ketahui sebagai pengembang dengan cara ini dalam waktu satu bulan, dan telah mengajar beberapa pengembang baru dengan cara ini, salah satunya mampu mengambil alih untuk saya sebagai pengembang utama pada startup setelah beberapa bulan. Ketika kami pertama kali mulai bekerja bersama, dia tidak pernah menulis satu baris kode pun.
sumber
Beri dia ide yang bagus (studio visual, ekspres masih bagus). Ajari dia 60% sintaksis umum (biarkan hasil, LINQ, enum, atribut, dll, mengajar kelas, virtual dan menimpa). Habiskan waktu di debugger (terutama callstack). Kemudian katakan padanya ke google "msdn functionanme" setiap kali dia membutuhkan bantuan dan itu akan membuatnya memulai dengan cepat.
Juga ajari dia untuk tidak pernah menangkap dan menelan pengecualian. Katakan padanya dia harus menyusun kembali atau mencatatnya!
Bonus: ajari dia cara membuat serial data json sehingga dia dapat dengan mudah membaca / menulis ke file. Sebuah db berlebihan dan terlalu banyak untuk dipelajari dan Anda tidak ingin dia menulis format file khusus walaupun saya dapat membiarkan satu entri per baris jenis file lulus untuk menyimpan / memuat array string yang dapat diterima.
sumber
Saya tahu banyak orang telah berbicara tentang bahasa dan buku untuk bahasa-bahasa itu. Saya berbeda.
Pemrograman adalah tentang belajar berpikir secara analitis. Pertama dan terutama orang tersebut harus dapat berpikir dan membuat algo di selembar kertas untuk masalah apa yang terjadi. Anda harus membimbing mereka sehingga mereka mendapatkan teknik berpikir yang tepat.
Berikutnya adalah dasar-dasar bahasa. Mulai dengan bahasa pilihan. Berikan masalah pada program.
Setelah pemotongan pertama selesai, minta mereka untuk melakukan fundamental CS dan Pola Desain.
Sekarang minta mereka untuk memprogram ulang masalah sebelumnya dengan konsep-konsep baru ini.
sumber
Mulai dia di dasar-dasar: variabel, loop, sementara loop, untuk loop, array, ajarkan dasar-dasarnya, mencetak ke layar, melakukan beberapa matematika sederhana. Beralih ke metode dan OOP dasar, hal-hal seperti inilah cara membuat kelas, tunjukkan padanya mengapa tidak hanya caranya.
Bahasa tidak masalah, tetapi pilih sesuatu yang Anda tahu dan itu sangat abstrak (java, python dll ...) sehingga ia tidak perlu khawatir tentang hal-hal seperti manajemen memori, pointer dll ... Ajarkan dasar-dasar rekursi, menara hanio atau direktori pencarian rekursif.
Learn to program adalah sumber gratis yang bagus untuk pemrograman Ruby. Jadikan itu menyenangkan, mudah dan menghibur.
sumber
Beri dia beberapa tantangan dan minta dia belajar bagaimana menemukan sumber daya untuk menyelesaikan masalah sendiri.
Jika Anda bisa mengajarinya cara menemukan jawaban dan mandiri, ia secara alami akan belajar cara memprogram dengan baik. Berpikir kritis dan banyak akal adalah dua keterampilan utama bagi seorang programmer.
Pada akhirnya, gairah / minat pasti akan menjadi faktor kunci dalam seberapa sukses mereka dalam mempelajarinya dengan cepat. Jika dia tidak memiliki atau menangkap "bug", itu mungkin proses yang lambat dan / atau menyakitkan. Jika dia benar-benar menangkap bug, dia akan terlambat coding, tidak bekerja, memiliki waktu dalam hidupnya.
sumber