Nima uchun faqat kodlashni yangilash sizni yaxshi ishlab chiquvchiga aylantirmaydi

Nima uchun faqat kodlashni yangilash sizni yaxshi ishlab chiquvchiga aylantirmaydi

Texnik direktor Skyeng Kirill Rogovoy (flashhhh) konferentsiyalarda taqdimot qiladi, unda u har bir yaxshi dasturchi eng yaxshi bo'lish uchun qanday ko'nikmalarni rivojlantirishi kerakligi haqida gapiradi. Men undan bu voqeani Xabra o'quvchilari bilan bo'lishishni so'radim, so'zni Kirillga beraman.

Yaxshi dasturchi haqidagi afsona shundan iboratki, u:

  1. Toza kod yozadi
  2. Ko'p texnologiyalarni biladi
  3. Kodlash vazifalari tezroq
  4. Bir qator algoritmlar va dizayn naqshlarini biladi
  5. Toza kod yordamida har qanday kodni qayta tiklashi mumkin
  6. Dasturlashdan tashqari vazifalarga vaqt sarflamaydi
  7. Sevimli texnologiyangizning 100% ustasi

HR ideal nomzodlarni shunday ko'radi va shunga mos ravishda bo'sh ish o'rinlari ham shunday ko'rinadi.

Ammo mening tajribam shuni ko'rsatadiki, bu juda to'g'ri emas.

Birinchidan, ikkita muhim rad etish:
1) mening tajribam mahsulot guruhlari, ya'ni. autsorsing emas, balki o'z mahsulotiga ega kompaniyalar; autsorsingda hamma narsa juda boshqacha bo'lishi mumkin;
2) agar siz yosh bo'lsangiz, unda barcha maslahatlar qo'llanilmaydi va men sizning o'rningizda bo'lsam, hozircha dasturlashga e'tibor qaratgan bo'lardim.

Yaxshi ishlab chiquvchi: haqiqat

1: O'rtacha koddan yaxshiroq

Yaxshi ishlab chiquvchi ajoyib arxitekturani qanday yaratishni, ajoyib kod yozishni va juda ko'p xato qilmaslikni biladi; Umuman olganda, u o'rtacha ko'rsatkichdan yaxshiroq ishlaydi, lekin u mutaxassislarning eng yaxshi 1 foiziga kirmaydi. Men biladigan eng zo'r dasturchilarning aksariyati u qadar zo'r koderlar emas: ular o'z ishini yaxshi biladilar, lekin ular hech qanday g'ayrioddiy narsani qila olmaydi.

2: Muammolarni yaratishdan ko'ra ularni hal qiladi

Tasavvur qilaylik, loyihaga tashqi xizmatni kiritishimiz kerak. Biz texnik xususiyatlarni olamiz, hujjatlarni ko'rib chiqamiz, u erda biror narsa eskirganligini ko'ramiz, biz qo'shimcha parametrlarni o'tkazishimiz kerakligini tushunamiz, ba'zi tuzatishlar kiritamiz, barchasini qandaydir tarzda amalga oshirishga harakat qilamiz va qandaydir egri usulni to'g'ri ishlashiga harakat qilamiz, nihoyat, bir juftdan keyin kunlar biz bunday davom eta olmasligimizni tushunamiz. Bunday vaziyatda ishlab chiquvchining standart xatti-harakati biznesga qaytish va shunday deyishdir: “Men buni qildim, buni qildim, bu ishlamayapti va bu umuman ishlamaydi, shuning uchun buni o'zingiz hal qiling. ” Biznesda muammo bor: siz nima bo'lganini o'rganishingiz, kimdir bilan muloqot qilishingiz va uni qandaydir tarzda hal qilishga harakat qilishingiz kerak. Buzilgan telefon boshlanadi: "Siz unga ayting, men unga SMS yozaman, ular nima javob berishdi."

