Ak by ste sa ma pred rokom opýtali, čo urobil softvérový inžinier, povedal by som niečo v zmysle „riešenia problémov pomocou kódu“. Je to jednoduchá odpoveď, ktorá poukazuje na to, ako sa hodnotí práca, ktorú vyrábame. Pre inžinierov v tímoch riadených produktom by tieto problémy mohli zahŕňať spôsob implementácie nová funkcia, ktorú zákazníci požadovali alebo ako zlepšiť výkon existujúcich funkcií.





Ak by ste mi dnes položili rovnakú otázku, odpovedal by som trochu inak. Softvéroví inžinieri majú za úlohu riešiť správne problémy prostredníctvom kódu – a keď sa vyriešia efektívne, dosahujú obchodné ciele. Zistiť, ktoré problémy vyriešiť a ako ich vyriešiť, je najdôležitejšou súčasťou práce vývojára, pričom skutočné detaily implementácie sú druhoradé.




anjel číslo 99 význam

Moja cesta k softvérovému inžinierstvu

O programovanie som sa začal zaujímať po absolvovaní kurzu v Kód horného riadku leto pred prvým ročníkom na vysokej škole. Túto príležitosť som dostal cez program vysokej školy a kariérnej pripravenosti, ktorého som sa zúčastnil Sieť príležitostí .



Upperline Code bol môj prvý úvod do programovania a rýchlo som si uvedomil, že ma zaujíma naučiť sa kódovať. Neskôr v lete som dostal zápisný balíček Notre Dame a prešiel som z College of Arts and Letters na College of Engineering, aby som mohol študovať informatiku (CS).

Niektoré z mojich obľúbených kurzov CS boli Dizajn/Analýza algoritmov, Cloud Computing a Programming Challenges. Problémy boli zaujímavé a profesori boli skvelí v prezentovaní nových nápadov a vysvetľovaní pojmov.

Počas celého štúdia som vedel, že chcem pracovať ako softvérový inžinier a využívať technické zručnosti, ktoré som získal. Našťastie, v lete pred posledným ročníkom som mal možnosť stážovať ako softvérový inžinier v spoločnosti Sung a spárujte program s ďalšími inžiniermi, aby ste pomohli poskytovať funkcie.



Moje skúsenosti zo stáže spolu s povzbudzujúcimi rozhovormi od mojich profesorov mi dodali sebadôveru, aby som sa neuspokojil so žiadnou inou úlohou, keď som sa prvýkrát začal uchádzať o prácu. Po množstve času strávenom v úradných hodinách som v roku 2021 promoval s titulom CS a prijal ponuku stať sa pridruženým softvérovým inžinierom tu na adrese Sprout Social .



  Julius Boateng a skupina kolegov zo Sprout Social

Usadenie sa v sociálnej sieti Sprout

Súčasťou nového postavenia a nového v spoločnosti bolo, že sme si museli rozvinúť všeobecné zručnosti softvérového inžinierstva, ako aj znalosti špecifickej domény Sprout. Zistil som, že najjednoduchšie sa mi riešia úlohy, ktoré si vyžadujú všeobecné znalosti programovania. Úlohy, ktoré si vyžadovali znalosť architektúry Sprout, mi však trvalo dlho a musel som sa spoľahnúť na pomoc svojho tímu. Aj keď existujú problémy, ktoré môžete vyriešiť čítaním dokumentácie online, nemôžete vždy nájsť informácie, ktoré sú relevantné pre prácu, ktorú robíte – schopnosť požiadať ostatných o radu je rozhodujúca.

Jedna z prvých vecí, ktorá ma zaujala, keď som sa pripojil k Sprout, bol proces vývoja založený na spolupráci. Vedel som, že vývoj funkcií si vyžaduje celé tímy, ale nevedel som, ako to vyzerá v praxi. Rýchlo som si uvedomil, že vydanie úspešnej funkcie si vyžaduje spoluprácu mnohých ľudí v rôznych rolách – od produktových manažérov, ktorí definujú požiadavky projektu, až po dizajnérov vytvárajúcich makety a inžinierov implementujúcich funkcie. Spolupráca nebola voliteľná, ale nevyhnutná pri dosahovaní cieľov nášho tímu.



  Fotografia spolupracovníkov Julius Boating a Sprout mimo Calderu's Flamingo statue in downtown Chicago

