Ok, saya sudah mengajar teman bagaimana memprogram untuk sementara waktu sekarang. Dia pembelajar yang sangat cepat, dan dia cukup pandai pemrograman sejauh ini. Namun, dia punya satu "masalah" yang terus saya coba koreksi.
Dia melompat dan mulai melakukan pemrograman tingkat tinggi tanpa mempelajari beberapa dasar-dasarnya (Dia menciptakan aplikasi web yang penuh sesak tetapi masih tidak tahu pagination atau manajemen sesi).
Ini bukan masalahnya. Dia terus melompat ke teknologi baru (Node.js, MongoDB, EC2, dll). Saya mencoba mengatakan kepadanya bahwa ia harus mempelajari beberapa dasar-dasar tentang RDMS pilihannya (MySQL) ketika ia menggunakannya setiap hari sebelum menginvestasikan banyak waktu untuk mempelajari dasar-dasar MongoDB (Dan mungkin pindah ke sesuatu yang baru).
Apakah saya yang salah di sini, atau haruskah dia mencoba fokus pada satu hal pada satu waktu dan menjadi sangat baik dalam hal itu?
sumber
Jawaban:
Secara pribadi, saya pikir ini bisa menjadi ide bagus untuk mencicipi berbagai teknologi dan bahasa saat belajar memprogram. Berfokus pada satu teknologi memiliki manfaat yang jelas membuat Anda sangat pandai dalam hal itu, tetapi kerugian yang jelas hanya dengan mengetahui satu teknologi saja.
Tapi saya pikir kelemahan yang lebih penting adalah bahwa bahasa dan kerangka kerja umumnya datang dengan ideologi. Ada banyak programmer (mungkin kebanyakan programmer) yang hanya menerapkan satu ideologi dalam semua program mereka. Ini sering karena mereka mempelajari satu kerangka kerja dalam satu bahasa dengan sangat baik dan sekarang mereka tidak dapat melihat apa pun tanpa kacamata itu menyala.
Khusus untuk seseorang yang baru belajar memprogram, saya tidak berpikir itu masalah untuk ingin mencoba apa yang ada di luar sana, dan menunggu untuk fokus pada sesuatu sampai nanti. Lagi pula, akan sulit untuk menulis sesuatu yang substansial tanpa mengetahui teknologi dengan baik.
sumber
Ada alasan bagus di kedua sisi masalah ini. Mengetahui " cukup " tentang banyak teknologi berbeda tentu berharga. Mengetahui " sedikit " tentang banyak teknologi berbeda? Tidak terlalu banyak.
Pengetahuan yang mendalam tentang teknologi tertentu tentu bisa berharga - JIKA ada permintaan yang berkelanjutan untuk mereka. Mengetahui " segala sesuatu yang perlu diketahui " tentang teknologi tertentu? ... kemungkinan besar berlebihan.
Jadi, semuanya seimbang. Jika dia akhirnya membangun aplikasi yang bagus dengan nosql, mengapa dia harus tahu perbedaan antara mesin InnoDB dan mesin MyISAM?
sumber
Saya setuju sebagian. Dia memang perlu mengetahui prinsip-prinsip yang mendasarinya - tetapi dia tidak perlu hanya duduk pada satu hal dan menjadi sangat baik dalam hal itu. Tidak ada yang tahu.
Duduk dengan satu hal dan menjadi sangat baik
Saat ini saya sedang bekerja dengan C # dan Microsoft XNA untuk membuat game. Saya belajar banyak tentang XNA ketika saya pergi, dan sementara saya sudah cukup kompeten dengan C #, pengetahuan saya berkembang sedikit demi sedikit (hari ini saya belajar tentang batasan pada parameter tipe ).
Namun, tidak perlu bagi saya untuk menjadi 'sangat baik' di XNA atau C #. Jika saya harus menyelesaikan proyek saya sekarang dan melanjutkan dan tidak pernah menggunakan salah satu dari mereka lagi, saya akan benar-benar puas dan pembelajaran saya akan berlanjut di tempat lain.
Prinsip-prinsip itu penting
Setidaknya saya mengerti prinsip yang mendasarinya. Ketika saya membuat sesuatu dalam C # dan XNA, saya mengerti apa yang saya lakukan - dan jika tidak, saya mempelajarinya.
Jika saya menulis pagination, saya akan mengerti bagaimana pagination bekerja. Jika teman Anda membuat pagination dan tidak tahu cara kerjanya, itu masalah. Jika dia tidak membuat pagination, tidak ada alasan dia perlu tahu.
Masalahnya di sini adalah: apakah dia tahu apa @ $ #! dia melakukannya, atau dia seorang programmer yang tidak tahu cara memprogram?
sumber
Saya kira dia mencoba bahasa lain karena dia memiliki sesuatu yang ingin dia bangun. Anda selalu dapat kembali ke bahasa atau kerangka kerja dan mempelajari lebih lanjut.
Ada garis tipis antara mempelajari teori / membangun fondasi dan berusaha tetap termotivasi.
Setidaknya dia tidak terjebak dalam satu bahasa. Terkadang Anda mengambil yang baik dengan yang buruk.
sumber
Saya menemukan sikapnya sebagai aset daripada kewajiban. Kemampuannya melakukan penelitian di atas rata-rata. Kurva belajarnya juga dangkal. Mengapa tidak memanfaatkan sifat ini jika Anda ingin dia belajar sesuatu.
Pikirannya yang selalu ingin tahu selalu dalam perjalanan, mengapa tidak memberinya arahan. Mulailah dengan memberi tahu dia mengapa pagination adalah penting dan esensial. Biarkan dia melihat situs web dengan pagination dan situs web tanpa itu.
Bagaimana dengan memberikan kritik yang membangun terhadap apa yang dia lakukan. "Wow, Anda telah melakukan sesuatu yang hebat, tetapi bukankah akan lebih baik jika Anda melakukannya dengan penekanan pada optimasi dan praktik terbaik.
Saya pikir melakukan perbandingan antara praktik yang baik dan praktik yang buruk dapat benar-benar merangsang pikirannya.
Jangan membatasi dia, dia akhirnya akan menemukan sesuatu yang dia suka dan puas dengannya untuk beberapa waktu. Jika saya jadi Anda, saya memberinya banyak materi pembelajaran tentang hal-hal yang sangat ia sukai.
Saya pikir dia sedang melakukan pendekatan top down sementara Anda di sisi lain ingin dia melakukan pendekatan bottom up
sumber
Kenapa itu buruk?
Sebaliknya saya pikir itu sangat bagus! Ini menunjukkan keingintahuan dan keinginan untuk belajar. Selain itu, ia ingin menemukan alat yang tepat untuk pekerjaan yang tepat! Lebih baik daripada bertahan dengan teknologi pilihan pertama yang tidak memadai. ;)
Sebenarnya, saya juga melakukannya, sebagai programmer berpengalaman. Dan saya merekomendasikannya. Setiap kali saya memiliki proyek baru, perilaku saya adalah sebagai berikut:
Saya pikir itu masuk akal.
sumber
Secara pribadi, jika seseorang harus fokus hanya pada satu teknologi, saya akan mengatakan itu harus C # / Java, digunakan bersama dengan SQL.
Dari sini, saya percaya, Anda dapat beradaptasi dengan teknologi lain.
Tetapi berpegang teguh pada satu teknologi bisa membatasi jika seorang pria ingin masuk ke lingkungan perusahaan.
Idealnya, satu platform berorientasi objek, satu platform seluler, satu platform web dan kemudian pengetahuan SQL yang sangat baik (atau lingkungan db lainnya).
Dan dasar-dasarnya terlebih dahulu, kalau tidak, dia AKAN macet nanti!
sumber
Tidak buruk jika dia pemula dalam pemrograman.
Dia akan melihat bagaimana beberapa hal bekerja. Tetapi jika dia tidak mengerti apa yang dia lakukan, lebih baik tidak melakukannya sama sekali.
Saya punya masalah dengan diri saya sendiri, saya ingin tahu semuanya Java, C, C ++, C #, Phyton, ASP.NET ... dll tapi saya sadar saya tidak tahu semuanya, jadi saya fokus pada beberapa hal dan itu jauh lebih baik.
Jadi apa yang harus dia lakukan (menasihatinya):
Saya tidak akan setuju dengan @arnaud jika Anda selalu menjelajahi dan mempelajari hal-hal baru ketika proyek baru ada di depan Anda (yah tidak sepenuhnya). Diperlukan terlalu banyak waktu untuk mengeksplorasi dan mempelajari hal-hal baru berulang kali dan beberapa proyek memiliki batas waktu. Tetapi di sisi lain jika Anda perlu mempelajari beberapa hal baru yang sederhana tidak apa-apa: D.
sumber
Saya setuju dengan Anda, kadang-kadang mudah untuk mendapatkan pengetahuan yang dangkal tentang kerangka kerja atau teknologi atau bahasa tertentu, tetapi untuk mendapatkan pemahaman nyata yang terbaik untuk terlibat dalam pengembangan dunia nyata hingga selesai, dan memeliharanya - menjadi seseorang yang orang lain datang untuk meminta nasihat. Lebih disukai menjadi jack dari semua perdagangan, master satu daripada hanya jack semua perdagangan, master tidak ada . Karena itu, saya tidak akan mencegahnya belajar hal-hal baru karena dia jelas memiliki tingkat antusiasme yang baik.
sumber