Studentų gyvenimas prieš gyvenimą devintąjį gyvenimą - 7 dalykai, susiję su darbu technikoje, norėčiau, kad būčiau žinomas kolegijoje

Būdamas 23 metų mano gyvenimas buvo kupinas perėjimo - nuo mažens iki K-12 lankymo, išvykstant į kolegiją ir galiausiai įsidarbinant. Iki šiol maždaug trečdalis mano gyvenimo buvo skirta mokyklai ir švietimui, todėl nemanau, kad patyriau didesnį perėjimą, baigęs CS programą ir įsidarbinęs programinės įrangos kūrėju.

Taigi, kaip informatikos studijos skiriasi nuo faktiško darbo programinės įrangos inžinieriumi technologijų pramonėje? Manau, kad didžiausias neatitikimas yra tas, kad mano išsilavinimas buvo teorinis, jo tikslas buvo parodyti pagrindines sąvokas. Tačiau įmonių sprendimai yra orientuoti į keičiamo dydžio, patikimus ir prižiūrimus pastatų projektus, kuriuos ne visada apima mokykla. Nors aš daug ko išmokau iš savo ketverių metų informatikos programos, darbo metu turėjau užpildyti daug spragų.

Ir aš žinau, kad nesu vienas. Taigi maniau, kad būtų naudinga paaiškinti kai kuriuos skirtumus, kuriuos patyriau, ir išsiaiškinti kai kuriuos klaidingus sprendimus, kurie siekia programinės įrangos inžinierių, studijuojančių CS kolegijoje.

1. Darbo laikas nesustoja su laipsniu

Kolegijos metu lankiau daugybę darbo valandų. Daugybę kartų profesoriai rašė neaiškias užduotis ir reikalavimus, o TA pagalba buvo labai svarbi mano kursinių darbų sėkmei. Tačiau bėgimas per universiteto miestelį sėdėti eilėje, norint sugauti tik keletą minučių kažkieno laiko, buvo labai varginantis. Baigusi studijas man palengvėjo, kad nebereikia jaudintis dėl darbo valandų. Todėl nustebino tai, kad, kaip paaiškėjo, vis tiek turėjau lankyti darbo laiką ... Mes jiems tiesiog daugiau nebeskambiname.

Kaip atrodo darbo laikas įmonės technologijų įmonėje? Mano komandos produktas naudoja du vidinius projektus, kai kyla klausimų apie juos, kreipiamės į jų komandos narius. Tačiau jie ne visada yra prieinami iš karto, nes gali būti užsiėmę savo darbu. Tačiau jie kelis kartus per savaitę rengia darbo valandas, kad padėtų atsakyti į klausimus ir patarti. Paaiškėjo, kad šių darbo valandų lankymas yra geriausias būdas atsikratyti mūsų problemų.

Taip pat pastebėjau, kad yra daug panašumų tarp darbo valandų universitete ir darbo vietos.

  • Pavyzdžiui, dėstytojai kartais nepateikia visos informacijos užduoties puslapyje. Panašiai ir vidinių, ypač naujesnių, įrankių dokumentacija dažnai nėra tokia išsami, kaip galėtų būti. (universali dokumentų pateikimo problema apskritai)
  • Mano universitete buvo atvejų, kai užduoties puslapiai buvo modifikuoti dėl darbo valandos. Panašiai aš turėjau pasakyti, kad darbo valandomis žmonės man sakė, kad daiktai turėtų būti pridedami prie jų dokumentų remiantis mūsų diskusija. Puiku žinoti, kad padedu paaiškinti dalykus kitoms komandoms (ar studentams).
  • Kitas panašumas yra tas, kad dažnai yra linija, kaip gauti pagalbą. Daugelis žmonių ir komandų naudoja tuos pačius vidinius projektus. Panašiai daugelis studentų dirba ta pačia užduotimi. Aš manau, kad niekas neturi imuniteto, kai reikia susidurti su laukimu. Tačiau paprašius pagalbos anksti ir parodžius šiek tiek kantrybės, šis procesas tampa geresnis.

2. Kalbos žinovas! = Ekspertas programinės įrangos inžinierius

Didelė klaidinga nuomonė, kad žinau daug naujų ar trokštančių informatikos studentų, yra ta, kad programavimo kalbos yra priemonių pabaiga. Tiesiog perskaitę ar įsiminę knygą „Java“ ar „C ++“ jie taps patyrę ekspertai. Niekas negalėjo būti toliau nuo tiesos.

Programavimo kalbos yra tik įrankiai darbui atlikti. Panašiai kaip grąžtas yra statybininkui, būtų kvaila manyti, kad namą galima statyti įsimenant nurodyto įrankio naudojimo vadovą. Programinės įrangos kūrimas veikia taip pat. Programavimo kalba yra kažkas, ko mes išmokstame atlikti užduotį, tačiau tai nėra vienintelis dalykas, kurio mums reikia, nes inžinieriai turi suprasti sistemas ir suprojektuoti savo sprendimus prieš pradėdami kurti.

Tiesą sakant, didžiulis sunkus darbas kuriant programinę įrangą yra susijęs su projektavimu, o ne įgyvendinimu. Netgi diegimo požiūriu programavimo kalbos įsiminimas gali būti ne toks naudingas, kaip galima manyti. Internete yra daug šaltinių, kurie jums padės. Pvz., Aš nuolat žinau, kaip daryti dalykus tam tikru būdu, tam tikra kalba, ir internete ieškau pavyzdžių, kad galėtume pritaikyti problemą.

Būti programinės įrangos inžinieriumi reiškia, kad reikia nuolat mokytis. Aš tai vertinu kaip teigiamą dalyką. Būtų nuobodu - bent jau man - išlikti tokiems pat ir po studijų niekada neišmokti nieko naujo.

3. Ne viskas, ko išmokote savo CS programoje, nebus pripratusi

Įprastas informatikos išsilavinimas yra labai tankus ir apima daug pagrindų. Aš tai vertinu kaip skirtingų temų išsklaidymą, pradedant nuo 101 programavimo, duomenų bazių, operacinių sistemų ir visko, kas yra tarp jų. CS studentams pabrėžus, kad jie turi tiek daug išmokti / atsiminti, siūlau šiek tiek palengvinti - jums nebereikės visko, kai tik pradėsite dirbti programinės įrangos inžinieriumi.

Viena svarbi koncepcija, kurios jums reikės iš savo CS programos, yra abstrakcija, apibrėžta kaip programinės įrangos funkcijų diegimo ar foninės informacijos slėpimas. Kompiuterija yra apie abstrakcijos sluoksnius. Pvz., Kai naudojate kompiuterį, jums nereikia tiksliai žinoti, ką daro jūsų kompiuteris (pvz., Tvarkyti procesus ar atmintį), kad jis galėtų atlikti užduotį, kurią norėjote atlikti. Programinės įrangos inžinerija veikia taip pat. Pvz., Jei esate „end-end“ kūrėjas, jums nebūtinai reikia žinoti, kaip sąsajos su API yra vadinamos duomenų baze, o tik tas, kokias funkcijas galite atlikti.

Be to, daugumai programinės įrangos inžinierių nereikia žinoti visos informacijos apie operacines sistemas, kompiliatorius ar aparatinę įrangą, kuri paleidžia jūsų kompiuterį, nes visa tai yra abstrahuota. Tiesą sakant, skaičiavimas yra toks sudėtingas, kad beveik neįmanoma išsamiai žinoti kiekvienos kompiuterijos temos ir abstrakcijos. Kai kurie jūsų lankomi kursai nebus taikomi jūsų dienos darbe. Pavyzdžiui, kolegijoje man labai patiko kompiuterių inžinerija. Man teko lankyti daug žemo lygio grandinių ir mikroprocesorių kursų, tačiau man nereikia tų žinių pritaikyti kasdieniniame darbe.

Be to, daugelis CS programų neapima net daugelio pagrindinių temų, kurias programinės įrangos inžinieriai turi žinoti atlikdami kasdienius darbus. Pvz., Neturėjau kurso, apimančio versijų valdymą, nenutrūkstamą integracijos / diegimo vamzdynus, debesų kompiuteriją, judrų tobulinimą ir kt. Kaip jau minėjau anksčiau, mokyklos daugiausia dėmesio skiria teorijos mokymui, o ne programinės įrangos inžinerijos pramonės praktikai ir taikomosioms programoms. Nepaisant to, kokie svarbūs šie įrankiai ir technologijos šiuolaikiniam programinės įrangos inžinieriui.

4. Programinės įrangos inžinerija yra komandinė sporto šaka

Yra paplitusi klaidinga nuomonė, kad programinės įrangos inžinerija yra vienišų žmonių karjera. Tuo nesunku patikėti, nes programinės įrangos inžinieriai didelę dienos dalį praleidžia žiūrėdami į ekraną, dažniausiai klausydamiesi muzikos. Tačiau programinės įrangos inžinerija iš tikrųjų yra komandinis sportas, kur svarbiausia yra bendravimas. Kiekvieną dieną bendradarbiauju su įvairiais žmonėmis ir komandomis, kad mano darbas būtų atliktas.

Pvz., Aš dažnai turiu dirbti kartu su kitais inžinieriais, nes mūsų darbas turi priklausomybių, turiu paaiškinti reikalavimą produkto savininkui, iškelti kliūčių pas savo „scrum“ meistrą arba patikrinti, ar mano įgyvendinimas yra teisingas, atsižvelgiant į mūsų technologijos lyderį. Apibūdinčiau procesą kaip savarankišką darbą, tačiau norint išeiti iš darbo reikia išeiti ir bendradarbiauti su žmonėmis. Manau, kad yra gera pusiausvyra tarp bendravimo su žmonėmis ir galimybės atsisėsti ir dirbti savarankiškai, norint atlikti užduotį.

Tai priešingai nei mokykla, nes dažniausiai projektai rengiami ir baigiami savarankiškai, o jei nepavyksta išlaikyti testo ar klasės, tai paprastai nedaro jokios įtakos kitam klasės atstovui. Kada paskutinį kartą kartu rašėte baigiamąjį rašinį ar laikėte baigiamąjį egzaminą su komanda? Ir vis dėlto programinės įrangos inžinerija yra ta, kuri turi blogą rep ...

5. Esė rašymas ir kodo rašymas yra panašesni, nei jūs manote

Turėdama maždaug metų profesinio tobulėjimo patirtį, supratau, kad programinės įrangos rašymas turi daug ką bendro su rašinių rašymu. Palyginkite programinės įrangos kodą su straipsnio ar knygos proza. Yra begalinis būdas komponuoti savo žodžius perteikiant pranešimą, tačiau kai kurie jų yra veiksmingesni, glaudesni ir patrauklesni skaitytojui geresniais būdais.

Programinė įranga yra ta pati. Kai kurias funkcijas galite įdiegti įvairiais būdais, tačiau vieną iš variantų turite pasirinkti geriausią. Manau, kad tai nepatikimai rašytojai ir kūrėjai - tai sudėtinga mintis - susiejant krūvą pažengusių žodžių, kad pabandytum padaryti įspūdį savo skaitytojui, padarysi tavo prozą per daug painią. Tai panašu į per daug sudėtingo ir sunkiai sekamo sprendimo kodavimą.

Vienas dalykas, kurį sužinojau apie programinės įrangos inžineriją, yra tas, kad kodas yra dažniau skaitomas nei rašomas. Tai reiškia, kad komandos draugai turi suprasti jūsų parašyto kodo logiką. Taigi, panašiai kaip rašydamas, manau, kad geriausia yra siekti paprastumo, nes tai palengvins jūsų kodo supratimą ir išlaikymą ateityje.

Tačiau kartais turime skambinti griežtai dėl laiko, išlaidų ar kitų verslo ir techninių apribojimų, kurie galėtų paveikti mūsų idealų sprendimą. Tokiais atvejais, kaip inžinieriui, svarbu išdėstyti galimų sprendimų pranašumus ir trūkumus, norint pasirinkti optimaliausią kelią, nesvarbu, ar tai yra pats elegantiškiausias sprendimas, ar ne.

6. Programinės įrangos reikalavimai dažnai yra ne tokie aiškūs kaip užduotys mokykloje

Idealiu atveju mokykloje jums pavestoms užduotims buvo keliami labai aiškūs reikalavimai (jei turėjote kompetentingą profesorių, tai yra). Jums nereikėjo to permąstyti, reikėjo tik susitelkti, kad jūsų kodas veiktų ir būtų atlikti visi funkciniai reikalavimai. Technologijų pramonėje tokia prabanga ne visada egzistuoja. Ypač atsiradus judriam programavimui, jūs dažnai žinote tik reikalavimus, susijusius su šiuo metu jums priskirtomis užduotimis, o produktų savininkai dažnai grįžta ir keičia tuos reikalavimus pagal poreikį.

