Så du vil have mit job: Appudvikler

{h1}

Endnu en gang vender vi tilbage til vores Så du vil have mit job serie, hvor vi interviewer mænd, der er ansat i ønskelige job og spørger dem om virkeligheden i deres arbejde og rådgivning om, hvordan mænd kan leve deres drøm.


En masse computer- og software-relaterede koncerter bliver klumpet ind i den samme bundt af karrierer uden nogen reel differentiering. Virkeligheden er dog, at der er en række kald, der inkluderer programmering, udvikling, computersikkerhed osv. Sidste år dækkede vi ind og ud af at være it-professionel. I dag ser vi på appudviklernes verden. Vi talte med Jason Butz, der giver os et kig på, hvad han gør, og hvordan det adskiller sig fra andre programmeringskarrierer.

1. Fortæl os lidt om dig selv (hvor kommer du fra? Hvor gammel er du? Beskriv dit job, og hvor længe du har været ved det osv.).


Jeg blev født og voksede op i Indianapolis, Indiana. Jeg er 26, men nærmer mig hurtigt 27. Jeg er applikationsudvikler, hvilket er en fin måde at sige, at jeg bygger webapplikationer. Jeg har været hos min nuværende arbejdsgiver i næsten 2 år, men jeg har arbejdet professionelt med webapplikationer i cirka 5 år. Jeg har spillet med websteder og webteknologi i min fritid i mere end 15 år.

2. Hvorfor ønskede du at komme ind i applikationsprogrammering / -udvikling? Var det noget, du altid vidste, du ville gøre?


Da jeg voksede op, ville jeg være dyrlæge eller en dyreholder, så det var ikke nøjagtigt det, jeg oprindeligt ønskede. I mellemskolen tog jeg en sommerberigelseklasse, hvor jeg lærte at oprette hjemmesider. Det var stadig 90'erne, og webstederne så ikke godt ud, men jeg var hooked. I gymnasiet tog jeg hver computerklasse, jeg kunne, og lærte mere om webudvikling derhjemme på min egen tid. Jeg tog lektioner om alt fra programmering til bygning og reparation af computere. Jeg var faktisk i stand til at få et par certificeringer. Jeg var ikke helt sikker på, hvad jeg ville gøre, men jeg vidste, at det ville beskæftige sig med computere. Når jeg startede min college-søgning nulstillede jeg en datalogi-grad og regnede ud på college, at jeg var god til webapplikationer og elskede at bygge dem.



3. Kan du definere for os, hvad en applikationsudvikler gør? Det har en tendens til at blive klumpet sammen med en række andre tekniske karrierer. Hvad er det, der definerer din specifikke rolle?


Med titlerne bruger virksomheder ting meget mørke. For eksempel hos det firma, hvor jeg arbejder, kan en applikationsudvikler få forfremmelse til en softwareingeniør, hvor den eneste reelle forskel er den tilgængelige lønskala. Jeg havde et tidligere job, hvor jeg gjorde det samme, men min titel var udvikler / analytiker. Jeg er sikker på, at der er brugt endnu flere titler end dem, men jeg kender dem ikke alle. Det bliver endnu mere kompliceret, når du tager i betragtning, at titlen Software Engineer bruges til job, der ikke nødvendigvis fungerer med webapplikationer, men bare laver en slags programmering.

I mit tilfælde bygger og vedligeholder en applikationsudvikler webapplikationer. I den afdeling, jeg er i, har vi 3-4 primære interne webapplikationer, som vi har bygget og vedligeholder. I en anden afdeling bygger applikationsudviklerne brugerdefinerede webapplikationer for at udvide det produkt og de tjenester, som kunder har købt.


For eksempel er en af ​​vores interne applikationer en projektledelsessuite, der er bygget op omkring vores processer og behov. Et par af udviklerne på mit team er lige færdig med at implementere en massiv eftersyn af vores Gantt-diagramfunktion. Jeg arbejder mig gennem forståelse og opbygning af en kompleks økonomisk rapport, der skal bygges udelukkende med den information, vi har i vores system. Vi arbejder alle på de samme værktøjer, men det, vi faktisk laver, kan have stor variation.

4. Hvordan bliver du applikationsudvikler? Har du brug for en universitetsgrad? Er der krævet certificeringer? Hvis du går på college, hvad skal du studere?


En universitetsgrad er ikke nødvendigvis påkrævet, men der er mange virksomheder, der ikke engang overvejer dig til en stilling, medmindre du har en. Uden en grad skal du have en god portefølje af arbejde og projekter, du har bygget. Hvis du har ydet et godt bidrag til populære open source-projekter, ville det være særligt nyttigt (selvfølgelig vil en god portefølje være nyttig selv med en universitetsgrad).

Der er ikke for mange certificeringer, som jeg er opmærksom på, hvis du vil lave nogen form for webudvikling, selvom jeg er sikker på, at der findes nogle. Certificeringer kan være nyttige i ethvert teknologijob, men arbejdsgivere ser ud til at blive mere trætte af potentielle medarbejdere, der har en masse certificeringer, men ingen reel erfaring til at bakke dem op. Det er ikke uhørt for folk at trænge til certificeringstest og bestå, men stadig ikke har nogen reel forståelse af informationen.


Der er flere veje, du kan tage for en universitetsgrad. Jeg gik ruten Computer Science (CS). Der er nogle mennesker på mit team, der har Information Science (IS) eller Computer and Information Science (CIS) grader. Jeg har endda arbejdet med en person, der havde en computergrafikgrad. CS-grader har tendens til at have mere computerteori end IS eller CIS. Jeg tror, ​​jeg også har set nogle gymnasier tilbyde webudviklingsgrader, som endda kunne fungere. Det kommer virkelig ned på, hvad den enkelte uddannelse lærer, og hvad du nøjagtigt vil gøre.

5. Hvordan finder du arbejde som applikationsudvikler? Er der forskellige typer job inden for marken? Hvordan er jobmarkedet?

Den bedste måde, som jeg faktisk havde problemer med at finde arbejde som applikationsudvikler, er at starte med en praktikophold. Mit college lagde ikke meget vægt på dem, hvilket virkelig virkede imod mig. Vi havde et par praktikanter på mit hold sidste sommer; en af ​​dem gjorde et så godt stykke arbejde, at han alt andet end har fået at vide, at han vil blive ansat, når han er uddannet, hvis han ansøger.

Der er også mange rekrutterere til alle tekniske job. I Indianapolis er der faktisk mangel på tekniske folk, så rekruttererne arbejder virkelig hårdt. De kan være en fantastisk måde at få interviews på og finde arbejde, men du skal huske, at dette er deres job. De har en interesse i at få dig ansat et sted, selvom det ikke passer bedst til dig.

Jeg har haft mest held med henvisninger fra familie og venner. Jeg fik mit første job ud af college takket være en fyr, jeg vidste, og som var uddannet året før mig. Vi havde ikke rigtig været venner på det tidspunkt, men han kendte de lektioner, jeg havde taget, og han vidste, at han kunne garantere for mine færdigheder ved det enkle faktum, at jeg fik en grad fra det samme program, som han gjorde. Mens jeg er i skole, kan jeg ikke understrege nok, at du har brug for et netværk med dine professorer, alumnerne og endda mennesker et år eller to foran dig. De kan være nøglen til, at du finder det drømmejob. Jeg fik faktisk min fod i døren hos min nuværende arbejdsgiver takket være min halvsøskendes fætter. Lyder lidt skør og får altid en latter, men jeg vil tage hvad jeg kan få.

Der er også den gode gamle metode til at sende CV'er ud. Jeg vil foreslå, at du ikke bruger jobfindesiderne, som CareerBuilder, hvis du kan hjælpe det; send bare dit CV til virksomheden gennem deres egen karriere sektion. Slå virksomheder i dit område op og kig på, hvad de laver, og hvilke job de har til rådighed. Hvis du har et spørgsmål om, hvorvidt de endda har visse typer job, tøv ikke med at ringe til dem og bede om at tale med en HR-rekrutterer. Du ved aldrig, du kan blive heldig og få et interview derfra. Den store ting ved udsendelse af genoptagelser er, at du er mindre tilbøjelige til at ringe end nogen, der er blevet henvist af en anden medarbejder, så kom dig ud og netværk.

6. Fortæl os lidt om en gennemsnitlig arbejdsdag.

