Profesi: pengembang front-end

xxx: apa yang Anda tulis di frontend?
tttt: pada kruk dan sepeda
xxx: mmm, kerangka yang bagus!
Bash.im


Ketika muncul pemikiran untuk menjadi seorang programmer, Anda menginspirasi Shildt's C manual, memesan buku Stroustrup C ++ yang tebal, dan belajar bercanda tentang pointer ke pointer dan rekursi. Romansa keras pertama kali ... Tapi semuanya berubah ketika JavaScript secara tidak sengaja masuk ke dalam hidup Anda. β€œSintaks yang sederhana dan langsung itu! Semuanya, sudah diputuskan, saya akan menulis situs web, "programmer pemula berpikir dan memutuskan untuk menjadi guru dari seluruh web. Tapi kemudian tumpukan yang dipilih mengubah wajahnya yang ramah, dan semakin jauh, semakin banyak. Tapi Anda tidak bisa berhenti sekarang, karena Anda adalah salah satunya - pengembang front-end. Mereka yang "melihat wajah situs." Nah, saya ingin bergabung? Maka untuk Anda 2 seri bagian khusus kami "Profesi: ..."


Kami sudah menyiapkan artikel ini ketika posting "Karir Karir" keluar pada hari Rabu dengan wawancara dengan perwakilan dari sekolah online tentang pekerjaan front-end, yang tidak bisa tidak bersuka cita: itu berarti bahwa dalam seri kami "Profesi: .." akan ada bahan lain yang diperlukan, berguna, relevan . Omong-omong, masalah pertama dikhususkan untuk profesi administrator sistem

Siapa ini?


Pertama, beberapa lirik dan penyimpangan.

Pada ambang dekade ketiga abad ke-21, tampaknya minat pengguna dan pengembang telah bergeser dari antarmuka web ke aplikasi seluler dan IoT. Tapi sepertinya. Mari kita lakukan eksperimen pemikiran sederhana. Pikirkan tentang berapa banyak situs yang Anda kunjungi dari semua gadget Anda per minggu dan analisis aplikasi seluler mana yang telah Anda instal. Kemungkinan besar, ternyata Anda melihat semua informasi dan sumber daya berita pada versi lengkap dan mobile dari situs (di browser), dan aplikasi seluler melakukan tugas "spesifik": jaringan sosial, pengirim pesan instan, perencana, hobi, dll. Artinya, terlalu dini untuk membicarakan kepunahan web.

Selain itu, salah satu tren 2019-2020 (dan saya pikir sebelum tahun 2025) telah menjadi apa yang disebut PWA (Aplikasi Web Progresif), yang disebut masa depan web seluler. Sederhananya, PWA tidak lebih dari situs seluler orang sehat. PWA paling baik didefinisikan oleh salah satu pencipta konsep ini dan penulis istilah Alex Russell: "Aplikasi Web Progresif hanyalah situs web yang mengambil semua vitamin yang tepat." ("PWA hanyalah sebuah situs yang mengambil semua vitamin yang diperlukan.")

PWA memberi pengguna serangkaian fitur yang biasanya dikaitkan dengan aplikasi seluler asli. Misalnya, Anda bisa mendapatkan pemuatan instan pada panggilan kedua, mengatur ikon situs pada layar gadget untuk akses cepat, menerima notifikasi khusus, menolak navigasi browser dan bekerja dalam mode layar penuh yang nyaman, dll. 

Ngomong-ngomong, jika Anda tertarik untuk mengenal PWA lebih baik, ada halaman keren tentangnya dan, tentu saja, rekomendasi Google .

Jadi, teman-teman saya, jelas bahwa terlepas dari pertumbuhan aplikasi dan teknologi seluler, web akan tetap menjadi standar terbuka untuk interaksi pengguna dan setiap rangkaian informasi (situs, blog, jejaring sosial, toko online, dan lainnya) untuk waktu yang lama. 

Sesuatu membawaku ke backend. Bukan itu intinya. Intinya adalah bahwa dengan backend situs apa pun harus ada "wajah" situs dan entah bagaimana harus berfungsi. Dan semuanya terjadi ketika mereka datang - pengembang front-end. Mereka bertanggung jawab untuk mengembangkan antarmuka eksternal situs, yaitu, bagaimana desain backend dan situs berinteraksi dengan pengguna (jika Anda tiba-tiba berada di HabrΓ©, saya akan menjelaskan - banyak semuanya tersembunyi di balik setiap situs: desain, berbagai lapisan dan backend besar, yaitu, seluruh logika kerja , DBMS dan sebagainya). Secara umum, setelah kebenaran tercakup dalam gambar ini:



Gambaran epik dan akrab ini telah diubah hari ini dan memang, profesi seorang pengembang front-end menjadi jauh lebih kompleks dan multikomponen daripada sekitar 7-10 tahun yang lalu. Sekarang terlihat seperti ini, dan 2028 terasa lebih dekat :-) 



Tender front-end bertanggung jawab atas operasi logis semua komponen situs, termasuk konten, tombol, gambar, navigasi, dan tautan internal. Seringkali merekalah yang merancang struktur utama situs, bekerja dengan persyaratan pengguna (pelanggan), yaitu, mereka bertanggung jawab atas sisi klien dari antarmuka pengguna. Dan jika backend bertanggung jawab atas perangkat keras dan perangkat lunak dan lebih penting bagi mereka bagaimana perangkat lunak berinteraksi dengan perangkat keras, maka ujung depan berinteraksi dengan "perangkat keras" yang jauh lebih kompleks - organ penglihatan, pendengaran dan kadang-kadang indera sentuhan orang awam. Tugasnya adalah membuatnya nyaman, cepat, transparan, diharapkan, dll. Secara umum, jika front-end memotong, semua orang akan melihatnya sekaligus. 

Anda belum takut dengan prospek seperti itu? Lalu kita melangkah lebih jauh. 

Di mana itu dibutuhkan?


Singkatnya, di mana pun ada pengembangan web, yaitu:

  • , β€” : , , , , , , . , , .
  • -, , .
  • - : , , CRM, ERP, BPM .
  • .

Artinya, jika Anda mau, Anda dapat menemukan pekerjaan di bidang apa pun yang menarik minat Anda, menggabungkan minat dan keahlian dari ujung depan. Ya, beberapa perusahaan mencari tumpukan penuh, tetapi sebagai aturan, ini adalah perusahaan yang sangat serius yang siap membayar untuk programmer penuh tumpukan yang benar-benar keren, atau kantor kecil yang tumpukan penuhnya adalah pemrogram enike untuk mendukung situs di CMS. Sisanya adalah calon atasan Anda. Misalnya, pada saat menulis artikel tentang "Karir Habr" ada 249 lowongan selektif seperti itu, dan pada hh.ru - sedikit lebih dari 4100 (meskipun bukan yang selektif, tetapi ini signifikan). 

gaji rata-rata


Kami juga akan melihat upah di Haber Career. Ambil data untuk paruh kedua 2019, terlepas dari kepemilikan tumpukan tertentu. Omong-omong, pengetahuan tentang perpustakaan atau kerangka kerja tertentu tidak menambah banyak gaji, di suatu tempat dari 5 hingga 15 ribu rubel. 
Tingkat spesialis
gaji rata-rata
Muda
53 404 gosok.
Tengah
99 396 gosok.
Senior
170 535 gosok.
Presenter (Pimpinan)
185 533 gosok.

Perbedaan antara level-levelnya cukup mencolok, dan tumpukan di dalam lowongan cukup luas - jadi dengan kursus JavaScript online saja, kecil kemungkinan Anda bisa membuat karier yang unggul.

Persyaratan Profesional Dasar


Memang, pengembang front-end yang dibayar dengan baik tidak hanya harus tahu bahasa pemrograman dasar, tetapi juga tahu perpustakaan dan kerangka kerja. Kami telah memilih lima teknologi paling populer yang dimiliki oleh pengembang dari berbagai tingkatan. Juga, dimulai dengan Junior, beberapa keterampilan penting lainnya yang dapat dilihat pada baris terakhir bergabung dengan kepemilikan tumpukan. Pada prinsipnya, semuanya diharapkan, bagi saya praktis tidak ada kejutan di meja.
Magang (Magang)
Muda
Tengah
Senior
Presenter (Pimpinan)
  1. Javascript
  2. Naskah
  3. HTML
  4. CSS
  5. React.js

  1. Javascript
  2. React.js
  3. HTML
  4. CSS
  5. Redux

  1. Javascript
  2. React.js
  3. Vue.js
  4. Redux
  5. CSS

  1. Javascript
  2. React.js
  3. Sudut
  4. Vue.js
  5. Redux

  1. React.js
  2. Javascript
  3. Vue.js
  4. Sudut
  5. Naskah


Git, BEM, tata letak adaptif, DBMS
+ tata letak lintas-browser
+ manajemen pengembangan, Ruby on Rails
+ manajemen orang, desain arsitektur aplikasi

Dalam deskripsi pekerjaan pengembang front-end, Anda dapat memenuhi berbagai persyaratan, mulai dari pengetahuan dasar HTML hingga pengetahuan lengkap tentang segala sesuatu di dunia dan PHP. Kami akan menyoroti persyaratan dasar.

  • Kemahiran dan pemahaman prinsip-prinsip desain web, UI / UX.
  • Memahami kebutuhan berbagai kelompok pengguna, termasuk kebutuhan untuk bekerja dengan Aksesibilitas (aksesibilitas situs untuk membaca, memahami, dan berinteraksi dengan penyandang disabilitas).
  • Keterampilan untuk memantau kinerja dan kondisi situs, memonitor lalu lintas.
  • Memahami aturan dan masalah kegunaan, keterampilan untuk dengan cepat memperbaiki masalah.
  • Keahlian desain arsitektur aplikasi web.
  • Situs pengujian untuk kegunaan, fitur khusus, debugging yang diperlukan.
  • Pembuatan profil, refactoring, dan optimalisasi aplikasi yang dikembangkan.

Kadang-kadang persyaratan dari majikan meliputi keterampilan desain web, bekerja dengan editor grafis, pengetahuan dan kemampuan untuk menerapkan SEO (optimasi mesin pencari), dan sebagainya. Ya, memang, seringkali keterampilan ini secara signifikan meningkatkan nilai spesialis, tetapi pikirkanlah, tetapi apakah Anda ingin membuang 2-3 posting pada Anda dengan harga satu? Tetapi pengetahuan tentang bahasa pemrograman berorientasi web lainnya (PHP, Ruby, Python) akan memungkinkan tidak hanya bekerja lebih baik dengan backend ketika mengembangkan frontend, tetapi juga secara signifikan meningkatkan nilai Anda di pasar tenaga kerja, dan pada saat yang sama itu bisa menjadi langkah pertama untuk pertumbuhan menuju tumpukan penuh profesional -developer.


Kerangka kerja web paling populer menurut laporan StackOverflow . Saya sangat merekomendasikan pergi ke halaman laporan dan melihat seluruh tabnya, setidaknya pada grafik, untuk beralih tab, sehingga Anda mendapatkan gambaran lengkap tentang apa yang terjadi di TI global. Banyak wawasan bahkan untuk spesialis IT mahir dan berpengalaman.

Dan lagi, skema teknologi 2020 yang luar biasa untuk pengembang front-end (roadmap)



Kualitas pribadi yang penting


Saya bukan pendukung mengevaluasi spesialis dengan kualitas pribadi mereka dan menuntut belas kasih dari front-end atau introversi dari back-end. Namun, memiliki ciri-ciri kepribadian tertentu, pengembang front-end akan mengatasi pekerjaan sedikit lebih baik daripada pesaing dan kolega.

  • , , - , , , , . , . - , - β€” .
  • , , .
  • , , , Β« Β», .
  • Keterampilan artistik, rasa dan selera gaya akan membantu menggabungkan desain yang sudah jadi dan antarmuka yang dibangun dengan baik. 

Pada saat yang sama, seperti teknisi lainnya, pengembang harus memahami algoritme, berpikir logis, dan dapat berbicara secara ringkas baik dalam konten maupun dalam kode.

Kebutuhan akan pengetahuan bahasa asing


Untuk setiap programmer, bahasa Inggris setidaknya menengah-atas dengan bias dalam bahasa Inggris teknis sangat diinginkan. Jadi, Anda dapat membaca dalam aslinya berbagai rekomendasi Google dan perusahaan lain untuk pengembangan optimal (banyak dokumentasi berguna!), Belajar mandiri dengan bantuan kuliah asing, berkomunikasi dengan kolega di forum, mengajukan pertanyaan, dan juga membaca buku tentang kegunaan dan desain, di antaranya ada sangat banyak edisi berbahasa Inggris yang keren dan belum diterjemahkan. 

Sangat sulit untuk berkembang dalam pemrograman tanpa pengetahuan bahasa Inggris, terutama dalam teknologi web. 

Tempat belajar


Dalam realitas Rusia, seperti yang telah kami katakan di artikel pertama tentang administrator sistem, pendidikan tinggi diperlukan untuk pekerjaan yang sukses. Oleh karena itu, diinginkan untuk memiliki basis pendidikan yang baik (politeknik, universitas, hingga ujung - spesialisasi teknis di beberapa universitas dasar). Pada prinsipnya, dengan keterampilan berpikir logis dan kemampuan untuk bekerja dengan algoritma, pendidikan tinggi mana pun cocok - akan menjadi orang yang cerdas. Saat ini, sudah ada spesialisasi dan arahan di universitas, di mana siswa mempelajari dasar-dasar pengembangan front-end dan backend, yang sangat baik. Tapi ini sama sekali tidak cukup.

Tentu saja, hal pertama yang Anda temui ketika memilih profesi pengembang front-end adalah sekolah online. Ketika saya sedang menulis artikel ini, saya google beberapa gambar dan laporan situs pada topik frontend. Saya memiliki semua Yandex dan Google sekarang di iklan yang menjanjikan saya untuk membuat guru JavaScript dalam 2-3-6-12 bulan. Saya akan tergoda jika saya tidak tahu apa itu JavaScript dan bagaimana mempelajarinya dalam 21 hari. Untuk mengambil kursus untuk memulai atau mengatur pengetahuan atau tidak untuk mengambil adalah masalah keinginan Anda, waktu dan pendapatan. Bagaimanapun, Anda tidak akan bisa mendengarkan - Anda harus duduk dan menekan tombol, membuat situs uji atau memotong layanan hewan peliharaan Anda (termasuk backend, omong-omong).

Namun, belajar pengembangan front-end turun ke ini: Anda mengambil proyek dan belajar darinya. Jika Anda ingin uang, Anda dapat mencoba membuat situs web untuk perusahaan kecil atau magang (tetapi untuk ini Anda harus sudah memiliki setidaknya beberapa keterampilan pengembangan atau pengujian). Hanya pengkodean harian, pencarian solusi optimal, analisis kode secara menyeluruh akan membantu Anda memompa sebagai pengembang. 

Buku dan Alat Belajar Teratas


Daftar buku dan sumber daya tergantung pada tumpukan yang Anda pilih. Tetapi ada beberapa yang benar-benar memerlukan front-endder (dan bahkan setiap programmer pada prinsipnya). Saya akan membuat daftar kacau - sejauh kekuatan kesan saya sendiri.

  • Β« Β». , . (, ) , , .
  • htmlbook.ru β€” , . - . 
  • β€” , . JavaScript.
  • Β« JavaScript. -Β» β€” . , «» 2019 , .
  • webref.ru β€” , , . 
  • β€” ( O'Reilly).
  • codecademy.com β€” . , , , . , β€” 15$ . , , . 
  • htmlacademy.ru β€” , . , .
  • , Youtube . , , . , . 
  • Dan tentu saja - jangan takut dan jangan ragu untuk berkomitmen untuk proyek sumber terbuka (mulai dengan yang kecil, dan di sana Anda akan mencapai perpustakaan dan kerangka kerja), pilih kode orang lain, pelajari prinsip dan algoritma.
  • Artikel bagus dengan bahasa Inggris yang sangat sederhana dan tips untuk memulai perjalanan Anda dalam JavaScript.
  • Tentu saja, Habr. Satu tim RUVDS menerjemahkan sangat keren dalam JavaScript dan antarmuka!

Terakhir kali kami ditegur karena kami menunjukkan beberapa buku dan sumber daya. Sayangnya, ada satu set untuk setiap kebutuhan - dan begitu banyak untuk menutup tidak mungkin. Karena itu, dalam komentar, beri tahu di mana dan bagaimana Anda belajar, dengan bantuan yang Anda praktikkan - untuk pemula dan tidak hanya ini akan menjadi informasi yang sangat berguna.

Front-end masa depan


Tender front-end memiliki tiga jalur pengembangan utama.

  1. -. β€” ; β€” , , TDD, ; β€” , ; β€” . 
  2. (-) β€” , , . - ( , - β€” -).
  3. , , , , . , .

Bagaimanapun, hanya yang paling membosankan dan tidak termotivasi yang akan dapat berdiri diam dan tidak bergerak di mana pun dalam karier mereka, karena dinamika web itu sendiri menyeret pengembang dan memaksa mereka untuk memompa keterampilan mereka. Dan ya, Anda selalu bisa sangat baik, pengembang front-end terbaik.

Mitos tentang profesi


▍ Frontend sedang sekarat


Mitos utama adalah bahwa profesi pengembang front-end sedang sekarat. Tentu saja tidak. Selain itu, antarmuka menjadi lebih dan lebih rumit dari tahun ke tahun, dan sektor TI akan membutuhkan spesialis tingkat lanjut yang dapat mengetahui komplikasi ini. Pengembangan front-end akan diperlukan untuk beberapa waktu, dan tidak ada template, visivigi, CMS dan cara lain yang akan menggantikannya. Pentingnya dan perlunya profesi dapat dinilai dengan sejumlah grafik - Saya pikir semuanya jelas dan tidak perlu mengulangi sekali lagi bahwa profesi yang menyediakan hal yang paling penting adalah interaksi pengguna dan antarmuka.


Lihat saja 10 bahasa pemrograman paling populer di proyek GitHub dan evaluasi posisi JavaScript dalam grafik ini. Dalam hal ini, garis lurus tidak berarti mati, itu berarti stabilitas dan permintaan.


Bahasa pemrograman paling populer dari laporan StackOverflow . Omong-omong, JavaScript telah memimpin di sini selama tujuh tahun.

Dan inilah tren Google.


Frontend dinamika permintaan pengembang di dunia, 5 tahun


Dinamika permintaan "frontend" (merah) dan "frontend" (biru) di Rusia, 5 tahun

▍ Pengusaha tidak benar-benar memahami jenis programer


Tetapi mitos kedua nifiga bukanlah mitos, tetapi kebenaran murni. Pengusaha sering tidak mengerti siapa yang mereka pekerjakan dan tidak mencari seseorang yang siap untuk menyelesaikan masalah tertentu dan bertanggung jawab atas solusi mereka, tetapi untuk seseorang yang "perlu tahu" semacam tumpukan teknologi yang dipimpin. Itulah sebabnya Anda harus siap dengan fakta bahwa pekerjaan front-end akan terlihat seperti pekerjaan desainer tata letak, dan yang kedua - pada pekerjaan dengan tumpukan penuh. Jika majikan telah mempelajari singkatan TDD (test driven development), maka lowongan kerja juga dapat ditemukan di antara penguji :-) Faktanya, permainan seperti dalam persyaratan untuk programmer front-end tidak ditemukan secara praktis di mana pun (hanya lebih buruk dengan spesialis PR dan pemasar, yang umumnya harus merupakan MFP). Jika Anda benar-benar ingin bergabung dengan perusahaan dan Anda mengerti bahwa wawancaranya tidak ada,cobalah untuk mentransfer percakapan ke tugas-tugas dan katakan bagaimana tepatnya Anda akan menyelesaikannya dan dengan bantuan tumpukan yang mana. Namun, jika Anda tidak pergi ke sana saat wawancara, mungkin Anda terlalu memikirkan perusahaan? 

Tip utama


Seluruh web berubah dengan sangat cepat - teknologi baru, pola interaksi baru muncul, utilitas baru dan pembaruan untuk kerangka kerja dan perpustakaan keluar. Namun, jika Anda melewatkan salah satu produk baru, besok situs tempat Anda akan bertanggung jawab tidak akan menjadi lebih lambat, menakutkan dan tidak akan berubah menjadi labu. Saat memilih teknologi, mengubah tumpukan, mengubah logika antarmuka, memikirkan pengguna Anda, apa yang mereka gunakan, melihat analitik, memanaskan dan membuat hanya perubahan yang benar-benar diperlukan dan bermanfaat. Sementara itu, mempelajari hal-hal baru dan mencobanya pada proyek hewan peliharaan, karena pengalaman hanya datang dengan latihan, dan memahami solusi terbaik berasal dari contoh hidup. 

Dan bagaimana dan mengapa Anda memutuskan untuk menjadi pengembang front-end? Apa yang baik dalam profesi dan apa yang tidak? Beri tahu kami di komentar, kami akan membantu mereka yang berada di persimpangan jalan.

Source: https://habr.com/ru/post/undefined/


All Articles