Amit megtanultam utazásom során, mint önállóan oktatott mobil fejlesztő

Ebben a bejegyzésben megosztom az egész utamat arról, hogyan lettem profi mobilfejlesztő.

Remélem, hogy a tapasztalataim elolvasása segít elmélkedni a jelenén és a jövőjén, és vagy segít fejlesztői karrierjének megkezdésében, vagy motiválja Önt arra, hogy előrelépjen céljainak elérésében.

Egyetemi diplomám, és hogyan kezdődött az egész

A középiskolát matematika-informatikus diplomával egy romániai kisvárosban végeztem.

Mint a legtöbb barátomnak, itt is két választási lehetőséged volt a városok tekintetében, ahova egyetemre jársz. Bukarestet választottam, Románia fővárosát.

Úgy nőttem fel, hogy az egyetem kötelező dolog. Ez valószínűleg a legtöbb országban megtörténik.

Minden szüleink ezt akarják nekünk.

Soha nem éreztem vágyat egy adott diploma megválasztására. Ismerős? Soha nem láttam magam olyannak dolgozni, miután végeztem.

Végül úgy döntöttem, hogy egy bukaresti közgazdasági egyetemre megyek. Ismét két lehetőség volt. Az egyik jó egyetemnek számított, a másikban pedig sok pénzt fizetne csak azért, hogy diplomát szerezzen.

Az elsőnél néhány vizsgát tettem, anélkül, hogy őszinte lettem volna. És nyilván nem mentem át.

A második lehetőséggel kellett mennem.

Gyors előretekerés, és elvégeztem a közgazdasági egyetemet. De két évvel későn érettségiztem. Soha nem rajongtam a közgazdaságért, és soha nem láttam magam bankárként dolgozni. Mindig azt hittem, hogy meg akarom szerezni az oklevelet, és ennyi.

Soha nem gondoltam arra, hogy mennyit fizettem ezért a haszontalan diplomáért, de oklevélre volt szükségem, hogy a társadalom elfogadja, igaz?

Kudarc voltam, közgazdász végzettséggel, de nincs tapasztalatom és tudásom. A következő években a családom segítségével sikerült két olyan vállalkozást létrehoznom, amelyek szintén kudarcot vallottak.

Nem tárgyalom a történetben szereplőket, de mondjuk csak annyit, hogy sokat tanultam. Online pókert is játszottam, és nagyon jó voltam benne.

Hét évvel a középiskola befejezése után azon kaptam magam, hogy nincs tapasztalatom, nincs sikeres vállalkozásom és nincs pénzem.

Tudtam, hogy cselekednem kell, és tudtam, hogy minden álmom a sikeres üzleti vállalkozásról nem fog megtörténni hamarosan, hacsak nincs tartalék tervem.

Ekkor gondoltam:

Milyen munkát kaphatok, ami boldoggá tesz, jól fizet, és lehetővé teszi, hogy jó életem legyen 30–40 évesen, még akkor is, ha soha nem sikerül saját vállalkozást létrehoznom?

Az egyetlen válasz, ami eszembe jutott, a programozás volt. Korábbi tapasztalataim voltak a középiskolában, és létrehoztam néhány weboldalt.

Csak egy probléma volt - a gimnáziumban nem szerettem a matematikát, és mindig azt gondoltam, hogy nem tudok megtanulni szakmai programozást anélkül, hogy ezt kiválóan megérteném.

Tévedtem.

Valószínűleg sok olyan ember van, mint én, akiknek ugyanazok a gondolataik és kételyeik vannak. Csak annyit kell tennie, hogy cselekednie kell, és el kell kezdenie a tanulást.

Az Android és a Java tanulása

2014 volt, amikor először kezdtem vizsgálni azt az ötletet, hogy megtanuljak kódolni.

Először a Google-nél vettem részt néhány bukaresti tanfolyamon, és találtam egy céget, amely meghívott az irodájukba. Odamentem, és emlékszem, hogy volt egy szépen berendezett irodájuk, sok iMAC-mal. Azt mondtam magamnak: "Erre van szükségem."

Tíz perccel később rájöttem, hogy minden tanfolyamukat online végzik, és ez inkább egy irodának felel meg, ha a tanfolyamot eladják, nem pedig a tanfolyamot.

Nem emlékszem a pontos árra, de 1500 - 2000 USD körül mozgott. Nem vettem el.

Néhány hónapig elengedtem az ötletet, aztán jött 2015. Új év, új tervek, új élet, tudod?

Újra elkezdtem vizsgálni a személyes tanfolyamot, és megtudtam, hogy bootcampoknak hívják őket.

Felfedezett egyet Bukarestben, és Java-t használtak, és négy hónapig csak 800 dollárba került. Napi néhány óra lenne egy tanárral és más diákokkal.

Visszatekintve azt gondolom, hogy olcsóbbak voltak, mint amit kínáltak, de azt hiszem, mi voltunk a második tétel.

Mindenfélét meséltek nekünk arról, hogy felveszünk a bootcamp után, de nem érdekelt.

Meg akartam tanulni a kódolást, és arra gondoltam, hogy néhány hónap múlva gyorsan sikerül munkát találnom. Igazam volt, de ez nem volt olyan egyszerű, mint gondoltam.

Megkezdődtek az órák. Mindig azt mondták nekünk, hogy nem elég, ha csak órákat tartunk együtt töltött óráink alatt.

Próbáltam hallgatni. De otthon a dolgoknak soha nem volt értelme. A programozás nehéz volt, és gyakran gondoltam, hogy nem fogom tudni befejezni a bootcampot.

Egyre erősebben toltam magam. Egy hónap telt el a tanfolyamokon, amikor megállapítottam, hogy Java-t fogunk tanulni Android-tal, de megint nem érdekelt. Beleszerettem az Eclipse-be, és a képernyőn történtek a dolgok, amikor kódoltunk.

Az Eclipse egy integrált fejlesztői környezet, amelyet eredetileg az Android fejlesztésére használtak. Most az Android Stúdiót használjuk.

Nehéz volt. A lecke után lecke után megpróbáltam megtanulni változókat, osztályokat, öröklődést, kapszulázást, hurkokhoz stb.

De küzdöttem. Nem volt világos képem arról, hogyan használhatnám ezeket mind egy nagyobb alkalmazásban. Sokszor nem volt értelme.

Ha most kezdtél el programozni, és ugyanezt érzed, akkor szeretném, ha tudnád, hogy ez normális.

Mentoraink mindig azt mondták nekünk: "Mindezeket nem kell a feje tetejéről tudnod. Csak próbáld megérteni, hogy mik azok és hogyan tudod használni őket."

Igazuk volt, de ezt később kiderítettem. Az adott pillanatban ez nem segített.

Egy dolgot sajnálok, hogy nem a kezdetektől fogva csináltam projekteket. Mindig azt hittem, hogy szükségem van egy tanárra, és hogy online nem tanulhat meg semmit egyedül. Lusta voltam és megint tévedtem.

Négy hónap után sikerült elkészítenem az első "nem működő" alkalmazást. Ez egy olyan alkalmazás volt, ahol a hallgatók szobákat bérelhettek más hallgatóktól vagy emberektől.

Azt mondtam, hogy "nem dolgozik", mert nem volt háttérprogramja vagy felhasználója. Inkább egy demo alkalmazáshoz hasonlított, amely valamilyen SQLite-t használt az adatok tárolásához.

Büszke voltam rá, mert néhány hónappal azelőtt soha nem gondoltam volna, hogy meg tudom csinálni.

A bootcamp elkészült, és azt hiszem, soha többé nem beszéltem senkivel a vezetőségüktől.

Nem biztos abban, hogy megpróbáltak-e munkát szerezni nekem, vagy talán azt gondolták, hogy nem vagyok elég jó egy fejlesztői karrierhez.

Első interjúk és első munka Junior Android fejlesztőként

Elkezdtem interjút készíteni, és emlékszem, hogy az első az volt, hogy Java szerepet töltöttem be egy nagy nemzetközi vállalatnál, Bukarestben. (Tipp: több mint 300 000 alkalmazottjuk van, és bevételük 2019-től körülbelül 77 milliárd volt.)

Nem készítettem interjút, de úgy gondolom, hogy a beszélgetés jó volt. Valószínűleg nem vettek fel, mert nem volt tapasztalatom.

Ezt követően még egy hónapba telt a következő interjú elkészítése.

Egy barátom, akit a bootcamp-ban szereztem, segített azzal, hogy ajánlott. Ha elolvassa ezt a bejegyzést, szeretnék köszönetet mondani neki.

A szerep tulajdonképpen egy román outsourcing cég Android-fejlesztőjeként szerepelt, amely szerződéssel volt egy távközlési céggel.

Két interjúm volt velük, főként technikai kérdések, és még mindig emlékszem, amikor felhívtak, hogy felajánlják a szerepet.

A fizetés kicsi volt, de nem számított.

Azt hiszem, 2015. május végén kezdtem el a bootcampot, és 2016 januárjában kezdtem el az első szerepemet Junior Android fejlesztőként.

Elég eredmény volt.

A menedzser kiosztott nekem egy projektet, majd elkezdtem elsajátítani a verziókezelést és az Agile működését, valamint azt, hogy hogyan kell dolgozni 2 hét alatt.

Ha elkezdett tanulni a programozással, vagy el akarja kezdeni, akkor három dolgot ajánlok.

  • Kezdje ma (opcionális, ha már elkezdte)
  • Tegyen minél több projektet
  • Tanulja meg a verziókezelést (Git, Bitbucket vagy Gitlab), és tegye oda az összes projektjét.

Talán írok még egy cikket ezekről a dolgokról.

A társaságban töltött időm alatt sok barátságos és segítőkész emberrel találkoztam. Valószínűleg sokuknak idegesítettem, mert az elején sok segítséget kértem.

Új ország és több Android-munkahely

9 hónappal később úgy döntöttem, hogy Londonba akarok költözni, mert rengeteg üzenetet kaptam a toborzóktól. Azt is gondoltam, hogy könnyebb ott folytatni a karrieremet, majd visszatérni Bukarestbe.

Szerencsém volt, hogy a nővérem ott élt, és ő volt olyan kedves, hogy hagyta, hogy nálam lakjak.

Még akkor is, amikor toborzóim interjúkat és hasonló dolgokat ígértek nekem, amikor odaértem, nulla találkozóm volt.

Tudtam, hogy nem lesz könnyű, és sok munkahelyre jelentkeztem online.

Két hét után kaptam interjút egy brit telekommunikációs szolgáltató cégnél. Volt egy kis informatikai részlegük, és Android fejlesztőjük távozott. Belső Android CRM-alkalmazásokkal rendelkeztek, amelyeket alkalmazottaik használtak, és szükségük van valakire a karbantartáshoz és az új alkalmazások fejlesztéséhez.

Egyéves szerződés volt, és a fizetés nem volt nagy (ezt később kiderítettem), de megint boldog voltam.

Rengeteget tanultam abban az évben (egyedül).

Olyan Android-specifikus technológiákat tanultam meg, mint:

  • Mi az a architektúra, mint a Model-View-Presenter, és hogyan kell használni egy alkalmazásban
  • Hogyan kell elvégezni a megfelelő egység tesztelést
  • A SZOLID alapelvek

Stb.

Mindezt a munkahelyen és a szabadidőmben tanultam. Dolgoztam, szabadidőmben pedig alkalmazásokat építettem magamnak.

A mai napig az összes alkalmazásom (5 Android-on) több mint 100 ezer letöltéssel rendelkezik, többnyire organikusan, de csak az egyikük több mint 2000 USD-t keresett.

Pontosan egy évig dolgoztam a távközlési vállalatnál. Valami mást akartam kipróbálni Londonban, és több Android fejlesztővel dolgozni.

Időbe telt, mire megértettem, hogy szoftverfejlesztőként mindig többet kell tennie, mint amit a munkahelyén. Ugyanez van az orvosokkal vagy az ügyvédekkel. Rendszeresen fejleszteniük kell tudásukat, hogy jobbak legyenek, mint mások.

Úgy éreztem, készen állok egy jelentősebb projekt kidolgozására, de nem hiszem, hogy elég ügyes lennék.

Ez nem kedvelt el, és Android-szerepet vállaltam egy globális outsourcing cégnél.

Egy nagy brit banknál dolgoztam Londonban.

Kezdetben féltem, de egy hónapba telt, míg úgy éreztem, hogy részese vagyok annak a projektnek.

Három interjút készítettem, mielőtt beléptem a projektbe.

Pályafutásom során az összes interjúnak két vagy három lépése volt.

Az első általában HR-lel van, ahol kérdeznek valamit a tapasztalatairól.

A második interjú lehet technikai kérdések, házhoz szállítás feladatok vagy technikai kérdések néhány algoritmussal.

A harmadik interjú lehet technológiai vezetővel, vagy egy vezetővel, vagy megint valakivel a HR-ből.  

A bankban kezdtem dolgozni egy megfelelő Scrum csapatban. 4 Android fejlesztő, 4 iOS fejlesztő voltunk, projektmenedzser, terméktulajdonos, 2-3 minőségbiztosítási mérnök, üzleti elemző, szövegíró, tervező.

Ezek az emberek az alkalmazás döntő részét fejlesztették. A projekt hatalmas volt.

Csak a fejlesztői csapatban több mint 30 Android és több mint 30 iOS fejlesztő volt.

Egy évig maradtam ennél a szerepnél, mint az előző munkahelyemen. Az OK? Vissza akartam menni Romániába.

Olyan szerencsém volt, hogy csak jó kollégák voltak körülöttem.

Soha nem baj, ha segítséget kérsz, ha tanulni akarsz. Mindannyian a kezdetektől kezdtük, nulla tudással. Úgy érzem, szörnyű, hogy nem akarok tanulni, ha nem tudod.

A banki év sokat tanított nekem, és néhány évnek tűnt. Tanultam:

  • Hogyan kell elvégezni a kódellenőrzéseket
  • Hogyan kell dolgozni egy olyan projekten, amely az egység teszteléséhez 100% -os kódfedést igényelt
  • Hogyan lehet időben szolgáltatni a funkciókat
  • Mi a tiszta architektúra, és hogyan lehet könnyen olvasható kódot írni anélkül, hogy rengeteg megjegyzést hagyna

És még sok minden, amire valószínűleg nem emlékszem.

Hazatérés több tudással

2018 novemberében mentem vissza Bukarestbe, két év és egy kis londoni élet után.

Kiváló élmény volt, de nem volt otthon érzés.

Visszatérésem után elég gyorsan (2 hét) új állást kaptam egy másik outsourcing romániai vállalatnál.

Mindössze négy hónapba telt, mire újból elindultam egy új, féléves londoni projektre.

Nem szívesen hagytam egyedül a barátnőmet, de a pénz csak hat hónapos munkára volt jó.

Nem adhatok ki semmilyen információt a projektről, mert aláírtam egy nem nyilvánosságra hozatali megállapodást, és ma is dolgozom nekik. De most Bukarestben vagyok. Több mint másfél éve dolgozom a jelenlegi cégnél.

Mit tanultam erről a projektről?

  • Hogyan hozzunk létre egy csapatot
  • Hogyan lehet egy nagy alkalmazást elindítani a semmiből. Valószínűleg nagyon büszke leszek, ha elindítjuk, és az emberek használni fogják.
  • Hogyan lehet a sok ismeretlen ismeret esetén alkalmazkodni a követelményekhez?
  • Hogyan teljesítsünk azáltal, hogy az egész világon dolgozunk.

Őrült út volt.

Következtetés és mit tanultam

A bejegyzésem meghaladja a 2000 szót, és úgy érzem, nem adtam sok részletet arról, amit tanultam. Csak a felszínt vakartam meg.

Nem volt könnyű, de nem bánom, hogy ezt a pályát választottam.

Ha én vagyok 5 évvel ezelőtti, kezdd csak el.

Kedve lesz abbahagyni. Azt fogja gondolni, hogy nem vagy elég okos, úgy fogod érezni magad, mint bármelyik fejlesztő, akinek néhány óra / nap kell ahhoz, hogy valamilyen szerencse nélkül megoldjon valamit, majd egy pillanatra ragyog.

Nem baj, ha nem tudod, és egyetlen kérdés sem hülyeség. Szörnyű, ha nem akarsz tanulni.

Ma minden eddiginél több fejlesztő hajlandó segíteni. Könnyen megtalálhatja a Discord csoportokat, ahol az emberek szívesen válaszolnak a programozási kérdéseire. Nagyon sok Reddit közösség hasznos. Talán még a Slack csatornák is működhetnek az Ön számára. Megoldást jelenthet egy mentor megtalálása is.

A kezdéshez minden olyan webhelyre és YouTube-csatornára van szükség, mint a freeCodeCamp.

Íme minden, amit remélem, megtanult ebben a bejegyzésben:

  • A kezdés nehéz, de minden nap, amikor valami újat tanulsz, hatalmas megelégedést fogsz okozni.
  • Mindenféle projektet meg kell tennie. Az alapok ismerete jó, de a dolgok felépítése és a verziókezeléssel való együttműködés elősegíti a jövőbeli munkára való felkészülést.
  • Az emberek készek segíteni (online és jövőbeli kollégák egyaránt)
  • Lesznek napok, amikor semmi sem fog működni. Nem talál könnyen megoldást. Vagy lazítson és térjen vissza később a problémához, vagy csak kérjen segítséget.
  • Minden fejlesztő (junior, közép vagy senior) megoldásokat keres a Google-on, és gyakran elakad.
  • Imposzt szindrómát fog érezni, de bízzon bennem, amikor azt mondom, hogy találkoztam CS végzettségű fejlesztőkkel, akik rosszabbak nálam.
  • Fejlesztőnek lenni nemcsak a kódolást jelenti. A lágy készségek is fontosak.

Ha tetszett ez a cikk, és még többet szeretnél, kérlek, kövess engem a Twitteren. Írok a mobilfejlesztőként tett utamról, a sikertelen / sikeres induló vállalkozásaimról, az alkalmazásmarketingről és mindenféle másról, amit az elmúlt 10 évben tanultam.