Kuinka erottua nuorempana kehittäjänä saadaksesi ensimmäinen kehittäjätyösi?

Ei voida kiistää, että kehittäjän odotukset ovat nykyään paljon korkeammat kuin mitä se oli 10 vuotta sitten. On olemassa paljon erilaisia ​​kieliä, erilaisia ​​tietokantoja, erilaisia ​​kehyksiä, jatkuva integrointi tai toimittaminen, ketterät metodologiat ja niin edelleen. Joten jos haluat tulla kehittäjäksi, miten erotut joukosta saadaksesi ensimmäisen Junior-kehittäjäroolisi uskomattomassa yrityksessä?

Tässä blogiviestissä aion puhua kokemuksistani, jotka saivat minut erottumaan väkijoukosta saamaan 3 työpaikkailmoitusta viikon kuluttua valmistumiseni Makers Akatemiasta. Jos opetat itse koodaamaan, etkä halua käydä käynnistyslevyn läpi (koska olkaamme rehellisiä, se voi olla melko kallis), mielestäni tämä viesti voi olla sinulle erittäin hyödyllinen, koska joskus et tiedä mitä odotetaan sinulta ensimmäisessä roolissasi, ja sen seurauksena et tiedä mistä aloittaa. Ennen kuin aloitamme täydellisen paljastumisen, pelkään, että jotkut täällä olevista neuvoista (kuten vain pieni kohta) koskevat taustankehitystä, mutta uskon, että löydät tästä blogiviestistä silti hyödyllisen, vaikka olet kiinnostunut käyttöliittymäkehityksestä.

Okei, niin aloitetaan!

Joten onko luettelo mitä minun pitäisi tietää, sanot?
Aion luetella kaikki ne asiat, jotka sinun mielestäsi pitäisi mielestäsi olla miellyttäviä ennen ensimmäistä rooliasi hakemista. Jos olet naulannut nämä, älä vaivaudu lukemaan tätä blogin postitusta ja lähetä CVsi sille yritykselle, jonka kanssa haluat työskennellä - kuten oikeassa NYT!

Tutkin yksityiskohtaisemmin jokaisesta tämän luettelon kohdasta myöhemmin. Joten tässä se on:
- Versioiden hallinta, erityisesti käyttämällä Githubia (tai vastaavia alustoja) tehokkaasti.
- Ole varma, että rakennat sovelluksen ainakin yhdellä kielellä (kuten Ruby tai Javascript) - älä yritä oppia kaikkea, oppia yksi asia ja oppia se hyvin.
- Luo sovelluksia käyttämällä TDD: tä (testiohjattu kehitys).
- omaksua puitteet.
- Ketterien metodologioiden ymmärtäminen.
- Tietäminen kuinka etsiä tietoa Internetistä ja milloin pyytää apua.
- Meillä ei ole täydellistä luottamusta jokaiseen näkemääsi kirjastoon tai kooditietokantaan.
- RAKENNA asioita, kuten koko ajan. Online-kursseilta ja kirjoista voi oppia niin paljon. Kokeile ymmärtää.

1- Version hallinta

Ideana on periaatteessa antaa sinun ja tiimisi pystyä työskentelemään koodikantasi muuttamatta sovelluksesi nykyistä tilaa. Peruskäsitteellä sinulla on master, joka on todennäköisesti tuotannossa, ja sitten voit harkita master-ohjelmaa, soveltaa muutoksiasi ja yhdistää sen takaisin, kun kaikki ovat tyytyväisiä koodisi kanssa. Mielestäni GitHub-opas on todennäköisesti hyvä aloituspaikka, jos et ole koskaan käyttänyt versiohallintaa aikaisemmin: https://guides.github.com/ ja myös git codecademy -kurssi: https://www.codecademy.com/learn/learn- git

Jos olet perehtynyt GitHubiin, katso sitten miten sitä (tai vastaavaa alustoa) voidaan käyttää mahdollisimman tehokkaasti, esimerkiksi kuinka muuttaa sitoutumisviestejä haluamallasi tavalla, poistaa toimeksiantoja tai huomata virhe sitä ei ollut aikaisemmin, kuinka tehdä tutkimus siitä, mikä sitoutuu rikkoi koodisi, ja niin edelleen.

