Mengapa selalu "bahasa apa yang harus saya pelajari selanjutnya" daripada "proyek apa yang harus saya tangani selanjutnya"? [Tutup]

14

Mengapa pemrogram pemula (seperti saya) selalu bertanya tentang bahasa berikutnya yang harus mereka pelajari alih-alih bertanya tentang proyek selanjutnya yang harus diatasi?

Mengapa Eric Raymond, di bagian " Pelajari Cara Memprogram " dari karyanya " Bagaimana Menjadi Peretas ", berbicara tentang urutan di mana Anda harus belajar bahasa (vs. urutan di mana Anda harus menangani proyek).

Apakah tukang kayu pemula bertanya, "Saya tahu cara menggunakan palu ... haruskah saya belajar cara menggunakan gergaji atau tingkat selanjutnya?"

Saya bertanya karena saya menemukan bahwa hampir semua proyek yang berarti aku tertarik dalam menanggulangi (misalnya web app, satu set alat analisis poker) membutuhkan bahwa saya belajar cukup dari banyak bahasa (Python, C, HTML, CSS , Javascript, SQL) dan frameworks / libraries (wxPython, tkinter, Django) untuk mengimplementasikannya.

Terima kasih,

Mike

MikeRand
sumber
5
Sepertinya ini sedikit ... ranty, jujur ​​saja. Mungkin Anda bisa menghapus sindiran dan hanya meninggalkan pertanyaan Anda?
Anon.
4
Saya pikir Anda tidak cocok langkah kronologis. Mustahil tukang kayu sudah tahu cara menggunakan alat-alat itu, jika dia tahu cara membingkai pintu. Namun di awal hidupnya, ia juga mengikuti jalur alat mana yang harus saya selidiki selanjutnya.
CrazyPenguin
Komentar yang adil re: ranty ... akan menghibur. Permintaan maaf jika itu muncul sebagai ranty.
MikeRand
4
Perbandingan bahasa pemrograman ke alat tangan bukan perbandingan yang sangat baik. Tampaknya masuk akal secara dangkal, tetapi berantakan dengan cepat dan akhirnya menjadi lebih berbahaya daripada membantu. Juga terlalu banyak orang memperlakukannya seperti itu adalah kebenaran yang tidak perlu dipertanyakan. Orang ini melakukan pekerjaan yang layak dengan menguraikan beberapa alasan mengapa itu tidak berhasil. journal.dedasys.com/2007/12/12/…
Nick Knowlson
Saya suka pertanyaan ini ...!
Michael K

Jawaban:

6

Saya pikir ketika kebanyakan orang mulai belajar bahasa, mereka melakukannya karena mereka ingin menangani proyek yang ditulis dalam bahasa itu, baik sekarang atau di masa depan. Untuk melakukannya, mereka harus mempelajari bahasa itu, yang membutuhkan waktu. Bahasa pemrograman seperti alat, tetapi ketika Anda bisa belajar menggunakan palu dalam waktu sekitar enam puluh detik, bahasa membutuhkan waktu lebih lama untuk belajar menggunakannya; sehingga banyak orang fokus belajar bahasa sebelum mereka fokus mengerjakan proyek yang ditulis dalam bahasa itu.

Pada catatan lain, saya pikir ketika kebanyakan orang bertanya bahasa apa yang harus dipelajari selanjutnya, mereka benar - benar memikirkan proyek apa yang harus dipelajari selanjutnya, tetapi mereka fokus pada mempelajari bahasa itu terlebih dahulu.

Akhirnya, belajar bahasa bisa menyenangkan , meskipun Anda tidak memiliki proyek atau tujuan tertentu dalam pikiran.

mipadi
sumber
6
  • Motif dari banyak pengembang penuh waktu adalah agar lebih mudah dipekerjakan.

  • Menjadi lebih dapat dipekerjakan biasanya berarti melewati rintangan dari screener HR (dan kemudian melewati rintangan dari wawancara yang sebenarnya).

  • Screener HR biasanya memiliki daftar periksa bahasa yang dapat dicocokkan dengan resume, tetapi tidak memiliki cara mengevaluasi keterampilan atau proyek.

  • Keberhasilan dalam wawancara yang sebenarnya biasanya lebih tergantung pada keberuntungan dan keterampilan minimal dalam suatu bahasa daripada pada pengalaman dan pemahaman yang mendalam tentang suatu bahasa.

Oleh karena itu, menjadi biasa-biasa saja dalam banyak bahasa lebih baik untuk dipekerjakan daripada menjadi ahli dalam beberapa bahasa, kecuali seseorang melamar posisi senior.

Uri
sumber
Sedihnya untuk melewati layar HR Anda harus memberikan daftar kata-kata buzz hari ini. Proses penyaringan SDM adalah filter yang lebih baik yang akan meninggalkan banyak kandidat yang memenuhi syarat.
Jeff
1
@ Jeff, dari apa yang saya dengar tentang skrining SDM, yang mereka inginkan adalah mengurangi jumlah resume ke tingkat yang dapat dikelola dan mereka menerapkan banyak filter sewenang-wenang, seperti "bin jika lebih dari 2 halaman".
Dominique McDonnell
2

