Anong uri ng mga programmer ang naroon?
Ang bawat tao, sa isang antas o iba pa, ay maaaring isaalang-alang ang kanyang sarili na isang programmer, dahil pinaplano niya para sa kanyang sarili ang ilang mga sitwasyon sa buhay, ang kanyang sariling oras at pagkakasunud-sunod ng mga aksyon, na hindi sinasadya na inaayos ang kanyang mga aksyon sa ilang mga algorithm.
Ang mga propesyonal na programmer ay nakikibahagi sa paglilipat ng mga gawain sa buhay sa isang wikang naiintindihan ng computer, pag-coding sa mga ito sa iba't ibang wika at paglikha ng mga algorithm para sa mga aksyon sa computer, na ginagaya ang pag-iisip ng tao.
Anong uri ng mga programmer ng system ang naroroon?
Kasama sa mga programmer ng system ang mga espesyalista pagbuo at pag-coding ng mga bahagi ng operating system, device driver at software complex na direktang nauugnay sa kernel ng system. Nagbibigay ang mga ito ng interconnection ng lahat ng bahagi ng operating system upang gumana ito bilang isang solong organismo. Nasa balikat din ng mga espesyalista sa system ang lahat ng mga aksyon na may mga database: mula sa pag-unlad hanggang sa pangangasiwa.
Sa mga organisasyon, bilang panuntunan, pinagsasama ng isang programmer ng system ang mga posisyon ng isang administrator ng system at isang inhinyero ng software, na may mga kasanayan upang gumana sa iba't ibang uri ng kagamitan sa computer at microcontroller, kabilang ang mga robotics at CNC machine.
Sa system programming, mayroong ilang mahahalagang feature na nauugnay sa software development na nangangailangan ng mga sumusunod na kasanayan mula sa isang empleyado:
- kasanayan sa mga programming language na mababa (Assembler) at intermediate (C) na antas, kasama ang mga high-level na wika (C ++, Python, atbp.);
- pangangasiwa ng database (SQL, Oracle, atbp.);
- kaalaman sa hardware ng kagamitan sa computer;
- kaalaman sa mga microcontroller;
- kakayahan para sa regular na pag-aaral sa sarili.
Ang aktibidad ng system engineer ay hindi limitado sa pagtiyak ng coordinated na operasyon ng mga bahagi ng isang hiwalay na computer complex, ngunit umaabot din sa pagpapatupad ng walang patid na operasyon ng parehong panloob at panlabas na mga network at mga aparato ng network. Nangangailangan ito ng mahusay na kaalaman sa pagbuo ng mga network ng computer, mga protocol ng paglilipat ng data ng network at mga application ng server.
Ang diskarte sa mga system ay naiiba sa inilapat na programming sa isang bilang ng mga tampok na nakakaapekto sa mga aktibidad at pag-iisip ng programmer, na nangangailangan ng isang diin sa isa lamang sa mga espesyalisasyon na ito.
Mga inilapat na uri
Kung ang system programming ay nagsasangkot ng mga kasanayan sa inhinyero, na karaniwan para sa lalaki na bahagi ng populasyon, kung gayon ang inilapat na programming ay pangunahing nakatuon sa kasanayan sa mga programming language, kaalaman sa mga pinaka ginagamit na algorithm at ang paggamit ng isang bahagi ng disenyo, na pantay na angkop para sa mga batang babae. .
Ang application programming ay ang pagbuo at pag-debug ng mga software application na inangkop para sa isang simpleng gumagamit ng computer. Kabilang dito ang halos lahat ng mga aplikasyon para sa mga partikular na aktibidad (engineering at accounting programs, text, sound at video editor, atbp.).
Ang listahan ng mga functional na layunin ng inilapat na software ay sumasaklaw sa halos lahat ng uri ng aktibidad ng tao.
Ayon sa Russian classifier ng propesyonal na aktibidad ng specialty, ang programmer ay itinalaga ng code 25857.
Ang mga espesyalista na nauugnay sa inilapat na programming ay dapat magkaroon ng sumusunod na kaalaman at kasanayan:
- maging bihasa sa ilang mga mataas na antas ng wika (C ++, Python, Java, atbp.);
- makapag-compose ng mga algorithm gamit ang procedural at object-oriented (OOP) approach sa programming;
- magkaroon ng mga kasanayan sa paggamit ng iba't ibang mga IDE (Integrated Development Environment) - isang pinagsamang kapaligiran sa pag-unlad;
- makapagsagawa ng mataas na kalidad na pagsubok at pag-debug ng nilikhang software.
Mayroong mga sumusunod na antas ng kondisyon para sa pagtatasa ng propesyonalismo ng mga inilapat na programmer (sa pataas na pagkakasunud-sunod).
- Junior - ito ang paunang antas na may pinakamababang threshold ng kaalaman at kasanayan para sa pagpasok, ibig sabihin, ang pagkakaroon ng isang minimum na praktikal na karanasan at teoretikal na kaalaman. Sa yugtong ito, binibigyan ang programmer ng mga karaniwang gawain para sa pag-coding ng mga indibidwal na bahagi, at pinapayagan ang pagbuo (GUI) ng mga karaniwang interface ng gumagamit at mga web site gamit ang mga template. Ipinagkatiwala din sa kanya ang lahat ng gawaing nauugnay sa pagguhit, kabilang ang front-end na pag-unlad ng mga mapagkukunan ng web (ang hitsura ng mga site habang ipinapakita ang mga ito sa mga browser).
- Gitna - ang pinakamahalagang bahagi ng lahat ng programmer ay ang mga propesyonal sa kanilang larangan na may malawak na praktikal na karanasan at isang malaking teoretikal na base. Bilang isang patakaran, alam nila ang ilang mga programming language at nagagawa nilang manipulahin ang mga database nang may kahusayan, pati na rin matagumpay na i-debug ang kanilang bahagi ng nabuong code. Kasama sa ganitong uri ang mahuhusay na gumaganap na maaaring magsulat ng simple at nauunawaan na code upang magsagawa ng mga partikular na gawain. Ang gitnang antas ay nagbibigay din ng kasanayan sa back-end na pag-unlad (software development para sa server side ng isang web resource).
- Senior Ay ang pinakamataas na baitang ng programmed habitat food chain. Sa mga terminong propesyonal, pinagsasama ng ganitong uri ang kaalaman at kasanayan ng mga Middle-espesyalista at ang kakayahang makabuo ng mga ideya gamit ang isang hindi karaniwang diskarte. Ang mga espesyalista ng klase na ito ay nagagawang makipagtulungan sa isang malaking team bilang mga arkitekto at programmer sa parehong oras, na lumilikha ng isang solong software mula sa mga piraso ng mga code ng tagapagpatupad, pagsubok at pagbabago nito bago ilabas ang huling produkto. Sa katunayan, ang antas na ito ay nagsasangkot ng kahusayan sa ilang nauugnay na propesyon, tulad ng debugger at software architect.
Ayon sa all-Russian classifier, ang mga naka-embed na programa ng application ay itinalaga ang code 0, at ang system code - 02.
Mga tester at teknikal na suporta
Kinokontrol ng isang tester, o software testing engineer, ang kalidad ng software na ginagawa. Kasama ng paghahanap ng mga error, sinusubaybayan nito ang bilis at kalidad ng pagpapatupad ng code. Kapag may nakita itong error, inaayos ito at ibabalik ang data sa mga developer para ayusin ito.
Upang magtrabaho bilang isang tester, kailangan mo ng kaunting mga kasanayan at kaalaman sa IT sphere, kaya ang propesyon na ito ay itinuturing na isa sa mga paunang pumasok sa kapaligiran ng pagbuo ng software.
Mga aktibidad ng isang karampatang tester makabuluhang nakakatipid ng mga mapagkukunang pinansyal at oras ng kumpanya para sa pagbuo ng isang produkto ng software... Sinusubukan ang malambot sa iba't ibang paraan, hakbang-hakbang, at iniuulat ang mga bug sa mga developer. Ang tester ay dapat na may mahusay na kaalaman sa mga layunin at functionality ng produktong nilikha. Kasama ng functionality, dapat itong suriin ang kakayahang magamit mula sa pananaw ng user at payuhan ang mga developer nang naaayon.
Mayroong maraming mga uri ng pagpapatunay. Halimbawa, isang pagsubok upang makita kung natutugunan ng functionality ng isang produkto ang kinakalkula nitong pagkarga sa hardware at iba pang bahagi. Sinusuri din nito ang pag-andar ng mga database kapag pumapasok at sumisira ng data, pati na rin ang pagsuri para sa mga kondisyon ng seguridad - pagpapatunay ng gumagamit.
Sinusuri ng testing engineer ang pagsunod sa code sa lahat ng ipinahayag na teknikal na data at nakahanap ng mga bug - mga error.
Ang tester ay responsable din para sa paghahanda ng teknikal na dokumentasyon para sa nasubok na produkto. Gumagawa din sila ng mga ulat at bumuo ng mga script at mga tool sa pagsubok. Sinusubukan ng mga inhinyero na ito ang produkto ng software sa dalawang mode:
- alpha testing - produkto sa ilalim ng pagbuo;
- beta testing - ang unang bersyon ng tapos na produkto.
Gayundin, ang mga espesyalista ng profile na ito, bilang panuntunan, ay nagbibigay ng teknikal na suporta para sa mga mapagkukunan ng web, pagsagot sa mga tanong at pagbibigay ng mga rekomendasyon sa mga user online. Ang ipinahiwatig na mga responsibilidad ng isang tester ay binubuo ng mga sumusunod na yugto:
- pagsubok at pagsusuri;
- paghahanda ng mga teknikal na ulat at pag-debug.
Ang ganitong uri ng aktibidad ay nangangailangan ng pansin at talino sa paglikha at itinuturing na isang magandang springboard para sa isang karera sa larangan ng IT-technology.
Mga katulad na propesyon
Maraming uri ng programming: mula sa pagsusulat ng software para sa mga microcontroller at mobile application hanggang sa paglikha ng mga compiler at buong operating system. Alinsunod dito, mayroong ilang mga katulad na propesyon ng isang programmer: mula sa mga kalkulasyon sa matematika at pag-unlad ng mga algorithm hanggang sa paglikha ng arkitektura ng mga malalaking proyekto, ang mga code na kung saan ay pinagsama-sama sa iba't ibang mga wika ng programming. Ang paglikha ng isang software na produkto ay kinabibilangan ng: mga scriptwriter, algorithm, coder, designer, layout designer, debugger, translator at architect.
Ang mga espesyalista sa larangan kung saan nililikha ang produkto ay maaari ding kasangkot: mga mathematician, physicist, engineer, atbp.
Mahalaga sa yugto ng paghahanda at pagsubok ng proyekto upang maakit ang mga potensyal na gumagamit upang isaalang-alang ang kanilang mga rekomendasyon sa panahon ng proseso ng paglikha para sa kaginhawahan ng gumagamit. Sa yugto ng paghahanda, kinakailangan na makipag-ugnayan sa pagitan ng lumikha ng algorithm, ang taga-disenyo at ang potensyal na mamimili upang matukoy ang kinakailangang pag-andar at lumikha ng interface na madaling gamitin.
Sa proseso ng paglikha ng isang algorithm, ang pakikilahok ng developer nito, mga coder ng software module at isang arkitekto ng proyekto ay kinakailangan. At kapag bumubuo ng mga web application, ang paglahok ng isang taga-disenyo at HTML-coder ay kailangan lang.
Analyst ng negosyo sa katunayan, siya ang tagasalin ng mga kinakailangan at kagustuhan ng customer sa isang wikang naiintindihan ng mga developer.Ang customer, bilang panuntunan, ay hindi malinaw na nagtatakda ng gawain, hindi alam ang mga intricacies ng proseso ng programa, samakatuwid, ang analyst ng negosyo, na nakinig sa mga kagustuhan ng kliyente, ay lumilikha ng isang pormal na paglalarawan ng proyekto, na bumubuo nito sa anyo ng isang teknikal na gawain. Dapat pagsamahin ng gawaing ito ang lohika ng negosyo ng customer sa mga kakayahan ng tunay na pagpapatupad.
Ang lahat ng tinukoy na mga espesyalista ay dapat na hindi bababa sa mag-navigate sa mga nauugnay na propesyon upang sa panahon ng proseso ng pag-unlad ay walang hindi pagkakaunawaan sa pagitan ng mga espesyalista... Sa isip, ang taga-disenyo ay dapat magkaroon ng isang magaspang na kaalaman sa HTML layout at may ilang mga kasanayan sa Photoshop, at ang encoder ay dapat na gumana sa ilang mga programming language at master ang sining ng pag-debug. Hindi masamang bagay kapag ang mga programmer ay bihasa sa parehong mga pamamaraan sa matematika at sa sining ng arkitektura ng pag-assemble at pag-link ng mga software module na nakasulat sa iba't ibang mga programming language.
Ang karera ng programmer ay maaaring magkaroon ng hugis sa dalawang pangunahing direksyon: pagtaas ng propesyonalismo sa napiling bahagi ng pagbuo ng produkto at sa pagpapabuti ng pamamahala. Ang pinakamahusay na mga arkitekto, tagapamahala ng proyekto at mga direktor ng IT ay nagmula sa kapaligiran ng programmer, dahil alam nila mula sa loob ang buong "kusina" ng pagbuo ng software.