Miten tulla ohjelmoijaksi: 8 askelta sovelluksen rakentamiseen tyhjästä

Intro

”Mikä on paras tapa oppia koodaamaan?”

”Miten ryhdyn ohjelmoijaksi”

”Miten rakennan sovelluksen”

Nämä ovat yleisiä kysymyksiä, joita kysyvät joka päivä aloittelijat, jotka haluavat oppia koodaamaan. Olet epäilemättä jo googlettanut jotain samansuuntaista ja lukenut tarpeeksi artikkeleita/vastauksia siihen pisteeseen, että olet kyllästynyt ”tavallisiin” neuvoihin.

Jos et ole, tai jos jotenkin luulet, että minulla on jotain uutta sanottavaa ja haluat joka tapauksessa kuulla sen (en halua), tässä on lyhyt ja melko turha vastaus (annan sille SEO-ystävällisen click-bait-nimen: ”3 askelta ohjelmoijaksi”):

Vaihe 1: Valitse kieli

Vaihe 2: Opettele kieli

Vaihe 3: Rakenna juttuja ja jatka oppimista

Hei, älä heittele minua kengillä. Niin paljon kuin haluaisinkin sanoa, että koodaamisen oppimiseen on olemassa yksi kaikille sopiva menetelmä, sitä ei todellakaan ole. (Lisään vielä askeleen 0: hyväksy, että jokainen oppii eri tavalla).

Verkossa on jo lukemattomia yksityiskohtaisempia vastauksia, joissa tarkennetaan askelia 1 & 2, mutta yleinen vastaus askeleeseen 1 on, että opettele ensimmäiseksi kieleksi Python tai Ruby (älä takerru liikaa kieleen, et pääse koskaan alkuun). Jos tarvitset oppimisresursseja, olemme kuratoineet useita oppaita, joihin voit tutustua:

  • Opi Python
  • Opi Ruby on Rails
  • Opettele JavaScript (Opettele JavaScript aina ennen kuin opettelet esimerkiksi AngularJS:n tai Reactin kaltaisia kehyksiä ).
  • Opi iOS-kehitys
  • Opi Android-kehitys

Muutama teistä pääsisi tähän pisteeseen:

Jos sinulla on se hetki, jolloin sinusta on tullut kadonnut lammas, älä sekoa, sillä et ole yksin.

Melko aina kun kysyt ”miten minusta tulee ohjelmoija”, kehittäjät kertovat sinulle, että rakenna juttuja, koska rakentamalla asioita voit kehittyä ohjelmoijana ja se on paras tapa oppia ja niin edelleen ja niin edelleen.

Mutta miten rakennat oman sovelluksen?

Voit aina seurata olemassa olevia opetusohjelmia siitä, miten rakentaa Twitter/Pinterest/Instagram/etc-klooni millä tahansa käyttämälläsi kielellä & teknologialla, mutta pidä mielessä, että näiden opetusohjelmien kirjoittajat ovat itse asiassa tehneet suurimman osan työstä puolestasi, ja kaikki mitä sinä teet, on koodin ja niiden logiikan ymmärtäminen.

Tässä artikkelissa yritetään antaa sinulle hahmotelma, jota voit noudattaa rakentaessasi omaa sovellusta tyhjästä.

Edellytykset

Useimmat sovellukset tarvitsisivat tietokannan, joten jos aiot rakentaa oman sovelluksesi itse (ergo etu- ja takapuolen), sinun on todennäköisesti osattava tietokantakyselykieltä (yleensä SQL). Ellet sitten rakenna jotain sellaista, jonka ei tarvitse olla vuorovaikutuksessa tietokannan kanssa, kuten esimerkiksi Flappy Bird.

Jos aiot rakentaa web-sovelluksen, sinun on osattava DevOpsin perusasioita, jotta pystyt asentamaan kehitysympäristön/-palvelimen ja käynnistämään sovelluksen.

Jos tähtäät vain front-end-verkkokehittäjäksi, voit hioa HTML:n, CSS:n ja JavaScripttitaitojasi Codepenissä tai JSfiddlessä. Jos osaat vain JavaScriptiä etkä halua opetella toista kieltä, voit kokeilla Node.js:ää, sillä se on JavaScript-alusta back-end-kehitykseen (Voit käyttää tietokantana myös MongoDB:tä, sillä se perustuu myös JavaScriptiin.)

Muussa tapauksessa sinun pitäisi osata myös jokin seuraavista kielistä (ja yleensä jokin web-kehys), jos aiot rakentaa täydellisen web-sovelluksen:

  • Ruby
  • Python
  • PHP
  • Java
  • Go
  • C#

Jos aiot rakentaa pelejä, voit harkita Lua:n opettelua, vaikkakin C#:n opetteleminen on myös erittäin hyvä valinta Unity 3D -pelimoottorin ja sen massiivisen pelaajayhteisön ansiosta. Mitä tulee natiiviin mobiilisovelluskehitykseen, sinun on osattava Swift/Objective-C:tä iOS-kehitykseen ja Java:a Android-kehitykseen.

Pidemmittä puheitta siirrymme siihen, miten rakennat sovelluksen tyhjästä.

Vaihe 0: Ymmärrä itsesi

Lisäksi rakenna jotakin sellaista, johon suhtaudut intohimoisesti. Kiinnostus on paras tapa pitää itsesi motivoituneena, joten kysy itseltäsi, mistä välität tai mitä tykkäät tehdä.

Esimerkiksi:

  • Mitä sovelluksia käytät mieluiten?
  • Mitä sovelluksia et voi elää ilman?
  • Tykkäätkö pelata pelejä?
  • Tykkäätkö suunnitella asioita?
  • Jne.

Tunnista kiinnostuksenkohteesi, jotta voit työskennellä sellaisen asian parissa, josta sinulla on hauskaa. Näin on epätodennäköisempää, että pätkii ja luovutat puoliväliin.

Vaihe 1: Valitse idea

Nyt kun olet toivottavasti selvittänyt itsesi, on aika valita rakennettava idea. Aloita yksinkertaisesta.

Kyllä… vaikka mietitkin pelin rakentamista, juuri nyt sinun ei pitäisi miettiä seuraavan CounterStriken rakentamista, vaan sen sijaan sinun pitäisi miettiä, miten rakentaa niinkin yksinkertaisia pelejä kuin pahamaineinen Flappy Bird. Hei, älä väheksy Flappy Birdiä – se oli sensaatio, joka sai ihmiset ympäri maailmaa löytämään sisäisen masokistinsa.

Keksi siis kiinnostuksen kohteidesi pohjalta idea yksinkertaisesta sovelluksesta, joka tekee jotain siistiä. Sillä ei ole väliä, onko sovellus jo olemassa (itse asiassa se voi auttaa sinua, jos vastaavia projekteja on jo olemassa).

Tässä on muutamia vinkkejä, joiden avulla voit saada inspiraatiota:

  • Jos pidät ruoanlaitosta, voit ehkä ajatella rakentavasi sovelluksen, jossa ihmiset voivat esitellä kotitekoisia reseptejään.
  • Jos olet aina halunnut tietää, miten Twitter toimii, yritä rakentaa superyksinkertainen Twitter-klooni.
  • Jos olet unohtelevainen henkilö, joka luottaa tehtävienhallintaohjelmiin, yritä rakentaa sellainen itse.
  • Jos olet koukussa League of Legends -peliin, voit kokeilla tutkia Riotin API:ta ja rakentaa sivuston, joka voi hankkia & näyttää pelitiedot.
  • Jos pidät korttipelien pelaamisesta, yritä rakentaa yksinkertainen peli (esim. Black Jack)
  • Jos olet dieetillä, yritä rakentaa sovellus, joka kirjaa kalorimäärääsi.

Ja niin edelleen ja niin edelleen. Tässä on lista projekti-ideoista, jos kaipaat lisää inspiraatiota.

Kun sinulla on suunta, kirjoita yhdellä lauseella ylös tämän sovelluksen tarkoitus ja tarvittaessa tärkeimmät kohdekäyttäjät.

