Dasturchi, dasturchi va muhandis barga kirib boradi. Bufetchi nima uchun bir odamning oyog'i 3 ta bar kursisi bo'lganidan gangib qoldi.

Agar siz kod yozish bilan shug'ullanadigan odamlarning ish ta'riflarini ko'rib chiqqan bo'lsangiz, ko'pincha kompaniyalar bo'ylab post qanday yaratilganligi haqida yozishmalarning etishmasligini ko'rasiz. Ko'pincha siz kompaniya "dasturchi", "ishlab chiquvchi" yoki "muhandis"ni yollamoqchi bo'lgan ish unvonini ko'rasiz. Ko'pincha bunday emas: bu postlar HR bo'limida ko'pincha ishning hech qanday texnik jihatlari bilan shug'ullanmaydigan va har bir so'z nimani anglatishini o'ylamaydigan kishi tomonidan yozilgan.

Oxir-oqibat, bu kasb egalari uchun; Agar siz o'z pozitsiyangizda samarali ekanligingizni isbotlasangiz, HR tomonidan sizga berilgan yorliq juda kam ma'noga ega va siz bu so'zlarni bir-birining o'rnida ham ishlatishingiz mumkin. Ammo texnik mutaxassis sifatida, ehtimol bu so'zlar ostidagi ma'no dosiz uchun ma'noga egadir!

Xo'sh, bu uchta chambarchas bog'liq atamalar o'rtasidagi farq nima? Bu yillar davomida muhokama qilinayotgan mavzu. Har bir insonning o'zi ta'riflagan ta'rifida biroz nuance bor, ammo bu uchta rolning asosiy xatti-harakati hammaning nuqtai nazari bilan solishtirganda ancha barqaror edi. Men juda vizual o'rganuvchiman, shuning uchun farqlarni qanday izohlashimni tushuntirishning eng yaxshi yo'li bu diagramma orqali o'ylayman:

Siz "nega teskari uchburchak bor" deb hayron bo'layotgandirsiz. Bir muncha vaqt men nima uchun teskari uchburchak ko'rinishini ko'rayotganimga hayron bo'ldim. Ushbu diagrammaning ravshanligi dasturchi qatlamidan boshlab uchburchakning har bir qatlamini o'rganganimizda paydo bo'ladi.

Dasturchi

Siz dasturchining odatiy xatti-harakatlari oddiy yoki takrorlanadigan vazifani ko'rish va ularni avtomatlashtirishga urinish bilan bog'liqligini topasiz.

Dasturchilar odatda bitta tilda ishlaydi va oddiy vazifani bajaradigan dasturiy ta'minot yaratadi. Dasturiy ta'minotning o'zi odatda juda shishiradi va unga qarshi naqshlar bilan to'ldirilishi mumkin, ammo u baribir ishni bajaradi. Dasturchi odatda o'zi tanlagan til bilan kod yozishga qodir, lekin kodni yozishningeng samarali usulinito'liq tushunmaydi. Bundan tashqari, bir xil kod bazasiga bir nechta odam hissa qo'shadigan muhitda hamkorlik qilish uchun zarur bo'lgan ko'plab semantikalar etishmayotgan bo'lishi mumkin.

Biroq, bu dasturchilar "qobiliyatsiz" degani emas. Ba'zan sizga yuqori darajada kengaytiriladigan, o'ta kengaytiriladigan yechim kerak emas — sizga shunchaki ishlaydigan narsa kerak bo'lishi mumkin. Yechim 6 oydan keyin ishlamay qolishi mumkin, ammo 10–20 daqiqada ishlab chiqarish va unumdorlikni oshirish yoki 6 oy davomida tejalgan vaqt hali ham bebaho yutuqdir; va buni yaratishga qodir bo'lish ta'sirchan mahoratdir.

Dasturchilar tom ma'noda, aysbergning bir uchi (yoki teskari uchburchak) va "dasturlash" samarali mahorat bo'lib, o'rganish uchun hech qanday qizg'in tayyorgarlik yoki o'qishni talab qilmaydi. Agar siz texnik mutaxassis bo'lsangiz va o'zingizni kundalik vazifangizni avtomatlashtirish uchun oddiy skriptlarni yozishingiz mumkin deb hisoblasangiz, men sizni dasturlashni orqa cho'ntagingizda ko'nikmalardan biri sifatida qo'yishingizni tavsiya qilaman.

Dasturchi

