Hari ini salah seorang guru kegemaran saya, Brad Traversy, menerbitkan gambaran keseluruhan mengenai apa yang dia cadangkan agar anda belajar untuk menjadi pembangun web pada tahun 2020.
Brad memotong banyak gembar-gembur yang anda dengar di media sosial. Nasihatnya praktikal dan realistik. Dan saya bersetuju dengannya mengenai hampir semua perkara yang dia cadangkan untuk anda pelajari.
Perkara utama yang ditekankan oleh Brad - dan yang selalu saya tekankan - tidak merasa gementar atau membiarkan diri anda merasa terbeban.
Ingat: kurikulum freeCodeCamp merangkumi sebahagian besar alat ini, dan telah membantu lebih daripada 40,000 orang mendapat pekerjaan sebagai pemaju. Sekiranya ragu-ragu, fokus pada perkara itu.
Saya telah meringkaskan pandangan utama Brad di bawah untuk kemudahan anda. Ini berkata, saya mendorong anda untuk menonton video penuhnya, yang telah saya masukkan di bawah. Dia menambahkan banyak perincian di luar apa yang disampaikan oleh nota-nota ini. Jam tangan 73 minit.
Pembangunan Web pada tahun 2020: Tinjauan
Matlamat utama video adalah untuk memberi anda keakraban dengan beberapa alat pembangunan web yang lebih utama yang tersedia untuk pembangun web.
"Saya tidak berusaha membebani anda dengan teknologi. Ini hanya pilihan yang anda miliki ... Terdapat banyak teknologi di luar sana. Apabila anda mendengar sesuatu seperti Nuxt atau Gatsby, saya mahu anda tahu apa itu. Dan kemudian anda boleh memilih sama ada anda ingin mempelajarinya atau tidak. "
Brad bermula dengan mendorong orang untuk bertanya terlebih dahulu apa yang ingin mereka lakukan. Adakah anda ingin mengusahakan syarikat produk? Atau bekerja sebagai perunding? Adakah anda mahu bebas? Atau bina produk anda sendiri?
Sebilangan besar nasihatnya tentang apa yang harus dipelajari bergantung kepada apa matlamat anda. Dan dia menyusun banyak cadangan perkakasnya berdasarkan pandangan ini.
Sebagai titik permulaan, dia mengesyorkan mempelajari apa yang disebutnya "The Necessities."

Satu perkara intuitif yang ditunjukkannya: anda tidak memerlukan komputer mewah untuk pembangunan web. "Ini bukan seperti pengembangan mesin permainan atau semacamnya, jadi Anda dapat menggunakan komputer riba atau desktop kelas menengah, atau bahkan dalam beberapa keadaan komputer kelas bawah."
Dia menggunakan MacOS, Windows 10, dan Linux untuk pelayan awan dan bahkan untuk beberapa pelayan medianya.
Dia adalah peminat besar Kod VS untuk editornya, dan menggunakan Chrome dan DevTools terbina dalam untuk penyahpepijatan berasaskan penyemak imbas. Ini dikatakan, dia berpendapat Firefox juga telah berjalan jauh dan merupakan alternatif yang sesuai.
Dia mengesyorkan bermula dengan HTML dan CSS standard, dan belajar alat CSS yang lebih baru seperti Flexbox dan Grid.
Dia mengatakan bahawa pembelajaran reka bentuk web responsif pada tahun 2020 harus diberikan. "Setiap projek serius yang anda buat harus kelihatan baik dan dapat digunakan sepenuhnya pada semua peranti."
Daripada bergantung pada kerangka kerja CSS seperti Bootstrap, dia mengesyorkan anda berlatih membina komponen CSS modular anda sendiri yang kemudian anda boleh gunakan semula sepanjang projek anda.
Ini berkata, dia mengatakan bahawa anda mungkin akan menghadapi masalah ini semasa anda mengusahakan projek untuk majikan yang berbeza.

Dia secara khusus menyebut Tailwind, yang belum pernah saya dengar sebelumnya. Tailwind sedikit berbeza dengan kerangka kerja CSS yang lain. Ini difokuskan pada "kelas utiliti" yang boleh anda gabungkan untuk mencapai apa yang anda mahukan dengan reka bentuk.
Tidak mengejutkan bahawa Brad mengesyorkan menjadi sangat baik dengan JavaScript.

Belajar dengan Laju Praktikal
Sepanjang panduan Brad, dia berulang kali menekankan perlunya kepraktisan.
Ya - ada amalan terbaik untuk semuanya. Tetapi dalam banyak kes, ada cara yang cukup baik untuk menolong anda bergerak lebih pantas dan menyelesaikannya lebih banyak, tanpa perlu menggunakan alat.
Salah satu perkara yang paling menarik (dan mungkin bidaah) yang dia katakan:
"Tidak perlu belajar DevOps dan AWS dan semua perkara ini untuk laman web kecil. Laman web hosting atau laman web hosting terkelola seperti InMotion atau Hostgator baik-baik saja. Ini membolehkan anda melakukan [penyebaran] tepat di penyemak imbas. Tidak perlu perkara yang terlalu rumit. "
Dia berpendapat bahawa walaupun pada tahun 2020, ada sesuatu yang dapat dikatakan kerana menggunakan alat yang biasa.

Bagi orang yang baru dalam pembangunan web, Brad mengesyorkan agar pertama kali dapat bekerja sebagai pembangun web asas asas. Ini akan membolehkan anda membina laman web untuk perniagaan tempatan sebagai freelancer.
"Hipsters akan mengatakan bahawa anda pasti perlu menggunakan kerangka depan. Saya rasa itu tidak benar. Sekiranya anda ingin membuat templat di pelayan tanpa menggunakan rangka depan, saya rasa itu baik-baik saja, tetapi ada banyak pekerjaan yang mencari sesuatu seperti React atau Vue. "
Tetapi setelah anda bersedia mengatasi kerangka depan, dia mengesyorkan anda meneroka React, Vue dan Angular. "Cuba ketiga-tiganya dan cari yang mana yang paling anda sukai."
Dia juga memberikan anggukan kepada Svelte - yang bukan kerangka, melainkan penyusun. Tetapi dia mengatakan mungkin terlalu baru untuk dicuba dan diteruskan pada tahun 2020.
Dan dia membincangkan peningkatan populariti Server Side Rendering. Perutean berasaskan sistem fail bermaksud anda tidak perlu membuat fail penghalaan yang rumit. Sebagai gantinya, anda boleh memasukkan fail ke dalam direktori yang anda inginkan.
Dua alat Server Side Rendering yang popular adalah Next.js (untuk React) dan Nuxt.js (pilihan Vue).
Trend lain yang muncul ialah Static Site Renders, yang menurutnya anda tidak perlu belajar tetapi anda harus sedar. Contohnya, laman Gatsby sangat pantas dan tidak memerlukan pelayan.
Alat Pembangunan Bahagian Belakang

Untuk pengembangan dari sisi pelayan, Brad lebih suka Node.js kerana kelajuannya dan kerana dia dapat menggunakan JavaScript di bahagian depan dan belakang.
Untuk kerangka pembangunan sisi pelayan, dia mengesyorkan mempelajari Express kerana ini adalah yang paling popular dan "ini memberi anda banyak kebebasan untuk membina sesuatu yang anda mahukan dengan cara anda sendiri."
Dia juga menggunakan Python untuk beberapa projek, dan mengesyorkannya juga.
"Python mempunyai dua kerangka kerja yang mengagumkan. Django adalah kerangka yang besar dan penuh ciri, di mana Flask lebih minimalis. Ia memberikan apa yang anda perlukan tetapi anda membuat keputusan selebihnya. Sejujurnya saya tidak dapat memilih salah satu dari dua, saya sayangi mereka berdua dan gunakannya untuk perkara yang berbeza. "
Dan dia cepat datang untuk mempertahankan PHP:
"Banyak orang memberikan omong kosong kepada PHP dan sangat disayangkan kerana PHP dapat menjadi bahasa yang hebat. Amalan praktikal dan mudah digunakan di mana sahaja. PHP sangat bagus untuk freelancer yang perlu mengeluarkan barang dengan cepat. Sekiranya anda merancang bekerja untuk syarikat besar, PHP mungkin bukan pilihan terbaik, tetapi jika anda bebas dan membina projek peribadi, PHP boleh menjadi pilihan yang baik. Menjadi senang dengan PHP. PHP adalah bahasa pertama yang saya pelajari dan saya masih sangat suka itu ... Sekiranya anda melihat kod Laravel, ia sangat elegan. "
Brad juga meninjau pangkalan data dengan cepat, dan mengesyorkan PostgreSQL kegemaran abadi.

Alat-alat lain yang mungkin ada di sini untuk kekal
GraphQL adalah alternatif untuk REST untuk API. Terdapat beberapa kursus yang merangkumi GraphQL di saluran Brad dan juga saluran freeCodeCamp. Tetapi dia berkata, "GraphQL bukanlah sesuatu yang harus anda pelajari hari ini, tetapi cukup besar sehingga saya rasa ia berada di sini untuk tinggal. Ini lebih daripada sekadar trend."
Brad juga membincangkan mengenai Sistem Pengurusan Kandungan (CMS) dan bagaimana mereka berkembang menjadi pilihan "tanpa kepala" baru di mana anda hanya menggunakannya sebagai bahagian belakang dan kodkan bahagian depan anda sendiri.
"CMS sangat berguna untuk freelancer yang mempunyai pelanggan yang ingin dapat log masuk dan membuat catatan blog mereka dan perkara seperti itu. Banyak orang mengalahkan WordPress, tetapi terdapat sebilangan besar laman web di internet yang dikendalikan oleh WordPress dan ia masih sangat popular. "
Untuk pelayan web, dia lebih suka NGINX daripada Apache kerana "nampaknya tidak terlalu rumit." Kami menggunakan NGINX secara meluas di freeCodeCamp dan saya cenderung untuk bersetuju.
Brad juga menerangkan bagaimana virtualisasi berfungsi, dan membincangkan bagaimana ia dapat mempermudah projek yang lebih kompleks dengan menyeragamkan persekitaran di beberapa komputer. Tetapi dia memberi amaran terhadap usaha untuk memvisualisasikan segalanya:
"Docker benar-benar baik untuk pasukan. Apa yang saya tidak suka adalah ketika orang mengatakan anda harus selalu menggunakan Docker. Itu hanya pilihan. Sekiranya anda hanya ingin menjalankan pelayan LAMP tempatan, tidak ada yang salah dengan itu. untuk belajar sesuatu seperti Docker. "
Dan dia menambah, untuk menekankan sesuatu yang secara peribadi saya tidak cukup tekankan: "Saya tahu banyak jenis kutu buku hanya mahu terlalu banyak perkara dan saya membencinya. Hanya kerana saya menyenaraikan semua ini tidak bermaksud saya mendorongnya. awak. "
Dia juga cepat menunjukkan bahawa kebanyakan syarikat besar mempunyai pasukan DevOps yang berdedikasi (juga disebut "Site Reliability Engineers") yang dapat melakukan banyak ini untuk anda.
Senang Mempunyai Kemahiran yang Dapat Anda Pelajari sebagai Kepakaran
Sekiranya anda ingin menguji tangan anda dalam pengembangan aplikasi mudah alih, Brad sangat mengesyorkan kerangka Flutter. Ia menggunakan Dart, yang merupakan bahasa yang lebih kabur. Dia menggambarkan Dart sebagai suatu tempat di antara Java dan JavaScript, dan mengatakan jika anda mengetahui salah satu bahasa tersebut, anda seharusnya dapat mengambilnya.

Pilihan keduanya untuk pengembangan aplikasi mudah alih adalah React Native, yang mudah diambil sekiranya anda sudah mengetahui React.
Brad kemudian melakukan tugas yang baik untuk menjelaskan apa itu Progressive Web Apps dan beberapa faedah daripadanya. Inilah slaidnya, tetapi sekali lagi, saya sangat menggalakkan anda untuk menonton video penuhnya.

Kemudian dia menyentuh Electron, yang membolehkan anda membuat aplikasi desktop menggunakan JavaScript. Dia pada awalnya skeptikal tetapi mengatakan beberapa aplikasi desktop kegemarannya - seperti VS Code dan Discord - kini dibina menggunakan Electron.
Dia menyebutkan arsitektur JAMstack (JavaScript, API, dan Markup) dan tanpa pelayan. Ini adalah topik yang lebih maju di mana salurannya dan saluran YouTube freeCodeCamp juga mempunyai tutorial video.
Dan kemudian dia memasuki tren besar untuk 2020
Pembelajaran Mesin dan Perhimpunan Web
Hanya kerana orang lain bercakap mengenai pembelajaran mesin tidak bermaksud anda harus membuang semuanya dan mempelajarinya. Begitulah cara dia memilih tahap ceramahnya ini.
Dan ya, anda juga boleh melakukan pembelajaran mesin dalam JavaScript.
"Python adalah raja untuk Pembelajaran Mesin. Tetapi walaupun dengan JavaScript, anda mempunyai TensorFlow.js, anda mempunyai Brain.js untuk membuat rangkaian saraf dan melakukan beberapa perkara yang sangat menarik."
Sudah jelas dari cara dia bercakap mengenai Web Assembly bahawa dia cukup teruja dengannya.
"Perhimpunan Web masih dalam tahap awal tetapi saya rasa kita akan melihat lebih banyak lagi tahun ini. Secara tradisional kita menggunakan JavaScript di laman web untuk memanipulasi DOM dan menjalankan pengiraan. JavaScript mempunyai batasan dari segi kelajuan. Bahasa seperti C atau C ++ jauh lebih pantas daripada JavaScript. Oleh itu, Web Assembly adalah kod byte tahap rendah yang cekap yang dapat dilaksanakan oleh penyemak imbas dan sangat pantas. Ia boleh dihasilkan oleh bahasa seperti C, C ++, dan Rust. "
Rust adalah salah satu bahasa yang boleh anda gunakan dengan WebAssembly (selain C dan C ++). Lebih mudah dipelajari dan digunakan daripada C dan C ++.
Tetapi penting untuk diperhatikan bahawa WebAss Assembly tidak memaafkan anda daripada belajar JavaScript.
"Anda hampir boleh menganggap JavaScript sebagai bos, dan ia dapat memberitahu Perhimpunan Web apa yang harus dilakukan. Oleh itu, ia membolehkan kita menggunakan bahasa tahap rendah yang sangat pantas seperti C ++ dalam aplikasi web kita, dan ini memberi kita lebih banyak kemampuan - seperti permainan video tahap seterusnya dan alat penyuntingan video langsung di penyemak imbas - perkara yang tidak dapat difikirkan hanya dengan JavaScript. "
Sebagai penutup dia berkata, "Semakin banyak anda belajar, semakin mudah untuk belajar lebih banyak dan menyesuaikan semua teknologi ini bersama-sama. Cobalah untuk tidak terbebani. Lakukan satu langkah pada satu waktu dan lakukan penyelidikan, dan cari tahu apa yang anda mahu buat. "
Sekali lagi, saya ingin mengucapkan terima kasih kepada Brad Traversy kerana mengumpulkan video komprehensif ini.
Orang selalu bertanya kepada saya "apa yang harus saya pelajari jika saya mahu menjadi pembangun web?" Dan jawapan saya ialah "gunakan freeCodeCamp sebagai kurikulum teras anda, dan cantumkan sumber pembelajaran lain semasa anda pergi."
Dan dengan senang hati saya katakan bahawa saluran YouTube Traversy Media Brad adalah salah satu sumber tambahan yang sangat saya cadangkan.