Back home

Pilar utama mempelajari pemrograman — dan mengapa pemula harus menguasainya.

Pilar utama dalam mempelajari pemrograman—dan mengapa pemula harus menguasainya

Pilar utama mempelajari pemrograman—dan mengapa pemula harus menguasainya.

Saya telah memprogram selama lebih dari 20 tahun. Selama waktu itu, saya merasa senang bisa bekerja dengan banyak orang, dan dari mereka saya belajar banyak. Saya juga telah bekerja dengan banyak mahasiswa, yang baru lulus dari universitas, dengan siapa saya harus mengambil peran sebagai guru atau mentor. Saya telah memprogram selama lebih dari 20 tahun. Saya senang bisa bekerja dengan banyak orang selama ini dan saya belajar banyak dari mereka. Saya juga bekerja dengan banyak siswa yang baru lulus dari perguruan tinggi, dan saya harus mengambil peran sebagai guru atau mentor.

Akhir-akhir ini, saya terlibat sebagai pelatih dalam sebuah program yang mengajarkan coding kepada pemula. Baru-baru ini, saya bekerja sebagai pelatih di sebuah proyek yang mengajarkan pemrograman kepada pemula.

Mempelajari cara memprogram itu sulit. Saya sering menemukan bahwa kursus di universitas dan bootcamp melewatkan aspek-aspek penting dari pemrograman dan mengambil pendekatan yang buruk dalam mengajar pemula. Mempelajari cara memprogram itu sulit. Saya sering menemukan bahwa kursus perguruan tinggi dan bootcamp mengabaikan aspek penting pemrograman dan mengambil pendekatan yang buruk dalam mengajar pemula.

Saya ingin berbagi lima pilar dasar yang saya yakini harus menjadi dasar dari kursus pemrograman yang sukses. Seperti biasa, saya membahas konteks aplikasi web arus utama. Saya ingin berbagi lima pilar dasar yang saya yakini harus menjadi dasar dari kursus pemrograman yang sukses. Seperti biasa, saya bekerja dalam konteks aplikasi web mainstream.

Tujuan pemula adalah menguasai dasar-dasar pemrograman dan memahami pentingnya perpustakaan dan kerangka kerja. Tujuan bagi pemula adalah untuk menguasai dasar-dasar pemrograman dan memahami pentingnya perpustakaan dan kerangka kerja.

Topik tingkat lanjut seperti cloud, pengoperasian secara umum, atau alat pembangunan tidak boleh menjadi bagian dari kurikulum. Saya juga skeptis dalam hal Pola Desain. Mereka menganggap pengalaman yang tidak pernah dimiliki oleh pemula. Topik tingkat lanjut seperti komputasi awan, pengoperasian umum, atau peralatan bangunan tidak boleh menjadi bagian dari kurikulum. Saya juga skeptis dalam hal pola desain. Mereka menganggap pemula belum pernah memiliki pengalaman.

Jadi mari kita lihat di mana programmer baru harus memulai. Mari kita lihat di mana programmer baru harus memulai.

Pengembangan Berbasis Tes (TDD) Pengembangan Berbasis Tes (TDD)

TDD membawa banyak manfaat. Sayangnya, ini adalah topik tingkat lanjut yang belum sepenuhnya siap untuk pemula. TDD membawa banyak manfaat. Sayangnya, ini adalah topik lanjutan yang belum siap untuk pemula.

Pemula tidak boleh menulis tes. Ini terlalu berlebihan untuk tingkat keterampilan dasar mereka. Sebaliknya, mereka harus belajar bagaimana menggunakan dan bekerja dengan tes. Pemula sebaiknya tidak menulis tes. Ini terlalu tinggi untuk tingkat keterampilan dasar mereka. Sebaliknya, mereka harus belajar bagaimana menggunakan dan menggunakan tes.

Setiap kursus pemrograman harus berpusat pada latihan. Saya memperluas latihan saya dengan pengujian unit dan memberikan siswa lingkungan yang sudah disiapkan untuk menjalankan pengujian tersebut. Setiap kursus pemrograman harus berfokus pada olahraga. Saya memperluas latihan saya dengan pengujian unit dan menyediakan lingkungan bagi siswa untuk menjalankan pengujian ini.

Yang harus dilakukan siswa hanyalah menulis kode mereka dan kemudian melihat lampu testrunner berubah dari merah menjadi hijau. Gamifikasi yang dihasilkan adalah efek samping yang bagus. Yang harus dilakukan siswa hanyalah menulis kode mereka dan melihat lampu peserta penguji berubah dari merah menjadi hijau. Gamifikasi yang dihasilkan adalah efek samping yang bagus.

Misalnya: Jika teknologi yang dipilih adalah Spring, saya memberikan latihan dan tes dalam proyek Spring. Para siswa tidak perlu tahu apa pun tentang Spring. Yang perlu mereka ketahui hanyalah lokasi latihan dan tombol untuk memicu tes. Misalnya: Jika teknologi pilihannya adalah Spring, saya akan memberikan latihan dan tes di proyek Spring. Siswa tidak perlu tahu apa-apa tentang musim semi. Mereka hanya perlu mengetahui di mana latihannya dan tombol yang memicu tes tersebut.

Selain itu, siswa harus mengetahui cara menggunakan debugger dan memiliki Read-Eval-Print Loop (REPL) yang praktis. Kemampuan untuk menganalisis kode selama runtime dan memiliki tempat bermain untuk eksperimen kecil sangat penting dalam TDD. Selain itu, siswa harus mengetahui cara menggunakan debugger dan memiliki read-eval-print loop (REPL) yang praktis. Di TDD, kemampuan menganalisis kode saat runtime dan menyediakan tempat untuk eksperimen kecil sangatlah penting.

Poin utamanya adalah memastikan siswa tidak perlu mempelajari perilaku dasar TDD setelah mereka memperoleh keterampilan pemrograman inti. Mengubah kebiasaan di kemudian hari dalam karier siswa akan jauh lebih sulit dibandingkan mempelajari kebiasaan tersebut sekarang. Itu sebabnya mereka harus menjalani tes unit hidup dan bernapas sejak awal. Intinya adalah untuk memastikan bahwa siswa tidak perlu mempelajari perilaku dasar TDD setelah mereka menguasai keterampilan pemrograman inti. Mengubah kebiasaan di kemudian hari dalam karir siswa jauh lebih sulit dibandingkan mempelajarinya sekarang. Itu sebabnya mereka harus diuji di unit bertahan hidup dan bernapas sejak awal.

Di kemudian hari dalam kehidupan profesional mereka, mereka seharusnya memiliki antipati terhadap proyek tanpa pengujian unit. Mereka seharusnya secara intuitif melihat tidak adanya pengujian unit sebagai anti-pola. Di kemudian hari dalam karir mereka, mereka harus membenci proyek tanpa pengujian unit. Mereka harus secara intuitif melihat kurangnya pengujian unit sebagai anti-pola.

Dasar-Dasar Dasar-Dasar Pertama

Saya sangat sering mendengar bahwa pemula harus segera memulai dengan sebuah kerangka kerja. Ini seperti mengajari orang cara mengemudi dengan menempatkan mereka di dalam mobil reli dan meminta mereka untuk menghindari oversteering. Hal ini mengabaikan fakta bahwa mereka masih salah mengira rem sebagai throttle. Saya sering mendengar bahwa pemula harus segera memulai dengan sebuah kerangka kerja. Ini seperti mengajari orang cara mengemudi, memasukkan mereka ke dalam mobil reli dan meminta mereka menghindari oversteer. Hal ini sama sekali mengabaikan fakta bahwa mereka masih salah mengira rem sebagai pedal gas.Hal yang sama berlaku ketika kita memulai siswa dengan kerangka kerja seperti Angular. Pemula perlu memahami dasar-dasar pemrograman terlebih dahulu. Mereka harus memahami elemen dasar dan apa artinya menulis kode sebelum mereka dapat menggunakan kode orang lain. Hal yang sama berlaku untuk kerangka kerja seperti Angular. Pemula terlebih dahulu perlu memahami dasar-dasar pemrograman. Sebelum menggunakan kode orang lain, mereka harus memahami elemen dasar dan apa artinya menulis kode.

Konsep fungsi, variabel, kondisi, dan perulangan sama sekali asing bagi pemula. Keempat elemen ini membangun dasar-dasar pemrograman. Segala sesuatu yang menjadi dasar pembuatan program bergantung pada mereka. Konsep fungsi, variabel, kondisional, dan loop benar-benar asing bagi pemula. Keempat elemen ini menjadi dasar pemrograman. Semua komponen program bergantung padanya.

Siswa baru pertama kali mendengar konsep-konsep ini, namun yang paling penting adalah siswa menjadi mahir dalam menggunakannya. Jika siswa tidak menguasai dasar-dasarnya, segala sesuatu yang terjadi selanjutnya tampak seperti sihir dan mengarah pada kebingungan dan frustrasi. Siswa baru pertama kali mendengar konsep-konsep ini, namun yang paling penting adalah siswa menjadi mahir dalam konsep tersebut. Jika siswa tidak menguasai dasar-dasarnya, segala sesuatu yang terjadi selanjutnya akan tampak seperti keajaiban, sehingga menyebabkan kebingungan dan frustrasi.

Guru harus meluangkan lebih banyak waktu untuk hal-hal mendasar ini. Namun sayangnya, banyak yang bergerak terlalu cepat. Masalahnya adalah beberapa guru kesulitan menempatkan diri mereka sebagai siswa. Mereka telah lama memprogram dan lupa jenis masalah apa yang harus dihadapi oleh seorang pemula. Hal ini sangat mirip dengan pembalap reli profesional. Dia tidak dapat membayangkan bahwa seseorang perlu berpikir sebelum mengerem. Dia hanya melakukannya secara otomatis. Guru harus meluangkan lebih banyak waktu untuk membangun fondasi ini. Namun sayangnya, banyak orang yang mengalami kemajuan terlalu cepat. Masalahnya, beberapa guru kesulitan menempatkan diri mereka sebagai muridnya. Mereka telah memprogram begitu lama sehingga mereka lupa jenis masalah apa yang harus dihadapi oleh pemula. Ini sangat mirip dengan pembalap reli profesional. Dia tidak bisa membayangkan ada orang yang perlu berpikir sebelum mengerem. Dia hanya melakukannya secara mekanis.

Saya merancang latihan saya sedemikian rupa sehingga menantang namun dapat diselesaikan dalam jangka waktu yang wajar dengan menggunakan kombinasi empat elemen utama. Saya merancang latihan saya sedemikian rupa sehingga menantang namun dapat diselesaikan dalam jangka waktu yang wajar dengan menggunakan kombinasi empat elemen utama.

Contoh yang bagus adalah pengonversi angka Romawi dan Arab. Tantangan ini membutuhkan kesabaran dari para siswa. Begitu mereka berhasil menerapkan empat elemen untuk menyelesaikan tantangan, mereka juga mendapat dorongan motivasi yang besar. Contoh yang bagus adalah pengubah angka Romawi ke Arab. Tantangan ini memerlukan kesabaran dari pihak siswa. Begitu mereka berhasil menerapkan keempat elemen tersebut untuk memecahkan suatu tantangan, motivasi mereka juga akan meningkat secara signifikan.

Fundamental itu penting. Jangan melanjutkan sampai semuanya beres. Dasar-dasarnya sangat penting. Jangan pergi sampai mereka menyelesaikannya.

Perpustakaan dan Kerangka Kerja Perpustakaan dan Kerangka Kerja

Setelah siswa menghabiskan banyak waktu untuk coding, mereka harus belajar bahwa sebagian besar kode sudah ada dalam bentuk perpustakaan atau kerangka kerja. Ini lebih merupakan pola pikir daripada pola. Setelah siswa menghabiskan banyak waktu untuk coding, mereka harus memahami bahwa sebagian besar kode sudah ada dalam bentuk perpustakaan atau kerangka kerja. Ini bukanlah sebuah pola, melainkan pola pikir.

Seperti yang telah saya tulis sebelumnya: Pengembang modern mengetahui dan memilih perpustakaan yang tepat. Mereka tidak menghabiskan waktu berjam-jam untuk menulis versi buggy mereka sendiri. Seperti yang saya tulis sebelumnya: pengembang modern mengetahui dan memilih perpustakaan yang tepat. Mereka tidak menghabiskan waktu berjam-jam untuk menulis versi buggy sendiri.

Untuk menyukseskan transisi pola pikir tersebut, contoh dari “fase fundamental” harus dapat diselesaikan dengan menggunakan perpustakaan terkenal seperti Moment.js, Jackson, Lodash, atau Apache Commons. Agar perubahan pola pikir ini berhasil, contoh “Fase Dasar” harus dapat diselesaikan dengan menggunakan perpustakaan terkenal seperti Moment. js, Jackson, Lodash atau Apache Commons.

Dengan cara ini, siswa akan segera memahami nilai perpustakaan. Mereka memikirkan masalah-masalah rumit itu. Sekarang mereka menemukan bahwa perpustakaan dapat menyelesaikan tugas tersebut dalam waktu singkat. Dengan cara ini, siswa akan segera memahami nilai perpustakaan. Mereka bergulat dengan permasalahan yang kompleks. Kini mereka telah menemukan perpustakaan yang dapat mengatasi masalah ini dalam waktu singkat.

Mirip dengan TDD, siswa harus curiga ketika rekan-rekannya membual tentang perpustakaan manajemen negara buatan mereka yang membuat Redux tidak diperlukan. Mirip dengan TDD, siswa harus curiga ketika rekan kerja membual tentang pembuatan perpustakaan manajemen negara yang membuat Redux tidak diperlukan.

Dalam hal kerangka kerja, siswa tidak akan kesulitan memahami pentingnya perpustakaan setelah mereka memahami kegunaan perpustakaan. Terkait kerangka kerja, begitu siswa memahami kegunaan perpustakaan, mereka tidak akan kesulitan memahami pentingnya perpustakaan.

Tergantung pada jangka waktu kursus, mungkin sulit untuk mencurahkan waktu untuk kerangka kerja. Namun seperti yang sudah saya tunjukkan, aspek terpenting adalah mengubah pola pikir siswa dari memprogram segala sesuatu dari awal menjadi menjelajahi dan menggunakan perpustakaan. Tergantung pada kerangka waktu kursus, mungkin sulit untuk meluangkan waktu untuk kerangka tersebut. Namun seperti yang sudah saya kemukakan, aspek terpenting adalah mengubah pola pikir siswa dari pemrograman dari awal menjadi menjelajahi dan menggunakan perpustakaan.

Saya tidak menambahkan alat ke pilar ini, karena alat tersebut hanya berguna bagi pengembang berpengalaman. Pada tahap awal ini, siswa tidak perlu mempelajari cara mengintegrasikan dan mengkonfigurasi alat. Saya belum menambahkan alat ke pilar ini karena hanya berguna bagi pengembang berpengalaman. Pada tahap awal ini, siswa tidak perlu mempelajari cara mengintegrasikan dan mengkonfigurasi alat.

Master & Magang Master dan Magang

Di awal usia 20-an, saya ingin belajar bermain piano. Saya tidak menginginkan seorang guru, dan berpikir saya bisa mempelajarinya sendiri. Lima tahun kemudian, saya berkonsultasi dengan tutor profesional. Nah, apa yang bisa saya katakan? Saya telah belajar lebih banyak dalam 1 bulan dibandingkan lima tahun sebelumnya. Ketika saya berusia awal 20-an, saya ingin belajar bermain piano. Saya tidak ingin seorang guru, saya pikir saya bisa mengajar sendiri. Lima tahun kemudian, saya berkonsultasi dengan seorang mentor profesional. Apa yang bisa saya katakan? Saya belajar lebih banyak dalam sebulan dibandingkan lima tahun lalu.

Guru piano saya menunjukkan kesalahan dalam permainan saya yang tidak dapat saya dengar dan menyadarkan saya akan interpretasi yang tidak pernah saya bayangkan. Bagaimanapun, dia menanamkan dalam diri saya pola pikir musik dan seni, yang keduanya di luar jangkauan saya sebagai orang teknis. Guru piano saya menunjukkan kesalahan yang tidak dapat saya dengar ketika saya bermain dan membuat saya menyadari sesuatu yang interpretatif yang tidak pernah terpikirkan oleh saya. Bagaimanapun, dia menanamkan dalam diri saya cara berpikir musikal dan artistik, yang keduanya berada di luar jangkauan saya sebagai seorang teknisi.

Hal yang sama terjadi dalam pemrograman. Jika seseorang tidak memiliki pengalaman dalam pemrograman, belajar mandiri bisa menjadi ide yang buruk. Meskipun ada banyak kisah sukses, saya mempertanyakan efisiensi jika melakukannya sendiri. Hal yang sama berlaku untuk pemrograman. Jika seseorang tidak memiliki pengalaman pemrograman, mungkin ada baiknya jika Anda mengajarinya sendiri. Meskipun ada banyak kisah sukses, saya meragukan efektivitas melakukan hal ini sendirian.

Sebaliknya, harus ada hubungan “master & magang”. Pada awalnya, sang master memberikan peraturan yang harus dipatuhi oleh muridnya—secara membabi buta! Master mungkin menjelaskan peraturannya, tetapi biasanya alasannya di luar pemahaman peserta magang. Sebaliknya, harus ada “hubungan mentor-murid.” Pada awalnya, master memberikan aturan magang yang harus diikuti - ikuti aturan tersebut secara membabi buta! Master dapat menjelaskan aturannya, tetapi biasanya alasannya tidak dapat dipahami oleh peserta magang.

Aturan-aturan yang terinternalisasi ini membentuk semacam jaring pengaman. Jika seseorang tersesat, ia selalu punya tempat aman untuk kembali. Aturan internal ini membentuk semacam jaring pengaman. Jika seseorang tersesat, ia selalu dapat menemukan tempat yang aman.

Mengajar tidak boleh berupa monolog. Guru harus menangani setiap siswa secara individu. Dia harus memeriksa bagaimana siswa bekerja, memberikan nasihat, dan menyesuaikan kecepatan kursus dengan kemajuan mereka. Mengajar tidak boleh berupa monolog. Kepala sekolah harus menangani setiap siswa secara individu. Dia harus memeriksa bagaimana siswa bekerja, memberikan nasihat, dan menyesuaikan kecepatan kursus sesuai dengan kemajuan mereka.

Setelah peserta magang mencapai tingkat penguasaan tertentu, mereka harus didorong untuk menjelajahi wilayah baru. Sang master berkembang menjadi seorang mentor yang berbagi “kebijaksanaan” dan terbuka untuk berdiskusi. Setelah peserta magang mencapai tingkat penguasaan tertentu, mereka harus didorong untuk menjelajahi bidang baru. Guru menjadi mentor yang berbagi “kebijaksanaan” dan terbuka untuk berdiskusi.

Tantangan dan Motivasi Tantangan dan Motivasi

“Ayo buat tiruan Facebook!” Hal ini tidak datang dari seorang CEO yang didukung oleh sekelompok pengembang perangkat lunak senior dan anggaran jutaan euro. Ini adalah latihan dari kursus pengantar untuk programmer. Upaya seperti ini sebenarnya mustahil dilakukan. Yang lebih buruk lagi, para siswa dimasukkan ke dalam dunia ajaib dan tertipu sehingga mereka percaya bahwa mereka mempunyai keterampilan yang benar-benar di luar jangkauan mereka. “Ayo buat tiruan Facebook!” Bukan itu yang dikatakan oleh seorang CEO yang didukung oleh tim pengembang perangkat lunak senior dan memiliki anggaran jutaan euro. Ini adalah latihan dalam kursus pengantar programmer. Pekerjaan seperti itu hampir mustahil dilakukan. Parahnya lagi, siswa dibawa ke negeri ajaib dan ditipu untuk percaya bahwa mereka memiliki keterampilan yang benar-benar di luar kemampuan mereka.

Tidak diragukan lagi guru menyadari hal itu, namun menciptakan latihan seperti itu untuk alasan motivasi. Tidak ada keraguan bahwa guru mengetahui hal ini, namun ada alasan yang memotivasi untuk membuat latihan semacam itu.

Tujuan utama dari sebuah latihan bukanlah untuk menghibur. Itu harus dibuat berdasarkan teknik tertentu dan harus membantu siswa memahami teknik itu. Tujuan utama latihan bukanlah hiburan. Itu harus dibuat berdasarkan teknologi tertentu dan harus membantu siswa memahami teknologi tersebut.

Motivasi itu baik, tetapi tidak mengorbankan konten. Pemrograman tidaklah mudah. Jika siswa tidak memiliki motivasi intrinsik, coding mungkin bukan pilihan yang tepat. Motivasinya bagus, tapi tidak mengorbankan isinya. Pemrograman tidaklah mudah. Jika siswa tidak termotivasi secara intrinsik, menulis kode mungkin bukan pilihan yang tepat.

Pemula harus merasakan apa artinya menjadi pengembang profesional. Mereka harus tahu apa yang menanti mereka sebelum mereka menginvestasikan banyak waktu. Pemula harus merasakan apa artinya menjadi pengembang profesional. Mereka harus tahu apa yang menanti mereka sebelum menginvestasikan banyak waktu.

Misalnya, banyak aplikasi bisnis berpusat pada bentuk dan kisi yang kompleks. Menciptakan ini adalah keterampilan penting yang dapat diberikan oleh latihan. Membangun aplikasi yang mirip dengan Facebook mungkin bukan pelajaran terbaik yang bisa langsung dipelajari siswa. Misalnya, banyak aplikasi bisnis berpusat pada bentuk dan grid yang kompleks. Menciptakan ini adalah keterampilan penting yang dapat diajarkan oleh latihan. Membangun aplikasi seperti Facebook mungkin bukan kursus terbaik yang bisa langsung diambil oleh siswa.

Demikian pula, non-programmer mungkin akan terkejut melihat betapa sedikitnya baris kode yang ditulis pengembang setiap hari. Bahkan ada kalanya kita menghapus kode atau tidak menghasilkan apa-apa. Demikian pula, non-pemrogram mungkin akan terkejut dengan betapa sedikitnya baris kode yang ditulis pengembang setiap hari. Bahkan ada kalanya kita menghapus kode atau tidak melakukan apa pun.

Mengapa? Karena selalu ada yang salah. Kami menghabiskan waktu berjam-jam untuk memperbaiki beberapa bug yang sangat aneh yang ternyata hanya kesalahan ketik. Beberapa alat mungkin tidak berfungsi hanya karena perpustakaan mendapat peningkatan versi kecil. Atau sistem crash karena seseorang lupa menambahkan file ke git. Daftarnya bisa terus bertambah. Mengapa? Karena segala sesuatunya selalu salah. Kami menghabiskan waktu berjam-jam untuk memperbaiki beberapa bug yang sangat aneh, hanya untuk mendapatkan kesalahan pencetakan sederhana. Beberapa alat mungkin tidak berfungsi dengan baik hanya karena perpustakaan telah mengalami peningkatan versi kecil. Atau sistem crash karena seseorang lupa menambahkan file ke git. Daftarnya terus bertambah.Siswa harus menikmati pengalaman ini. Latihan yang menargetkan perpustakaan yang tidak diketahui di bawah tekanan waktu mungkin merupakan hal yang tepat. ;) Siswa harus menikmati pengalaman ini. Latihan yang menargetkan perpustakaan yang tidak dikenal di bawah tekanan waktu mungkin bisa dilakukan. ,)

Matahari tidak selalu bersinar dalam kehidupan nyata. Pemula harus siap menghadapi kenyataan pemrograman. Matahari tidak selalu bersinar dalam kehidupan nyata. Pemula harus siap menghadapi kenyataan pemrograman.

Saran Terakhir Saran Terakhir

Yang terakhir: Seseorang tidak bisa menjadi seorang programmer profesional dalam waktu dua minggu, dua bulan atau bahkan satu tahun. Itu membutuhkan waktu dan kesabaran. Yang terakhir: seseorang tidak bisa menjadi seorang programmer profesional dalam waktu dua minggu, dua bulan atau bahkan satu tahun. Ini membutuhkan waktu dan kesabaran.

Pelatih tidak boleh terburu-buru atau memberikan janji palsu. Mereka harus fokus pada apakah siswa memahami konsep dan tidak bergerak terlalu cepat. Pelatih tidak boleh terburu-buru atau memberikan janji palsu. Mereka harus fokus pada apakah siswa memahami konsep daripada maju terlalu cepat.

Teks asli: https://medium.freecodecamp.org/the-main-pillars-of-learning-programming-and-why-beginners-should-master-them-e04245c17c56