Jeg starter mine dage kl. 7.30 efter eget valg. Resten af ​​holdet kommer først 9:00. Jeg er en morgenmænd og mere produktiv om morgenen, så min chef har ikke noget imod det, og jeg nyder stille. Jeg starter normalt dagen med at skimme min e-mail og helpdesk på udkig efter eventuelle problemer, som jeg kan tage mig af eller har brug for at give en opdatering om. Derefter samler jeg op hvad jeg lavede den foregående dag og gør mit bedste for at fokusere på det indtil vores SCRUM-møde kl. 9:30. Vores SCRUM-møder er et kort møde, hvor vi siger, hvad vi har arbejdet med, og hvad vi planlægger at gøre for den dag. Det er også det tidspunkt, hvor vores chef muligvis skifter prioriteter og fortæller os at gøre noget andet, hvis det er nødvendigt. Derefter fortsætter jeg med mit arbejde i løbet af dagen og tager periodiske korte pauser for at gå rundt og se på noget, der ikke er kode eller mit nuværende problem.

En ting, der er lidt unik og anderledes ved det hold, jeg er i øjeblikket, er, at vi under frokost næsten altid spiller et spil. Vi har en tendens til at spille spil, som vi kan afslutte på under en time, selvom vi begynder at prøve spil, som vi let kan tage et billede af og genoptage den næste dag.

Efter frokost fortsætter jeg bare med at arbejde, indtil det er tid til at gå hjem. En ting lidt anderledes ved min situation er, at der er et system, som jeg er den eneste, der ved, hvordan jeg skal administrere eller udvikle sig fuldt ud. Dette er ikke ligefrem ideelt, men at træne andre i det er ikke ligefrem en prioritet. Så jeg får en masse helpdesk-billetter til systemet og bliver trukket ind i møder, når folk ønsker nye funktioner eller har spørgsmål. Alt i alt er den gennemsnitlige dag ikke så dårlig. Jeg arbejder i et teknologivirksomhed, og vi har et internt værktøj til instant messaging. Hele dagen taler holdet måske ikke meget, men vi har samtaler og vittigheder, der konstant flyver rundt i disse beskeder. Det gør det let at socialisere, mens du stadig er produktiv.

Hver måned eller to har vi en frigivelse, hvilket giver et langt mere stressende og varieret par uger. Disse uger involverer normalt at teste hele systemet og rette eventuelle fejl, vi finder så hurtigt som muligt. Så frigiver vi i løbet af weekenden og er nødt til at frigive en masse små rettelser den næste uge, da folk finder flere bugs.

7. Hvordan er balance mellem arbejde og liv som programmør?

Det er generelt meget afbalanceret. Normalt kommer du op og forlader til regelmæssige tidspunkter, selvom der er undtagelser. Hvis noget er kritisk brudt, bliver du generelt nødt til at holde fast, indtil det er løst. Hvis du har en funktion, der skal være i en udgivelse, og du løber tør for tid, bliver du nødt til at lægge noget ekstra arbejde i. Hvis der er brug for mere tid til at få en frigivelse samlet, og den ikke kan skubbes tilbage til en anden dag, bliver du sandsynligvis nødt til at lægge lidt mere tid der. I hvor høj grad nogen af ​​disse ting afbryder dit liv, afhænger virkelig af, hvor du arbejder, og hvem din chef er. Mange gange er det muligt at vide på forhånd, at du bliver nødt til at bruge nogle ekstra timer, og du kan planlægge i overensstemmelse hermed.

8. Hvad er den bedste del af din karriere?

Gåderne. Programmering af ting er virkelig som et kæmpe logikpuslespil. Jeg er nødt til at sætte forskellige ting sammen for at opbygge en applikation, der gør noget. Jeg får måske at vide, at når en person godkender en vare i applikationen, skal en bestemt gruppe mennesker få en e-mail, men jeg kan ikke bare indsætte det som det er. Jeg er nødt til at tage det og nedbryde det til et meget grundlæggende niveau. Når jeg har brudt det op, arrangerer jeg mine stykker - koden - så det vil opnå det, jeg vil have. Jeg elsker også, når du kommer til at skabe noget nyt. Nye funktioner, der ikke er rapporter, er normalt meget sjove at lave. Nogle gange kan komplekse rapporter også være interessante. At have brugere til dig og sige 'Vi har brug for et Gantt-diagram' og derefter skabe det og aflevere det til dem er en vidunderlig oplevelse. De har tendens til at se på dig, som om du er en slags troldmand eller tryllekunstner.

Bortset fra gåderne og skabelsen kan folk være rigtig gode. Jeg er en nørdet person, men alle på mit team er også nørdet. De samtaler, vi har, kan blive sindssyge. Nogle gange hører du nogen foregår om, hvad Marvel laver med deres tegneserier. En anden gang vil du høre utroligt detaljerede spilanmeldelser. Andre gange vil du høre tilfældige, men fascinerende fakta om film. Lejlighedsvis bliver tingene filosofiske. Der er aldrig en kedelig samtale, og vi får alle hinanden til at grine hele tiden.

9. Hvad er den værste del?

Kedelige projekter eller projekter, der engang var spændende, men som er blevet ensformige. Det er ikke sjovt at oprette en virkelig grundlæggende rapport, der bare viser oplysninger. Den eneste frelsende nåde for dem er, hvor hurtigt du kan afslutte dem. Du kommer ikke til at skabe meget, og det største puslespil er, hvordan du skal hente alle de rigtige oplysninger. Resten af ​​det har du gjort før. Nogle gange kan store projekter gå fra virkelig interessante til monotone og derefter fortsætte med at trække i flere uger. At finde ud af, hvordan man gør alt i starten og har alle disse store ideer, er fantastisk - det kombinerer nogle af de bedste dele af jobbet. Men så er du nødt til at gøre alle de storslåede ting, du har tænkt på, og det kan begynde at blive kedeligt virkelig hurtigt, og derefter bliver frustrerende, når du glemmer, hvordan du gjorde nogle ting og planlagde at gøre andre. Du er nødt til at balancere at lave noter og prøve at huske ting. Jo større dine ideer er, jo sværere er det at få alle brikkerne til at passe sammen korrekt.

10. Hvad er den største misforståelse folk har om dit job?

Folk tror, ​​at da jeg arbejder med computere, ved jeg alt om computere, herunder hvordan man løser dem. I mit tilfælde ved jeg hvordan man løser computere, men det er ikke så almindeligt som folk tror. En anden almindelig er, at da jeg kan skrive programmer, tror folk, at jeg kan skrive et program til hvad som helst. Jeg kan lære at skrive programmer til andre systemer, men hver platform er lidt anderledes. Jeg kan ikke fortælle dig, hvor mange gange jeg har fået folk til at fortælle mig, ”Hej, jeg har brug for din hjælp. Jeg har denne gode idé til en telefonapp, og jeg har brug for, at du laver den. ” De ser altid lidt forbavset ud, når jeg fortæller dem, at jeg ikke er fortrolig med, hvordan man laver telefonapps.

11. Eventuelle andre råd, tip, kommentarer eller anekdoter, du gerne vil tilføje?

Hvis du ønsker at komme ind i enhver form for computerprogrammering, skal du kende programmeringssprog, men mange gange er det evnen til at lære sprog hurtigt og den rigtige tankegang, der er vigtigere. Du er nødt til at tage komplekse problemer og opdele dem til noget enklere. At stikke huller i ideer og finde logiske edge cases er også meget nyttigt.

En vigtig lektion, jeg har lært, som jeg føler er ret nyttig for alle, er altid egen op til dine fejl. På det sidste firma, jeg arbejdede for, arbejdede jeg med det finansielle system og havde skubbet en opdatering ud, som jeg havde skrevet. Den næste dag kom en manager hen til hvor den anden udvikler og jeg sad og fortalte os, at det så ud som $ 2 millioner var forsvundet fra systemet. Jeg sagde hurtigt, at det sandsynligvis var min skyld, fordi jeg havde skubbet en kode ud, der påvirkede det den foregående dag. At indrømme, at jeg havde rodet, gik langt. Jeg var også i stand til at løse problemet og få pengene til at dukke op igen i økonomien, hvilket sandsynligvis ikke skadede. Den anden udvikler der havde fået 200 millioner dollars til at forsvinde, og han havde heller ikke mistet sit job. Ej altid op til dine fejl og gør hvad der kræves for at rette dem, hvis de kan rettes.