Ishlab chiquvchi kod yozish uchun bir necha soat yoki kun sarflashi va nihoyat izolyatsiyadan chiqib, o'z ishlarini topshirishga tayyorlanishi odatiy holdir. Keyin ularga ba'zi o'zgarishlar kerakligi aytiladi ...

Dastur ishlab chiquvchilari odatdatez ishlaydi. Ular odatda oʻz stekini yaxshi bilishadi, oʻzlari tanlagan til(lar)ni yaxshi tushunishadi — ular dizayn va gʻoyalarni kod yordamida qanday amalga oshirishni bilishadi. Agar sizga dasturiy ta'minot kerak bo'lsa; Ishlab chiquvchi sizga natijalarni beradi va hatto dasturiy ta'minotning ishlash muddati davomida ushbu natijalarni takrorlashga tayyor bo'ladi.

SDLC: Dasturiy ta'minotni ishlab chiqish muddati

Dasturiy ta'minot ishlab chiquvchilari juda yaxlit va odatda yangi til xususiyatlari, ramkalar yoki ishlab chiqish vositalari kabi joriy tendentsiyalardan xabardor bo'lishadi. Xuddi dasturchi kabi, ular tez-tez tezroq rivojlanishi uchun asboblar va kutubxonalar orqali o'zlarining xatti-harakatlarini avtomatlashtirishga intilishadi.

Xo'sh, nima uchun siz ishlab chiquvchini olishingiz mumkin bo'lsa-da, muhandis bo'lishni xohlaysiz? Javob oddiy, ishlab chiquvchi doimiy texnik yo'nalishga muhtoj. Ko'pincha siz dasturiy ta'minotdan nima istayotganingizni aniq bo'lishingiz kerak. Misol uchun, siz butun dunyo bo'ylab odamlarga DVD sotish uchun veb-sayt yaratmoqchisiz, deylik. Ular sizga "muammo yo'q" deyishadi, reaksiya ilovasini yarating, ulang/ba'zi backend yarating va odamlarga o'zlari xohlagan DVD-ni bosish va uni ularga yuborish imkonini beradigan veb-saytni oling. Keyin siz telefonda unga qaraysiz va "nega bunday ko'rinadi?" Buning sababi, siz uni mobil qurilmalarga mos kelishini xohlayotganingizni aytmagansiz.

Ishlab chiquvchilar juda qobiliyatli; lekin siz rivojlanish jarayonining har bir bosqichida ular bilan birga bo'lmasangiz, ular tez-tez shu qadar tez rivojlanadiki, ular hech qanday chekka holatlar haqida o'ylamaydilar. Ularning kodi ko'pincha ko'p refaktoringni talab qiladi va agar ularning kodi juda uzoq vaqt davomida tekshirilmasa, sizda ko'plab texnik qarzlar qoladi. Siz ishlab chiquvchilar kodini ko'rib chiqishingiz mumkin va "lekin nima uchun bularning barchasini bu erga qo'ydingiz?" yoki "nega tuya idishidan foydalanishni boshladingiz, keyin kabob idishining o'rta funktsiyasiga o'tdingiz?". Ishlab chiquvchilar ko'pincha kelajak haqida qayg'urmaydilar va asosan hozirgi natijalarni berishga e'tibor berishadi.

Muhandis

Muammo bilan muhandisga kelganingizda, ular ba'zan sizga darhol javob bermaydilar. Ular sizga har bir strategiyaning ijobiy va salbiy tomonlari bilan 3-4 xil yechim taklif qiladilar va hatto tanlovlardan eng yaxshi qaror qabul qilishingizga yordam beradi.

Dasturiy ta'minot muhandisining ko'lami teskari uchburchakning to'liq qismidir. Ular dasturchi va dasturchi bilan bir xil qobiliyatlarga ega bo'lishi kutilmoqda; o'zlarining noyob qobiliyatlarini olib kelishlari kerak. Siz dasturiy ta'minot muhandisini dasturlash tillari bo'yicha mutlaq mutaxassis deb o'ylashingiz mumkin, lekin ko'pincha muhandis hujjatlarni ishlab chiquvchiga qaragandako'proq vaqt ko'rib chiqadi.

Dasturiy ta'minot muhandislari muammolardan qochmaydilar, ular ularni ajratadilar. Ular muammoni hal qilishadi, keyin kichik muammolar va boshqa kichik muammolarni yaratadilar, so'ngra ularning har birini o'zlarining boy tajribasi va kompyuter fanlari nazariyalari arsenalidan foydalangan holda hal qilishadi, masalan, "Ma'lumotlar tuzilmalari va algoritmlari" kabi juda jirkanch mavzu.

