Kuidas noorema arendajana silma paista, et saada oma esimene arendaja töökoht?

Ei saa eitada, et arendaja ootused on tänapäeval palju kõrgemad, kui see oli 10 aastat tagasi. Seal on palju erinevaid keeli, erinevad andmebaasid, erinevad raamistikud, pidev integreerimine või edastamine, vilgas metoodika ja nii edasi. Nii et kui soovite saada arendajaks, kuidas eristuda rahvahulgast, et saada oma esimene noorem arendaja roll hämmastavas ettevõttes?

Selles blogipostituses räägin oma kogemustest, mis panid mind silma paista, et saada nädal pärast Makers Academy lõpetamist 3 tööpakkumist. Kui õpetate ise koodistamist ja ei soovi alglaadimisest läbi astuda (kuna olgem ausad, võib see olla üsna kallis), arvan, et see postitus võib olla teile väga kasulik, kuna mõnikord ei tea te, mida oodatakse sinult su esimeses rollis ja selle tulemusel ei tea sa kust alustada. Enne täieliku avalikustamise alustamist kardan, et mõned siinkohal toodud nõuanded (nagu ainult väike osa) kehtivad taustprogrammide arendamise kohta, kuid usun, et leiate sellest ajaveebi postitusest ikkagi kasu, isegi kui olete huvitatud kasutajaliidese arendamisest.

Olgu, nii alustame!

Kas on siis nimekiri, mida ma peaksin teadma, ütlete?
Ma loetlen siin kõik asjad, mis peaksid teie arvates enne oma esimese rolli kandideerimist teile meeldima ja kui olete need juba naelutanud, siis ärge viitsige seda blogi postitust lugeda ja saadame oma CV sellesse ettevõttesse, kus soovite töötada - nagu kohe KOHE!

Järgnevalt tutvun üksikasjalikumalt kõigi selle loendi üksustega. Nii see siin on:
- Versioonikontroll, kasutades tõhusalt Githubit (või sarnaseid platvorme).
- Rakenduse loomisega vähemalt ühes keeles (nt Ruby või Javascript) kindel - ärge proovige kõike õppida, ühte asja õppida ja seda hästi õppida.
- Rakenduste loomine, kasutades TDD-d (testipõhine arendus).
- omaks raamid.
- Agiilsete metoodikate mõistmine.
- Teadmine, kuidas otsida Internetist teavet ja millal abi küsida.
- Teil puudub täielik usaldus iga nähtava raamatukogu või koodialuse suhtes.
- Ehitage asju, näiteks kogu aeg. Veebikursustel ja raamatutest on nii palju õppida. Eksperiment mõistmiseks.

1- Versiooni juhtimine

Siin esitatud idee on põhimõtteliselt see, et teie ja teie meeskond saaksid oma koodialusega töötada ilma rakenduse hetkeseisu muutmata. Põhimõtteliselt on teil kapten, mis on tõenäoliselt tootmises, ja siis saate harukontorist hargneda ja oma muudatused rakendada ning seejärel uuesti ühendada, kui kõik on teie koodiga rahul. Arvan, et GitHubi juhend on tõenäoliselt hea koht alustamiseks, kui te pole kunagi varem versioonikontrolli kasutanud: https://guides.github.com/ ja ka git codecademy kursust: https://www.codecademy.com/learn/learn- git

Kui olete GitHubiga tuttav, siis uurige, kuidas seda (või muud sarnast platvormi) võimalikult tõhusalt kasutada, näiteks kuidas soovi korral oma sidumisteateid muuta, kohustusi kustutada või kui märkate viga seda polnud seal varem, kuidas uurida, mis võis teie koodi potentsiaalselt rikkuda jne.

2- Rakenduse ülesehitamise vähemalt ühes keeles kindel olemine
Kui alustasin üleminekut arendajale, soovisin õppida kõike. Tahtsin omandada Ruby, Javascripti, Elixiri, Reakti, Sõlme ning lugesin raamatuid ja vaatasin veebikursusi nagu hull inimene. Ja siis saabus punkt, kus ma teadsin natuke kõike, kuid ei olnud kindel, et ehitan rakendust mis tahes õpitud raamistikus või keeles nullist üles. Niisiis otsustasin teha ühe asja ja teha seda hästi. Valisin kapteniks Ruby ja saan sellest hästi aru. Ma lugesin selliseid raamatuid nagu Sandi Metzi praktiline objektorienteeritud disain rubiinides, David A. Blacki hästi põhjendatud rubüstik ja Eloquent Ruby (Addison-Wesley Professional Ruby Series). Samuti registreerusin Thoughtboti suursugusele veebikursusele Ruby on Rails (raamistik Ruby) ja Ruby, mis parandas minu teadmisi Ruby kohta ja Rails-rakenduste arendamisel TDD abil. Alles aasta pärast liigun nüüd edasi teiste keelte, näiteks Pythoni avastamisele. Nii et ma arvan, et minu soovitus oleks alustada keelt, mis on andestav ja millel on ka hea toetav kogukond, näiteks Ruby. Ruby abil saate aru, kuidas objektorienteeritud keeled toimivad, ja siis võite liikuda natuke keerukama keele juurde, näiteks JavaScripti. Ja muidugi, kui soovite alustada mõne teise keelega, siis kindlasti otsige seda - peamine osa sellest jaotisest peaks olema ühe asja õppimine ja selle õppimine.

3 - Rakenduste loomine TDD abil
Kui olete lugenud minu eelmisi ajaveebi postitusi, siis märkate ilmselt, et olen TDD-st kinnisideeks. Mis on TDD ja mis muudab selle maagiliseks ning miks peate töökoha saamiseks seda teadma?

TDD on testipõhine arendus ja nagu nimigi ütleb, kirjutate testi soovitud koodi jaoks, siis näete, et teie test ebaõnnestub, kirjutate koodi ja näete oma testi läbimist. Seal on paar põhjust, miks see on super kasulik, kui alustate alles arendajana:

- Aitab teie koodi kujundamisel. Mõnikord, kui hakkate katseid kirjutama, kuidas oma rakendust algselt kavandasite, saate aru, et see ei pruugi olla parim viis oma kujunduse muutmiseks.
- Aitab puhta ja taaskinnitatava koodi kirjutamist. Teie kood on algusest peale testitav ja kui proovite sektsioone vähehaaval testida, siis ehitate oma rakenduse hallatavateks tükkideks, mitte massiivseks tükiks ühe korraga. Samuti saate oma koodi ümber teha, ilma et peaksite muretsema oma rakenduse rikkumise pärast.

Kui kasutate Ruby, siis eelmises jaotises mainitud Thoughboti kursus peaks aitama teil TDD-ga alustada :) Muidu, kui otsite TDD-d teile huvipakkuvas keeles, olen kindel, et leiate palju ressursse.

See on oluline, et saada oma jalg esimesest tööst läbi ukse, sest TDD on tehnikavaldkonnas laialt aktsepteeritud tava. Seda ei ole lihtne omandada, nii et varakult alustades ja mõistes, miks see hea on ning kuidas see aitab teil rakendust arendada, on teie eelis.

4 - Võtke omaks raamid
Kui alustate rakenduste loomist alles õpitavas keeles, võib olla üsna keeruline välja mõelda, kuidas ühendada punkte funktsionaalseks rakenduseks. Ja sisse tuleb raamid!

Raamvormid, nagu Ruby on Rails (Ruby), Django (Python), Meteor (Javascript), aitavad arendajatel oma rakendusi kiiremini üles ehitada, kuna nad ei pea seadistamise ja konfiguratsioonidega tegelema. Mida see juuniori jaoks tähendab? See tähendab, et te ei pea kulutama vanuseid, et proovida välja mõelda, kuidas oma serverit või marsruute või andmebaasi seadistada. Kõik need raamid aitavad teid selles ja aitavad teil kohe tööle asuda, nii et saate keskenduda asjade ehitamisele! Kui olete piisavalt rakendusi loonud, siis saate aru, miks raamistikud on loodud sellisena, nagu nad on, ja võib-olla liikuda oma rakenduste ehitamisse ilma raamistike abita :)

5- Agiilsete metoodikate mõistmine
Mis on see agar, millest ma pidevalt räägin? Sõnastiku tähendus on suuteline midagi kiiresti ja selgelt tegema. Mis on agar tarkvaraarendus? Tõenäoliselt arvasite ära; rakenduste kiire arendamine selge tagasiside abil. Enne agiilse arenduse kasutuselevõttu olid ettevõtted nn juga, mis ehitab rakendust kuni selle täiuslikkuseni, laseb selle maailmale välja ja võib-olla mõistavad, et keegi ei taha seda kasutada. Agile aitab sellest probleemist üle saada ja rajab oma teooria MVP-le (minimaalne elujõuline toode). Ehitate rakenduse võimalikult lihtsaks, vabastate selle maailmale, saate tagasisidet ja parandate seda või muudate seda. Nii et te ei kuluta kõiki oma ressursse ja aega rakendusele, mida inimesed ei vaja ega soovi.

saidil http://alphachglobal.com/agile_development.html

Tehnoloogiliste meeskondade jaoks on välja töötatud mitu agiilset metoodikat, mis aitaksid paindliku tarkvara arendamisel. Ma ei hakka selle teemaga lähemalt tutvuma, kuid siin on hea lugeda mõnda metoodikat ja Agile kohta: http://agilemethodology.org/

6- Teadmine, kuidas otsida Internetist ja millal abi küsida
Kui ma programmeerimisega esimest korda alustasin, soovisin lahendada kõik väljakutsed, millega ise kokku puutusin. Pole vaja öelda, et see pole suurepärane. Saate tunnelinägemise ja motiveerimise. Kui seisate silmitsi probleemiga, mida ei saa lahendada, otsige Internetist lahendusi ja proovige seda endale maksimaalselt tund või kaks välja mõelda. Ja siis küsige kelleltki, kas see on sõber või postituse kaudu kuskil nagu Stack Overflow - abi. On üsna tõenäoline, et teil on kadunud midagi väikest nagu semikoolon. Muidugi võib see olla keerulisem, kuid ärge kartke abi küsida. Kõik läbivad samad väljakutsed ja tehnikakogukond armastab aidata.

Mainisin teadmist, kuidas Internetist otsida, kuidas see on asjakohane? Noh, see on omamoodi oluline. Kui te ei esita õigeid küsimusi, ei saa te õigeid vastuseid. Teadmine, mida küsida, tuleb tavaliselt hoonerakendustega. Mida rohkem ehitate ja mida rohkem aru saate, seda paremaks muutute Internetis lahenduste otsimisel. See on teie potentsiaalse tööandja jaoks üsna oluline. Nad ei taha palgata kedagi, kes vajaks kogu aeg lapse istumist ja lusikaga sööta. Muidugi aitavad need teid ummikusse jäädes, kuid peate protsessi hõlbustamiseks näitama üles initsiatiivi ja selgitama, mida olete varem proovinud ja mida otsisite. Otsige lahendusi enesekindlalt.

7- Teil puudub täielik usaldus iga nähtava raamatukogu või koodialuse suhtes
Midagi, mida alles õppima hakkate, usaldate tavaliselt kõiki ressursse, mida kasutate. No ei peaks. Me kõik oleme inimesed ja keegi pole täiuslik. Olen kohanud palju raamatukogusid või rakendusi, mille kirjutamine pole nii hea kui võimalik, ja mõistsin peagi, et kõige parem on lugeda, uurida ja katsetada, et leida head ja puhast koodi. Miks see on oluline? Te ei soovi usaldada kolmandate osapoolte ettevõtet, millel on 500 sõltuvust, või kirjutada 100 real, kui saate sama teha 10-s tõhusamalt. Mõelge, kuidas see kood mõjutab teie rakendust - see võib seda aeglustada, see võib võib selle puruneda, see ei pruugi olla ohutu. Ärge usaldage iga koodilõiku või teeki, mida seal näete. Koodi Internetis hankimine või raamatukogu loomine ei maksa midagi.

8- Ehitage asju kogu aeg
Nagu ma mainisin, on raamatute lugemise ja veebikursuste läbimise või isegi töötubades osalemise kaudu nii palju õppida. Peate oma käed määrduma. Ärge kartke ehitada rakendusi, mida keegi ei kasuta. Nende abil saate teada, kuidas asjad töötavad. Isegi kui te ei lõpe oma taotlusega lõpuks, mõelge lihtsalt õpitule, mida te varem ei teadnud. Iga väike teadmine, mida eksperimenteerimisel omandate, on tohutu kasu teie esimese arendaja rolli saavutamisel.

Viimane märkus
Tahtsin selle ajaveebi postituse lõpule viia hämmastava juhendaja Stephen Parisi suurepäraste nõuannetega:

„Ärge muretsege, kui kogenud inimesed rakenduse loovad. Keskenduge sellele, kuidas te selle üles ehitaksite, ja siis saate tagasisidet. Tarbi vähem ja tooda rohkem. ”

Täname, et leidsite aega lugemiseks! Kui arvate, et see oli teile kasulik, siis palun jagage seda ajaveebi postitust inimestega, kellest võib kasu olla :)