Mitä olen oppinut matkallani itseoppinut mobiilikehittäjänä

Tässä viestissä jaan koko matkani siitä, kuinka minusta tuli ammattimainen mobiilikehittäjä.

Toivon, että kokemukseni lukeminen auttaa sinua pohtimaan nykyisyyttäsi ja tulevaisuuttasi ja joko auttaa sinua aloittamaan urasi kehittäjänä tai motivoi sinua etenemään tavoitteidesi saavuttamisessa.

Yliopistotutkintoni ja miten kaikki alkoi

Päätin lukion matematiikka-informatiikan tutkinnolla pienessä kaupungissa Romaniassa.

Kuten useimmilla ystävilleni, sinulla oli kaksi vaihtoehtoa kaupunkien suhteen mennä yliopistoon. Valitsin Bukarestin, Romanian pääkaupungin.

Kasvoin ajatellen, että yliopisto on pakollinen asia. Näin tapahtuu todennäköisesti useimmissa maissa.

Kaikki vanhempamme haluavat sen meille.

En koskaan tuntenut halua valita tietty tutkinto. Kuulostaa tutulta? En ole koskaan nähnyt itseni työskentelevän jotain valmistumiseni jälkeen.

Lopulta päätin mennä Bukarestin talousyliopistoon. Jälleen oli kaksi vaihtoehtoa. Yksi pidettiin hyvänä yliopistona, ja toinen, jossa maksat paljon rahaa vain tutkinnon saamiseksi.

Suoritin ensimmäisessä tenttiä, opiskelematta, rehellisesti sanottuna. Ja ilmeisesti en läpäissyt.

Minun piti mennä toisen vaihtoehdon kanssa.

Nopeasti eteenpäin ja valmistuin taloustieteellisestä yliopistostani. Mutta valmistuin kaksi vuotta myöhässä. Minulla ei koskaan ollut intohimoa taloustieteisiin, enkä koskaan nähnyt itseni työskentelevän pankkiirina. Ajattelin aina, että halusin saada tutkintotodistuksen, ja kaikki.

En koskaan miettinyt, kuinka paljon maksin turhasta tutkinnosta, mutta tarvitsin tutkintotodistuksen yhteiskunnan hyväksymiseksi, eikö?

Olin epäonnistunut, minulla oli taloustieteen tutkinto, mutta minulla ei ollut kokemusta tai tietoa. Seuraavina vuosina onnistuin perheeni avulla luomaan kaksi yritystä, jotka myös epäonnistuivat.

En keskustele tarinan niistä, mutta sanotaan vain, että opin paljon. Pelasin myös online-pokeria, ja olin siinä melko hyvä.

Seitsemän vuotta lukion valmistumisen jälkeen minulla ei ollut työkokemusta, menestyvää liiketoimintaa eikä rahaa.

Tiesin, että minun oli ryhdyttävä toimiin, ja tiesin, että kaikki unelmani menestyvän yrityksen tekemisestä eivät tapahtuisi pian, ellei minulla olisi varmuuskopiosuunnitelmaa.

Silloin ajattelin:

Minkä työn saan, mikä tekee minut onnelliseksi, maksaa minulle hyvin ja antaa minun elää hyvää elämää 30–40-vuotiaana, vaikka en koskaan onnistu luomaan omaa yritystä?

Ainoa mieleen tullut vastaus oli ohjelmointi. Minulla oli aikaisempi kokemus lukiosta ja rakensin muutaman verkkosivuston.

Oli vain yksi ongelma - en pitänyt matematiikasta lukiossa, ja ajattelin aina, etten voi oppia ammattimaista ohjelmointia ilman erinomaista ymmärrystä siitä.

Olin väärässä.

Minun kaltaisia ​​ihmisiä on todennäköisesti paljon, ihmisiä, joilla on samat ajatukset ja epäilyt. Mutta sinun tarvitsee vain toimia ja aloittaa oppiminen.

Oppiminen Android ja Java

Se oli vuosi 2014, kun aloin tutkia ideaa oppia koodaamaan.

Ensin tein Googlelle kursseja Bukarestissa, ja löysin yrityksen, joka kutsui minut toimistoihinsa. Kävin siellä, ja muistan, että heillä oli kaunis kalustettu toimisto, jossa oli paljon iMAC: itä. Sanoin itselleni: "Sitä tarvitsen."

Kymmenen minuuttia myöhemmin huomasin, että he tekivät kaikki kurssit verkossa ja että se oli enemmän kuin toimisto myydä kurssi sen sijaan, että tekisi kurssin.

En muista tarkkaa hintaa, mutta se oli noin 1500 - 2000 USD. En ottanut sitä.

Annoin irti ideasta muutaman kuukauden, sitten vuosi 2015 tuli. Uusi vuosi, uudet suunnitelmat, uusi elämä, tiedätkö?

Aloin tutkia uudelleen henkilökohtaista kurssia ja huomasin, että heitä kutsuttiin bootcampeiksi.

Löytyi yksi Bukarestista ja he tekivät Java-sovellusta, ja se maksoi vain noin 800 dollaria neljäksi kuukaudeksi. Se olisi muutama tunti päivässä opettajan ja muiden opiskelijoiden kanssa.

Katson taaksepäin, luulen, että he olivat halpoja tarjotuille, mutta luulen, että olimme toinen erä heillä.

He kertoivat meille kaikenlaisia ​​asioita palkatusta bootcampin jälkeen, mutta en välittänyt siitä.

Halusin oppia koodaamaan ja ajattelin, että onnistun löytämään työpaikan nopeasti muutaman kuukauden kuluttua. Olin oikeassa, mutta se ei ollut niin helppoa kuin luulin.

Tunnit alkoivat. He kertoivat meille aina, että ei riitä, että teemme vain oppitunteja yhdessäolomme aikana.

Yritin kuunnella. Mutta kotona asiat eivät koskaan olleet järkeviä. Ohjelmointi oli vaikeaa, ja ajattelin usein, että en pysty suorittamaan bootcampia loppuun.

Työnsin itseni yhä kovemmin. Kursseille kului yksi kuukausi, kun huomasin, että aiomme oppia Java-sovelluksen Androidin kanssa, mutta jälleen kerran, en välittänyt siitä. Rakastin Eclipseä ja asioita tapahtui näytöllä, kun koodasimme.

Eclipse on integroitu kehitysympäristö, jota käytettiin alun perin Android-kehitykseen. Nyt käytämme Android Studiota.

Se oli vaikeaa. Oppitunnin jälkeen yritin oppia muuttujia, luokkia, perintöä, kapselointia, silmukoita varten ja niin edelleen.

Mutta kamppailin. Minulla ei ollut selkeää kuvaa siitä, kuinka voisin käyttää näitä kaikkia isommassa sovelluksessa. Sillä ei ollut järkevää monta kertaa.

Jos olet juuri aloittanut ohjelmoinnin ja sinusta tuntuu samalta, haluan sinun tietävän, että se on normaalia.

Mentorimme kertoivat meille aina: "Sinun ei tarvitse tietää kaikkia näitä päätäsi. Yritä vain ymmärtää, mitä he ovat ja miten voit käyttää niitä."

He olivat oikeassa, mutta huomasin sen myöhemmin. Tuona ajankohtana se ei auttanut.

Yksi asia, josta olen pahoillani, on se, että en tehnyt projekteja alusta alkaen. Ajattelin aina, että tarvitsin opettajan ja että et voi oppia mitään verkossa yksin. Olin laiska ja jälleen väärässä.

Neljän kuukauden jälkeen onnistuin tekemään ensimmäisen "ei-toimivan" sovellukseni. Se oli sovellus, josta opiskelijat voivat vuokrata huoneita muilta opiskelijoilta tai muilta.

Sanoin "ei-toimiva", koska sillä ei ollut taustaa tai käyttäjiä. Se oli enemmän kuin demosovellus, joka käytti SQLiteä tietojen tallentamiseen.

Olin ylpeä siitä, koska muutama kuukausi sitten en koskaan kuvitellut voivani tehdä sitä.

Bootcamp valmistui, enkä usko koskaan puhuneen enää kenenkään heidän johdostaan.

Etkö ole varma, yrittivätkö he saada minulle työpaikkaa, tai ehkä he ajattelivat, etten ollut tarpeeksi hyvä kehittäjäuralle.

Ensimmäiset haastattelut ja ensimmäinen työpaikka nuorimpana Android-kehittäjänä

Aloitin haastattelemisen, ja muistan, että ensimmäinen oli Java-rooli suuressa kansainvälisessä yrityksessä Bukarestissa. (Vihje: heillä on yli 300 000 työntekijää, ja heidän tulonsa vuodesta 2019 olivat noin 77 miljardia.)

En ottanut haastattelua, mutta mielestäni keskustelu oli hyvä. Minua ei todennäköisesti palkattu, koska minulla ei ollut kokemusta.

Sen jälkeen kesti vielä kuukausi saada seuraava haastattelu.

Ystäväni, jonka sain bootcampista, auttoi suosittelemalla minua. Jos hän lukee tämän viestin, haluan kiittää häntä.

Rooli oli itse asiassa Android-kehittäjänä romanialaiselle ulkoistamisyritykselle, jolla oli sopimus teleyrityksen kanssa.

Minulla oli heidän kanssaan kaksi haastattelua, enimmäkseen teknisiä kysymyksiä, ja muistan edelleen, kun he soittivat tarjoamaan roolia.

Palkka oli pieni, mutta sillä ei ollut merkitystä.

Luulen, että aloitin käynnistyskampuksen toukokuun 2015 lopussa, ja aloitin ensimmäisen roolini Junior Android -kehittäjänä tammikuussa 2016.

Se oli varsin saavutus.

Johtajani antoi minulle projektin, ja sitten aloin oppia versionhallinnasta ja ketterän työskentelystä sekä työskentelystä kahden viikon sprinteissä.

Jos olet aloittanut ohjelmoinnin oppimisen tai haluat aloittaa, suosittelen kolmea asiaa.

  • Aloita tänään (valinnainen, jos olet jo aloittanut)
  • Tee niin monta projektia kuin mahdollista
  • Opi versionhallinta (Git, Bitbucket tai Gitlab) ja työnnä kaikki projektisi sinne.

Ehkä kirjoitan toisen artikkelin kaikista näistä asioista.

Aikana yrityksessä tapasin paljon ystävällisiä ja avuliaita ihmisiä. Olin todennäköisesti ärsyttävää monille heistä, koska alussa pyysin paljon apua.

Uusi maa ja lisää Android-työpaikkoja

9 kuukautta myöhemmin päätin, että halusin muuttaa Lontooseen, koska sain paljon viestejä rekrytoijilta. Ajattelin myös, että olisi helpompaa jatkaa uraani siellä, sitten palata Bukarestiin.

Minulla oli onnekas, että sisareni asui siellä, ja hän oli kiltti antamaan minun asua hänen kanssaan.

Silloinkin kun rekrytoijat lupasivat minulle haastatteluja ja vastaavia asioita, saavuessani minulla ei ollut kokouksia.

Tiesin, että se ei olisi helppoa, ja hakin paljon töitä verkossa.

Kahden viikon kuluttua sain haastattelun eräässä brittiläisessä telekommunikaatioyrityksessä. Heillä oli pieni IT-osasto, ja heidän Android-kehittäjänsä oli lähdössä. Heillä oli sisäiset Android CRM -sovellukset, joita työntekijät käyttivät, ja he tarvitsivat jonkun ylläpitoon ja uusien sovellusten kehittämiseen.

Se oli yhden vuoden sopimus, ja palkka ei ollut suuri (huomasin sen myöhemmin), mutta taas kerran olin onnellinen.

Olen oppinut tonnin tuona vuonna (yksin).

Olen oppinut Android-tekniikoita, kuten:

  • Mikä on arkkitehtuuri, kuten Model-View-Presenter, ja miten sitä voidaan käyttää sovelluksessa
  • Kuinka tehdä oikea yksikkötestaus
  • SOLID-periaatteet

Ja niin edelleen.

Opin kaiken sen työssä ja vapaa-ajalla. Työskentelin ja vapaa-ajalla rakensin sovelluksia itselleni.

Tähän päivään asti kaikilla sovelluksillani (5 Android-laitteella) on ladattu yli 100 000 latausta, lähinnä orgaanisia, mutta vain yksi niistä teki yli 2000 dollaria.

Työskentelin teleyrityksessä tarkalleen vuoden. Halusin kokeilla jotain erilaista Lontoossa ja työskennellä useamman Android-kehittäjän kanssa.

Kesti jonkin aikaa ymmärtää, että ohjelmistokehittäjänä sinun on aina tehtävä enemmän kuin mitä teet töissä. Sama on lääkäreiden tai asianajajien kanssa. Heidän on säännöllisesti parannettava tietämystään ollakseen muita parempia.

Tunsin olevani valmis työskentelemään merkittävämmän projektin parissa, mutta en usko olevani riittävän taitava.

Se ei estänyt minua, ja otin Android-roolin globaalissa ulkoistamisyrityksessä.

Aioin työskennellä isossa brittiläisessä pankissa Lontoossa.

Pelkäsin aluksi, mutta kesti kuukauden, kun tunsin olevani mukana projektissa.

Tein kolme haastattelua ennen kuin aloitin projektiin.

Urani aikana kaikilla tekemilläni haastatteluilla oli kaksi tai kolme vaihetta.

Ensimmäinen on yleensä HR: n kanssa, missä he kysyvät sinulta asioita kokemuksestasi.

Toinen haastattelu voi olla teknisiä kysymyksiä, kotiin tehtäviä tai teknisiä kysymyksiä joillakin algoritmeilla.

Kolmas haastattelu voi olla teknisen johtajan kanssa, esimiehen kanssa tai taas HR-henkilön kanssa.  

Aloin työskennellä pankissa asianmukaisessa Scrum-tiimissä. Olimme 4 Android-kehittäjää, 4 iOS-kehittäjää, projektipäällikkö, tuotteen omistaja, 2-3 laadunvarmistusinsinööriä, yritysanalyytikko, copywriter, suunnittelijat.

Kaikki nämä ihmiset kehittivät ratkaisevan osan sovelluksesta. Projekti oli valtava.

Aivan kehitystiimissä oli yli 30 Android- ja yli 30 iOS-kehittäjää.

Pysyin siinä roolissa yhden vuoden, kuten edellisessä työssäni. Syy? Halusin palata Romaniaan.

Minulla oli onni, että ympärilläni oli vain hyviä kollegoita.

Ei ole koskaan väärin pyytää apua, jos haluat oppia. Olemme kaikki aloittaneet alusta, ilman tietoa. Minusta on kauheaa olla halumatta oppia, kun et tiedä.

Vuosi pankissa opetti minulle paljon, ja se tuntui muutamalta vuodelta. Opin:

  • Kuinka tehdä koodiarvosteluja
  • Kuinka työskennellä projektissa, joka vaati 100% koodin peiton yksikkötestauksessa
  • Kuinka toimittaa ominaisuuksia ajoissa
  • Mikä on puhdas arkkitehtuuri ja kuinka kirjoittaa koodi, joka on helppo lukea jättämättä paljon kommentteja

Ja monia muita, joita en todennäköisesti muista.

Paluu kotiin enemmän tietoa

Oli marraskuu 2018, kun palasin Bukarestiin kahden vuoden ja vähän asumisen jälkeen Lontoossa.

Se oli erinomainen kokemus, mutta se ei tuntunut kodilta.

Sain uuden työpaikan toiselle ulkoistavalle romanialaiselle yritykselle melko nopeasti (2 viikkoa) palattuani.

Kesti vain neljä kuukautta lähteä uudestaan ​​kuuden kuukauden projektiin Lontooseen.

En ollut onnellinen jättää tyttöystävääni yksin, mutta rahat olivat hyvät vain kuuden kuukauden työhön.

En saa paljastaa mitään tietoa projektista, koska allekirjoitin salassapitosopimuksen, ja työskentelen edelleen heidän puolestaan. Mutta olen nyt Bukarestissa. Olen työskennellyt nykyisessä yrityksessä yli puolitoista vuotta.

Mitä opin tästä projektista?

  • Kuinka luoda joukkue
  • Kuinka aloittaa iso sovellus tyhjästä. Olen todennäköisesti hyvin ylpeä, kun käynnistämme ja ihmiset käyttävät sitä.
  • Kuinka mukauttaa vaatimuksia, joissa on paljon tuntemattomia.
  • Kuinka toimittaa työskentelemällä ihmisten kanssa ympäri maailmaa.

Se on ollut hullu matka.

Johtopäätös ja mitä opin

Viestini on yli 2000 sanaa, ja mielestäni en antanut sinulle paljon yksityiskohtia oppimastani. Naarmuin vain pintaa.

Se ei ollut helppoa, mutta en valitettavasti valinnut tätä uraa.

Jos olet minä 5 vuotta sitten, aloita vain.

Tuntuu lopettaa. Luulet, ettet ole tarpeeksi älykäs, sinusta tuntuu kuin joku kehittäjä, joka vie muutaman tunnin / päivän ratkaisemaan jotain ilman onnea ja jolla on sitten hetki kirkkautta.

Ei ole väärin olla tietämättä, eikä mikään kysymys ole tyhmä. On kauheaa, jos et halua oppia.

Nykyään enemmän kehittäjiä kuin koskaan on valmis auttamaan. Löydät helposti ristiriitaryhmiä, joissa ihmiset vastaavat mielellään ohjelmointikysymyksiisi. On paljon Reddit-yhteisöjä, joista on hyötyä. Ehkä jopa Slack-kanavat voivat toimia sinulle. Myös mentorin löytäminen voi olla ratkaisu.

Aloittamiseen tarvitaan kaikki verkkosivustot ja YouTube-kanavat, kuten freeCodeCamp.

Tässä on kaikki asiat, jotka toivon oppinut tässä viestissä:

  • Aloittaminen on vaikeaa, mutta joka päivä oppiminen jotain uutta antaa sinulle valtavan tyydytyksen.
  • Sinun on tehtävä kaikenlaisia ​​projekteja. Perustietojen tunteminen on hyvä, mutta asioiden rakentaminen ja työskentely versionhallinnan kanssa auttavat sinua valmistautumaan tulevaan työhön.
  • Ihmiset ovat valmiita auttamaan (sekä verkossa että tulevissa kollegoissa)
  • On päiviä, jolloin mikään ei toimi. Et löydä ratkaisua helposti. Joko rentoudu ja palaa ongelmaan myöhemmin tai pyydä apua.
  • Kaikki kehittäjät (juniorit, keskitason tai vanhemmat) etsivät ratkaisuja Googlesta ja jumittuvat usein.
  • Tunnet huijaajan oireyhtymän, mutta luota minuun, kun sanon, että tapasin kehittäjiä, joilla on CS-tutkinto, jotka ovat minua huonommat.
  • Kehittäjänä oleminen ei ole vain koodausta. Pehmeät taidot ovat myös tärkeitä.

Jos pidit tästä artikkelista ja haluat lisää tästä, seuraa minua Twitterissä. Kirjoitan matkastani mobiilikehittäjänä, epäonnistuneista / onnistuneista start-up-yrityksistä, sovellusten markkinoinnista ja kaikenlaisista muista asioista, jotka olen oppinut viimeisten 10 vuoden aikana.