Mungkin ini hanya saya, tetapi sebagai siswa CS saat ini saya telah menemukan banyak pertanyaan di situs ini dan di tempat lain tentang tidak hanya "Bahasa apa yang harus saya gunakan untuk x?" tetapi juga "Apakah ada yang masih menggunakan bahasa Y?" Kelas CS pertama saya diajarkan dalam Skema, yang, jika saya tidak salah, tidak digunakan secara luas (setidaknya dibandingkan dengan bahasa seperti Java, PHP, Python, dll). Banyak teman sekelas saya menolak gagasan harus belajar bahasa yang tidak perlu mereka gunakan lagi, tetapi saya tidak begitu mengerti dari mana asal rasa takut belajar bahasa yang kurang populer ini. Tidak, saya tidak boleh menggunakan Skema dalam pekerjaan apa pun yang saya dapatkan, tetapi saya tentu saja tidak menyesal telah belajar menggunakannya (walaupun dalam pemula, tidak terlalu mendalam dalam satu semester). Saya mengambil kelas mesin pencari semester ini, yang dilakukan di Perl dan sekali lagi saya melihat teman sekelas mengeluh tentang pilihan bahasa. Saya bisa mengerti memiliki bahasa favorit dan tidak menyukai yang lain, tetapi mengapa beberapa orang mulai kesal karena mempelajarinya? Bisakah Anda benar-benar mempelajari bahasa "salah"? Bukankah belajar sesuatu seperti Skema atau Haskell latihan mental yang baik jika tidak ada yang lain, dan berguna setidaknya untuk paparan berbagai cara memecahkan masalah?
28
Jawaban:
Maksud dari gelar CS bukan untuk mengajarkan Anda C # dan Java, Anda dapat mempelajarinya sendiri. Ini untuk mengajarkan Anda tentang pemrograman dan perhitungan. Bahasanya hanya detail. Selama karir dalam pemrograman Anda akan menggunakan banyak bahasa. Hari ini mungkin Java atau C # tetapi 10 atau 15 tahun dari sekarang itu bisa jadi Erlang atau sesuatu yang bahkan belum ditemukan. Mempelajari berbagai gaya pemrograman dan cara-cara berbeda untuk menyerang suatu masalah jauh lebih penting daripada mempelajari satu bahasa saja.
sumber
Karena bahasa pertama Anda akan membentuk cara Anda berpikir, sampai Anda belajar sebaliknya.
Jika Anda buta huruf secara komputasional (programmer pertama kali), dan bahasa pertama yang Anda pelajari terlalu "dasar", Anda mungkin tidak tahu konsep tingkat tinggi seperti orientasi objek, pengiriman ganda, pewarisan, fungsi kelas satu, pemrograman meta, dll.
Bahasa pertama yang Anda pelajari biasanya terkait dengan perampokan pertama Anda ke dalam pemikiran komputasi. Jika seseorang memberi tahu Anda, Jimmy, dunia sebelum Anda terdiri dari simbol A, B, dan C, semua pemikiran Anda akan dalam bentuk A, B dan C. Sampai suatu hari, kutu buku yang mewah mencemooh Anda karena tidak tahu X , Y, dan Z konsep. Tidak mungkin Anda tahu ini hanya dengan mengetahui ABC.
Orang-orang yang paling peduli tentang bahasa pertama seseorang mungkin adalah programmer yang tercerahkan yang telah berjuang menembus kegelapan. Oh, sekarang saya tahu apa fungsi kelas satu itu. Kawan, kuharap aku tahu tentang pewarisan dan injeksi ketergantungan dua tahun lalu!
Bahasa pertama Anda tidak sepenting sikap Anda sehubungan dengan bahasa-bahasa berikutnya. Jika Anda dapat melihat jauh di depan Anda untuk mengetahui bahwa ada dunia di luar BASIC / C / Perl / PHP / dll, maka Anda jauh di depan permainan. Inilah sebabnya mengapa banyak orang fanatik untuk bahasa fungsional karena banyak bahasa yang dikembangkan secara aktif mendekati mereka.
sumber
Ketika saya masih di perguruan tinggi, saya tahu banyak orang yang memutuskan untuk mengambil jurusan ekonomi bukan karena itu adalah sesuatu yang sangat mereka minati atau sukai, tetapi karena mereka pikir itu akan membuat mereka mendapatkan pekerjaan yang baik.
Saya mengambil jurusan Studi Asia Timur karena kelas-kelas yang saya ambil sebagai efek samping dari minat awal saya pada Sastra mengaitkan saya. Saya pergi ke Jerman karena saya ingin melakukan program pertukaran, di mana saya menghabiskan sebagian besar waktu saya di program Japanology dan Sinologi. Saya mempelajari apa yang paling menarik bagi saya. Saya memutuskan untuk tidak menggunakan perguruan tinggi untuk mempelajari hal-hal yang berhubungan dengan komputer, karena saya sudah meretas cukup banyak selama masa kecil saya, tetapi saya menghabiskan waktu pemrograman dan memahami internet, dan akhirnya, mungkin mustahil , Saya mendapat pekerjaan bagus yang berhasil menggabungkan semua minat itu.
Perbedaannya adalah antara Karier, dan seseorang yang belajar demi belajar. Karier khawatir bahwa mereka akan mempelajari The Wrong Thing, dan bahwa mereka akan menyesal karena itu bukan The Thing Right To Land Me A Job. Orang yang belajar demi belajar menyadari bahwa mereka memiliki 4 tahun untuk menghabiskan waktu mengeksplorasi segala macam bidang dengan tekanan yang relatif dapat dikelola; Karier berpikir bahwa tugas sekolah adalah mengajar mereka sesuatu. The Learner memikirkan hal-hal ketika mereka mencapai wilayah asing, dan memiliki peluang yang lebih baik untuk menemukan pekerjaan yang tepat untuk mereka. Karier akhirnya menjadi akuntan tingkat kedua di perusahaan lapis ketiga, membayar tagihan, dan membenci bos mereka.
Ya, ini adalah arketipe, dan setiap orang harus menyeimbangkan pragmatisme dengan hasrat mereka, tetapi itulah perbedaan mendasar. Memang, seseorang dengan estetika programmer juga dapat mengajukan pertanyaan, tetapi lebih dalam konteks "mana yang akan menjadi penggunaan waktu saya yang paling tidak boros." Tapi tebakan saya adalah bahwa dorongan karir yang mengajukan pertanyaan itu, karena Karir jauh lebih takut membuat kesalahan daripada Learner, dan Learner umumnya membuat programmer yang lebih baik karena Learner tidak takut kesalahan. The Learner, seperti Programmer, menganut kegagalan dalam mengejar keterampilan.
sumber
Ya, belajar bahasa fungsional seperti Skema dan Haskell bagus sebagai pengantar pemrograman fungsional. Sejauh teman sekelas Anda mengeluh tentang Perl, sementara Perl tidak sepopuler dulu, itu masih bahasa yang banyak digunakan dalam bisnis.
Saya dapat memahami teman sekelas Anda yang ingin belajar bahasa praktis yang digunakan di dunia nyata, tetapi saya pikir mereka kehilangan titik bahwa setelah Anda seorang programmer yang berpengalaman dan telah terkena beberapa paradigma pemrograman, mempelajari bahasa baru sebagian besar hanya masalah mengambil sintaks baru. Jadi, selama Anda memiliki paparan konsep, Anda dapat "mengkhususkan" dalam bahasa apa pun yang disukai majikan Anda tanpa banyak kesulitan.
sumber
Mungkin karena orang telah dipengaruhi oleh pernyataan seperti potongan trolling klasik Edsger Dijkstra, "Praktis mustahil untuk mengajarkan pemrograman yang baik kepada siswa yang telah memiliki paparan sebelumnya untuk BASIC: sebagai programmer potensial mereka secara mental dimutilasi di luar harapan regenerasi." ( tautan )
Ini menyebabkan takut menderita kerusakan otak permanen jika Anda mempelajari bahasa yang "salah". Contoh Perl Anda tidak mengejutkan, karena Perl adalah salah satu bahasa yang sering mengundang kritik seperti ini dari para pencela.
sumber
Bahasa pertama Anda harus fokus pada konsep, bukan sintaks atau idiom. Menggunakannya sebagai pedoman:
sumber
Tanyakan kepada teman sekelas Anda bagaimana mereka tahu bahasa itu "salah" jika mereka belum menggunakannya. Anda hanya bisa mengetahui apa yang Anda suka dengan menggunakan berbagai bahasa.
Tanpa mengenal mereka, saya tidak bisa mengatakan dengan pasti mengapa mereka akan merasa seperti ini. Mungkin mereka malas. Mungkin mereka telah menggunakan bahasa itu sebelumnya dan tidak menyukainya. Mungkin mereka takut mencoba bahasa lain. Siapa tahu. Yang saya tahu adalah bahwa sebagai mahasiswa CS, peneliti, dan pernah bekerja di industri, mengetahui berbagai bahasa, adalah aset yang sangat besar dan Anda tidak pernah tahu apa yang akan Anda gunakan atau tidak. Contoh: Ketika saya pertama kali belajar C, guru saya memperkenalkan kami ke shell scripting dan utilitas baris perintah seperti
grep
danawk
. Teman-teman saya tidak mau mempelajarinya sampai pada tingkat kompetensi. Saya sekarang menggunakannya di tempat kerja setiap hari.Perl sangat kuat dan jika Anda tahu cara menggunakannya, itu bisa membuat hidup Anda jauh lebih mudah. Ini juga mirip dengan Python dan Python banyak digunakan di salah satu perekrut top siswa CS: Google. Teman sekelasmu seharusnya memakan ini. FWIW, saya tahu perl dan python ke tingkat menengah (bukan pemula tetapi bukan ahli).
Muda dan sia-sia? Aku juga seperti itu. Tetapi "kekesalan" saya lebih pada bidang matematika. Jadi dari pengalaman itu saya berani bertaruh bahwa mereka mengerjakannya karena mereka tidak menikmati belajar hal-hal baru atau bahwa bahasa baru sulit dipelajari untuk mereka. (Tapi kemudian, apa pun yang berharga untuk diketahui tidak akan jatuh begitu saja ke pangkuanmu, kataku)
Untuk kalimat pertama: Tidak, tetapi Anda pasti dapat mempelajari bahasa yang Anda inginkan untuk tidak memiliki + batuk + Lisp + batuk + =)
Untuk yang lain: Ya! Anda harus belajar bahasa sebanyak mungkin untuk mengetahui apa yang Anda suka dan untuk memperluas wawasan Anda. Tidak ada persyaratan untuk menguasai semuanya, tetapi memiliki pengetahuan yang bekerja selalu membantu. Anda tidak pernah tahu kapan bahasa yang Anda pikir akan membuang waktu untuk belajar berguna.
sumber
Karena mempekerjakan pemrogram adalah proses yang berubah-ubah dan semena-mena, fakta sederhananya adalah bahwa jika Anda memilih teknologi yang salah, Anda mungkin akan menemukan jalan yang harus dilalui oleh dodo.
Di halaman depan pada waktu tertentu, Anda akan melihat semangat religius pada keyakinan seperti:
Satu yang konstan dalam semua itu adalah bahwa 99% perusahaan di luar sana ingin Anda memiliki X tahun pengalaman dengan teknologi Y ... Dan karena seseorang hanya memiliki begitu banyak siklus yang tersedia, apa yang mereka habiskan siklus itu untuk masalah-masalah banyak.
sumber
Saya pikir ketakutan dalam memilih bahasa yang "salah" untuk dipelajari terutama karena kurangnya informasi dan kurangnya bimbingan , seperti:
sumber
Kami terpapar lebih banyak pendapat.
Dibandingkan dengan bagaimana hal-hal telah dilakukan di masa lalu, ada lebih banyak tebakan tentang bagaimana kita menghabiskan waktu kita karena kita dihadapkan pada lebih banyak pendapat - semua orang memiliki pemikiran tentang apa bahasa pemrograman pertama seharusnya dan karena itu subjek yang rewel, siapa pun dapat membenarkan apa pun .
Karena gaya hidup kita yang bergerak cepat, setiap orang memiliki ketakutan bawaan untuk membuang waktu mereka. Ketakutan yang ditekankan untuk mempelajari bahasa yang salah hanyalah hasil dari orang-orang yang mudah terekspos ke banyak pendapat.
sumber
Ini adalah ketidaksukaan umum untuk mempelajari sesuatu yang memiliki kegunaan dipertanyakan. Saya dapat melihat sengatan di sini menjadi lebih buruk karena ini adalah kelas yang ingin diambil orang dan mereka masih belajar sesuatu yang mereka pikir tidak berguna. Saya tahu bahwa jika saya akan membuat kolase, saya ingin mempelajari sesuatu yang dapat saya gunakan di dunia nyata.
Satu-satunya bagian di mana saya bisa tidak setuju dengan orang-orang lain adalah ketika sebuah bahasa banyak digunakan dan mereka hanya tidak ingin keluar dari gelembung mereka untuk mempelajarinya. Hanya dengan begitu keluhannya tidak masuk akal.
sumber
Kenapa itu 'ketakutan'. Saya akan menyebutnya permusuhan karena telah dipaksa makan sesuatu yang tidak Anda inginkan atau tidak merasa itu penting. Tidak ada bahasa yang salah tetapi kami memiliki waktu terbatas untuk fokus pada berbagai hal. Saya harus melakukan kelas CS dengan Java dan tidak senang dengan hal itu. Bukan karena saya takut Jawa menjadi bahasa yang salah, tetapi bukan itu fokus karier saya.
Sekarang Java bermanfaat kan? LOL Semua orang belajar Java. Itulah yang tidak ingin Anda lawan. Resume Anda akan berada dalam tumpukan 1000-an dengan tajuk Lulusan CS Terkini yang Mengenal Jawa. Sebenarnya Anda mungkin lebih baik daripada Skema belajar dipekerjakan karena itu adalah tanda rahasia bahwa Anda pergi ke universitas elit dan bukan perguruan tinggi komunitas mungil.
Saya juga akan mengatakan permusuhan semacam ini jauh lebih luas daripada CS pada umumnya, tetapi menunjukkan pendidikan tinggi pada umumnya. Saya yakin instruktur memilih Perl karena dia tahu Perl, dan dapat menilai dengan mudah, dan takut belajar bahasa yang lebih baru yang lebih disukai siswa. Saya pikir ini adalah pendidikan Anda sendiri dan Anda harus dapat memetakan teknologi yang Anda rasa perlu untuk kesuksesan Anda sendiri.
(PS MIT menyerah pada Skema dan beralih ke Python)
sumber
Waktu adalah komoditas yang paling langka, begitu Anda keluar ke dunia nyata - dan tidak ada yang mau membuang waktu untuk keterampilan yang tidak akan memberi mereka manfaat nyata.
Yang sedang berkata, saya tidak berpikir ada bahasa yang 'salah' untuk dipelajari - tapi saya berharap saya telah menemukan Ruby bertahun-tahun yang lalu alih-alih berjuang dengan melakukan hal-hal canggih dalam PHP ...
sumber