Saznajte Svoj Broj Anđela
Naučene lekcije kao softverski inženjer početne razine
Da ste me prije godinu dana pitali što je softverski inženjer radio, rekao bih nešto u stilu 'rješavanje problema pomoću koda'. To je jednostavan odgovor koji ukazuje na to kako se ocjenjuje rad koji proizvodimo. Za inženjere u timovima vođenim proizvodom, ovi problemi mogu uključivati kako implementirati nova značajka koju su kupci tražili ili kako poboljšati performanse postojećih značajki.
Da mi danas postavite isto pitanje, dao bih malo drugačiji odgovor. Softverski inženjeri imaju zadatak rješavati prave probleme pomoću koda—a kada se učinkovito riješe, postižu poslovne ciljeve. Odlučiti koje probleme riješiti i kako ih riješiti najvažniji je dio programera, dok su stvarni detalji implementacije sekundarni.
Moj put u softversko inženjerstvo
Zainteresirao sam se za programiranje nakon pohađanja tečaja u Kod gornjeg reda ljeto prije moje prve godine koledža. Dobio sam ovu priliku kroz program spremnosti za fakultet i karijeru u kojem sam sudjelovao Opportunity Network .
Upperline Code bio je moj prvi uvod u programiranje i brzo sam shvatio da me zanima učenje kodiranja. Kasnije tog ljeta dobio sam upisni paket za Notre Dame i prebacio se s College of Arts and Letters na College of Engineering kako bih mogao diplomirati računalne znanosti (CS).
Neki od mojih omiljenih CS tečajeva bili su dizajn/analiza algoritama, računalstvo u oblaku i izazovi programiranja. Problemi su bili zanimljivi, a profesori su bili izvrsni u predstavljanju novih ideja i objašnjavanju pojmova.
Tijekom dodiplomskog studija znao sam da želim raditi kao softverski inženjer i koristiti tehničke vještine koje sam stekao. Srećom, ljeto prije zadnje godine imao sam priliku stažirati kao softverski inženjer u Opjevana i uparite program s drugim inženjerima kako biste pomogli u isporuci značajki.
Moje pripravničko iskustvo, zajedno s ohrabrujućim razgovorima mojih profesora, dali su mi samopouzdanje da ne pristanem ni na jednu drugu ulogu kad sam se tek počeo prijavljivati za posao. Nakon dosta vremena provedenog u uredu, diplomirao sam 2021. s diplomom CS-a i prihvatio ponudu da budem pridruženi softverski inženjer ovdje na Sprout Social .

Smještanje u Sprout Social
Dio toga što sam bio nov u ovoj ulozi i nov u tvrtki bio je razviti i opće vještine softverskog inženjeringa i znanje o domeni specifičnoj za Sprout. Otkrio sam da mi je najlakše riješiti zadatke za čije razumijevanje je potrebno opće znanje programiranja. Međutim, zadaci koji su zahtijevali poznavanje Sproutove arhitekture oduzimali su mi vremena za rješavanje i morao sam se osloniti na pomoć svog tima. Iako postoje neki problemi koje možete riješiti čitanjem dokumentacije na internetu, ne možete uvijek pronaći informacije koje su relevantne za posao koji obavljate - biti u mogućnosti pitati druge za smjernice je ključno.
Jedna od prvih stvari koja mi se istaknula kad sam se pridružio Sproutu bila je koliko je proces razvoja suradnički. Znao sam da su potrebni cijeli timovi za razvoj značajki, ali nisam znao kako to izgleda u praksi. Brzo sam shvatio da izdavanje uspješne značajke zahtijeva mnogo ljudi u različitim ulogama koji rade zajedno - od voditelja proizvoda koji definiraju zahtjeve projekta, do dizajnera koji stvaraju modele i inženjera koji implementiraju značajke. Suradnja nije bila nešto što je bilo izborno, već nužnost u ostvarenju ciljeva našeg tima.