Įsivaizduokite chaosą, jei profesoriai galėtų tai padaryti - jūs baigėte projektą, bet jis grįžta sakydamas, kad užduotis pasikeitė. Dabar, kai galvoju apie tai, galbūt jie turėtų ...

Tikrajame judraus vystymosi pasaulyje yra idealu galvoti, kad iš anksto turėsite visus reikalavimus, kurių jums reikia. Įmonės vykdo šį procesą norėdamos pateikti kartojamus atsiliepimus apie savo kuriamus produktus. Naudotojai gali pakeisti savo nuomonę apie funkciją arba rinka gali pasikeisti, todėl gaminių savininkams reikės perjungti pavaras. Šie scenarijai, žinoma, neįvyksta klasių projekte, ir naujiems specialistams gali būti sunku prisitaikyti prie šio darbo būdo baigus studijas. (Bet jūs ne todėl, kad skaitėte šį įrašą, tiesa?)

7. Pasiruošimas programinės įrangos inžinerijos pokalbiams gali būti klaidinantis

Paklauskite standartinio CS studento, kaip jie ruošiasi pokalbiams, ir jis paminės duomenų struktūrų ir algoritmų studijas. Daugelis technologijų kompanijų į interviu įtraukia „lentos“ programavimo klausimus, dažniausiai tuos, kurie užduoda tokius klausimus, kaip susieto sąrašo atšaukimas ar dvejetainių medžių apvažiavimas. Daugybė tikriausių programinės įrangos inžinerijos darbų, naudojamų kandidatams įvertinti jų technines galimybes ir mąstymo procesą, nėra tokie sudėtingi manipuliavimai duomenų sistemomis. Tai gali klaidinti studentus, nes būtent taip jie yra mokomi studijuoti programinės įrangos inžinerijos pokalbius.

Tiesą sakant, sakyčiau, kad daug programinės įrangos inžinerijos darbų iš tikrųjų sujungia dalykus. Pvz., Jei API turėsite galimybę paskambinti į duomenų bazę ar kitą API, o kliento klientas galės prisijungti prie serverio, kuris jungiasi prie jūsų duomenų bazės ir pan., Atrodo, paprasta, tačiau norint įsitikinti, ar iš tikrųjų reikia įdėti daug darbo. gabalas gali patenkinti prašymą, kad kitas asmuo praeitų. Nors svarbu mokėti perduoti standartinį interviu, nepamirškite įgūdžių ir minčių procesų, kuriuos turėsite naudoti, kai nusileisite pirmajam darbui. kolegija.

Sudėjus visa tai kartu

Aš užaugau taip įpratusi lankyti užsiėmimus, kad pradėjus dirbti buvo rimtas įpročio pakeitimas. Mokykloje jūsų tikslas yra išmokti ir gauti gerus pažymius. Darbe jūsų tikslas yra padėti įmonei pasiekti tikslą. Didžiausias dėmesys skiriamas ne jums, bet ne šiaip sau, o tam, kaip galite prisidėti prie savo komandos. Klasėje jūsų sėkmė nepriklauso nuo šalia jūsų esančio mokinio. Tačiau darbo vietoje, kur rizikuoja visas jūsų projektas, esate labai priklausomas nuo bendraamžių darbo, kad padarytumėte reikalus ir įgyvendintumėte savo tikslus.

Džiaugiuosi, kad sugebėjau rasti vystymo darbą tiesiai iš universiteto per „Capital One“ technologijų plėtros programą. „Capital One“ daug dėmesio skiria geriausių įmanomų vystymo komandų turėjimui. Aš išmokau tiek daug iš čia buvimo.

ATSKLEIDIMO PAREIŠKIMAS: Šios nuomonės yra tos pačios autorės. Jei šiame pranešime nenurodyta kitaip, „Capital One“ nėra susijusi su jokia iš paminėtų bendrovių ir jai jos nepatvirtina. Visi naudojami ar rodomi prekių ženklai ir kita intelektinė nuosavybė priklauso jų savininkams. Šis straipsnis yra © 2018 „Capital One“.