2- Luottamus sovelluksen rakentamiseen ainakin yhdellä kielellä
Kun aloitin siirtymisen kehittäjäksi, halusin oppia kaiken. Halusin hallita Ruby, Javascript, Elixir, React, Node ja luin kirjoja ja katselin verkkokursseja kuin hullu ihminen. Ja tuli kohta, jolloin tiesin vähän kaikkea, mutta en luottanut rakentaa sovellusta tyhjästä missään oppimissani kehyksistä tai kielistä. Joten päätin tehdä yhden asian ja tehdä sen hyvin. Päätin hallita Rubyn ja ymmärtää sen hyvin. Luin kirjoja, kuten Sandi Metzin käytännöllinen esinekeskeinen suunnittelu Rubyssa, David A. Blackin hyvin perustettu Rubyist ja Eloquent Ruby (Addison-Wesley Professional Ruby -sarja). Olen myös ilmoittautunut Thoughtbot-verkossa hienoon verkkokurssiin Ruby on Rails (kehys Ruby) ja Ruby, joka paransi tietoni Rubystä ja Rails-sovellusten kehittämisestä TDD: tä käyttämällä. Vain vuoden kuluttua siirryn nyt tutkimaan muita kieliä, kuten Python. Joten ehdotan, että aloitan kielellä, joka on anteeksiantava ja jolla on myös hyvä tukeva yhteisö, kuten Ruby. Rubyn avulla voit ymmärtää objektiorientoituneiden kielten toimivuuden, ja sitten voit siirtyä hiukan monimutkaisempaan kieleen, kuten JavaScriptiin. Ja tietysti, jos haluat aloittaa toisella kielellä, käy ehdottomasti se - tärkein poistumistasi tästä osasta tulisi olla oppia yksi asia ja oppia se hyvin.

3- Luo sovelluksia TDD: llä
Jos olet lukenut aiempia blogin viestejä, huomaat todennäköisesti olevani pakkomielle TDD: stä. Joten mikä on TDD ja mikä tekee siitä maagisen, ja miksi sinun on tiedettävä tämä saadaksesi työtä?

TDD on testivetoista kehitystä, ja kuten nimestä voi päätellä, kirjoitat testin haluamallesi koodille. Näet testin epäonnistuneen, kirjoitat koodin ja näet testin läpäisemisen. On olemassa muutamia syitä, miksi tästä on erittäin hyötyä, kun vasta aloitat kehittäjänä:

- Auttaa koodisi suunnittelussa. Joskus kun aloitat kirjoittamalla kokeita siitä, kuinka suunnittelit sovelluksesi alun perin, voit ymmärtää, että se ei ehkä ole paras tapa siirtyä vaihtamaan suunnitteluasi.
- Auttaa puhtaan ja palautettavan koodin kirjoittamisessa. Koodisi on testattavissa alusta alkaen, ja kun testaat osia kerrallaan, rakennat sovelluksesi hallittavissa olevina palasina kuin massiivisena palasena kerralla. Voit myös reagoida koodisi murehtimatta hajottamalla sovellustasi.

Jos käytät Ruby, Thoughbot -kurssia, jonka mainitsin edellisessä osassa, pitäisi auttaa sinua pääsemään TDD: n aloittamiseen :) Muussa tapauksessa, jos etsit miten TDD: tä haluamallasi kielellä, olen varma, että löydät paljon resursseja.

Tämä on tärkeää saadaksesi jalka oven läpi ensimmäistä työtä varten, koska TDD on tekniikan yhteisössä laajalti hyväksytty käytäntö. Se ei ole helppo hallita, joten varhainen aloittaminen ja ymmärtäminen, miksi se on hyvää, ja kuinka se auttaa sinua kehittämään sovellustasi, on sinulle eduksi.

4 - Sisällytä kehykset
Kun aloitat sovellusten rakentamisen juuri oppimallasi kielellä, voi olla melko haastavaa selvittää, kuinka yhdistää pisteitä toimivaksi sovellukseksi. Ja sisään tulee kehys!

Kehykset, kuten Ruby on Rails (Ruby), Django (Python), Meteor (Javascript), auttavat kehittäjiä rakentamaan sovelluksensa nopeammin, koska heidän ei tarvitse käsitellä määrityksiä ja määrityksiä. Mitä tämä tarkoittaa nuoremmalle? Se tarkoittaa, että sinun ei tarvitse viettää ikäisiä yrittäessään selvittää, kuinka palvelin, reitit tai tietokanta määritetään. Kaikki nämä puitteet auttavat sinua tässä ja saavat sinut menemään heti, joten voit keskittyä rakentamaan asioita! Kun olet luonut tarpeeksi sovelluksia, niin alkaa ymmärtää miksi kehykset luodaan sellaisina kuin ne ovat ja siirryt mahdollisesti sovellusten rakentamiseen ilman kehysten apua :)

5- Ketterien metodologioiden ymmärtäminen
Mistä tässä ketterästä puhun? Sanakirjan merkitys kykenee tekemään jotain nopeasti ja selvästi. Mikä on ketterä ohjelmistokehitys? Luultavasti arvasit sen; sovellusten kehittäminen nopeasti selkeän palautteen avulla. Ennen ketterän kehityksen käyttöönottoa yritykset olivat ennen vesiputouksia, jotka rakentavat sovellusta, kunnes se on täydellinen, vapauttaa sen maailmalle ja mahdollisesti ymmärtää, ettei kukaan halua käyttää sitä. Ketterä auttaa tämän ongelman ratkaisemisessa ja rakentaa teoriansa MVP: hen (vähimmäiskelpoinen tuote). Voit rakentaa sovelluksen mahdollisimman yksinkertaiseksi, vapauttaa sen maailmalle, saada palautetta ja sitten parantaa tai muuttaa sitä. Joten et kuluta kaikkia resursseja ja aikaa sovellukseen, jota ihmiset eivät tarvitse tai halua.