Pilihan pemrograman analog untuk tukang kayu akan ada "Aplikasi apa yang harus saya bangun selanjutnya?" atau "Sistem apa yang harus saya bangun selanjutnya?" yang agak valid dan terpisah dari proyek yang benar-benar dapat diterapkan hampir secara universal. Saya dapat memiliki proyek untuk mengubah diet saya atau mengurangi 20 lbs semudah saya dapat memiliki sesuatu yang memerlukan beberapa perangkat lunak baru untuk ditulis untuk mengikat semuanya.

Untuk menjawab pertanyaan itu, saya yakin idenya adalah bahwa suatu bahasa mewakili alat di kotak alat orang itu yang dapat berguna pada resume. Beberapa orang mungkin memilih untuk menjadi programmer untuk membayar tagihan dan jika demikian, maka mereka dapat bertanya alat mana yang harus mereka tambahkan yang sering menjadi bahasa tetapi ada kemungkinan lain seperti belajar tentang penyebaran, kontrol sumber, pengujian dan metodologi pengembangan untuk beri nama beberapa area lain. Jika seorang tukang kayu harus mengungkapkan alat apa yang dia miliki maka dia mungkin memiliki perspektif yang sama, saya berpendapat. Namun, ada seperangkat alat umum yang sebagian besar tukang kayu diasumsikan memiliki atau memiliki akses untuk memperolehnya jika diminta dengan cukup cepat. Pernahkah Anda melihat berapa banyak jenis gergaji dan palu di luar sana untuk digunakan orang?

JB King
sumber
1

Mungkin sebagian tentang mentalitas hacker, setidaknya untuk beberapa programmer. Peretas didefinisikan dalam file Jargon sebagai

"Seseorang yang senang menjelajahi detail sistem yang dapat diprogram dan bagaimana memperluas kemampuan mereka, berbeda dengan sebagian besar pengguna, yang lebih suka belajar hanya yang minimum yang diperlukan."

Jadi, untuk jiwa peretas, ini lebih tentang belajar dan "bermain-main" dengan proses, konsep, alat, dan ya, bahasa untuk menciptakan sesuatu, daripada produk akhir itu sendiri. Lebih lanjut tentang proses itu sendiri.

Ini adalah upaya konstan untuk hal dan / atau tantangan baru berikutnya. Proyek yang sudah selesai kehilangan daya tariknya dengan cepat. Terkadang (sebagian besar waktu?) Tantangan kreatif atau teknis terbesar ditaklukkan sebelum penyelesaian proyek. Banyak proyek ditinggalkan, ketika pikiran yang lapar akan tantangan mental baru bergerak maju.

Terutama peretas yang tertarik pada pandangan baru, konsep, abstraksi dan cara berpikir, jenis peretasan mental:

"Bahasa yang tidak memengaruhi cara berpikirmu tentang pemrograman, tidak perlu diketahui." - Alan Perlis

Maglob
sumber
0

Ada berbagai bahasa jelek yang umum digunakan saat ini: C, C ++, C #, Java, JavaScript, Python, Perl, Ruby, Visual Basic, dll. bersama.

Ada sebuah komunitas kecil yang dikenal sebagai komunitas Lisp yang bebas dari kegilaan yang meliputi komputasi modern.

Karena Lisp adalah bahasa pemrograman yang dapat diprogram, Anda dapat mengekspresikan semua ide Anda di dalamnya tanpa harus menyimpang ke bahasa lain atau format data lain seperti XML. Lisp dapat diterapkan di mana-mana, bahkan hingga ke tingkat perangkat keras seperti yang kita lihat dengan mesin Lisp .

jhuni
sumber
Anda harus tahu sebanyak mungkin bahasa yang berbeda untuk dapat menggunakan Lisp secara efisien. Kalau tidak, Anda akhirnya akan menemukan kembali roda alih-alih hanya mencuri konsep dan ide yang sesuai dari bahasa lain dan menerapkannya di atas Lisp.
SK-logic
Setuju dengan sentimen Anda tentang kekuatan Lisp, tetapi tidak setuju bahwa tidak membantu untuk belajar bahasa lain: sebagian besar trik yang saya gunakan di Lisp secara aktif mengeksploitasi apa yang saya pelajari dari bahasa lain (baik sebagai pola atau anti-pola ...)
mikera
0

Karena mempelajari bahasa pemrograman baru adalah investasi besar, dan tidak ada yang suka melakukan investasi buruk.
Mempelajari bahasa pemrograman baru bukan tentang menghafal cara menulis konstruksi lingkaran, mendeklarasikan kelas, mengimpor modul lain ...
Anda harus tahu cara menulis kode idiomatik dalam bahasa itu dan proses ini benar-benar membutuhkan banyak waktu dan dedikasi .
Waktu adalah sumber daya yang terbatas, usaha adalah sumber daya yang terbatas tetapi gangguan, tekanan harian, tagihan dan permainan olahraga hari Minggu selalu ada dan harus dijalani.
Programmer ingin berinvestasi dengan bijak.

Chiron
sumber