Dasturiy ta'minot muhandislari masshtablilik g'oyasini yaxshi ko'radilar. Agar siz biron bir dasturiy ta'minot muhandisining g'oyasini tinglasangiz va ulardan "lekin uni kengaytirish mumkinmi?" Deb so'rang. Siz ularni bir lahzaga to'xtatib turishini ko'rasiz, keyin sizga bir necha usullarni va qay darajada o'lchashni taklif qilasiz. Ular tilning funksiyalari va usullarini eslab qolishlari shart emas, chunki ular oʻzlari ishlayotgan maʼlumotlar strukturasini qanday oʻzgartirish kerakligini aniq bilishadi va bu usulni til hujjatlarida qanday topishni aniq bilishadi.

Dasturiy ta'minot muhandislari ko'pincha qattiq hamkorlik qiladilar va har qanday mumkin bo'lgan cheklovni aniqlash uchun ishlaydilar va hatto biron bir kod yozishdan oldin duch kelishi mumkin bo'lgan har qanday xatoni oldindan bilishga harakat qilishadi. Oldinga qadam tashlash uchun dasturiy ta'minot muhandislari o'zlari yozayotgan kodni sinab ko'radigan kod yozadilar. Bu ularga muammoni darhol ajratib olish va kodni xavfsizroq bosish imkonini beradi.

Dasturiy ta'minot muhandisining tizimni loyihalash qobiliyatlari qo'rqinchli darajada yaxshi bo'lishi mumkin. Ular ko'pincha biz bir-birimiz bilan odamlar sifatida muloqot qilishimiz mumkin bo'lgan oddiy tizimlarni (masalan, pacman o'yini) kompyuter tomonidan tushuniladigan tarjimaga tarjima qila oladilar. Agar bilmasangiz, kompyuterlar faqat ikkilik (01001000 01001001) bilan gaplasha oladi. Biz biroz tushunarli ko'rinadigan kod ikkilik kodga qanday o'zgartirilishini muhokama qilmoqchi emasmiz, chunki bu juda keng muhokama.

Men dasturiy ta'minot muhandislarining iste'dodlari va mas'uliyatlarining kengligi va chuqurligi haqida davom eta olaman, lekin men dasturiy ta'minot muhandisi bilan ishlashning salbiy tomoni haqida gapirishni afzal ko'raman, ya'ni: ular qimmat! Ular shunday bo'lishi kerak; Bular cheksiz kengaytiriladigan va kengaytiriladigan infratuzilmada g'oyalarni amalga oshirishi mumkin bo'lgan odamlardir. Dasturiy ta'minot muhandisi bilan ishlash, ayniqsa boshida, ancha sekin bo'lishi mumkin. Ish vaqtidan tashqari, dasturiy ta'minot muhandisi sizga shunday mustahkam texnik infratuzilmani yaratishi mumkin, u rivojlanish tezligini hatto aktsiyadorlarni ham hayratda qoldiradigan tezlikka oshirishi mumkin.

Dasturiy ta'minot muhandisi bo'lish qiyin, chunki ular tilni o'rganishdan ko'ra ko'proq. Har bir stsenariyda to'g'ri tushunilishi va qo'llanilishi kerak bo'lgan tushunchalar mavjud. Siz tizimlarni loyihalash bilan mustaqil shug'ullanishingiz va hamkorlikda hujjatlar va to'g'ridan-to'g'ri aloqa orqali o'z yechimlaringizni yaxshi muloqot qila olishingizni isbotlashingiz kerak. Dasturiy ta'minot muhandislari hamma narsani bilishmaydi, lekin hamma narsani o'rganishlari mumkinligini bilishadi.

Oʻrash

G'alati teskari uchburchakni chetga surib, umid qilamanki, men ushbu rollar orasidagi farqlar haqida o'z fikrlarimni samarali bayon qila oldim. Garchi HR sizni qobiliyatingizni aks ettirmaydigan ish kodiga ega bo'lsa-da, umid qilamanki, bu uchburchakdan qayerda ekanligingizni va qayerda bo'lishni xohlayotganingizni aniqlash uchun foydalanishingiz mumkin. Umid qilamanki, ushbu maqola "kod yozish" uchun kimnidir topmoqchi bo'lgan har bir kishiga yordam berish uchun yaxshi istiqbolni berishi mumkin. Uchburchakning har bir qatlami uchun, albatta, samarali foydalanish holatlari mavjud. Bundan tashqari, agar ular farqni bilmasa, shaxsiy kompyuterlarni uyaltirishni boshlashimiz shart emas.