Napa mung nganyarke coding sampeyan ora bakal nggawe sampeyan dadi pangembang sing luwih apik

Napa mung nganyarke coding sampeyan ora bakal nggawe sampeyan dadi pangembang sing luwih apik

Techlead Skyeng Kirill Rogovoy (flashhhh) menehi presentasi ing konferensi ing ngendi dheweke ngomong babagan katrampilan sing kudu dikembangake saben pangembang sing apik supaya bisa dadi sing paling apik. Aku takon marang kanggo nuduhake crita iki karo nonton Habra, Aku menehi lantai kanggo Kirill.

Mitos babagan pangembang sing apik yaiku dheweke:

  1. Nulis kode resik
  2. Ngerti akeh teknologi
  3. Tugas coding luwih cepet
  4. Ngerti akeh algoritma lan pola desain
  5. Bisa refactor sembarang kode nggunakake Clean Code
  6. Ora mbuwang wektu kanggo tugas non-program
  7. 100% master teknologi favorit

Mangkene carane HR ndeleng calon sing cocog, lan lowongan, uga katon kaya iki.

Nanging pengalamanku ujar manawa iki ora bener.

Kaping pisanan, rong penafian penting:
1) pengalamanku yaiku tim produk, yaiku. perusahaan karo produk dhewe, ora outsourcing; ing outsourcing kabeh bisa beda banget;
2) yen sampeyan junior, mula ora kabeh saran bakal ditrapake, lan yen aku dadi sampeyan, aku bakal konsentrasi ing program saiki.

Pangembang apik: kasunyatan

1: Luwih apik tinimbang kode rata-rata

Pangembang sing apik ngerti carane nggawe arsitektur sing keren, nulis kode sing apik, lan ora nggawe akeh bug; Umumé, dheweke nindakake luwih apik tinimbang rata-rata, nanging ora ana ing ndhuwur 1% spesialis. Umume pangembang sing paling apik sing aku ngerti dudu coder sing apik banget: dheweke pancen apik banget, nanging ora bisa nindakake apa-apa sing luar biasa.

2: Ngatasi masalah tinimbang nggawe

Ayo bayangake yen kita kudu nggabungake layanan eksternal menyang proyek kasebut. Kita nampa spesifikasi teknis, deleng dokumentasi, deleng manawa ana sing wis ketinggalan jaman, ngerti yen kita kudu ngliwati paramèter tambahan, nggawe sawetara pangaturan, nyoba kanggo ngleksanakake kabeh lan nggawe sawetara cara bengkong bisa digunakake kanthi bener, pungkasane, sawise pasangan. sawetara dina kita ngerti yen kita ora bisa terus kaya iki. Prilaku standar pangembang ing kahanan iki yaiku bali menyang bisnis lan ujar: "Aku nindakake iki lan iki, iki ora bisa ditindakake, lan sing ora bisa digunakake, mula goleki dhewe. ” Bisnis duwe masalah: sampeyan kudu nyelidiki apa sing kedadeyan, komunikasi karo wong liya, lan nyoba ngatasi masalah kasebut. Telpon sing rusak diwiwiti: "Sampeyan ngandhani, aku bakal sms dheweke, deleng apa sing dijawab."

Pangembang sing apik, ngadhepi kahanan kaya mengkono, bakal nemokake kontak dhewe, ngubungi dheweke ing telpon, ngrembug masalah kasebut, lan yen ora ana sing bisa ditindakake, dheweke bakal ngumpulake wong sing bener, nerangake kabeh lan menehi alternatif (paling mungkin, ana liyane). layanan eksternal kanthi dhukungan sing luwih apik). Pangembang kasebut ndeleng masalah bisnis lan ngrampungake. Tugase ditutup nalika dheweke ngrampungake masalah bisnis, lan ora nalika ana masalah.

3: Nyoba kanggo nglampahi minimal gaweyan kanggo entuk asil maksimal, sanajan tegese nulis crutches

Pangembangan piranti lunak ing perusahaan produk meh mesthi dadi item biaya paling gedhe: pangembang larang. Lan pangembang sing apik ngerti manawa bisnis pengin entuk dhuwit maksimal kanthi mbuwang minimal. Kanggo mbantu dheweke, pangembang sing apik pengin ngentekake wektu sing larang kanggo entuk bathi maksimal kanggo majikan.