kirjoittanut http://alphatechglobal.com/agile_development.html

Teknologiaryhmille on kehitetty useita ketteritä menetelmiä avuksi ketterän ohjelmistokehityksen kannalta. En aio mennä yksityiskohtiin tästä, mutta tässä on hyvä lukema joistakin menetelmistä ja mitä Agile on: http://agilemethodology.org/

6- Tietäminen kuinka etsiä Internetiä ja milloin kysyä apua
Kun aloitin ohjelmoinnin, halusin ratkaista kaikki haasteet, joita kohtasin. Ei tarvitse sanoa, että tämä ei ole hienoa. Saat tunnelinäköisyyden ja motivoitumisen. Kun kohtaat ongelman, jota et voi ratkaista, etsi ratkaisuja Internetistä, yritä selvittää se itse tunti tai kaksi. Ja kysy sitten joltakin, onko kyseessä ystävä vai postitse jonkin verran kuten Stack Overflow - esimerkiksi saadaksesi apua. On melko todennäköistä, että puuttuu jotain pientä, kuten puolipiste. Tietenkin se voi olla monimutkaisempaa, mutta älä pelkää kysyä apua. Kaikki käyvät läpi samat haasteet, ja tekninen yhteisö rakastaa auttamaan.

Mainitsin tietävän kuinka etsiä internetiä, niin miten tämä on merkityksellistä? No, se on eräänlainen tärkeä asia. Jos et kysy oikeita kysymyksiä, et saa oikeita vastauksia. Tiedäminen, mitä kysyä, tulee yleensä rakennussovellusten kanssa. Mitä enemmän rakennat ja mitä enemmän ymmärrät, sitä paremmaksi pääset etsimään ratkaisuja Internetistä. Tämä on melko tärkeää potentiaaliselle työnantajallesi. He eivät halua palkata henkilöä, joka tarvitsee istuakseen koko ajan, ja lusikka antaa vastauksia. Tietenkin ne auttavat sinua, kun olet jumissa, mutta sinun on osoitettava aloitekyky ja selitettävä, mitä olet yrittänyt aiemmin ja mitä olet etsinyt prosessin helpottamiseksi. Ole varma, että etsit ratkaisuja.

7- Ei täysin luottamusta jokaiselle näkemällesi kirjastolle tai koodikannalle
Mitä tahansa, jonka vasta aloitat oppimisen, luotat yleensä kaikkiin käyttämiisi resursseihin. No, sinun ei pitäisi. Olemme kaikki ihmisiä, eikä kukaan ole täydellinen. Olen törmännyt moniin kirjastoihin tai sovelluksiin, joita ei kirjoitettu niin hyvin kuin mahdollista, ja huomasin pian, että on parasta lukea, tutkia ja kokeilla enemmän löytääksesi mikä on hyvä ja puhdas koodi. Miksi tämä on tärkeää? Et halua luottaa kolmannen osapuolen yritykseen, jolla on 500 riippuvuutta, tai kirjoittaa 100 rivillä, kun pystyt tekemään saman asian tehokkaammin 10: ssä. Mieti, kuinka tämä koodi voi vaikuttaa sovellukseesi - se saattaa hidastaa sitä, se saattaa rikkoa sen, se ei ehkä ole turvallinen. Älä luota jokaiseen koodinpätkään tai kirjastoon, jonka näet siellä. Koodin hankkiminen Internetistä tai kirjaston luominen ei maksa mitään.

8- Rakenna asioita koko ajan
Kuten mainitsin, niin paljon voit oppia lukemalla kirjoja ja käymällä online-kursseilla tai jopa käymällä työpajoissa. Kädet on likaantunut. Älä pelkää rakentaa sovelluksia, joita kukaan ei käytä. Käytä näitä oppimaan kuinka asiat toimivat. Vaikka et lopu hakemuksesi loppuun, ajattele vain oppimiasi asioita, joita et tiennyt aiemmin. Jokainen pieni kokeilusta saatu tieto on massiivinen hyöty kohti ensimmäistä kehittäjäroolia.

Viimeinen huomautus
Halusin viimeistellä tämän blogin postituksen hienolla neuvolla hämmästyttävältä mentoriltani Stephen Bestilta:

“Älä ole huolissasi siitä, kuinka kokeneet ihmiset rakentavat sovelluksen. Keskity siihen, miten rakentaisit sen ja saat sitten palautetta. Kuluta vähemmän ja tuottaa enemmän. ”

Kiitos, että vieit aikaa lukemiseen! Jaa mielestäsi siitä, että siitä oli hyötyä, jaa tämä blogin viesti ihmisille, joista voi olla hyötyä :)