Bunday vaziyatga duch kelgan yaxshi ishlab chiquvchi o'zi aloqalarni topadi, u bilan telefonda bog'lanadi, muammoni muhokama qiladi va agar hech narsa ishlamasa, u kerakli odamlarni to'playdi, hamma narsani tushuntiradi va muqobil variantlarni taklif qiladi (ehtimol, boshqasi ham bor). yaxshiroq qo'llab-quvvatlash bilan tashqi xizmat). Bunday ishlab chiquvchi biznes muammosini ko'radi va uni hal qiladi. Uning vazifasi biror narsaga duch kelganida emas, balki biznes muammosini hal qilganda yopiladi.

3: Qo'ltiq tayoqchalarini yozishni nazarda tutsa ham, maksimal natijaga erishish uchun minimal kuch sarflashga harakat qiladi

Mahsulot ishlab chiqaruvchi kompaniyalarda dasturiy ta'minotni ishlab chiqish deyarli har doim eng katta xarajat hisoblanadi: ishlab chiquvchilar qimmat. Va yaxshi ishlab chiquvchi biznes minimal sarflab, maksimal miqdorda pul olishni xohlashini tushunadi. Unga yordam berish uchun yaxshi ishlab chiquvchi ish beruvchiga maksimal foyda olish uchun qimmat vaqtini minimal miqdorda sarflashni xohlaydi.

Bu erda ikkita haddan tashqari narsa bor. Ulardan biri shundaki, siz odatda barcha muammolarni arxitektura bilan bezovta qilmasdan, qayta ishlashsiz va hokazolarni qo'ltiq bilan hal qilishingiz mumkin. Bu odatda qanday tugashini hammamiz bilamiz: hech narsa ishlamaydi, biz loyihani noldan qayta yozamiz. Boshqasi, odam har bir tugma uchun ideal arxitekturani o'ylab topishga harakat qilsa, vazifaga bir soat va to'rt soatni refaktoringga sarflaydi. Bunday ishning natijasi ajoyib ko'rinadi, ammo muammo shundaki, biznes tomonida tugmani bajarish uchun o'n soat vaqt ketadi, ham birinchi, ham ikkinchi holatda, oddiygina turli sabablarga ko'ra.

Yaxshi ishlab chiquvchi bu haddan tashqari muvozanatni qanday saqlashni biladi. U kontekstni tushunadi va maqbul qaror qabul qiladi: bu muammoda men qo'ltiq tayoqchasini kesib olaman, chunki bu har olti oyda bir marta tegib turadigan koddir. Ammo bu erda men bezovta qilaman va hamma narsani iloji boricha to'g'ri bajaraman, chunki hali ishlab chiqilmagan yuzta yangi xususiyatlar mening muvaffaqiyatimga bog'liq bo'ladi.

4. O'zining biznes boshqaruv tizimiga ega va undagi har qanday murakkablikdagi loyihalarda ishlashga qodir.

Prinsiplar ustida ishlash Ishlar bajarildi - barcha vazifalaringizni qandaydir matn tizimida yozganingizda, hech qanday kelishuvlarni unutmang, hammani itaring, hamma joyda o'z vaqtida ko'ring, nima muhim va nima muhim emasligini biling, siz hech qachon vazifalarni yo'qotmaysiz. Bunday kishilarning umumiy xususiyati shundaki, siz ular bilan biror narsada kelishsangiz, ular unutib qo'yishidan hech qachon tashvishlanmaysiz; va siz ham bilasizki, ular hamma narsani yozadilar va keyin javoblari allaqachon muhokama qilingan minglab savol bermaydilar.

5. Har qanday shart va muqaddimalarga savol beradi va ularga aniqlik kiritadi