Ana rong ekstrem ing kene. Salah sijine yaiku sampeyan bisa ngatasi kabeh masalah kanthi crutch, tanpa ngganggu arsitektur, tanpa refactoring, lsp. Kita kabeh ngerti carane iki biasane rampung: ora ana sing bisa digunakake, kita nulis ulang proyek kasebut saka awal. Liyane iku nalika wong nyoba kanggo teka munggah karo arsitektur becik kanggo saben tombol, nglampahi jam ing tugas lan papat ing refactoring. Asil karya kasebut katon apik, nanging masalahe yaiku ing sisih bisnis butuh sepuluh jam kanggo ngrampungake tombol, ing kasus pertama lan kaloro, mung kanggo macem-macem alasan.

Pangembang sing apik ngerti carane ngimbangi antarane ekstrem kasebut. Dheweke ngerti konteks lan nggawe keputusan sing paling optimal: ing masalah iki aku bakal ngethok crutch, amarga iki kode sing disentuh saben nem wulan. Nanging ing siji iki, aku bakal repot lan nindakake kabeh kanthi bener, amarga satus fitur anyar sing durung dikembangake bakal gumantung marang apa sing dakkarepake.

4. Nduwe sistem manajemen bisnis dhewe lan bisa nggarap proyek kanthi kerumitan apa wae.

Makarya ing prinsip Njupuk barang rampung - nalika sampeyan nulis kabeh tugas ing sawetara jinis sistem teks, aja lali perjanjian apa wae, push everyone, muncul ing endi wae ing wektu, ngerti apa sing penting lan sing ora penting saiki, sampeyan ora bakal kelangan tugas. Karakteristik umum saka wong-wong kuwi yaiku yen sampeyan setuju karo wong-wong mau, sampeyan ora bakal kuwatir yen dheweke bakal lali; lan sampeyan uga ngerti yen dheweke nulis kabeh lan ora bakal takon sewu pitakonan, jawaban sing wis dibahas.

5. Pitakonan lan njlentrehake kahanan lan pambuka

Ing kene uga ana rong ekstrem. Ing tangan siji, sampeyan bisa mamang babagan kabeh informasi pambuka. Wong sadurunge teka karo sawetara solusi, nanging sampeyan mikir sing bisa nindakake luwih apik lan miwiti maneh rembugan kabeh sing teka sadurunge sampeyan: desain, solusi bisnis, arsitektur, etc. Iki mbuwang akeh wektu kanggo pangembang lan wong-wong sing ana ing saubengé, lan nduwe pengaruh negatif marang kapercayan ing perusahaan: wong liya ora pengin nggawe keputusan amarga ngerti yen wong kasebut bakal bali lan ngrusak kabeh. Ekstrem liyane yaiku nalika pangembang ngerteni apa wae pambuka, spesifikasi teknis lan kepinginan bisnis minangka barang sing diukir ing watu, lan mung nalika ngadhepi masalah sing ora bisa ditanggulangi, dheweke bakal mikir apa dheweke nindakake apa sing ditindakake. Pangembang sing apik uga nemokake tengah ing kene: dheweke nyoba ngerteni keputusan sing digawe sadurunge utawa tanpa dheweke, sadurunge tugas kasebut dadi pangembangan. Apa sing dikarepake bisnis? Apa kita ngrampungake masalahe? Desainer produk teka karo solusi, nanging aku ngerti kenapa solusi kasebut bisa digunakake? Napa pimpinan tim nggawe arsitektur tartamtu iki? Yen ana sing ora jelas, sampeyan kudu takon. Ing proses klarifikasi iki, pangembang sing apik bisa ndeleng solusi alternatif sing durung nate kedadeyan sadurunge.

6. mbenakake pangolahan lan wong watara sampeyan

