Bahasa pemrograman apa yang harus Anda pelajari pertama kali di tahun 2020? ʇdıɹɔsɐʌɐɾ: ɹǝʍsuɐ

Perjalanan kebanyakan orang untuk belajar program dimulai dengan satu pencarian Google larut malam.

Biasanya seperti "Belajar ______"

Tapi bagaimana mereka memutuskan bahasa mana yang akan dicari?

“Mereka selalu bercanda tentang Jawa di Silicon Valley. Saya kira saya harus mempelajarinya. "

Atau:

“Haskell. Sangat panas sekarang. Haskell. ”

Atau:

"Go gopher itu benar-benar lucu."

Dan kemudian ada sisa dari kita. Kami mungkin akan mencari sesuatu seperti:

“Bahasa pemrograman apa yang harus saya pelajari dulu?”

Beberapa pertanyaan sangat umum ditanyakan sehingga mereka mendapatkan perawatan infografis lengkap. Tapi ini salah satunya:

Menentukan bahasa pemrograman pertama Anda bisa menjadi proses yang menyenangkan - seperti salah satu dari "Karakter Quentin Tarantino manakah Anda?" kuis kepribadian.

Tetapi sebelum Anda lari untuk belajar Ruby karena Anda menikmati bermain dengan Play-Doh sebagai seorang anak, izinkan saya mengingatkan Anda: taruhannya cukup tinggi di sini.

Anda akan membutuhkan ratusan jam latihan untuk menjadi kompeten bahkan dari jarak jauh dengan bahasa pemrograman pertama Anda.

Jadi, Anda harus mempertimbangkan faktor-faktor berikut:

  • pasar kerja untuk bahasa tersebut
  • prospek jangka panjang untuk bahasa tersebut
  • betapa mudahnya bahasa itu dipelajari
  • proyek apa yang dapat Anda bangun sambil belajar (dan bagikan dengan teman-teman agar Anda tetap termotivasi)

Setiap tahun membawa bahasa pemrograman baru, dan dengan itu, makalah akademis baru. Dan komik web baru.

Sungguh. Lihat permata ini dari bulan lalu:

Ketika harus memilih bahasa pemrograman pertama, tidak ada kekurangan pilihan. Untuk sedikit mempersempitnya, berikut adalah pencarian Google paling umum yang terkait dengan pembelajaran pemrograman, selama 12 tahun terakhir:

Jawa pernah mengalami pasang surut.

Python secara bertahap meningkat menjadi pilihan paling populer.

Tetapi di bawah ini adalah Mesin Kecil yang Bisa, perlahan-lahan mulai populer selama beberapa tahun terakhir. Dan mesin itu adalah JavaScript.

Sebelum saya berbicara tentang bahasa pemrograman ini, izinkan saya mengklarifikasi:

  • Saya tidak berpendapat bahwa satu bahasa secara obyektif lebih baik daripada bahasa lainnya
  • Saya setuju bahwa pengembang pada akhirnya harus mempelajari lebih dari satu bahasa
  • Saya berpendapat bahwa pertama-tama mereka harus belajar satu bahasa dengan baik. Dan - seperti yang bisa Anda tebak dari teks terbalik di judul saya - bahasa itu seharusnya JavaScript.

Mari kita mulai dengan menjelajahi bagaimana pemrograman saat ini diajarkan di sekolah.

Ilmu Komputer 101

Universitas secara tradisional mengajarkan pemrograman di bawah payung ilmu komputer, yang dengan sendirinya sering dilihat sebagai perpanjangan dari matematika, atau terkait dengan gelar teknik elektro.

Tentu saja, seperti yang mungkin pernah Anda dengar sekarang:

“Pendidikan ilmu komputer tidak dapat membuat siapa pun menjadi pemrogram ahli, sama seperti mempelajari kuas dan pigmen dapat membuat seseorang menjadi ahli pelukis.” - Eric S. Raymond

Pada 2016, banyak universitas masih memperlakukan pemrograman seperti ilmu komputer, dan ilmu komputer seperti matematika.

Akibatnya, banyak kursus pemrograman pengantar fokus pada bahasa tingkat rendah abstraksi seperti C, atau bahasa yang berfokus pada matematika seperti MATLAB.

Dan ketua departemen umumnya tetap mengikuti kursus, menunjuk ke papan peringkat bahasa pemrograman tahunan seperti Indeks TIOBE, atau yang ini dari IEEE:

Sebagian besar papan peringkat ini terlihat hampir sama dengan 10 tahun yang lalu.

Tapi perubahan memang terjadi. Bahkan di dunia akademis.

Pada tahun 2014, Python mengambil alih Java sebagai bahasa pengantar paling populer di program Ilmu Komputer AS teratas.

Namun perubahan lain pasti akan… pada akhirnya… terjadi.

Karena jika Anda melihat bahasa yang sebenarnya digunakan oleh tenaga kerja, ini memberikan gambaran yang sangat berbeda:

Lebih dari setengah dari semua pengembang menggunakan JavaScript. Sangat penting untuk pengembangan web front-end dan semakin relevan untuk pengembangan back-end. Dan itu berkembang pesat ke berbagai bidang seperti pengembangan game dan Internet of Things.

Postingan pekerjaan juga menyebutkan JavaScript lebih dari bahasa pemrograman lain selain Java:

Bukan kebetulan kami membangun kurikulum komunitas sumber terbuka kami seputar JavaScript. Selama dua tahun terakhir, lebih dari 5.000 orang telah menggunakan Kamp Kode Gratis untuk mendapatkan pekerjaan pengembang pertama mereka.

Saya tidak menganjurkan JavaScript karena saya mengajarkannya. Saya mengajar JavaScript karena itu jalan paling pasti untuk pekerjaan pengembang pertama.

Tetapi apakah JavaScript tepat untuk Anda? Apakah layak menjadi bahasa pemrograman pertama Anda? Mari kita telusuri faktor-faktor yang saya sebutkan sebelumnya.

Faktor # 1: Pasar kerja

Jika Anda belajar membuat program semata-mata karena keingintahuan intelektual, jangan ragu untuk melewati faktor ini. Tetapi jika Anda - seperti kebanyakan orang yang belajar program - ingin menggunakan keterampilan ini untuk mendapatkan pekerjaan, ini adalah pertimbangan penting.

Seperti yang saya sebutkan sebelumnya, Java disebutkan di lebih banyak posting pekerjaan daripada bahasa pemrograman lainnya. JavaScript adalah yang kedua.

Tapi inilah satu hal tentang JavaScript: meskipun sudah ada selama 20 tahun, baru-baru ini JavaScript menjadi alat yang serius di mana perusahaan seperti Netflix, Walmart, dan PayPal akan membangun seluruh aplikasi.

Akibatnya, banyak perusahaan mempekerjakan pengembang JavaScript, tetapi tidak banyak di pasar kerja.

Ada 2,7 pengembang Java yang bersaing untuk setiap posisi Java terbuka. Persaingan untuk pekerjaan PHP dan iOS juga sama sengitnya.

Namun untuk setiap posisi JavaScript terbuka, hanya ada 0,6 pengembang JavaScript. Ini adalah pasar penjual bagi pengembang dengan keterampilan JavaScript.

Faktor # 2: Prospek jangka panjang

Proyek JavaScript rata-rata menerima permintaan tarik dua kali lebih banyak daripada proyek Java, Python, atau Ruby rata-rata. Dan yang terpenting, JavaScript berkembang lebih cepat daripada bahasa populer lainnya.

Ekosistem JavaScript juga mendapat manfaat dari investasi besar uang dan bakat teknik dari perusahaan seperti Google, Microsoft, Facebook, dan Netflix.

Misalnya, TypeScript (superset JavaScript yang diketik secara statis) memiliki lebih dari 100 kontributor open source, banyak di antaranya adalah karyawan Microsoft dan Google yang dibayar untuk mengerjakannya.

Jenis kerjasama antar perusahaan ini lebih sulit ditemukan dengan Jawa. Oracle - yang secara efektif memiliki Java melalui akuisisi Sun Microsystems - sering menggugat perusahaan yang mencoba mengembangkannya.

Faktor # 3: Kesulitan belajar

Sebagian besar pemrogram akan setuju bahwa bahasa skrip tingkat tinggi relatif mudah dipelajari. JavaScript termasuk dalam kategori ini, bersama dengan Python dan Ruby.

Meskipun universitas masih mengajarkan bahasa seperti Java dan C ++ sebagai bahasa pertama, mereka jauh lebih sulit dipelajari.

Faktor # 4: Proyek yang dapat Anda bangun dengannya

Di sinilah JavaScript benar-benar bersinar. JavaScript berjalan di perangkat apa pun yang memiliki browser, di sana, di browser. Pada dasarnya Anda dapat membuat apa saja dengan JavaScript, dan membagikannya di mana saja.

Karena JavaScript ada di mana-mana, salah satu pendiri Stack Overflow, Jeff Atwood, menciptakan hukumnya yang sekarang terkenal:

“Aplikasi apa pun yang dapat ditulis dalam JavaScript, pada akhirnya akan ditulis dalam JavaScript.”

Dan dengan berlalunya bulan, Hukum Atwood berlaku kuat.

Java pernah berjanji akan berjalan kemana-mana juga. Anda mungkin ingat Java Applet. Oracle secara resmi membunuh mereka awal tahun ini.

Python mengalami banyak masalah yang sama:

“Bagaimana saya bisa memberikan game yang saya buat ini kepada teman saya? Lebih baik lagi, adakah cara saya dapat meletakkan ini di ponsel saya sehingga saya dapat menunjukkannya kepada anak-anak di sekolah tanpa mereka harus menginstalnya? Um. ” - James Hague dalam Pensiun dari Python sebagai Bahasa Pengajaran

Sebaliknya, berikut adalah beberapa aplikasi yang dibuat oleh anggota komunitas sumber terbuka kami di browser mereka di CodePen. Anda dapat mengklik dan menggunakan ini langsung di browser Anda:

Pelajari satu bahasa dengan baik. Kemudian pelajari yang kedua.

Jika Anda terus melompat dari satu bahasa ke bahasa lain, Anda tidak akan jauh.

Untuk melampaui dasar-dasarnya, Anda perlu mempelajari bahasa pertama Anda dengan baik. Maka bahasa kedua Anda akan jauh lebih mudah.

Dari sana, Anda dapat mengembangkannya, dan menjadi pengembang yang lebih berpengalaman dengan mempelajari banyak bahasa:

  • C adalah cara yang bagus untuk mempelajari bagaimana komputer sebenarnya bekerja dalam hal manajemen memori, dan berguna dalam komputasi kinerja tinggi
  • C ++ sangat bagus untuk pengembangan game.
  • Python sangat bagus untuk sains dan statistik.
  • Java penting jika Anda ingin bekerja di perusahaan teknologi besar.

Tapi pelajari dulu JavaScript.

Oke, sekarang saya akan mencoba yang tidak mungkin - saya akan mencoba dan mengantisipasi keberatan dari bagian komentar.

Penolakan # 1: Tapi bukankah JavaScript lambat?

JavaScript - untuk sebagian besar tujuan praktis - secepat bahasa berkinerja tinggi.

JavaScript (Node.js) adalah lipat lebih cepat dari Python, Ruby, dan PHP.

Ini juga hampir secepat bahasa berkinerja tinggi seperti C ++, Java, dan Go.

Berikut adalah hasil dari tolok ukur lintas bahasa terbaru yang paling komprehensif:

Penolakan # 2: Tapi JavaScript tidak diketik secara statis

Seperti Python dan Ruby, JavaScript diketik secara dinamis, yang nyaman. Tapi Anda bisa mendapat masalah. Di sini saya bermaksud untuk exampleArraymenjadi sebuah array. Saya menetapkan nilainya, lalu memeriksa panjangnya - artinya jumlah elemen yang dikandungnya.

exampleArray = [1, 2] -> [1, 2] exampleArray.length -> 2

Tapi kemudian saya tidak sengaja menetapkannya menjadi string.

exampleArray = “text” -> “text” exampleArray.length -> 4

Jenis kesalahan ini terjadi sepanjang waktu dalam bahasa yang diketik secara dinamis. Sebagian besar pengembang hanya melakukan pemeriksaan untuk mencegahnya, dan menulis pengujian yang sesuai.

Jika Anda benar-benar harus memiliki pengetikan statis dalam bahasa pemrograman pertama Anda, saya tetap menyarankan Anda mempelajari JavaScript terlebih dahulu. Kemudian Anda dapat dengan cepat mengambil TypeScript.

“Ketik memiliki kurva belajar, tetapi jika Anda sudah tahu JavaScript, itu akan mulus.” - Alex Ewerlöf di TypeScript

Penolakan # 3: Tapi saya sangat ingin membuat aplikasi seluler

Saya tetap merekomendasikan belajar JavaScript terlebih dahulu.

  1. JavaScript menampilkan beberapa alat untuk membuat aplikasi seluler asli, seperti Angular Cordova dan React Native.
  2. Agar aplikasi seluler Anda benar-benar melakukan sesuatu yang menarik, itu mungkin memerlukan back end yang tepat, yang Anda ingin bangun dengan kerangka kerja pengembangan web yang tepat, seperti Node.js + Express.js.

Juga, perlu ditunjukkan bahwa hari-hari terbaik pengembangan aplikasi seluler mungkin berada di belakangnya.

Sebagai permulaan, sebanyak orang menggunakan aplikasi seluler, hampir setengah dari semua pekerjaan pengembang adalah pengembangan web. Bandingkan ini dengan hanya 8% pekerjaan yang melibatkan pengembangan aplikasi seluler.

Visi besar "ada aplikasi untuk itu" belum terwujud. Sebaliknya, sebagian besar pemilik ponsel cerdas telah berhenti mengunduh aplikasi baru.

Tentu - mereka masih menggunakan aplikasi. Kebanyakan Facebook, Google Maps, dan beberapa lainnya. Karena itu, sebagian besar permintaan untuk pengembang aplikasi seluler terkonsentrasi di beberapa perusahaan besar.

Prospek pekerjaan pengembangan seluler tersebut sulit untuk diperkirakan. Banyak aspek dalam mengembangkan, memelihara, dan mendistribusikan aplikasi seluler menjadi lebih mudah dengan JavaScript. Jadi, perusahaan seperti Facebook dan Google berinvestasi besar-besaran pada alat yang lebih baik untuk membuatnya menggunakan JavaScript.

Pada 2016, hampir semua pengembangan adalah pengembangan web. Semuanya menyentuh platform besar itu yaitu "web". Dan gelombang perangkat berikutnya yang akan Anda gunakan untuk berbicara di sekitar rumah, dan mobil yang menjemput anak-anak Anda dari sekolah - semuanya akan disambungkan bersama menggunakan web juga.

Dan itu berarti JavaScript.

Keberatan # 4: Bukankah JavaScript adalah bahasa mainan yang ditulis dalam 10 hari?

JavaScript memiliki sejarah yang unik.

Anda pasti akan mendengar orang melontarkan lelucon dengan mengorbankan nyawa.

Orang juga suka membenci C ++. Dan seperti JavaScript, C ++ telah berhasil meskipun ada kebencian ini, dan sekarang cukup banyak di mana-mana juga.

Jadi, jika ada yang menyulitkan Anda untuk mempelajari JavaScript alih-alih bahasa elit minggu ini, ingat saja kata-kata terkenal dari orang yang membuat C ++:

“Hanya ada dua jenis bahasa pemrograman: orang-orang yang selalu mengomel dan yang tidak digunakan siapa pun.” - Bjarne Stroustrup

Saya hanya menulis tentang pemrograman dan teknologi. Jika Anda mengikuti saya di Twitter, saya tidak akan membuang waktu Anda. ?