Esim: Lemmikkieläinten adoptiosovellus ihmisille, jotka noutavat kulkukelpoisia eläimiä.

Vaihe 2: Määrittele ydintoiminnallisuudet

Ajattele, mitä sovelluksesi pitäisi pystyä tekemään, ja listaa ne. Jos päädyt listaamaan kasan asioita, katso tarkemmin ja kysy itseltäsi, tarvitseeko tämä sovellus TODELLA esimerkiksi Facebook-kirjautumisen toimiakseen? Tarvitseeko sen TODELLA ladata tietoja johonkin pilveen toimiakseen?

On hienoa, että sinulla on unelmaprojekti mahtavine spekseineen, mutta juuri nyt kyse ei ole siitä, että rakennat jotain täydellistä, jossa on paljon hienoja ominaisuuksia. Pidä mielessä, että mikään sovellus ei ole koskaan valmis, ja kaikki alkaa yksinkertaisesta.

Älä koskaan yritä rakentaa all-in-one-sovellusta. Älä mene sinne. Olen nähnyt sen tapahtuvan jopa ammattilaisympäristössä, ja tuloksena on paljon tuskaa ja vähän edistystä.

Jos sinulla ei ole rautaa tahtoa tai rakastat todella haasteita, päädyt vain turhautumaan ja lannistumaan, jos ensimmäinen projektisi on liian vaikea rakentaa. Olet aloittelija…pointti juuri nyt on pitää hauskaa. Hauskuus on tehokkain tapa oppia.

Katso siis tekemääsi toimintojen listaa, ja jos se on liian pitkä, ala yliviivata toiminnallisuuksia, joita ilman sovelluksesi voi toimia.

Muista, että tämä on versiosi 1, ja sinun pitäisi vain pitää asiat yksinkertaisina. Keskity asioihin, joiden avulla sovellus voi suorittaa sen, mitä sen on tarkoitus tehdä – kaikki muu voidaan jättää toiseen projektiin.

Esimerkki Reddit-kloonin ydintoimintojen luettelosta:

  • käyttäjät voivat luoda tilin
  • käyttäjät voivat hakea kadonneita salasanoja
  • käyttäjät voivat vaihtaa salasanojaan
  • käyttäjät voivat julkaista uusia linkkejä
  • käyttäjät voivat kommentoida seuraavia asioita. linkkejä
  • käyttäjät voivat upvote/downvote linkkejä
  • käyttäjillä on profiili, jossa näkyy heidän historiansa/toimintansa

Yllä luetellut ominaisuudet ovat ydintoiminnallisuuksia, joihin kannattaa keskittyä ensin. Muut ominaisuudet, kuten:

  • käyttäjät voivat jakaa sosiaaliseen mediaan
  • käyttäjät voivat poistaa kommentteja
  • käyttäjät voivat muokata kommentteja
  • käyttäjät voivat poistaa oman tilinsä

ovat toissijaisia ja ne voidaan säästää versioon 1.x-työstää näitä vasta sen jälkeen, kun voit oikeasti käynnistää version 1.0

Vaihe 3: Luonnostele sovelluksesi

CC-lisenssi

Mitäkään ei ole nopeampaa kuin kynä & paperi. Nyt sinulla pitäisi olla jo melko vankka käsitys siitä, mitä sovelluksesi pitäisi tehdä, joten luonnostele sovelluksesi UI:n (käyttöliittymä) rautalankakehys. Missä painikkeiden pitäisi sijaita, mikä on painikkeen tarkoitus ja niin edelleen.

Kirjoita muistiinpanoja ja hahmottele, miten sovelluksen pitäisi toimia. Olet vielä ideointivaiheessa, joten muuta asioita, kunnes olet jokseenkin tyytyväinen siihen.

Muista pitää asiat yksinkertaisina. Jos lyhensit vaiheessa 2 laatimaasi luetteloa, pysy vain siinä luetelluissa luonnostelutoiminnoissa – älä innostu liikaa. Jos et voi auttaa itseäsi, luonnostele kaksi versiota: perusversio ja unelmiesi lopullinen versio.

Kaiken kaikkiaan tämä ei ole lopullinen ulkoasu, vaan pikemminkin vain askel, joka auttaa sinua saamaan sovelluksestasi varmemman otteen.

Vaihe 4: Suunnittele sovelluksen käyttöliittymän kulku

Kaikki. Sinulla on hyvä käsitys siitä, miltä sovelluksesi näyttää, mitä jokaisen elementin pitäisi tehdä ja miten käyttäjät voivat olla vuorovaikutuksessa sovelluksesi kanssa. Nyt on aika miettiä sovelluksen käyttöliittymävirtausta. Se tarkoittaa, miten käyttäjän pitäisi käyttää sovellusta alusta loppuun. Kaavioi kaikki vaiheet, jotka käyttäjän on otettava, ja kaikki skenaariot, joita hän saattaa kohdata. Yritä ottaa huomioon jokainen käyttötapaus.

(CC-lisenssi)

Lisää vuokaavioon kaikki toiminnot, joita käyttäjäsi voi tehdä. Jos sovelluksesi edellyttää esimerkiksi, että käyttäjät kirjautuvat sisään, miten he luovat tilin? Entä jos käyttäjät unohtavat salasanansa? Entä jos he syöttävät väärän salasanan? Mitä käyttäjän pitäisi pystyä tekemään kussakin käyttöliittymässä (lisää uusi luettelokohta > tallenna; muokkaa > tallenna/poista)? Ja niin edelleen. Tämä onnistuu nopeimmin kynän ja paperin avulla.

Taas, koska sovelluksesi pitäisi olla melko yksinkertainen, kaaviosi ei saisi olla liian massiivinen.

Vaihe 5: Tietokannan suunnittelu

Kunnossa! Kun olet suunnitellut kaikki mahdolliset skenaariot, vilkaise sitä selvittääksesi, millaisia tietoja sinun pitäisi säilyttää. Jos sovelluksesi vaatii esimerkiksi käyttäjiä luomaan tilin, sinun on pidettävä kirjaa esimerkiksi käyttäjänimestä, käyttäjätunnuksesta, käyttäjän sähköpostista, salasanasta, siitä, onko käyttäjän sähköposti vahvistettu, milloin tili on luotu sekä joka kerta, kun käyttäjä on kirjautunut sovellukseesi.

Jos rakennat Twitter-kloonia, sinun on tiedettävä twiitin tunnus, twiitin sisältö, milloin twiitti julkaistiin/uudelleentwiitattu, kuinka monta uudelleentwiittausta sillä on ja kuinka monta tähteä sillä on. Sinun täytyisi myös pitää kirjaa käyttäjän uudelleentwiittauksista ja tähdistä.

Voit piirtää ERM-kaavion (Entity-Relationship Model) kartoittaaksesi tietosuhteet.

Esimerkki kurssivalintasivuston Entity-Relationship-kaaviosta CC-lisenssillä

Lisäksi jos sinulla on suunnitelmissasi joitain tulevia toimintoja, nyt on aika suunnitella ne tietokantaasi. Tässä on mukava artikkeli, johon kannattaa tutustua, kun suunnittelet tietokantaa.

Advanced

Jos suunnittelemasi sovellus on vuorovaikutuksessa palvelimen kanssa (esim. jos rakennat fullstack-verkkosovellusta) tai jos sovelluksesi on vuorovaikutuksessa API:n kanssa (esim. yrität saada tietoja Yahoo! Weatherista ), on todennäköisesti hyvä idea piirtää sekvenssikaavio, jotta saat paremman käsityksen siitä, miten prosessien tulisi toimia.

Wikipediasta

Vaihe 6: UX Wireframes

Okei, olet suunnitellut back-endin. Nyt on aika suunnitella front-end.

Toivottavasti olet yhä yhtä innostunut kuin kätyrit edellä. Tiedät, mitä tarvitset – nyt sinulla on paljon parempi käsitys siitä, miltä sovelluksesi pitäisi näyttää.

CC-lisenssi

Koska ihmiset ovat enimmäkseen visuaalisia olentoja, sinun on helpompi ymmärtää, mitä sinun pitäisi tehdä, jos sinulla on visuaalinen kuva jokaisesta näkymästä, jota koodaat. Jos kuitenkin olet kuten minä ja piirroksesi on niin sotkuinen, että tuskin pystyt ymmärtämään luomasi hämärän… yskän mestariteoksen…, on luonnollisesti epäviisasta jatkaa tätä vaihetta väärinkäyttämällä köyhiä taiteellisia aivosolujasi.

Onneksi verkossa on monia wireframing- ja mockup-työkaluja, jotka auttavat sinua suunnittelemaan UX/UI-virtauksesi (esim. Gliffy, Mockflow, Framebox, Wireframe.cc, Invisionapp).

Vaihe 6.5 (Valinnainen): Suunnittele käyttöliittymä

Tämä on valinnainen vaihe, mutta jos aiot erikoistua front-end-kehitykseen tai jos välität paljon siitä, miltä sovelluksesi tulee näyttämään siinä määrin, että kauniimpi sovellus motivoisi sinua koodaamaan, jatka ehdottomasti sovelluksen suunnittelua, jotta kaikki nuo rautalankakehyksen käyttöliittymäelementit voidaan korvata kauniimman näköisillä.

Jos rakastat suunnittelua, suunnittelet todennäköisesti sovelluksen joka tapauksessa ennen kuin aloitat – ehkä suunnittelit sen jo vaiheessa 2.

Jos et harrasta suunnittelua, mutta välität silti siitä, miltä sovelluksesi tulee näyttämään, harkitse UI-pakettien elementtien käyttämistä. Tässä on muutama resurssi UI-elementtejä varten:
(Huomaa: Photoshop tarvitaan)

UI Cloud
Graphicburger
UI Dock

Pelejä varten:
Spriters Resource

Älä kuitenkaan takerru liikaa sovelluksen ulkonäköön. Juuri nyt sinun pitäisi sen sijaan keskittyä sovelluksen toimintojen rakentamiseen.

Vaihe 7: Ratkaisujen tutkiminen

Hienoa! Olet saanut suunnitteluvaiheen valmiiksi… mutta miten sinun pitäisi koodata kaikki nämä asiat?

Tärkeä taito, joka sinun on opittava ohjelmoijana, on arvioida, milloin sinun pitäisi käyttää jotakin, jonka joku toinen kehittäjä on jo kirjoittanut, ja milloin sinun pitäisi rakentaa toiminto itse.

Koska kaikki rakentavat yksilöllisen sovelluksen, kaikki käyttötapaukset eivät ole samanlaisia. Niinpä sinun on arvioitava, milloin kannattaa käyttää olemassa olevaa ratkaisua ja milloin rakentaa oma, ja kokemuksen myötä osaat tehdä sen paremmin.

Jos tunnet olevasi suunnaton laiva, joka on eksynyt valtavaan valtamereen, hengitä syvään äläkä panikoi. Pystyt tähän.

Kun saat lisää kokemusta tutkimisesta, ”Google-fuusi” hiomisesta ja asioiden rakentamisesta, saat lopulta otteen tästä prosessista.

Ratkaisujen tarkastelu

Katsele kaikkia piirtämiäsi kaavioita sekä vaiheessa 2 tekemääsi toiminnallisuusluetteloa.

Mitä asioita sinulla ei ole minkäänlaista käsitystä siitä, miten ne pitäisi rakentaa?

Tarvitseeko käyttäjien esimerkiksi luoda tili? Onko sovelluksesi riippuvainen reaaliaikaisista päivityksistä? Mitä toimintoja tarvitset?

Useimmiten on hyvä idea vain käyttää olemassa olevaa ratkaisua suuriin toimintoihin, kuten reaaliaikaisen synkronoinnin käsittelyyn (esim. Firebase), verkottumiseen/reititykseen (esim. AFNetworking iOS-sovelluksille), todennukseen ja käyttöliittymään liittyviin komponentteihin (esim.esim. flipboard tai pinterest-henkinen sovellus).

On olemassa monia verkkotietokantoja, joista voit etsiä backendiin liittyviä komponentteja/paketteja/jalokiviä/jne, mutta sinun on oltava varovainen arvioidessasi sitä, mitä muut ovat kirjoittaneet – älä vain käytä niitä sokeasti. Et toivottavasti rakenna mitään liian monimutkaista juuri nyt, joten juuri nyt et luultavasti tarvitse komponentteja, joita muut ovat kirjoittaneet.

Joka tapauksessa paras tapa aloittaa on tutkia, mitä muut kehittäjät ovat tehneet ennen sinua ja oppia logiikka heidän päätöstensä takana. GitHub on paras ystäväsi.

Todellisen esimerkin kokeneen kehittäjän tutkimusprosessista tiettyä toimintoa varten voit katsoa tästä postauksesta, jossa kerrotaan, miten Angular-Plunkerin luoja rakensi Plunkerin raahaa-ja-pudota-direktiivit.

Työkalujen valitseminen alkuun

Jos rakennat web-sovellusta, voit ehkä tutustua Yeomaniin, sillä sen tarkoituksena on auttaa uusien projektien nopeassa käynnistämisessä auttamalla sinua projektin rakenteen luomisessa.

Jos rakennat React-sovellusta, voit tutustua myös aloituspaketteihin ja olemassa oleviin Flux-toteutuksiin. HTML5Boilerplate ja Bootstrap ovat suosittuja front-end-malleja sovellusta varten. Useimmiten boilerplateissa käytetään Gulpia tai Gruntia tehtävien hallintaan.

Koska todennäköisesti käytät joitain olemassa olevia komponentteja tai ratkaisuja, kannattaa myös asentaa bower riippuvuuksien hallintaa varten (npm niille, jotka käyttävät Node.js:ää ja CocoaPods iOS-kehittäjille). Älä huoli – useimmiten näiden työkalujen mukana tulee opetusohjelmia, jotka opettavat, miten ne asennetaan.

Vaihe 8: Sovelluksen rakentaminen

Kyllä, olet nyt valmis rakentamaan sovelluksen! Seuraavassa on muutamia vinkkejä, jotka sinun kannattaa pitää mielessä sovellusta rakentaessasi.

Tarkistuslista

Sinun kannattaa keskittyä rakentamaan sovellus toiminto kerrallaan. Jos et siis ole valmis yhden tehtävän, kuten kommentointijärjestelmän, kanssa, älä yhtäkkiä ala rakentaa käyttäjäprofiilinäkymää. Toisin sanoen, jos olet rakentamassa esimerkiksi lomaketta, sinun pitäisi työstää sekä etu- että taustakoodia, kunnes toiminto on valmis.

Kaiken kaikkiaan, jotta pysyt kärryillä edistymisestäsi, voit kirjoittaa tehtäväluettelon toiminnoista ja käyttää sitä tarkistuslistana.

Kirjoita testit ensin

Jos et rakenna pelisovellusta, on hyvä ajatus kirjoittaa funktiollesi testit ensimmäisenä, ennen kuin alat varsinaisesti koodata toimintoa. Virheet ovat väistämättömiä, mutta testaaminen vähentää huomattavasti virheitäsi ja mahdollisuuksiasi julkaista virheellistä koodia tuotantoon.

Todennäköisesti yksikkötestien kirjoittaminen vie aikaa ja saatat joskus kyseenalaistaa, onko se sen arvoista. Jos kuitenkin aiot rakentaa tulevaisuudessa isompia projekteja, joissa lisäisit jatkuvasti uusia ominaisuuksia, sovelluksellesi voi käydä näin:

Tällöin voi käydä näin (on liioittelua siitä, mitä):

Tai jumala varjelkoon:

Ja tämä olisit sinä, joka yrittäisit korjata sovelluksen:

…Enemmän tai vähemmän.

On siis hyvä idea aloittaa pienestä ja totutella testiohjattuun kehitykseen (Test-Driven Development, TDD), varsinkin kun aloitat puhtaalta pöydältä ja rakennat jotain yksinkertaista.

Eihän sinulla nyt ole mitään deadlinea ja projektipäällikön piikkihaarukka selkäsi takana?

Vinkkejä yksikkötestauksen malleihin voit lukea tästä artikkelista. Toinen vinkki, joka kannattaa pitää mielessä, on välttää liikaa triviaalien asioiden väittämistä.

Valittavanasi on monia testaustyökaluja, kuten Jasmine tai Karma JavaScriptille, Rspec Rubylle, PyTest Pythonille, PHPUnit PHP:lle, Quick vaihtoehtona xCTestille iOS-kehityksessä, tai mikä tahansa työkalu, jonka koet sopivan sinulle.

Lisäksi, jos rakennat iOS- tai Android-sovellusta, kannattaa tutustua Crashlyticsiin.

7 askelta tehokkaaseen ja tulokselliseen virheenkorjaukseen

Käytä Gitiä

Git on versiohallintajärjestelmä ja täysipainoinen arkisto täydellisellä historialla ja täydellisellä versioseurannalla. Gitin käytön opettelu kannattaa aloittaa jo ensimmäistä sovellusta rakennettaessa. Näin voit helposti kumota virheesi, palauttaa kadonneet tiedot ja paljon muuta. Lisäksi jos aiot tulevaisuudessa työskennellä kehittäjätiimin kanssa, sinun on joka tapauksessa käytettävä Gitiä. GitHub on suosituin avoimen lähdekoodin projektien Git-tietovarastojen isännöintipalvelu, kun taas Bitbucket on tarkoitettu yksityisille tietovarastoille.

Jos päädyt törmäämään ongelmiin käyttäessäsi Gitiä, tämä kirjoitus 10 yleisintä Git-ongelmaa ja niiden korjaaminen voi auttaa sinua.

Jos jäät jumiin…

Aloittelijana tunnet itsesi useimmiten hamsteriksi.

Et ole yksin. Joskus sinun tarvitsee vain pitää tauko ja antaa asian hautua, jotta voit tyhjentää mielesi.

Jos tämä ei vieläkään auta, tässä on muutamia keinoja, joilla voit irrottaa itsesi:

Googlaa

mainitsin Google-taidon vaiheessa 7, mutta korostan vielä kerran, että Googlaamisen opettelu on tärkeä taito, joka kaikkien ohjelmoijien on hankittava. Jos jäät jumiin bugiin tai et tiedä, miksi koodisi ei toimi, on hyvä idea googlata.

Kysy StackOverflowsta

Huomaa luultavasti, että googletustuloksesi viittaavat enimmäkseen StackOverflow’n kysymyksiin ja vastauksiin. Jos et vieläkään löydä ratkaisua ongelmaasi googlettamisen jälkeen, voit kokeilla lähettää kysymyksen StackOverflowiin.

Muista osoittaa kysymykselläsi, että olet tutkinut asiaa – sillä tavalla saat todennäköisemmin vastauksen.

Vaihtoehto: Etsi mentori

Jotkut sanovat, että StackOverflow ei ole aloittelijaystävällinen, koska aloittelijat eivät osaa muotoilla kysymyksiään. Mutta entä jos et edes tiedä, mikä ongelmasi on?

Jos päädyt headdeskingin partaalle (tai jos olet jo headdeskingissä…), sinun ei tarvitse pahoinpidellä otsaasi (jos lyöt päätäsi tarpeeksi kovaa, menetät vain aivosoluja).

Yksi loistava vaihtoehto kehitystyötäsi ja oppimisprosessiasi helpottamaan on hankkia apua kokeneelta ohjelmoijalta. Sinun ei tarvitse tuntea olevasi jotenkin tyhmä, koska henkilö X on kuuluisa asiantuntija ja itseoppinut ohjelmoija. Ihmiset yksinkertaisesti oppivat eri tavalla, ja kaikki aloittelijat hyötyvät henkilökohtaisesta opastuksesta, sillä saatat tehdä virheitä, jotka eivät ole juuri nyt iso juttu, mutta ovat itse asiassa huono käytäntö.

Muistathan, että silloin monilla itseoppineilla kehittäjillä ei ollut käytössään palveluita, jotka ovat nyt käytettävissäsi.

Voit siis saada apua kokeneilta ohjelmoijilta livenä pidettävien 1:1-istuntojen kautta Codementorissa, jossa mentoreiden hinnat alkavat 15 dollarista minuutilta. Näiden istuntojen aikana voit käydä videokeskustelun kokeneen kehittäjän kanssa ja jakaa ruudun/koodisi hänen kanssaan, ja mentori opettaa sinulle, miten korjata koodisi, sekä kertoo, mitä olet tehnyt väärin, jotta voit välttää virheet tulevaisuudessa. Voit myös tarkastella istunnon koodia tai tallentaa istunnon paikalliselle levyllesi videokeskustelutyökalun avulla. Rekisteröidy nyt ja kokeile ensimmäiset 15 minuuttia ilmaiseksi, kun mentorit tarjoavat tarjouksen.

Loppuvinkki

Ohjelmoijat tekevät virheitä koko ajan, joten älä lannistu, jos et pääse edes kirjoittamastasi testistä läpi tai jos kompastut jatkuvasti itseesi. Ajattele vaikka iOS9:ää, Android Lollipopia tai jotain sovellusta, jota rakastat käyttää. Varmasti jopa kaikkein kypsimmissä sovelluksissa on yhä virheitä, joten älä oleta, että voit rakentaa kaikkein täydellisimmän ja virheettömimmän sovelluksen (tämä ei tietenkään tarkoita, että sinun pitäisi asettaa itsellesi alhaiset vaatimukset – sinun pitäisi aina pyrkiä rakentamaan laadukkaita sovelluksia).

Lisäksi on hyvin tavallista, että käytät tunteja tai jopa päiviä yhden asian parissa ja sinulla on silti vaikeuksia saada se toimimaan haluamallasi tavalla. Jos uusien ominaisuuksien nopea ohjelmointi olisi helppoa, maailma ei tarvitsisi uusia ohjelmoijia. Helvetti, olisimme nyt luultavasti virheettömässä iOS100:ssa ja olisimme rakentaneet Matrixin kaltaisen digitalisoidun maailman.

Siten kuulet usein termin ”tee virheitä” aina, kun ihmiset kannustavat sinua aloittamaan asioiden rakentamisen. He tarkoittavat sitä. Yksi asia, joka sinun on hyväksyttävä ohjelmoijana, on se, että sinusta ei tule badass-koodauskonetta, joka osaa loihtia ominaisuuksia hetkessä. Tulet epäonnistumaan paljon, ja se on ihan ok.

Muista myös, että olet aloittelija, joten monet asiat tulevat olemaan aluksi väistämättä vaikeita. Käytät paljon aikaa asioihin, joiden pitäisi mielestäsi olla yksinkertaisia, ja ne tuntuvat vaikealta ylämäkikamppailulta, mutta kun saat lisää kokemusta, asiat helpottuvat. Odota innolla sitä onnistumisen tunnetta, kun vihdoin onnistut rakentamaan ensimmäisen sovelluksesi, ja voit jopa harkita sovelluksesi myymistä, jos katsot sen tarpeelliseksi.

Happy Coding!

Author Bio


Yi-Jirr Chen || Content Maketing & Operations
Tyypillinen massiivinen nörtti, joka pelailee ja rakastaa tiedettä/tekniikkaa. Julkaisee myös kaunokirjallisuutta nimimerkillä, joka on nimimerkki syystä

Muita artikkeleita, jotka saattavat kiinnostaa:

  • How to Get Your First Developer Job (even if You Don’t have a CS Degree)
  • Developer Community’s 9 Tips for Coding Beginners
  • 40 Side Project Ideas for Software Engineers
  • How to Launch Your Career and Land Your First Client as a Freelance Developer

Vastaa

Sähköpostiosoitettasi ei julkaista.