Bu erda ham ikkita haddan tashqari holat mavjud. Bir tomondan, siz barcha kirish ma'lumotlariga shubha bilan qarashingiz mumkin. Sizdan oldingi odamlar ba'zi echimlarni taklif qilishdi, lekin siz yaxshiroq qila olaman deb o'ylaysiz va sizdan oldin kelgan hamma narsani qayta muhokama qilishni boshlaysiz: dizayn, biznes echimlari, arxitektura va boshqalar. Bu ishlab chiquvchi va uning atrofidagilar uchun juda ko'p vaqtni behuda sarflaydi va kompaniya ichidagi ishonchga salbiy ta'sir qiladi: boshqa odamlar qaror qabul qilishni xohlamaydilar, chunki ular o'sha yigit qaytib kelishini va hamma narsani buzishini bilishadi. Yana bir ekstremal narsa shundaki, ishlab chiquvchi har qanday kirish, texnik shartlar va biznes istaklarini toshga o'yilgan narsa sifatida qabul qiladi va faqat hal qilib bo'lmaydigan muammoga duch kelganida, u umuman qilayotgan ishini qilyaptimi yoki yo'qmi haqida o'ylay boshlaydi. Yaxshi ishlab chiquvchi ham bu erda o'rta joyni topadi: u vazifani ishlab chiqishdan oldin, undan oldin yoki usiz qabul qilingan qarorlarni tushunishga harakat qiladi. Biznes nimani xohlaydi? Biz uning muammolarini hal qilyapmizmi? Mahsulot dizayneri yechim topdi, lekin men nima uchun yechim ishlayotganini tushunamanmi? Nima uchun jamoa rahbari ushbu o'ziga xos arxitekturani o'ylab topdi? Agar biror narsa aniq bo'lmasa, siz borib so'rashingiz kerak. Ushbu tushuntirish jarayonida yaxshi ishlab chiquvchi ilgari hech kimning xayoliga kelmagan muqobil yechimni ko'rishi mumkin.

6. Atrofingizdagi jarayonlar va odamlarni yaxshilaydi

Atrofimizda juda ko'p jarayonlar sodir bo'lmoqda - kundalik uchrashuvlar, uchrashuvlar, skrumlar, texnik sharhlar, kodlarni ko'rib chiqish va boshqalar. Yaxshi ishlab chiquvchi o'rnidan turib aytadi: qarang, biz har hafta yig'ilib, bir xil narsani muhokama qilamiz, nega buni tushunmayapman, biz bu soatni Contraga sarflashimiz mumkin. Yoki: ketma-ket uchinchi vazifa uchun men kodga kira olmayapman, hech narsa aniq emas, arxitektura teshiklar bilan to'la; Ehtimol, bizning ko'rib chiqish kodimiz oqsoqlangan va biz qayta tiklashimiz kerak, keling, har ikki haftada uchrashuvni qayta ko'rib chiqaylik. Yoki kodni ko'rib chiqish paytida, odam o'z hamkasblaridan biri ma'lum bir vositadan etarlicha samarali foydalanmayotganini ko'radi, ya'ni u keyinroq paydo bo'lishi va maslahat berishi kerak. Yaxshi ishlab chiquvchi bunday instinktga ega; u bunday narsalarni avtomatik ravishda qiladi.

7. Boshqalarni boshqarishda zo'r, garchi menejer bo'lmasa ham

Bu ko'nikma "muammo yaratishdan ko'ra hal qilish" mavzusiga juda mos keladi. Ko'pincha, biz murojaat qilgan vakansiya matnida menejment haqida hech narsa yozilmagan, ammo keyin sizning ixtiyoringizda bo'lmagan muammoga duch kelganingizda, siz boshqalarni u yoki bu tarzda boshqarishingiz, ulardan biror narsaga erishishingiz kerak, agar siz unutdim - surish, ular hamma narsani tushunishlariga ishonch hosil qiling. Yaxshi ishlab chiquvchi kimni nima qiziqtirayotganini biladi, bu odamlar bilan uchrashuvga qo'ng'iroq qilishi, kelishuvlarni yozib qo'yishi, ularni kechiktirishi, to'g'ri kuni eslatishi, hamma narsa tayyor ekanligiga ishonch hosil qilishi mumkin, hatto u shaxsan javobgar bo'lmasa ham. bu vazifa, lekin uning natijasi uning bajarilishiga bog'liq.

8. O'z bilimini dogma sifatida qabul qilmaydi, doimo tanqidga ochiq

Har bir inson avvalgi ishidagi hamkasbini eslashi mumkin, u o'z texnologiyasida murosaga kela olmaydi va hamma noto'g'ri mutatsiyalar uchun do'zaxda yonadi, deb qichqiradi. Yaxshi ishlab chiquvchi 5, 10, 20 yil sohada ishlasa, bilimining yarmi chiriganini, qolgan yarmida bilganidan o‘n barobar ko‘p narsani bilmasligini tushunadi. Va har safar kimdir u bilan rozi bo'lmasa va muqobil taklif qilsa, bu uning egosiga hujum emas, balki biror narsani o'rganish imkoniyatidir. Bu uning atrofidagilarga qaraganda tezroq o'sishiga imkon beradi.

Keling, mening ideal ishlab chiquvchi haqidagi g'oyamni umume'tirof etilgan bilan taqqoslaylik:

Nima uchun faqat kodlashni yangilash sizni yaxshi ishlab chiquvchiga aylantirmaydi

Ushbu rasm yuqorida tavsiflangan nuqtalarning qanchasi kod bilan bog'liqligini va qanchasi emasligini ko'rsatadi. Mahsulot kompaniyasida rivojlanish dasturlashning faqat uchdan bir qismini tashkil etadi, qolgan 2/3 qismi kod bilan bog'liq emas. Va biz juda ko'p kod yozgan bo'lsak-da, bizning samaradorligimiz ko'p jihatdan ushbu "ahamiyatsiz" uchdan ikki qismga bog'liq.

Ixtisoslashuv, umumlashtirish va 80-20 qoidasi

Biror kishi ba'zi bir tor muammolarni hal qilishni o'rgansa, uzoq va qattiq o'rgansa, lekin keyin ularni oson va sodda hal qilsa, lekin tegishli sohalarda tajribaga ega bo'lmasa, bu mutaxassislikdir. Umumiylik - bu mashg'ulot vaqtining yarmi o'z vakolati sohasiga, qolgan yarmi esa tegishli sohalarga sarflanishi. Shunga ko'ra, birinchi holda, men bir narsani mukammal, qolganini esa yomon, ikkinchisida esa hamma narsani ko'proq yoki kamroq bajaraman.

80-20 qoidasi bizga natijaning 80% 20% harakatdan kelib chiqishini aytadi. Daromadning 80% mijozlarning 20%, foydaning 80% 20% xodimlar va hokazo. O'qitishda bu biz o'tkazgan vaqtning dastlabki 80 foizida bilimning 20 foizini olishimizni anglatadi.

Bir fikr bor: koderlar faqat kodlashi kerak, dizaynerlar faqat loyihalashtirishi kerak, tahlilchilar tahlil qilishlari kerak va menejerlar faqat boshqarishi kerak. Menimcha, bu fikr zaharli va juda yaxshi ishlamaydi. Bu hamma universal askar bo'lishi kerakligi haqida emas, bu resurslarni tejash haqida. Agar dasturchi menejment, dizayn va analitika haqida ozgina bo'lsada tushunsa, u boshqa odamlarni jalb qilmasdan ko'p muammolarni hal qila oladi. Agar siz biron bir xususiyatni yaratishingiz kerak bo'lsa va keyin foydalanuvchilarning ma'lum bir kontekstda u bilan qanday ishlashini tekshirishingiz kerak bo'lsa, bu ikkita SQL so'rovini talab qiladi, unda tahlilchini bu bilan chalg'itmaslik juda yaxshi. Agar siz mavjud tugmachalarga o'xshash tugmachani joylashtirishingiz kerak bo'lsa va siz umumiy tamoyillarni tushunsangiz, buni dizaynerni jalb qilmasdan qilishingiz mumkin va kompaniya buning uchun sizga rahmat aytadi.

Jami: siz vaqtingizning 100% ni chegaragacha mahorat o'rganishga sarflashingiz mumkin yoki bir vaqtning o'zida har birida 80% gacha bo'lgan beshta sohaga sarflashingiz mumkin. Ushbu sodda matematikadan so'ng, biz bir xil vaqt ichida to'rt barobar ko'proq ko'nikmalarga ega bo'lishimiz mumkin. Bu mubolag'a, lekin bu fikrni aks ettiradi.

Tegishli malakalarni 80% emas, balki 30-50% ga o'rgatish mumkin. 10-20 soat vaqt sarflaganingizdan so'ng, siz tegishli sohalarda sezilarli darajada yaxshilanasiz, ulardagi jarayonlar haqida ko'p tushunchaga ega bo'lasiz va ancha avtonom bo'lasiz.