Naučiť sa, ako sa orientovať v rôznych kódových základniach a vybudovať mentálny model toho, ako rôzne služby vzájomne interagujú, predstavovalo strmú krivku učenia. Keďže hlavnou činnosťou spoločnosti Sprout je softvér, jej architektúru výrazne ovplyvňujú jej obchodné požiadavky. Keď som sa rozbiehal, musel som si uvedomiť, aké obchodné problémy sa vývojári snažili vyriešiť a prečo boli prijaté predchádzajúce architektonické rozhodnutia.



Spočiatku som bol trochu vystrašený z toho, že žiadosti o stiahnutie vyžadovali kontroly predtým, ako ich bolo možné zlúčiť do kódovej základne. Pochopenie, že hlavným účelom kontroly kódu je zdieľanie znalostí a udržiavanie štandardov kódu, pomohlo zmeniť môj pohľad.



Kontrola kódu mi pomohla vylepšiť si technické zručnosti a zlepšiť kvalitu mojich požiadaviek na stiahnutie. Skutočne mi pomohlo, že mi kolegovia radili, čo zmeniť, predstavili mi nové vzory a nasmerovali ma na relevantné oblasti kódovej základne. Čítanie požiadaviek iných inžinierov mi tiež poskytlo cenný prehľad o iných službách, na ktorých priamo nepracujem.

Dôležité sú vaše predchádzajúce skúsenosti

Prevláda názor, že keď vstupujete do nových etáp života, na vašich predchádzajúcich skúsenostiach už nezáleží. Akonáhle vstúpite na vysokú školu, vaše stredoškolské skúsenosti už nebudú dôležité. Akonáhle vstúpite do pracovného procesu, na vašich vysokoškolských skúsenostiach už nezáleží.

Ale niečo, čo sa často prehliada, je, že naše skúsenosti, vedomosti a zvyky majú zložený účinok. Zvyčajne sme schopní dosiahnuť nové veci iba vďaka práci, ktorú sme vykonali predtým. Znalosti a zručnosti, ktoré som predtým získal, výrazne ovplyvnili môj prístup k novým výzvam ako softvérový inžinier na základnej úrovni.

Triedy počas bakalárskeho štúdia, ktoré mali najpriamejší vplyv na moju každodennú prácu v Sprout, boli Programovacie výzvy a Databázové koncepty. Prvý ma naučil, ako rozdeliť veľké problémy na menšie časti, aby som ich vyriešil efektívnejšie. Pomohlo mi to viac sa zamerať na to, ako som štruktúroval svoj kód, a zlepšilo sa mi čitateľnosť kódu.

Databázové koncepty ma naučili základné koncepty relačných databáz a venovali sa témam, ako je návrh schémy databázy a SQL. Naučil som sa písať dopyty, čo bolo mimoriadne užitočné, pretože často potrebujem dopytovať naše databázy, aby som vyriešil problémy alebo odpovedal na otázky.

  Animovaný gif stavebnice robota TurtleBot.

Príležitosti, ktoré som mal mimo triedy, boli rovnako cenné. Java nebola jazykom, ktorým som sa zaoberala väčšinou mojich kurzov, no mal som možnosť na nej pracovať pre obchodný projekt, ktorý viedol jeden z mojich profesorov. Získal som praktické skúsenosti s písaním Java, prácou s databázami MySQL a vytváraním obrázkov Docker. Učenie sa jazyka Java bolo obzvlášť užitočné, pretože väčšina služieb spoločnosti Sprout je napísaná v nej.

Existuje mnoho ďalších zručností, ktoré som získal počas štúdia a ktoré považujem za samozrejmosť, ako je navigácia v príkazovom riadku a pochopenie základných programovacích konceptov. Je bežnou mylnou predstavou, že keďže väčšina tém preberaných v bakalárskom štúdiu je teoretickej povahy, nepripravia vás na kariéru v softvérovom inžinierstve. Som však presvedčený, že opak je pravdou – zručnosti, ktoré sa naučíte v bakalárskom štúdiu, sú dôležité, aj keď nie sú priamo použiteľné pre vašu každodennú prácu.

Informatika je mimoriadne široký odbor

CS pokrýva rôzne špecializácie, ako je umelá inteligencia, strojové učenie a veda o údajoch. Skúsenosti, ktoré získate v bakalárskom štúdiu, slúžia ako základné znalosti, ktoré vám môžu dobre poslúžiť v rôznych pozíciách na základnej úrovni, ktoré sa netýkajú výlučne softvérového inžinierstva. Prechod z vysokoškolského štúdia na pozíciu na plný úväzok poskytuje príležitosť preskúmať, aký druh roly a špecializácie je pre vás ten pravý.

Ak hľadáte začať kariéru v softvérovom inžinierstve , Sprout je skvelé miesto, kde začať.

Zdieľajte So Svojimi Priateľmi: