
Jadi apa yang Anda butuhkan untuk kebahagiaan pemrograman lengkap dari satu set pencocokan pada akhir tahun 2020?
▍ Struktur dan algoritma data
Saat ini ada banyak programmer otodidak dengan kemampuan coding yang baik dalam bahasa pemrograman tertentu. Ini adalah teknisi, dilatih ulang dari profil lain, “vhozhdens in IT”, amatir pendidikan mandiri, dll. mereka benar-benar memahami cara menulis kode, mereka sangat ahli dalam fungsi dan sintaks, mereka tahu beberapa trik, dan mereka sangat mahir dalam OOP dan pola. Ini sudah banyak untuk bisa bersaing di pasar tenaga kerja.
Tetapi pada hari-hari kerja pertama pada proyek yang bagus, masalah dimulai dan menjadi jelas bahwa tugas pendidikan yang membuat Anda menjadi pembuat kode yang hebat tidak ada hubungannya dengan kode dalam produksi. Untuk menulis kode yang baik dan profesional, Anda perlu memahami struktur dan algoritme data, dan mampu merancang perangkat lunak. Saya telah melihat programmer yang sangat cerdas yang tidak menggunakan array, tree, linked list, sort, dll. Orang-orang ini memiliki dua ciri khas: 1) mereka keras kepala dan percaya diri akan keunggulan mereka; 2) mereka menghabiskan banyak waktu untuk menulis apa yang sudah ada sebagai struktur - Saya telah melihat berbagai macam dan pohon diciptakan kembali, itu menakutkan dan aneh. Saya sudah diam tentang sumber daya.
Oleh karena itu, seorang programmer dari level manapun harus dengan mudah beroperasi dengan struktur dan algoritma yang ada. Omong-omong, profesional HR dan CIO senang menggunakan topik ini dalam wawancara. Apakah layak mengubah wawancara menjadi ujian adalah topik untuk artikel terpisah, tetapi faktanya tetap.
▍Proses Bisnis
Saya masih ingat saat-saat indah ketika memungkinkan untuk menciptakan produk impian Anda, dan spesialis produk, pemasar, tenaga penjualan mengubahnya menjadi produk impian klien perusahaan. Sekarang, tentu saja, ini berbeda: orang-orang komersial telah santai, dan klien telah menjadi pemilih, dan pesaing telah belajar membuat barang-barang indah alih-alih poros tua di atas lutut mereka. Sekarang setiap programmer dan pengembang harus memahami proses bisnis yang membuatnya perangkat lunak, harus memiliki pemahaman minimum tentang bidang kegiatan perusahaan. Dan di sini argumen seperti "Seorang ahli bedah tidak harus dioperasi sepuluh kali" tidak akan hilang, karena ini adalah pemalsuan argumentasi dan penyesatan: ahli bedah, selain lokasi sayatan dan organ tertentu, memahami analisis, farmakologi, resusitasi, anatomi umum, fisiologi, dll.
Dan ini adalah masalah besar: pengembang membuat produk hanya berdasarkan spesifikasi teknis, bukan untuk kenyamanan pelanggan tertentu. Oleh karena itu, jika penting bagi Anda untuk menjadi efektif dan menciptakan produk yang berharga dan dapat dijual (untuk keuntungan gaji Anda), buatlah dengan mempertimbangkan kebutuhan klien, tanpa mempertimbangkan pandangan Anda tentang kebutuhan. Tanyakan persyaratan kepada pengguna, kumpulkan informasi tentang bagaimana produk digunakan, identifikasi modul dan fungsi yang tidak nyaman dan nyaman - kemudian akan menjadi lebih baik dan lebih mudah.
Ngomong-ngomong, sedikit peretasan tentang cara memahami proses bisnis yang membuat aplikasi Anda. Berkumpullah dengan rekan kerja dari bagian "penjualan", dari kantor depan dan lakukan seminar bersama: mereka memberi tahu Anda tentang proses dan klien, tentang profil penggunaan dan keuntungan penting, dan Anda memberi tahu mereka bahwa pengembangan bukanlah gelombang tongkat dan "membasuh kalkulator untuk saya klien meminta banyak untuk menghitung parameter dan biaya proyek pembangkit listrik tenaga nuklir dalam waktu setengah jam. "
▍Math
Ratu ladang. Baik, atau sains, bukan intinya. Tidak peduli bagaimana kita menghindari matematika di dunia IT, kepentingannya meningkat setiap tahun. Pembelajaran mesin, jaringan saraf, atau kecerdasan buatan tidak dapat dikembangkan tanpa pengetahuan matematika. Dan jika Anda, seorang pengembang situs web atau pengembang front-end, hanya mengomel dan pergi untuk membaca paragraf berikutnya, hentikan, ini berlaku untuk semua orang. Karena segera program tanpa setidaknya beberapa dasar ML / AI / jaringan saraf / BigData akan tertinggal. Oleh karena itu, solusinya sederhana: sebelum terlambat, pelajari bagian matematika yang diperlukan.
Saya punya rahasia kecil tentang bagaimana memulainya: beli ensiklopedia tingkat lanjut untuk anak-anak atau buku sains populer tentang matematika dan selami atmosfer, pelajari istilah-istilah dasar. Dan kemudian itu akan pergi dan bahkan mengencangkan.
▍ Pengetahuan dasar di bidang terkait
Poin ini mungkin membuat marah siapa pun, tetapi ya - programmer dan rekan-rekannya akan lebih baik jika mereka semua tahu lebih banyak tentang pekerjaan tetangga di ruang terbuka, kantor, tim. Jika Anda seorang programmer, Anda lebih tahu beberapa dasar-dasar UI / UX, frontend dan backend, administrasi sistem, pengujian, dll. Ini akan memungkinkan membangun dialog kerja yang produktif tanpa saling tuduh dan kecurigaan. Tidak perlu mendalami subjek - buku teks dasar, kuliah online dan kursus internet sudah cukup. Jika Anda benar-benar tertarik dengan karier pengembang, Anda dapat mengambil beberapa program pengembangan perangkat lunak terintegrasi penuh waktu - semuanya akan diberikan di sana dalam jumlah yang moderat, namun paling sering dibayar.
"Prajurit universal" dengan pandangan kerja yang luas ini lebih cenderung masuk dalam jajaran manajer proyek dan pimpinan tim. Jika Anda tertarik, kembangkan lebih luas dan sedikit mendalam dalam hal mempelajari disiplin ilmu yang bergantung.
▍Techno-trio, tanpanya masa depan tidak akan diizinkan
Mungkin terlihat aneh, namun seringkali programmer hanya mengetahui tentang keberadaan ketiga teknologi tersebut dan dapat menjelaskan apa itu secara umum. Namun, segera teknologi ini akan memengaruhi semua orang dengan satu atau lain cara.
- . — , , ( ). . Amazon Web Service (AWS), Google Cloud Platform (GCP) Microsoft Azure .
- . , , . , , . ( ).
- ( Docker Kubernetes) , , . , , , , .
▍ -
Saya suka karyawan perusahaan yang beracun. Jika seorang PR atau manajer proyek dengan gugup mengoreksi kotak dan mengatakan bahwa "Javist Sergey beracun" di perusahaan, saya tahu bahwa kemungkinan besar Javist Sergey menindas kolega dengan volume pengetahuannya, secara profesional menemukan kesalahan dan menjelaskannya dengan membosankan karena niat terbaiknya, dan karena iritasi yang lain menarik diri dan berperilaku kasar. Tapi dia seorang profesional - dan ada banyak dari mereka. Tapi, sayangnya, orang adalah makhluk sosial dengan jiwa yang terorganisir dengan baik dan karena itu tidak tahan dengan orang tanpa empati, vektor sosial dan, maafkan saya, kecerdasan emosional. Oleh karena itu, ketika javist Sergey kedinginan dan melakukan percakapan cerdas dengan pengumpul sampah, pythonist Savely sudah menjadi senior, dan mengincar pemimpin tim, dan telah menghadiri tiga konferensi, dan dia memimpin persahabatan dengan atasannya, dan terbang dengan klien ke sebuah pameran di Barcelona (Anda sudah mengerti,bahwa contoh ditemukan dan semua kebetulan acak, karena tidak ada yang terbang ke Barcelona pada tahun 2020).
Sekarang adalah waktu untuk komunikasi, yang semakin jarang, semakin berharga, jadi tuliskan apa yang perlu Anda pompakan:
- keterampilan komunikasi, keberatan, pertanyaan dan diskusi;
- kemampuan untuk berempati dan, melalui empati, mengeluarkan informasi yang diperlukan;
- kemampuan untuk mengekspresikan pikiran secara kompeten dan cerdas;
- keterampilan komunikasi informal tanpa keakraban dan transisi pribadi;
- kemampuan untuk mempertahankan sudut pandang Anda.
Saya punya kabar baik untuk Anda: sebagian besar soft skill diinstal pada seseorang secara default, Anda hanya perlu mengeluarkan skill ini dari diri Anda sendiri. Jangan pergi ke coach dan coaches, 2-3 buku dasar tentang psikologi organisasi, manajemen konflik dan psikologi sosial akan membuat Anda menjadi pembicara yang bijaksana.
Secara umum, kehidupan kita berkembang dengan cara yang menarik: Sekarang saya ingat bagaimana terobosan Google Glass, betapa jelasnya Pokemon Go masuk, bagaimana berbagai sistem manajemen proyek lepas landas dan segera runtuh. Ini adalah gelombang permintaan hype, permintaan tren. Oleh karena itu, keterampilan yang terdaftar dari seorang programmer pada tahun 2020 tampaknya sangat "tampan": mereka bersifat jangka panjang, dan bukan untuk beberapa musim. Artinya, Anda bisa hidup bersama mereka hingga sekitar tahun 2030 tanpa banyak stres. Dan seluruh dunia bertumpu pada gajah-gajah ini. Nah, bahasa pemrograman, tentu saja, penyu di bawah gajah, dasar dari dasar-dasarnya.
Untuk apa kami? Selamat hari programmer, teman-teman! Anda mengubah hidup Anda menjadi lebih baik dengan kode, Anda membuat persyaratan menjadi aplikasi yang berfungsi, Anda membaca spesifikasi teknis yang tersirat dan Anda tahu apa yang dipikirkan oleh pelanggan atau pemimpin tim. Cintai pekerjaan Anda, tumbuh di atasnya dan pada diri Anda sendiri, dan jangan biarkan satu pun ";" terlewatkan. Semua kata halo dan lebih sedikit bug.