Ana akeh proses sing ana ing sekitar kita - rapat saben dina, rapat, scrum, ulasan teknologi, ulasan kode, lsp. Pangembang sing apik bakal ngadeg lan ngomong: katon, kita kumpul lan ngrembug bab sing padha saben minggu, aku ora ngerti sebabe, kita bisa uga nglampahi jam iki ing Contra. Utawa: kanggo tugas katelu ing saurutan aku ora bisa njaluk menyang kode, boten cetha, arsitektur kebak bolongan; Mungkin kode review kita pincang lan kita kudu refactor, ayo refactor meetup saben rong minggu. Utawa sajrone review kode, wong weruh yen salah sawijining kancane ora nggunakake alat tartamtu kanthi efektif, tegese dheweke kudu teka mengko lan menehi saran. Pangembang sing apik duwe naluri iki; dheweke nindakake perkara kasebut kanthi otomatis.

7. Banget ngatur wong liya, sanajan dudu manajer

Katrampilan iki cocog banget karo tema "mecahake tinimbang nggawe masalah." Asring, ing teks lowongan sing kita aplikasi, ora ana sing ditulis babagan manajemen, nanging banjur, nalika ngadhepi masalah sing ora bisa dikontrol, sampeyan isih kudu ngatur wong liya kanthi cara siji utawa liyane, entuk apa wae saka dheweke, yen sampeyan lali - push, priksa manawa padha mangertos kabeh. Pangembang sing apik ngerti sapa sing kepengin weruh, bisa nelpon rapat karo wong-wong iki, nulis perjanjian, ngirim menyang slack, ngelingake dheweke ing dina sing tepat, priksa manawa kabeh wis siyap, sanajan dheweke ora tanggung jawab langsung. tugas iki, nanging asil gumantung saka implementasine.

8. Ora nganggep kawruh minangka dogma, tansah mbukak kritik

Saben uwong bisa ngelingi kolega saka proyek sadurunge sing ora bisa kompromi karo teknologi lan njerit yen kabeh wong bakal diobong ing neraka amarga mutasi sing salah. Pangembang sing apik, yen kerjane 5, 10, 20 taun ing industri, ngerti yen setengah saka kawruhe bosok, lan ing setengah liyane dheweke ora ngerti kaping sepuluh luwih saka sing dingerteni. Lan saben-saben ana wong sing ora setuju karo dheweke lan menehi alternatif, dudu serangan marang ego, nanging kesempatan kanggo sinau. Iki ngidini dheweke tuwuh luwih cepet tinimbang sing ana ing saubengé.

Ayo mbandhingake ide babagan pangembang sing cocog karo sing umume ditampa:

Napa mung nganyarke coding sampeyan ora bakal nggawe sampeyan dadi pangembang sing luwih apik

Gambar iki nuduhake carane akeh TCTerms diterangake ing ndhuwur related kanggo kode, lan carane akeh ora. Pangembangan ing perusahaan produk mung siji pemrograman katelu, sisa 2/3 ora ana hubungane karo kode. Lan sanajan kita nulis akeh kode, efektifitas kita gumantung banget marang rong pertiga "ora relevan".

Spesialisasi, generalisme lan aturan 80-20

Nalika wong sinau kanggo ngatasi sawetara masalah sing sempit, sinau dawa lan hard, nanging banjur solves kanthi gampang lan gampang, nanging ora duwe keahlian ing bidang sing gegandhengan, iki spesialisasi. Generalisme yaiku nalika setengah saka wektu latihan diinvestasikan ing area kompetensi dhewe, lan setengah liyane ing wilayah sing gegandhengan. Mulane, ing kasus sing sepisanan, aku nindakake siji perkara kanthi sampurna lan liyane kanthi becik, lan ing kaloro, aku nindakake kabeh kanthi becik.

80-20 aturan marang kita sing 80% saka asil teka saka 20% saka efforts . 80% saka revenue asalé saka 20% pelanggan, 80% saka bathi asalé saka 20% karyawan, lan sateruse. Ing wulangan, iki tegese 80% kawruh sing kita entuk ing 20% ​​pisanan wektu.

Ana ide: coders mung kudu kode, desainer mung kudu ngrancang, analis kudu nganalisa, lan manajer mung kudu ngatur. Miturut pendapatku, ide iki beracun lan ora bisa digunakake kanthi apik. Iki ora babagan kabeh wong kudu dadi prajurit universal, iki babagan nyimpen sumber daya. Yen pangembang ngerti sethithik babagan manajemen, desain lan analytics, dheweke bakal bisa ngatasi akeh masalah tanpa nglibatake wong liya. Yen sampeyan kudu nggawe sawetara jinis fitur banjur mriksa cara pangguna bisa digunakake ing konteks tartamtu, sing mbutuhake rong pitakon SQL, mula apik banget yen ora ngganggu analis kasebut. Yen sampeyan kudu nglebokake tombol kanthi analogi karo sing wis ana, lan sampeyan ngerti prinsip umum, sampeyan bisa nindakake tanpa nglibatake desainer, lan perusahaan bakal matur nuwun.

Total: sampeyan bisa nglampahi 100% wektu sinau skill kanggo watesan, utawa sampeyan bisa nglampahi wektu sing padha ing limang wilayah, tingkat munggah 80% ing saben. Sawise math naif iki, kita bisa gain kaping papat minangka akeh skills ing wektu sing padha. Iki minangka exaggeration, nanging nggambarake gagasan kasebut.

Katrampilan sing gegandhengan bisa dilatih ora kanthi 80%, nanging kanthi 30-50%. Sawise ngentekake 10-20 jam, sampeyan bakal luwih apik ing wilayah sing gegandhengan, entuk akeh pangerten babagan proses sing kedadeyan lan dadi luwih otonom.

Ing ekosistem IT saiki, luwih becik duwe katrampilan sabisa-bisa lan ora dadi ahli ing samubarang. Amarga, sepisanan, kabeh skills iki cepet fade, utamané nalika nerangake program, lan liya, amarga 99% saka wektu kita nggunakake ora mung dhasar, nanging mesthi ora skills paling canggih, lan iki cukup malah ing coding, malah ing perusahaan kelangan.

Lan pungkasane, latihan minangka investasi, lan diversifikasi penting ing investasi.

Apa kanggo mulang

Dadi apa sing kudu diwulang lan kepiye? Pangembang khas ing perusahaan sing kuat kanthi rutin nggunakake:

  • komunikasi
  • organisasi dhewe
  • ngrancang
  • desain (biasane kode)
  • lan kadhangkala manajemen, kepemimpinan, analisis data, nulis, rekrutmen, bimbingan lan akeh katrampilan liyane

Lan sacoro prakteke ora ana katrampilan kasebut intersect ing sembarang cara karo kode dhewe. Dheweke kudu diwulang lan ditingkatake kanthi kapisah, lan yen ora rampung, dheweke bakal tetep ing tingkat sing kurang, sing ora ngidini digunakake kanthi efektif.

Wilayah apa sing kudu dikembangake?

  1. Katrampilan alus yaiku kabeh sing ora ana gandhengane karo mencet tombol ing editor. Iki carane kita nulis pesen, carane kita nindakake ing rapat-rapat, carane kita komunikasi karo kolega. Iki kabeh katon jelas, nanging asring disepelekake.

  2. Sistem organisasi dhewe. Kanggo kula pribadi, iki wis dadi topik sing paling penting sajrone taun kepungkur. Antarane kabeh buruh IT kelangan aku ngerti, iki salah siji saka skills paling dikembangaké: padha super-diatur, padha tansah nindakake apa padha ngomong, padha ngerti persis apa sing bakal dilakoni sesuk, ing minggu, ing sasi. Sampeyan perlu kanggo mbangun sistem ing saubengé ing ngendi kabeh prakara lan kabeh pitakonan direkam, iki nemen nggampangake karya dhewe lan banget mbantu kanggo sesambungan karo wong liya. Aku rumangsa yen sajrone taun kepungkur, pangembangan ing arah iki saya luwih apik tinimbang nambah katrampilan teknis; Aku wiwit nindakake pakaryan sing luwih akeh saben unit wektu.

  3. Proaktif, mbukak-minded lan planning. Topik kasebut umum banget lan penting, ora unik kanggo IT, lan kabeh wong kudu ngembangake. Proactivity tegese ora ngenteni sinyal kanggo tumindak. Sampeyan minangka sumber acara, dudu reaksi marang dheweke. Open-mindedness yaiku kemampuan kanggo ngobati informasi anyar kanthi objektif, kanggo ngevaluasi kahanan sing ora ana ing pandangan donya lan kabiasaan lawas. Perencanaan minangka visi sing jelas babagan carane tugas saiki ngrampungake masalah kanggo minggu, sasi, taun. Yen sampeyan ndeleng mangsa ngluwihi tugas tartamtu, iku luwih gampang kanggo nindakake apa sing perlu, lan ora wedi sawise wektu kanggo éling sing boroske. Katrampilan iki penting banget kanggo karir: sampeyan bisa entuk asil nganti pirang-pirang taun, nanging ing papan sing salah, lan pungkasane ilang kabeh bagasi sing akumulasi nalika dadi jelas yen sampeyan pindhah menyang arah sing salah.

  4. Kabeh wilayah sing gegandhengan karo tingkat dhasar. Saben uwong duwe wilayah tartamtu dhewe, nanging penting kanggo ngerti yen kanthi mbuwang 10-20 jam wektu kanggo level munggah sawetara skill "manca", sampeyan bisa nemokake akeh kesempatan anyar lan titik kontak ing karya saben dina, lan jam iki bisa uga. cukup nganti pungkasan karir.

