Ontdek Uw Aantal Engel
Lessen die zijn geleerd als beginnend software-engineer
Als je me een jaar geleden had gevraagd wat een software-engineer deed, zou ik iets hebben gezegd in de trant van 'problemen oplossen door middel van code'. Het is een eenvoudig antwoord dat aangeeft hoe het werk dat we produceren wordt beoordeeld. Voor ingenieurs in productgestuurde teams kunnen deze problemen onder meer zijn hoe ze moeten worden geïmplementeerd een nieuwe functie waar klanten om hebben gevraagd , of hoe u de prestaties van bestaande functies kunt verbeteren.
Als je mij vandaag dezelfde vraag zou stellen, zou ik een iets ander antwoord geven. Software-ingenieurs hebben de taak om de juiste problemen op te lossen door middel van code, en wanneer ze effectief worden opgelost, bereiken ze de bedrijfsdoelen. Uitzoeken welke problemen moeten worden opgelost en hoe deze moeten worden opgelost, is het belangrijkste onderdeel van het zijn van een ontwikkelaar, waarbij de feitelijke implementatiedetails ondergeschikt zijn.
nummer betekenis 444
Mijn pad naar software engineering
Ik raakte geïnteresseerd in programmeren na het volgen van een les bij Bovenste code: de zomer voor mijn eerste jaar van de universiteit. Ik kreeg deze kans via een college- en loopbaangereedheidsprogramma waar ik deel van uitmaakte, genaamd Het kansennetwerk .
Upperline Code was mijn eerste kennismaking met programmeren en ik realiseerde me al snel dat ik geïnteresseerd was om te leren coderen. Later die zomer ontving ik mijn Notre Dame-inschrijvingspakket en stapte ik over van het College of Arts and Letters naar het College of Engineering, zodat ik informatica (CS) kon gaan studeren.
Enkele van mijn favoriete CS-cursussen waren Design/Analysis of Algorithms, Cloud Computing en Programming Challenges. De problemen waren interessant en de professoren waren goed in het presenteren van nieuwe ideeën en het uitleggen van concepten.
Tijdens mijn studie wist ik dat ik als software-engineer wilde werken en de technische vaardigheden die ik had opgedaan wilde gebruiken. Gelukkig kreeg ik de zomer voor mijn laatste jaar de kans om stage te lopen als software-engineer bij gezongen en koppel een programma met andere technici om functies te helpen leveren.
Mijn stage-ervaring, samen met peptalks van mijn professoren, gaven me het vertrouwen om geen genoegen te nemen met een andere rol toen ik voor het eerst begon te solliciteren. Na veel kantooruren te hebben doorgebracht, studeerde ik in 2021 af met een CS-diploma en accepteerde ik een aanbod om Associate Software Engineer te worden hier bij Spruit Sociaal .

Vestigen in Sprout Social
Nieuw in de functie en nieuw voor het bedrijf was dat je zowel algemene software-engineeringvaardigheden als Sprout-specifieke domeinkennis moest ontwikkelen. Ik ontdekte dat taken waarvoor algemene programmeerkennis nodig was om ze te begrijpen, voor mij het gemakkelijkst op te lossen waren. Taken waarvoor kennis van de architectuur van Sprout nodig was, namen echter tijd in beslag en ik moest op mijn team rekenen voor hulp. Hoewel er enkele problemen zijn die u kunt oplossen door online documentatie te lezen, kunt u niet altijd informatie vinden die relevant is voor het werk dat u doet. Het is cruciaal om anderen om advies te kunnen vragen.
Een van de eerste dingen die me opvielen toen ik bij Sprout kwam werken, was hoe collaboratief het ontwikkelingsproces is. Ik wist dat er hele teams voor nodig waren om features te ontwikkelen, maar ik wist niet hoe dat er in de praktijk uitzag. Ik realiseerde me al snel dat voor het vrijgeven van een succesvolle functie veel mensen in verschillende rollen moesten samenwerken - van productmanagers die projectvereisten definieerden, tot ontwerpers die mockups maakten en technici die functies implementeerden. Samenwerking was niet iets dat optioneel was, maar een noodzaak om de doelen van ons team te bereiken.

Leren navigeren door de verschillende codebases en het bouwen van een mentaal model van hoe verschillende services met elkaar omgingen, was een steile leercurve. Aangezien de kernactiviteit van Sprout software is, wordt de architectuur sterk bepaald door de zakelijke vereisten. Terwijl ik aan het opbouwen was, moest ik me bewust zijn van de zakelijke problemen die ontwikkelaars probeerden op te lossen en waarom eerdere architecturale beslissingen werden genomen.
Aanvankelijk was ik een beetje geïntimideerd dat pull-verzoeken beoordelingen vereisten voordat ze konden worden samengevoegd in de codebase. Door te begrijpen dat het belangrijkste doel van codebeoordelingen het delen van kennis en het onderhouden van codestandaarden is, veranderde mijn perspectief.
Het doornemen van code-reviews heeft geholpen mijn technische vaardigheden aan te scherpen en de kwaliteit van mijn pull-verzoeken te verbeteren. Het was erg nuttig dat collega's me advies gaven over wat ik moest veranderen, me kennis laten maken met nieuwe patronen en me verwijzen naar relevante delen van de codebase. Het lezen van de pull-verzoeken van andere ingenieurs heeft me ook waardevol inzicht gegeven in andere services waar ik niet direct aan werk.
Je eerdere ervaringen zijn belangrijk
Er is een overheersend idee dat als je nieuwe levensfasen ingaat, je eerdere ervaringen er niet meer toe doen. Als je eenmaal naar de universiteit gaat, doen je middelbare schoolervaringen er niet meer toe. Zodra je het personeelsbestand betreedt, doen je universiteitservaringen er niet meer toe.
Maar iets dat vaak over het hoofd wordt gezien, is dat onze ervaringen, kennis en gewoonten een versterkend effect hebben. We kunnen meestal alleen nieuwe dingen bereiken dankzij het werk dat we eerder hebben gedaan. De kennis en vaardigheden die ik eerder heb opgedaan, hebben grote invloed gehad op hoe ik nieuwe uitdagingen aanga als beginnend software engineer.
De lessen tijdens de bachelor die de meeste directe impact hadden op mijn dagelijkse werk bij Sprout, waren programmeeruitdagingen en databaseconcepten. De eerste leerde me hoe ik grote problemen in kleinere stukjes kon opsplitsen om ze efficiënter op te lossen. Het hielp me om meer bewust te worden van hoe ik mijn code structureerde en de leesbaarheid van mijn code verbeterde.
Database Concepts leerde me fundamentele relationele databaseconcepten en behandelde onderwerpen zoals het ontwerpen van databaseschema's en SQL. Ik heb geleerd hoe ik query's moet schrijven, wat erg handig is omdat ik vaak onze databases moet doorzoeken om problemen op te lossen of vragen te beantwoorden.

De kansen die ik buiten de klas kreeg, waren net zo waardevol. Java was geen taal die in de meeste van mijn cursussen aan bod kwam, maar ik kreeg de kans om eraan te werken voor een zakelijk project dat een van mijn professoren leidde. Ik heb hands-on ervaring opgedaan met het schrijven van Java, het werken met MySQL-databases en het maken van Docker-images. Het leren van Java was vooral nuttig omdat de meeste diensten van Sprout erin zijn geschreven.
Er zijn veel andere vaardigheden die ik tijdens mijn studietijd heb opgedaan en die ik als vanzelfsprekend beschouw, zoals navigeren op de opdrachtregel en het begrijpen van kernprogrammeerconcepten. Het is een veel voorkomende misvatting dat, aangezien de meeste onderwerpen die in undergrad worden behandeld, theoretisch van aard zijn, ze je niet voorbereiden op een loopbaan in software-engineering. Ik geloof echter dat het tegenovergestelde waar is: de vaardigheden die je leert in de bachelor zijn belangrijk, ook al zijn ze niet direct van toepassing op je dagelijkse werk.
Informatica is een extreem breed vakgebied
CS omvat een verscheidenheid aan specialisaties, zoals kunstmatige intelligentie, machine learning en data science. De ervaring die je opdoet in een bacheloropleiding dient als fundamentele kennis die je goed van pas kan komen in verschillende instapfuncties die niet exclusief zijn voor software-engineering. Het maken van de sprong van undergrad naar een fulltime positie biedt de mogelijkheid om te ontdekken wat voor soort rol en specialiteit het beste bij je past.
Als u op zoek bent naar start een carrière in software-engineering , Sprout is een geweldige plek om te beginnen.
Deel Het Met Je Vrienden: