Ako vyvíjať softvér (s obrázkami)

Byť vývojárom softvéru je lukratívny kariérny plán. To sú ľudia s vážnymi zručnosťami, ktoré sa dajú uplatniť na trhu. Ale čo presne robia? Keďže ich pravdepodobne nemôžete poraziť, budete sa k nim musieť pridať. Máte technické znalosti a schopnosť priblížiť sa publiku, aby ste mohli vyvinúť dobrý produkt? S trochou brainstormingu – a, samozrejme, počnúc krokom 1 nižšie – budete!

1. časť z 3:Učenie sa lanom


Určite, ktorý základný typ vývoja softvéru vás zaujíma. Existujú dva základné tábory TYPE vývoja softvéru: Vývoj aplikácií a Vývoj systémov. Vývoj aplikácií je zameraný na vytváranie programov, ktoré spĺňajú potreby používateľov. Môže ísť o rôzne aplikácie pre mobilné telefóny, videohry s vysokou produkciou až po účtovný softvér na podnikovej úrovni. Vývoj systémov je zameraný na tvorbu a údržbu operačných systémov s využitím životného cyklu vývoja. Vývoj systémov často zahŕňa funkčnosť siete a bezpečnosť údajov.[1]


Naučte sa programovací jazyk. Každý môže prísť s nápadmi, ale vývojár dokáže tieto nápady premeniť na niečo hmatateľné. Aj keď chcete pracovať len na dizajnových aspektoch softvéru, mali by ste mať určité znalosti kódovania a vedieť vytvoriť základné prototypy. Existuje obrovské množstvo programovacích jazykov, ktoré sa môžete naučiť sami. Medzi tie užitočnejšie a dôležitejšie patria napr:

  • C – C je jedným zo starších jazykov, ktoré sa stále používajú, a je základom väčšiny ostatných jazykov na tomto zozname. Jazyk C sa používa na vývoj nízkoúrovňových programov a veľmi úzko spolupracuje s hardvérom počítača.
  • C++ – ide o objektovo orientovanú verziu jazyka C, ktorá je najpopulárnejším programovacím jazykom na svete. Programy ako Chrome, Firefox, Photoshop a mnohé ďalšie sú vytvorené pomocou jazyka C++. Je to tiež veľmi obľúbený jazyk na tvorbu videohier. Vývojári v jazyku C++ sú takmer vždy veľmi žiadaní.
  • Java – je to vývojový stupeň jazyka C++ a používa sa kvôli ľahkej prenosnosti. Takmer na každom systéme môže bežať virtuálny stroj Java, ktorý umožňuje spúšťať softvér Java. Je široko používaný vo videohrách a podnikovom softvéri a mnohí ho odporúčajú ako základný jazyk.
  • C# – C# je jazyk založený na systéme Windows, ktorý je súčasťou .NET framework od spoločnosti Microsoft. Je úzko prepojený s jazykmi Java a C++, a ak sa naučíte jazyk Java, môžete rýchlo prejsť na jazyk C#. Tento jazyk je užitočný najmä pre vývojárov pracujúcich so softvérom pre Windows alebo Windows Phone.
  • Objective-C – ďalší príbuzný jazyka C, ktorý je špeciálne navrhnutý pre systémy Apple. Zaznamenáva obrovskú popularitu v aplikáciách pre iPhone a iPad. Je to skvelý jazyk, ktorý sa môžete naučiť ako freelancer.
  • Python – Je to neuveriteľne jednoduchý jazyk na naučenie, jeden z najjednoduchších. Python sa špecializuje na vývoj webových stránok.
  • PHP – Nie je to presne vývoj softvéru, ale PHP je nevyhnutné, ak sa chcete venovať vývoju webových stránok. Pre vývojárov PHP je vždy veľa práce, hoci nie je taká lukratívna ako vývoj softvéru.


Nájdite zdroje, ktoré vám pomôžu pri učení. Väčšina kníhkupectiev má celé sekcie venované knihám o programovaní a na Amazone a iných elektronických obchodoch sú ich k dispozícii tony. Dobre napísaná kniha o programovaní bude pravdepodobne najlepším zdrojom informácií, ktorý môžete mať, a umožní vám rýchlo na ňu odkazovať pri práci na projektoch.

  • Okrem kníh je internet nekonečnou pokladnicou príručiek a návodov. Vyhľadajte si návody na zvolený jazyk na stránkach, ako sú CodeAcademy, Code.org, Bento, Udacity, Udemy, Khan Academy, W3Schools a mnoho ďalších.


Absolvujte niekoľko kurzov. Hoci na to, aby ste sa mohli pustiť do vývoja softvéru, nepotrebujete úplné vysokoškolské vzdelanie, neuškodí vám absolvovať niekoľko kurzov na miestnej komunitnej vysokej škole alebo vo vzdelávacom centre. Získate tak výhodu individuálnej výučby a budete musieť riešiť problémy, ktoré by ste pravdepodobne neriešili, keby ste sa učili sami.

  • Triedy stoja peniaze, preto sa uistite, že sa zapisujete do tried, ktoré vám pomôžu naučiť sa to, čo chcete vedieť.
  • Hoci mnohí vývojári môžu vstúpiť do odvetvia len na základe svojich schopností, pomôžete si vyniknúť, ak máte bakalársky titul v oblasti informatiky zo štvorročnej univerzity. Titul vám poskytne širšie vedomostné zázemie a umožní vám prístup k ďalším užitočným kurzom, napríklad matematiky a logiky.


Pracujte na domácich projektoch. Skôr ako sa začnete snažiť uplatniť svoje nové programátorské zručnosti v reálnej práci, pracujte na niekoľkých projektoch pre seba. Vyzvite sa na riešenie problémov pomocou svojho programovacieho jazyka. Pomôže to nielen rozvíjať vaše zručnosti, ale aj budovať životopis.

  • Napríklad namiesto toho, aby ste používali program na organizáciu kalendára v počítači, skúste si navrhnúť vlastný!
  • Ak sa zaujímate o vývoj videohier, pracujte na jednoduchých hrách, ktoré sa nezameriavajú na grafiku alebo zložité mechaniky. Namiesto toho sa zamerajte na to, aby boli zábavné a jedinečné. Zbierka malých hier, ktoré ste sami vytvorili, bude vo vašom portfóliu vyzerať skvele.

ODBORNÁ RADA

Gene Linetsky, MS

Zakladateľ startupu & Riaditeľ inžinierstva Gene Linetsky je zakladateľ startupu a softvérový inžinier v oblasti Sanfranciského zálivu. V technologickom priemysle pracuje už viac ako 30 rokov a v súčasnosti je riaditeľom technického oddelenia v technologickej spoločnosti Poynt, ktorá vytvára inteligentné terminály na predajných miestach pre podniky. Gene Linetsky, MS
Zakladateľ startupu & Inžiniersky riaditeľ

Praktické skúsenosti sú vaším najlepším nástrojom na učenie. Podľa Gena Linetského, softvérového inžiniera a zakladateľa startupu: „Byť softvérovým inžinierom neznamená mať schopnosť programovať; je to všetko ostatné, čo je potrebné na to, aby sa z vášho kódu stal skutočný produkt, ktorý používajú skutoční ľudia. Keď to potom urobíte, vaši klienti sa zvyčajne vrátia a povedia: „Toto nefunguje“ alebo „Toto nefunguje“.‘ Cyklus údržby vlastných vecí je skutočným vzdelaním softvérového inžiniera.


Pýtajte sa otázky. Internet je fantastický spôsob, ako sa spojiť s inými vývojármi. Ak sa pri niektorom zo svojich projektov zaseknete, požiadajte o pomoc na stránkach, ako je StackOverflow. Uistite sa, že sa pýtate inteligentným spôsobom a môžete dokázať, že ste už vyskúšali niekoľko možných riešení.


Cvičte každý deň. Pracujte na svojich obľúbených projektoch každý deň, aj keď len hodinu. Pomôže vám to zostať svieži a neustále sa učiť nové techniky. Mnohí vývojári dosiahli úspech pri učení sa jazyka tým, že si zabezpečili jeho každodenné používanie.[2]

  • Každý deň si stanovte čas, ktorý môžete venovať kódovaniu, alebo si stanovte termín, do ktorého musíte byť hotový. Snažte sa pracovať na svojich projektoch každý deň počas týždňa, aby ste si cez víkend mohli oddýchnuť.

2. časť z 3: Vývoj programu


Brainstorming nápadov. Dobrý program bude vykonávať úlohu, ktorá používateľovi uľahčí život. Pozrite sa na softvér, ktorý je v súčasnosti k dispozícii pre úlohu, ktorú chcete vykonávať, a zistite, či existujú spôsoby, ako by mohol byť proces jednoduchší alebo plynulejší. Úspešný program je taký, v ktorom používatelia nájdu veľa užitočného.

  • Preskúmajte svoje každodenné úlohy v počítači. Existuje nejaký spôsob, ako by ste mohli časť týchto úloh automatizovať pomocou programu?
  • Zapíšte si každý nápad. Aj keď sa to v danom momente zdá hlúpe alebo obskúrne, môže sa to zmeniť na niečo užitočné alebo dokonca geniálne.
  • Preskúmajte iné programy. Čo robia? Ako by to mohli urobiť lepšie? Čo im chýba? Odpovede na tieto otázky vám môžu pomôcť prísť s nápadmi na vlastné spracovanie.


Napíšte dokument s návrhom. V tomto dokumente uvediete funkcie a to, čo chcete projektom dosiahnuť. Odvolávanie sa na návrhový dokument počas procesu vývoja vám pomôže udržať projekt na správnej ceste a sústrediť sa. Podrobnosti o písaní dokumentu nájdete v tejto príručke.


Vytvorte prototyp. Ide o základný program, ktorý ukazuje funkčnosť, ktorú chcete dosiahnuť. Prototyp je rýchly program a mal by sa iterovať, kým nenájdete návrh, ktorý funguje. Ak napríklad vytvárate program na tvorbu kalendára, vaším prototypom bude základný kalendár (so správnymi dátumami!) a spôsob, ako doň pridať udalosti.

  • Váš prototyp sa bude počas vývojového cyklu často meniť, keď prídete na nové spôsoby riešenia problémov alebo vás neskôr napadne nápad, ktorý chcete začleniť.
  • Prototyp nemusí byť pekný. V skutočnosti by umenie a dizajn mali byť jednou z posledných vecí, na ktoré sa sústredíte. Ak opäť použijeme príklad kalendára, váš prototyp by mal byť s najväčšou pravdepodobnosťou len text.


Testujte ho znova a znova. Chyby sú postrachom každého vývojára. Chyby v kóde a neočakávané použitie môžu v hotovom produkte spôsobiť najrôznejšie problémy. Keď budete na projekte ďalej pracovať, čo najviac ho testujte. Urobte všetko pre to, aby ste ho rozbili, a potom sa pokúste zabrániť jeho rozbitiu v budúcnosti. Nechajte priateľov a rodinu otestovať váš program a nahlásiť výsledky. Každý spôsob, akým môžete získať spätnú väzbu, pomôže vášmu vývojovému procesu.

  • Ak sa váš program zaoberá dátumami, skúste zadávať nepárne dátumy. Naozaj staré dátumy alebo dátumy z ďalekej budúcnosti môžu v programe vyvolať zvláštne reakcie.
  • Zadávajte nesprávny druh premenných. Ak máte napríklad formulár, ktorý sa pýta na vek používateľa, zadajte namiesto neho slovo a uvidíte, čo sa stane s programom.
  • Ak má váš program grafické rozhranie, kliknite na všetko. Čo sa stane, keď sa vrátite na predchádzajúcu obrazovku alebo kliknete na tlačidlá v nesprávnom poradí?


Vyleštite svoje projekty. Hoci je dobré vytvoriť hrubý projekt pre fázu prototypovania a vývoja, ak chcete, aby ho používali aj ostatní, budete musieť venovať nejaký čas lešteniu. To znamená, že sa uistite, že ponuky logicky plynú, používateľské rozhranie (UI) je čisté a ľahko sa používa, nie sú v ňom žiadne do očí bijúce alebo do očí bijúce chyby a že je pokryté pekne vyzerajúcou povrchovou úpravou.

  • Návrh používateľského rozhrania a funkčnosť môžu byť veľmi náročné a zložité. Ľudia si z navrhovania používateľských rozhraní robia celé kariéry. Len sa uistite, že váš osobný projekt sa ľahko používa a je jednoduchý na pohľad. Profesionálne používateľské rozhranie nemusí byť možné bez rozpočtu a tímu.
  • Ak máte rozpočet, existuje veľa grafikov na voľnej nohe, ktorí by pre vás potenciálne mohli navrhnúť používateľské rozhranie na zákazku. Ak máte solídny projekt, o ktorom dúfate, že sa stane ďalšou veľkou vecou, nájdite dobrého dizajnéra používateľského rozhrania a urobte ho súčasťou svojho tímu.


Umiestnite svoje projekty na GitHub. GitHub je komunita s otvoreným zdrojovým kódom, ktorá vám umožňuje zdieľať svoj kód s ostatnými. Umožní vám to získať prehľad o vlastnom kóde, ako aj využiť ho pre ostatných, ktorí hľadajú riešenia, ktoré ste možno vymysleli vy. GitHub je skvelý zdroj učenia, ako aj dobrý spôsob, ako si vybudovať portfólio.


Distribuujte svoj softvér. Keď budete mať hotový produkt, môžete sa rozhodnúť, či ho chcete distribuovať alebo nie. V súčasnosti existuje množstvo spôsobov, ako to môžete urobiť, v závislosti od typu vytvoreného softvéru.

  • Jedným z najbežnejších spôsobov, ako malé tímy alebo nezávislí vývojári distribuujú svoj softvér, je osobná webová stránka. Uistite sa, že všetky vaše funkcie sú dobre zdokumentované, a pripojte niekoľko snímok obrazovky a návodov. Ak svoj softvér predávate, uistite sa, že máte dobrý digitálny platobný systém a server, z ktorého budete softvér distribuovať.
  • Ak vyvíjate softvér pre konkrétne zariadenie alebo operačný systém, existuje viacero digitálnych obchodov, ktoré môžete použiť. Ak napríklad vytvárate softvér pre zariadenia so systémom Android, môžete svoju aplikáciu predávať prostredníctvom obchodu Google Play, obchodu Amazon App Store alebo vlastnej webovej stránky.

Časť 3 z 3:Získavanie práce


Prijímajú zmluvné pracovné miesta. Hoci tieto práce nebudú tak dobre platené a sú menej spoľahlivé ako zamestnanie na plný úväzok, môžete si výrazne zväčšiť svoje portfólio prijatím série zmluvných prác. Pri hľadaní práce si pozrite stránky ako Elance a ODesk (teraz známe aj ako „Upwork“). Aj keď môže byť ťažké dostať sa do úvahy pri uzatváraní zmluvy, po získaní prvej zmluvy to bude oveľa jednoduchšie.

  • Hacker News je skvelým zdrojom informácií o pracovných miestach na zmluvu a na voľnej nohe. Pozrite si sekciu „Ask“ (Spýtajte sa).
  • Aj keď môže byť lákavé ponúknuť nízku cenu, aby ste získali zmluvnú prácu, nepredávajte svoje služby nakrátko. Nielenže nakoniec budete pracovať viac za menej, ako si zaslúžite, ale aj rozhneváte ostatných vo svojom odbore, čo povedie k menšiemu počtu nadviazaných kontaktov.
  • Dobrá práca na dohodu môže niekedy viesť k pozícii na plný úväzok. Vždy vystupujte čo najlepšie!


Nadväzujte čo najviac kontaktov. Zúčastnite sa čo najväčšieho počtu konferencií a hackerských podujatí. Nielenže sa tak zoznámite s väčším množstvom kódu a problémov, ktoré treba riešiť, ale pomôže vám to aj spoznať ďalších ľudí z odvetvia. Napriek tomu, čo si možno myslíte o programátoroch, ktorí pracujú sami vo svojej pivnici, väčšina vývojárov na plný úväzok je súčasťou tímu a vytváranie sietí je rovnako dôležité ako v akejkoľvek inej oblasti.


Uchádzajte sa o pozície na plný úväzok. Keď budete mať za sebou niekoľko zmluvných prác, môžete začať posielať svoj životopis a portfólio väčším organizáciám s cieľom získať zamestnanie na plný úväzok. Okrem portálov Monster a Indeed existuje celý rad webových stránok zameraných na prácu pre vývojárov, ktoré by ste mali sledovať, vrátane GitHub Jobs, StackOverflow Job Board, AngelList, CrunchBoard, Hirelite a Hacker News.


Diverzifikujte svoje zručnosti. Dobrý softvérový vývojár zvyčajne ovláda viac ako jeden jazyk. Hoci sa veľa z toho, čo sa naučíte, naučíte v práci, využite časť voľného času na rozšírenie svojich vedomostí a naučte sa základy ďalšieho jazyka alebo dvoch jazykov. To vám uľahčí prechod na nové projekty a urobí z vás oveľa žiadanejšieho kandidáta na zamestnanie.


  • Nebojte sa o plat. Nie každá základná práca v oblasti vývoja softvéru prinesie šesťmiestny plat. V skutočnosti nikto z nich nebude. Dobrou vecou pri vývoji softvéru je však to, že trh práce je neuveriteľne silný. Ak máte pocit, že na mieste, kde pracujete, nezarábate dostatočne, je relatívne jednoduché prejsť na novú pozíciu v novej spoločnosti (ak máte potrebné zručnosti). Považujte niekoľko prvých zamestnaní za potrebné skúsenosti namiesto toho, aby ste sa sústredili na svoj dôchodkový plán.
  • Odkazy