Apa kanggo maca

Ana akeh buku babagan organisasi mandhiri; iki minangka industri kabeh ing ngendi sawetara wong lanang aneh nulis koleksi saran lan ngumpulake latihan. Ing wektu sing padha, ora jelas apa sing wis digayuh dhewe ing urip. Mulane, penting kanggo nyelehake saringan ing penulis, deleng sapa dheweke lan apa sing ana ing mburi. Pangembangan lan wawasanku paling akeh dipengaruhi dening papat buku, kabeh mau kanthi cara siji utawa liyane sing ana gandhengane karo nambah katrampilan sing kasebut ing ndhuwur.

Napa mung nganyarke coding sampeyan ora bakal nggawe sampeyan dadi pangembang sing luwih apik1. Dale Carnegie "Carane Menang Kanca lan Ngaruhi Wong". A buku kultus bab soft skills, yen sampeyan ora ngerti ngendi kanggo miwiti, milih iku pilihan win-win. Dibangun ing conto, gampang diwaca, ora mbutuhake akeh gaweyan kanggo mangerteni apa sing diwaca, lan katrampilan sing diduweni bisa langsung ditrapake. Sakabèhé, buku kasebut nyakup topik komunikasi karo wong.

Napa mung nganyarke coding sampeyan ora bakal nggawe sampeyan dadi pangembang sing luwih apik2. Stephen R. Covey "7 Habits of Highly Effective People". Campuran katrampilan sing beda-beda, saka proaktivitas nganti katrampilan alus, kanthi penekanan kanggo nggayuh sinergi nalika sampeyan kudu ngowahi tim cilik dadi pasukan gedhe. Iku uga gampang diwaca.

Napa mung nganyarke coding sampeyan ora bakal nggawe sampeyan dadi pangembang sing luwih apik3. Ray Dalio "Prinsip". Nuduhake tema open-mindedness lan proactivity, adhedhasar sajarah perusahaan penulis dibangun, kang ngatur kanggo 40 taun. Akeh conto urip sing angel dimenangake nuduhake kepiye prejudis lan gumantung saka wong, lan kepiye cara nyingkirake.

Napa mung nganyarke coding sampeyan ora bakal nggawe sampeyan dadi pangembang sing luwih apik4. David Allen, "Nggawe Kabeh". Wacan wajib kanggo sinau organisasi dhewe. Ora gampang diwaca, nanging nyedhiyakake alat lengkap kanggo ngatur urip lan urusan, mriksa kabeh aspek kanthi rinci, lan mbantu sampeyan mutusake apa sing sampeyan butuhake. Kanthi bantuan dheweke, aku nggawe sistem dhewe sing ngidini aku nindakake perkara sing paling penting tanpa dilalekake liyane.

Sampeyan kudu ngerti manawa mung maca ora cukup. Sampeyan bisa ngulu paling sethithik buku seminggu, nanging efek kasebut bakal tahan nganti pirang-pirang dina, banjur kabeh bakal bali menyang papan kasebut. Buku kudu digunakake minangka sumber pitutur sing langsung diuji ing praktik. Yen sampeyan ora nindakake iki, kabeh sing bakal diwenehake mung sawetara memperluas wawasan sampeyan.

Source: www.habr.com

Add a comment