Naučiti kako se kretati kroz različite baze kodova i izgraditi mentalni model o tome kako različite usluge međusobno komuniciraju bila je strma krivulja učenja. Budući da je temeljna djelatnost Sprouta softver, njegova je arhitektura uvelike oblikovana njegovim poslovnim zahtjevima. Dok sam se razvijao, morao sam biti svjestan poslovnih problema koje programeri pokušavaju riješiti i zašto su donesene prethodne arhitektonske odluke.
U početku sam se pomalo bojao da su zahtjevi za povlačenjem potrebni pregledi prije nego što se mogu spojiti u bazu koda. Razumijevanje da je glavna svrha pregleda koda dijeljenje znanja i održavanje standarda koda pomoglo je promijeniti moju perspektivu.
Pregledavanje koda pomoglo mi je u izoštravanju tehničkih vještina i poboljšanju kvalitete mojih zahtjeva za povlačenjem. Bilo mi je od velike pomoći to što su mi kolege davali savjete o tome što promijeniti, upoznavali me s novim obrascima i upućivali me na relevantna područja kodne baze. Čitanje zahtjeva za povlačenjem drugih inženjera također mi je dalo dragocjen uvid u druge usluge na kojima ne radim izravno.
Vaša prethodna iskustva su važna
Prevladava mišljenje da kako ulazite u nove faze života, vaša prethodna iskustva više nisu važna. Nakon što upišete koledž, vaša srednjoškolska iskustva više nisu bitna. Nakon što počnete raditi, vaša iskustva s koledža više nisu bitna.
Ali nešto što se često zanemaruje je da naša iskustva, znanje i navike imaju složeni učinak. Obično možemo postići nove stvari samo zahvaljujući radu koji smo prethodno obavili. Znanja i vještine koje sam prethodno stekao uvelike su utjecali na moj pristup novim izazovima kao programskog inženjera početne razine.
Predavanja tijekom dodiplomskog studija koja su imala najizravniji utjecaj na moj svakodnevni rad u Sproutu bili su Izazovi programiranja i Koncepti baze podataka. Prvi me naučio kako rastaviti velike probleme na manje dijelove kako bih ih učinkovitije riješio. Pomogao mi je da postanem namjerniji u tome kako sam strukturirao svoj kod i poboljšao čitljivost svog koda.
Koncepti baze podataka naučili su me temeljnim konceptima relacijskih baza podataka i pokrili teme kao što su dizajn sheme baze podataka i SQL. Naučio sam pisati upite, što je bilo iznimno korisno jer često moram postavljati upite u naše baze podataka kako bih riješio probleme ili odgovorio na pitanja.

Prilike koje sam imao izvan učionice bile su jednako vrijedne. Java nije bila jezik koji je bio pokriven u većini mojih kolegija, no imao sam priliku raditi na njoj za poslovni projekt koji je vodio jedan od mojih profesora. Stekao sam praktično iskustvo pisanja Jave, rada s MySQL bazama podataka i stvaranja Docker slika. Učenje Jave bilo je posebno korisno jer je većina Sproutovih usluga napisana na njoj.
Mnogo je drugih vještina koje sam stekao tijekom studija i koje uzimam zdravo za gotovo, poput navigacije u naredbenom retku i razumijevanja temeljnih koncepata programiranja. Uobičajena je zabluda da vas neće pripremiti za karijere softverskog inženjera, budući da je većina tema koje se obrađuju na dodiplomskom studiju teorijske prirode. Međutim, vjerujem da je suprotno - vještine koje ste naučili na dodiplomskom studiju važne su, čak i ako nisu izravno primjenjive na vaš svakodnevni rad.
Informatika je izuzetno široko područje
CS pokriva niz specijalizacija kao što su umjetna inteligencija, strojno učenje i znanost o podacima. Iskustvo koje stječete na dodiplomskom studiju služi kao temeljno znanje koje vam može dobro poslužiti u raznim početnim ulogama koje nisu isključivo vezane uz softversko inženjerstvo. Prelazak s dodiplomskog na posao s punim radnim vremenom pruža priliku da istražite koja vrsta uloge i specijalnosti vam odgovara.
Ako želite započeti karijeru u softverskom inženjerstvu , Sprout je odlično mjesto za početak.
Podijelite Sa Svojim Prijateljima: