Baru-baru ini, pertempuran serius pecah di Habré dalam komentar di artikel oleh
Fulsteki - ini adalah MIDL abadi. Jangan ikuti jalan ini jika Anda tidak ingin menderitaSaya akan mencoba untuk menyatakan sudut pandang saya bahwa tumpukan penuh benar-benar keren, dan mengapa itu baik untuk mengikuti jalan ini.
Mungkin teks di bawah ini akan membantu seseorang untuk memulai jalan ini, dan mungkin sebaliknya, akan melindungi pikiran yang rapuh darinya. Secara umum, selamat datang di kucing.
** AHTUNG! Semua yang berikut ini bukan kebenaran tertinggi dan merupakan visi subjektif saya (dari dunia ini).
Untuk memulai, mari kita tentukan istilah yang akan dibahas di bawah ini untuk berada di bidang informasi yang sama, karena konsep fullstack berbeda untuk semua orang (seperti pembagian ke dalam tabel peringkat Junior / Menengah / Senior dan lainnya).
Pendapat yang paling umum adalah fullstack adalah pengembang yang, dalam satu orang, dapat mengerjakan proyek sepenuhnya sendiri, dari belakang ke depan.
Beberapa dari Anda mungkin berkata, “Ya, di tim saya yang tengah bisa”, yang (secara sederhana) salah dalam banyak kasus. Jika pengembang front-end dapat memperbaiki / menambahkan sesuatu di kode backing, menggali lebih dalam ke query database, ini masih belum setumpuk penuh.
Setelah semua, pengembangan proyek tidak hanya kode kembali dan depan, itu juga membangun / mengkonfigurasi / mendukung infrastruktur untuk produk yang dihasilkan. Tidak cukup menulis kode, masih perlu dibuat untuk bekerja pada objek. Dan objeknya bisa berupa VPS 5-dolar dengan LAMP secara default, dan jaringan cloud seperti AWS / Azure, atau bahkan infrastruktur Anda sendiri, tempat perangkat keras yang nyata hidup, dari server / workstation ke router.
Karena itu, kita tidak berbicara tentang "fullstack-dev", tetapi lebih pada "fullstack-secara umum". Yang bisa menarik satu orang proyek dari tahap negosiasi, ke tahap penandatanganan tindakan penyelesaian.
Saya tidak akan menekuk jari saya, mendaftar apa yang harus dan tidak harus diketahui oleh spesialis fullstack ini adalah daftar yang sangat tidak jelas. Pada akhirnya, seseorang berhasil mengirim dan mempromosikan "proyek satu alat", katakan di Jawa dengan NoSQL, tetapi hari ini kita tidak akan membicarakan hal ini.
Jadi,
bagaimana menjadi pengembang fullstack, apakah Anda perlu menjadi fullstack atau lebih baik bergerak ke arah satu?
Secara singkat pergi ke minus plus berbaring di permukaan.
Cons
Mungkin minus yang paling jelas - terima sebagai fakta bahwa Anda akan selalu (
selalu ) kalah dengan pengembang yang sangat terspesialisasi dalam segala hal - mulai dari memiliki alat dan teknologi paling modern, hingga kualitas kode. Jika Anda ambisius, Anda selalu ingin berada di ujung tombak kemajuan, Anda ingin menekuk jari Anda
dan melihat yang lain sebagai omong kosong - fullstack bukan cara Anda.
Mencari pekerjaan untuk fullstack jauh lebih mudah daripada untuk pengembang satu teknologi. Tetapi menemukan pekerjaan
bergaji tinggi masih lebih sulit. Paradoks, ya? Namun, dalam sebagian besar kasus, inilah yang terjadi (kecuali tentu saja kami ingin menggunakan tumpukan penuh sebagai tumpukan penuh, dan bukan sebagai "programmer Java"). Di mana orang membayar banyak dari hari-hari pertama / bulan kerja, biasanya mereka tidak membutuhkan "baik shvets dan reaper, dan dude" - di sana Anda memerlukan satu lagi perlengkapan yang diminyaki dengan baik dalam mekanisme umum yang akan melakukan satu tugas dan melakukannya dengan baik,
seperti kata timlid . Tentu saja, ada pengecualian, tetapi jumlahnya tidak sebanyak yang kita inginkan.
Bekerja dalam satu helm menyiratkan keterbatasan sumber daya. Yaitu Anda tidak dapat menerapkan produk perangkat lunak yang benar-benar besar. Bahkan jika ada pengetahuan yang cukup, tidak akan ada cukup waktu. Anda tidak akan dapat merilis game pembunuh (perkembangan indie kecil baik, tetapi ini bukan tentang mereka), sistem operasinya, atau Mega-Office-XXL. Seringkali orang terbakar jika mereka mengambil proyek yang terlalu besar tanpa menghitung kekuatan mereka. Jika Anda suka membuat game, atau berpartisipasi dalam proyek-proyek besar (biasanya internasional), atau ekstrem, dapatkan gaji yang bagus tepat setelah universitas (2-3 tahun bekerja aktif) di satu bidang apa pun - Anda juga tidak di sini.
Anda harus belajar setiap saat. Secara konstan. Banyak. Untuk hal-hal yang berbeda. Jika Anda mengingat studi bertahun-tahun dengan gemetar, konferensi, dan webinar tidak menyukai Anda, jika Anda tidak siap menghabiskan berjam-jam membaca megaton sampah informasi, mencari partikel yang berguna, jika Anda terganggu oleh teknologi yang
harus Anda
dapat , terlepas dari keinginan dan preferensi Anda - Anda tidak perlu jalur fullstack. Anda perlu memahami (dan menerima) bahwa beberapa Zen diperlukan di sini. Anda hanya perlu menyeret diri dari apa yang terjadi, yang tidak terjadi pada semua orang.
Jangan pernah lupa bahwa seseorang, pada kenyataannya, adalah ternak satu-tugas, tetapi Anda harus terus-menerus meniru mode multitasking (bahasa yang berbeda, lingkungan pengembangan yang berbeda, pendekatan yang berbeda, tetapi konsep "menulis kode" dan "menggunakan infrastruktur" berbeda). Percayalah, pada awalnya sangat sulit dan mengarah ke kecepatan rendah dan banyak kesalahan.
Dan akhirnya, selalu ada risiko disandera oleh situasi dan berhenti berkembang jika tempat kerja tidak melibatkan tangga karier. Dan beribu-ribu pekerja berpotensi bagus dengan sedih duduk di meja kecil, sama sekali tidak melakukan apa yang mereka inginkan 10 tahun lalu. Ya, mereka dapat melakukannya di Windows Server, di * nix, mungkin di Jawa dan Python, mereka mendukung beberapa kerajinan tangan di C #, dulu "portal perusahaan" ditulis dalam PHP + JS, tetapi tidak ada lagi tugas, semuanya ditukar di kantor, semuanya bekerja.
Dan layak untuk melewati perbatasan dalam 35-40 tahun, ketika konservatisme yang dibangun pada orang-orang dimasukkan, dikalikan dengan rawa yang nyaman ini, yang pada akhirnya mengarah pada semacam “koper tanpa pegangan”. Dan memutus lingkaran setan ini menjadi lebih sulit setiap tahun. Berhati-hatilah dengan kondisi seperti itu, karena jenggot dan sweter tumbuh lebih cepat daripada spesialis sempit yang telah menulis hal yang sama selama 10 tahun.
Mungkin film horor yang cukup untuk hari ini, mari kita bicara tentang pro
Anda bisa melakukan apa saja. Yah, atau hampir. Dari situs web perusahaan ke aplikasi seluler. Bagaimanapun, Anda tidak terbatas pada 1-2 teknologi. Anda bahkan dapat membangun kerajaan mikro di satu intranet.
Jika Anda telah bekerja fullstack untuk waktu yang lama (dan yang paling penting - berhasil), Anda dapat dengan mudah memimpin tim pengembangan. Menjadi Arsitek. Mereka yang berada di garis depan dari setiap proyek besar.
Jika Anda seorang introvert yang cemberut, suka mobil dan jangan suka orang - dapatkan uang di situs yang jauh. Memimpin beberapa proyek dengan santai, Anda bisa mendapatkan uang yang baik tanpa menghabiskan keberanian untuk berkomunikasi dengan tim.
Jika Anda suka berkomunikasi dengan orang-orang, Anda memiliki bahasa yang ditangguhkan (atau dilatih) (atau Anda hanya seorang introvert yang licik dengan kemauan keras) - Anda dapat memperoleh lebih banyak uang dengan menembus jiwa pelanggan.
Harus dipahami bahwa Anda tidak akan pernah dibiarkan tanpa pekerjaan sama sekali. Jika Anda fullstack yang benar, maka Anda harus menggunakan teknologi apa pun. Dan bahkan di "tangan tengah senior" (inilah saat Google tidak akan memimpin tim dari jalan, tetapi dalam proyek yang kurang lebih serius - mudah).
Dan akhirnya, beberapa tips sederhana dan jelas (sayangnya, tidak untuk semua orang dan tidak selalu). Saya secara sadar akan fokus pada basis kode, bukan pada infrastruktur, agar tidak membuat pembaca bosan.
Kiat satu.
Jangan biarkan harga diri Anda menang atas Anda . Ini sangat penting. Anggap saja ada orang yang melakukan sesuatu yang lebih baik dari Anda. Belajarlah dari mereka, jika memungkinkan. Pendekatan "Anda semua omong kosong, tapi saya sepenuhnya fullstack, saya bisa melakukan segalanya" salah pada akarnya, dan sering kali tidak hanya memukul kesombongan, tetapi juga dompet. Jika Anda mencintai diri sendiri dan uang - ikuti saran ini.
Kiat kedua. Sekali atau dua kali dalam beberapa tahun, akan menyenangkan untuk bekerja dalam tim spesialis yang sempit. Ini sangat meningkatkan keterampilan, karena teknologinya tidak diam, tetapi terburu-buru dengan kecepatan lokomotif, dan spesialis yang sempit mencoba untuk menjadi tren. Jika ada peluang seperti itu - jangan ketinggalan, pelajari banyak, temukan banyak kemacetan di proyek lama Anda dan jangan izinkan mereka dalam yang baru.
Kiat tiga. Jangan berusaha mempelajari SEMUA YaP. Pertama, itu tidak mungkin, dan kedua, itu tidak perlu. Gunakan dalam proyek Anda teknologi yang dipelajari dengan baik, di mana Anda benar-benar "Signor". Anda perlu mempelajari bahan nuklir baru (setidaknya untuk pengembangan umum), tetapi Anda harus menerapkannya dalam proyek nyata hanya setelah mereka menjadi sangat jelas bagi Anda. Secara langsung sebagai bahasa dan bagaimana, dengan kualitas apa mereka dapat digunakan, manfaat apa yang dapat diperoleh dari beralih, katakanlah, dari Jawa ke Kotlin atau Scala. Jika Anda tidak memahami manfaatnya, maka bahasa tersebut belum jatuh tempo, atau (kemungkinan besar) Anda sendiri. Pendekatan "memberi dua minggu untuk membaca titik dan saya akan menulis tentang omong kosong ini" adalah pendekatan yang buruk.
Kiat Empat. Jika Anda melihat kode pengembangan Anda 1-3 tahun yang lalu dan Anda tidak ingin memperbaikinya, kemungkinan besar Anda mengalami krisis, seperti pengembang (atau kode ideal dalam segala hal, yang tidak terjadi). Coba tip # 2.
Kiat Lima. Dari awal jalur, kembangkan basis pelanggan. Bangun otoritas Anda. Anda dan perkembangan Anda harus tahu. Tidak masalah jika Anda bekerja di perusahaan atau lepas di situs jarak jauh. Jika Anda tidak mengalami kesulitan dalam berkomunikasi dengan orang, pastikan untuk menghabiskan waktu berkomunikasi dengan pelanggan. Dan dua kali lipat diperlukan - untuk berkomunikasi langsung dengan mereka yang harus bekerja dengan produk Anda. Jadi Anda akan jauh lebih mampu memikirkan arsitektur proyek masa depan.
Kiat tujuh. Ukur alat dan tugas. Jangan menembak dari meriam di burung pipit. Tidak perlu menggunakan infrastruktur lokal
dengan blackjack dan anak perempuan dengan tanggung jawab sosial yang rendah untuk satu halaman "situs perusahaan", hanya karena. Anda dapat menyesuaikannya. Dan Anda juga tidak perlu menyeret kerangka kerja 5MB JS ke situs ini (hanya karena Anda bisa melakukannya).
Tidak perlu menyeret dari belakang ke depan apa tempat di belakang. Sebaliknya, jangan. Ingat, jika Anda tiba-tiba memiliki terlalu banyak tongkat pada suatu proyek yang spesifikasi teknisnya belum berubah 100.500 kali selama pengembangan, itu berarti Anda telah mendesain arsitekturnya dengan buruk. Jika memungkinkan, perbaiki, jika tidak, pastikan untuk mempertimbangkan ini dalam tugas-tugas berikut.
Dewan kedelapan. Tetapkan prioritas dengan benar. Ingatlah bahwa tugas Anda adalah membuat produk, pertama-tama,
nyaman dan
seandal mungkin. Bahkan jika Anda memiliki indera kecantikan yang hipertrofi, kecantikan harus didatangkan paling akhir.
Fiuh Mungkin ini sudah cukup untuk memulai.
Terima kasih atas perhatiannya.
Oh ya, aku hampir lupa ... Ayo mulai!