Bugungi IT ekotizimida iloji boricha ko'proq ko'nikmalarga ega bo'lish va ularning hech birida mutaxassis bo'lmaslik yaxshiroqdir. Chunki, birinchidan, bu ko'nikmalarning barchasi, ayniqsa dasturlash haqida gap ketganda, tezda yo'qoladi, ikkinchidan, biz 99% vaqtning o'zida nafaqat asosiy, balki eng murakkab ko'nikmalardan foydalanamiz va bu hatto kodlashda ham etarli. ajoyib kompaniyalar.

Va nihoyat, ta'lim - bu sarmoyadir va investitsiyalarda diversifikatsiya muhim ahamiyatga ega.

Nimani o'rgatish kerak

Xo'sh, nimani va qanday qilib o'rgatish kerak? Kuchli kompaniyadagi odatiy dasturchi muntazam ravishda quyidagilardan foydalanadi:

  • hamkorlik
  • o'z-o'zini tashkil etish
  • rejalashtirish
  • dizayn (odatda kod)
  • va ba'zan menejment, etakchilik, ma'lumotlarni tahlil qilish, yozish, ishga olish, maslahat berish va boshqa ko'plab ko'nikmalar

Va bu ko'nikmalarning deyarli hech biri kodning o'zi bilan kesishmaydi. Ularni alohida o'rgatish va oshirish kerak, agar bu bajarilmasa, ular juda past darajada qoladi, bu esa ulardan samarali foydalanishga imkon bermaydi.

Qaysi sohalarda rivojlanishga arziydi?

  1. Yumshoq ko'nikmalar - bu muharrirdagi tugmalarni bosishga taalluqli bo'lmagan barcha narsalar. Biz xabarlarni shunday yozamiz, yig'ilishlarda o'zimizni qanday tutamiz, hamkasblar bilan qanday muloqot qilamiz. Bularning barchasi ochiq-oydin ko'rinadi, lekin ko'pincha ular kam baholanadi.

  2. O'z-o'zini tashkil etish tizimi. Shaxsan men uchun bu so'nggi bir yil ichida juda muhim mavzuga aylandi. Men biladigan barcha ajoyib IT xodimlari orasida bu eng rivojlangan ko'nikmalardan biri: ular juda tartibli, ular har doim aytganlarini bajaradilar, ertaga, bir hafta yoki bir oy ichida nima qilishlarini aniq bilishadi. O'zingizning atrofingizdagi barcha masalalar va barcha savollar yozib olinadigan tizimni yaratishingiz kerak; bu ishning o'zini sezilarli darajada osonlashtiradi va boshqa odamlar bilan muloqot qilishda katta yordam beradi. O'tgan yil davomida ushbu yo'nalishdagi rivojlanish mening texnik ko'nikmalarimni oshirishdan ko'ra ko'proq narsani yaxshilaganini his qilaman; men vaqt birligi uchun sezilarli darajada ko'proq ish qila boshladim.

  3. Proaktiv, ochiq fikrli va rejalashtirish. Mavzular juda umumiy va hayotiy ahamiyatga ega, faqat ITga xos emas va har kim ularni rivojlantirishi kerak. Proaktivlik, harakat qilish uchun signalni kutmaslikni anglatadi. Siz voqealar manbaisiz, ularga munosabat emas. Ochiq fikrlash - bu har qanday yangi ma'lumotga ob'ektiv munosabatda bo'lish, vaziyatni o'z dunyoqarashi va eski odatlaridan ajratilgan holda baholash qobiliyatidir. Rejalashtirish - bugungi vazifa hafta, oy, yil uchun muammoni qanday hal qilishini aniq tasavvur qilishdir. Agar siz kelajakni ma'lum bir vazifadan tashqarida ko'rsangiz, sizga kerak bo'lgan narsani qilish ancha osonlashadi va vaqt o'tgach, bu behuda ketganini tushunishdan qo'rqmang. Bu ko'nikma, ayniqsa, martaba uchun juda muhimdir: siz yillar davomida muvaffaqiyatli natijalarga erishishingiz mumkin, lekin noto'g'ri joyda va oxir-oqibat noto'g'ri yo'nalishda harakat qilayotganingiz aniq bo'lganda, barcha to'plangan yukni yo'qotishingiz mumkin.

  4. Asosiy darajaga tegishli barcha sohalar. Har bir insonning o'ziga xos sohalari bor, lekin shuni tushunish kerakki, 10-20 soat vaqtingizni qandaydir "xorijiy" mahoratni oshirishga sarflash orqali siz kundalik ishingizda ko'plab yangi imkoniyatlar va aloqa nuqtalarini kashf qilishingiz mumkin va bu soatlar bo'lishi mumkin. kareraning oxirigacha etarli.

Nima o'qish kerak

O'z-o'zini tashkil qilish haqida juda ko'p kitoblar mavjud; bu ba'zi g'alati yigitlar maslahatlar to'plamini yozadigan va treninglar to'playdigan butun sanoatdir. Shu bilan birga, ularning o'zlari hayotda nimaga erishganlari aniq emas. Shuning uchun mualliflarga filtr qo'yish, ularning kimligini va ularning orqasida nima borligini ko'rib chiqish muhimdir. Mening rivojlanishim va dunyoqarashimga eng ko'p to'rtta kitob ta'sir ko'rsatdi, ularning barchasi u yoki bu tarzda yuqorida tavsiflangan ko'nikmalarni yaxshilash bilan bog'liq.

Nima uchun faqat kodlashni yangilash sizni yaxshi ishlab chiquvchiga aylantirmaydi1. Deyl Karnegi "Qanday qilib do'stlar orttirish va odamlarga ta'sir qilish". Yumshoq ko'nikmalar haqida diniy kitob, agar siz qaerdan boshlashni bilmasangiz, uni tanlash g'alaba qozonish variantidir. U misollar asosida qurilgan, o'qish oson, o'qiganingizni tushunish uchun ko'p kuch talab etmaydi va olingan ko'nikmalar darhol qo'llanilishi mumkin. Umuman olganda, kitob odamlar bilan muloqot qilish mavzusini qamrab oladi.

Nima uchun faqat kodlashni yangilash sizni yaxshi ishlab chiquvchiga aylantirmaydi2. Stiven R. Kovi “Yuqori samarali odamlarning 7 odati”. Kichkina jamoani ulkan kuchga aylantirish kerak bo'lganda sinergiyaga erishishga urg'u berib, faollikdan yumshoq ko'nikmalargacha bo'lgan turli ko'nikmalar aralashmasi. O'qish ham oson.

Nima uchun faqat kodlashni yangilash sizni yaxshi ishlab chiquvchiga aylantirmaydi3. Rey Dalio "Prinsiplar". Muallif qurgan va u 40 yil davomida boshqargan kompaniya tarixiga asoslangan ochiq fikr va faollik mavzularini ochib beradi. Hayotdan olingan ko'plab misollar odamning qanchalik noto'g'ri va qaram bo'lishi va undan qanday qutulish mumkinligini ko'rsatadi.

Nima uchun faqat kodlashni yangilash sizni yaxshi ishlab chiquvchiga aylantirmaydi4. Devid Allen, “Ishlarni bajarish”. O'z-o'zini tashkil qilishni o'rganish uchun majburiy o'qish. Uni o'qish unchalik oson emas, lekin u hayot va ishlarni tartibga solish uchun keng qamrovli vositalar to'plamini taqdim etadi, barcha jihatlarni batafsil ko'rib chiqadi va sizga aniq nima kerakligini hal qilishga yordam beradi. Uning yordami bilan men o'z tizimimni yaratdim, bu menga har doim eng muhim narsalarni qolganini unutmasdan bajarishga imkon beradi.

Faqat o'qish etarli emasligini tushunishingiz kerak. Siz haftada kamida bir kitobni yutib yuborishingiz mumkin, ammo ta'sir bir necha kun davom etadi va keyin hamma narsa o'z joyiga qaytadi. Kitoblardan darhol amaliyotda sinovdan o'tadigan maslahat manbai sifatida foydalanish kerak. Agar buni qilmasangiz, ular sizning ufqlaringizni biroz kengaytirishdir.

Manba: www.habr.com

a Izoh qo'shish