5 redenen voor een Young Professional om te starten als consultant

Blog

Ongeveer anderhalf jaar geleden maakte ik de stap van werken als Developer voor één vaste werkgever naar het werken voor verschillende opdrachtgevers. Ik was op dat moment iets meer dan twee-en-een-half jaar afgestudeerd en had voor mijn gevoel nog veel te leren. Deze stap leek daarom voor mij erg groot: zelfstandig worden weggezet bij een organisatie waar ik als specialist aan de slag ga? Kan ik dat? 

De laatste anderhalf jaar heb ik een heel duidelijk antwoord gekregen op die vraag: Ja! Sterker nog, ik ben ervan overtuigd dat het voor veel Young Professionals de beste stap is om te maken. Waarom? Daar kunnen we een lang gesprek over voeren, maar hieronder zal ik je proberen uit te leggen wat voor mij de belangrijkste redenen waren om deze stap te nemen en mogelijk onzekerheden voor jou uit de weg te ruimen.

1. Een kijkje in verschillende keukens

Ik zat bij mijn toenmalige werkgever niet meer op mijn plek. Ik had het gevoel meer te willen, maar waar ben ik precies naar op zoek? Met mijn stages en afstudeerplek had ik wel wat gezien van de IT-wereld, maar bij lange na niet genoeg om een goed beeld te kunnen vormen van wat een bedrijf te bieden heeft. Omdat je  als consultant makkelijker kunt switchen van opdracht, bood dit mij de mogelijkheid om die ervaring op te doen. Zo heb ik in anderhalf jaar kunnen ervaren hoe het is om voor een MKB-bedrijf te werken in een klein team, maar ook voor een grote verzekeraar binnen multidisciplinaire teams. De verschillen tussen bedrijven worden daardoor snel duidelijk waardoor je een goed beeld kunt vormen over bij wat voor bedrijf jij graag werkzaam wilt zijn. Ook je toekomstige opdrachten kun je hier dus beter op filteren. 

2. Veel ruimte en budget voor persoonlijke ontwikkeling

Ik weet het, de meeste bedrijven bieden persoonlijke ontwikkelbudgetten. Overigens hoor ik van veel mede-ontwikkelaars dat dit budget bij lange na niet altijd gebruikt wordt. Een omgeving waarin je omringd bent met leergierige mensen die je ook aansporen om daadwerkelijk die cursus te doen, dat event bij te wonen of dat certificaat te behalen draagt enorm bij aan je persoonlijke ontwikkeling. Zo worden er bijvoorbeeld regelmatig cursussen gegeven op kantoor, waar je veel dingen leert die je bij de klant direct in praktijk kunt toepassen.

3. Altijd een team van ervaren ontwikkelaars als back-up

Niemand is alwetend, maar zeker wanneer je nog niet heel lang in het werkveld zit kan de wereld van de IT als overweldigend ervaren worden. Er is veel informatie beschikbaar op het internet, maar soms is het handig om een vraag te kunnen stellen aan mensen met praktijkervaring die niet bij iedere klant altijd aanwezig zijn. Bij ShareValue werk je vanuit een team met dezelfde expertise. Kom je er bij de klant niet uit? Dan heb je altijd de mogelijkheid om één van je collega’s om hulp te vragen. Dit heb ik, zeker bij mijn eerste opdracht, regelmatig ervaren. Zo had ik iedere week even een kort overleg van 10 minuten met één van onze collega’s om technische obstakels te bespreken.

4. Flexibiliteit met stabiliteit

Uiteraard is werken voor afwisselende werkgevers ook op andere manieren mogelijk, maar een groot voordeel is dat je niet steeds opnieuw in gesprek hoeft over de arbeidsvoorwaarden. Daarnaast kan het natuurlijk voorkomen dat er even geen geschikte opdracht voor jou is. Als zelfstandige draag je dan zelf dat risico, hier ontvang jij gewoon nog jouw salaris. Ook hoef je je geen zorgen te maken over verzekeringen, je pensioen en allerlei praktische zaken als laptops, telefoons en vervoer. Het is de ideale balans tussen zelfstandig ondernemen en voor één vaste werkgever werken.

5. Opbouwen van een netwerk

Doordat je bij veel verschillende bedrijven komt te werken, bouw je snel een groot netwerk op. Zeker wanneer jij je hebt bewezen binnen een bedrijf, zal je naam niet snel vergeten worden. Dit kan in de toekomst leiden tot mooie vervolgopdrachten maar zorgt ook voor een groot netwerk waarop je in de toekomst altijd verder kunt bouwen.

Conclusie

Juist als startende IT-professional is het heel waardevol om bij verschillende opdrachtgevers te werken. Al kan dit aan het begin als een grote stap voelen, ben ik van mening dat een sprong in het diepe er juist voor zorgt dat je snel veel ervaring opdoet, je kennis enorm vergroot, veel verschillende bedrijven kunt zien en je de ideale balans krijgt tussen zelfstandig ondernemen en in loondienst zijn. Denk jij na het lezen van deze blog dat dit voor jou ook een interessante stap is? Kom dan vooral eens langs op ons kantoor om de mogelijkheden voor jou te bespreken! Je kunt altijd contact opnemen voor een afspraak.

Sem
Auteur Sem Developer

Heb je vragen over dit onderwerp of zou je Sem willen inhuren voor een vergelijkbare opdracht?

Neem contact met ons op

Gerelateerde artikelen

Barry Barry / 08-06-2023

5 minuten lezen

Dit jaar zijn we met een grote delegatie vanuit ShareValue naar de Collaboration Summit in Düsseldorf geweest. Op maandag  vertrokken we. Een aantal collega’s heeft  alvast de stand opgebouwd zodat alles klaar was voor 2 dagen congres.

Onze beursstand met softijsjes

Als opening blikten Spencer Harbar en Adis Jugo terug op de afgelopen 10 jaar. Hierna nam Vesa Juvonen het over (op zijn sokken 😊) en hij sprak over het gebruik van Microsoft Cloud en over 300 miljoen actieve gebruikers per maand voor Teams. Hierna “belde” Jeff Teper in om zijn waardering uit te spreken over de community en iedereen een mooi congres te wensen. Dit jaar zijn er 2.500 mensen aanwezig en hiermee is het het grootste Microsoft 365 event van de wereld.

Beveiliging Exchange

Hierna begonnen de sessies. Mijn eerste sessie van de dag ging over de beveiliging van Exchange hybride omgevingen. In het begin had hij een paar slides met de verschillende manieren van configureren en vroeg de zaal of dit bij hun het geval was. Hierna heeft hij de voor- en nadelen genoemd van de desbetreffende configuratie. De volgende slides gingen over het configureren van SPF, DMARC en DKIM. Bij elk onderdeel werd de noodzaak, best practices en uitleg gegeven wat het precies is.   

Azure Functions en Microsoft Graph

Solution met Azure Functions en Microsoft Graph

Mijn tweede sessie ging over de hoe je een solution kan maken met behulp van Azure Functions en Microsoft Graph. Belangrijk was vooral dat je inzicht moet hebben in de data waarmee je gaat werken. 
De presentator had een tool ontwikkeld: goverancetoolkit365.com

 

Hiermee krijgt je inzicht in het gebruik van je tenant en de licenties die je hebt. Daarbij kan je ook zien hoeveel externe gebruikers er zijn en wanneer deze voor het laatst hebben ingelogd. Tijdens de sessie liet hij zien hoe de flows zijn gemaakt en wat de best practices zijn. Hierbij maken ze ook gebruik van een storage account met tabellen waar de data is opgeslagen.

Azure en Microsoft 365

Azure in combinatie met Microsoft 365

Een andere sessie ging over het gebruik van Azure i.c.m. Microsoft 365. In het begin van zijn sessie had hij het vooral over wat Azure is en hoe groot het is.

 

Daarna gaf hij een mooi overzicht waar alle Azure regio’s zijn en welke er nog zijn aangekondigd.

 


Vervolgens gaf hij uitleg dat Azure bestaat uit verschillende subscriptions die gelden als een security boundry.  Daarna werd de samenhang tussen Azure en Microsoft 365 getoond met behulp van onderstaande afbeelding:

 


Hierbij is duidelijk dat er één identity provider is, Azure Active Directory, en dat deze zowel aan Azure als aan Microsoft 365 (o.a. SharePoint, Teams en Exchange) gekoppeld is. Het volgende onderwerp was het gebruik van tools. Denk hierbij aan Visual Studio Code en Git. Het belangrijkste is eigenlijk dat je niet meer zonder GitHub Copilot kan en hier werd dan ook een demo van gegeven.

Beheer automatiseren

Beheer van Microsoft 365 automatiseren

De laatste sessie van de dag ging over het automatiseren van de Microsoft 365 omgeving en dan vooral de beheer-kant hiervan. Tegenwoordig heb je meerdere admin portalen waar je allerlei instellingen kan aanpassen. En wat het nog onoverzichtelijker maakt, is dat sommige portalen dezelfde instellingen gebruiken. Vanuit de community is hiervoor een open-source tool ontwikkeld, Microsoft365 DSC op basis van PowerShell.

 

Deze tool bestaat uit verschillende modules. Met deze tool kan je een export maken van je huidige inrichting, in Excel of HTML-formaat. Daarbij is het ook mogelijk om deze export in een configuratiebestand op te slaan. Dit bestand kan je dan weer gebruiken om een vergelijk te doen van de configuratie, van bijvoorbeeld 2 weken geleden, tegen de huidige omgeving om zo wijzigingen te kunnen zien. Dit kan, doordat Microsoft 365 DSC gebruikmaakt van configuratiebestanden waarbij de logica aan de achterkant wordt gedaan met de verschillende PowerShell commando’s. Door het gebruik van de configuratiebestanden is het heel geschikt om hier pipeline voor te gebruiken. Dit zorgt ervoor dat het mogelijk is om wijzigingen te laten goedkeuren door een collega.

Door het gebruik van deze technologie is het gebruik van een staging, development omgeving mogelijk. De wijzigingen worden eerst gestuurd naar deze omgeving om de wijziging te controleren. Indien akkoord kunnen dezelfde wijzigingen in productie worden genomen.
Voordeel van deze opzet is dat je dus een vier ogen principe hanteert en je, door het gebruik van een GitHub of Azure DevOps, versiegeschiedenis hebt van de wijzigingen in de omgeving.
 

Zero Trust

Zero trust

De tweede dag begon om negen uur begonnen met een sessie over Zero Trust. Tijdens deze sessie werd duidelijk dat zero trust een principe is en geen product. Waarbij de focus ligt op het niet vertrouwen van dingen maar om alles te verifiëren. 

Secure software met GitHub

Developing secure software with GitHub

Hierna was de keynote van de tweede dag. Weer gegeven door Vesa Juvonen maar nu met andere gasten op het podium die verschillende dingen lieten zien. Was een leuke ‘gezellige’ keynote. 

Hierna een heb ik sessie gevolgd buiten mijn comfort zone, Developing secure software with GitHub. Hierin werd vooral behandeld hoe je veilig je code in verschillende repositories kan opslaan en ervoor zorgen dat deze altijd veilig blijven. Tijdens de sessie werden sommige tools besproken, waaronder CodeQL. 
 

 

Deze tool kan op basis van de gegevens die zijn ingesteld de code scannen tijdens een pull request en hier dan een melding voor geven. Deze dienen dan eerst te worden opgelost voordat de code daadwerkelijk in productie kan worden genomen.

 

In bovenstaand voorbeeld staat er een Azure Storage account Key in de code. Deze moet bijvoorbeeld via een variabele worden aangeroepen in plaats van hard coded in de code.

Conclusie

Verder heb ik gedurende de dagen natuurlijk meerdere stands bezocht in de Expo hal en natuurlijk bij onze eigen stand met soft ijsjes geweest. Veel mensen gesproken. 

 

Het was een goed congres en alle collega’s hebben weer kennis opgedaan om onze klanten te voorzien van een goed advies op basis van de laatste ontwikkelingen. Als we je kunnen helpen met een van bovenstaande onderwerpen, horen we het dan ook graag!

Raymon Raymon / 17-05-2023

7 minuten lezen

Wil jij als developer beter worden in je vak? Zoek dan niet verder! In deze blog schetsen we vijf tips voor het gebruik van ChatGPT om een betere developer te worden, inclusief het samen zoeken naar oplossingen voor toepassingsproblemen, het opsporen van fouten in code, het uitleggen van codefunctionaliteit, het schrijven van betere tests en het verbeteren van de leesbaarheid van de code.

ChatGPT helpt door mee te zoeken naar de oorzaak van een probleem in je toepassing

Mijn team en ik ondervonden een probleem in onze applicatie, waarbij gegevens moesten worden opgenomen en modellen nog moesten worden bijgewerkt. Wij werken aan een Angular applicatie.

Ik ontdekte bijvoorbeeld de kracht van het ontdekken van oplossingen en problemen in een applicatie.

Situatie: De RxJS Subscripition bestond niet

Na lang zoeken via Google begonnen we vragen te stellen aan ChatGPT. We zijn begonnen met de volgende vraag:

“We gebruiken RxJS; we hebben een BehaviourSubject, maar in het begin worden de gegevens ontvangen door de  “subscribe()” methode, maar later niet. Wat zou het probleem kunnen zijn?”

ChatGPT begon de vraag te beantwoorden met mogelijke situaties. Ten slotte stelde ChatGPT voor om te controleren of de subscripition nog actief was. ChatGPT bood ons ook een oplossing om het te controleren.

En dat werkte. Uiteindelijk hebben we de oorzaak gevonden en konden we het probleem oplossen.

De vraag: 

Het antwoord: 

ChatGPT helpt bij het opsporen van problemen met falende tests

In de afgelopen maanden hebben we ChatGPT opgenomen in al ons werk.

Soms kun je falende tests hebben waar de oorzaak niet meteen duidelijk is. ChatGPT kan dan helpen de problemen te ontdekken en helpen bij het vinden van de oplossing.

Bijvoorbeeld bij de volgende situatie. Dit kwamen wij de laatste tijd tegen:

Situatie: Datumfunctie verkeerd berekende datum met Vanilla JavaScript

Onlangs hebben we een oude datumbibliotheek vervangen door een nieuwe. Maar we moesten een vertaallaag creëren, zodat onze afhankelijkheden nog steeds werken.

Nadat we dat hadden gedaan, controleerden we de end-to-end tests. En wat was het geval? Eén fout! Een methode die vroeger werkte, werkte nu niet meer. 


getCalculatedDate(days: number, months: number, years: number) {
    const today: Date = new Date();
    const calculatedDate = new Date(
      today.getFullYear() + years,
      today.getMonth() + months,
      today.getDate() + days
    );
    const days = String(calculatedDate.getDate()).padStart(2, '0');
    const months = String(calculatedDate.getMonth() + 1).padStart(2, '0');
    const years = String(calculatedDate.getFullYear());
    const formattedDate = days + '-' + months + '-' + years;
    return formattedDate;
  }

Het probleem was één uur tijdsverschil. Hoewel we de invoer van de methode niet hebben gewijzigd, heeft de uitvoer van de vergelijkingsfunctie dat wel gedaan.

Na meerdere keren proberen, begonnen we vragen te stellen aan ChatGPT:

  • Wat als ik 3 maanden en 1 dag toevoeg aan vandaag? Welke datum is dat?
  • Leg de berekening uit.
  • Zou het antwoord anders zijn als je eerst dagen optelt in de berekening?

Uiteindelijk hebben we de functie aan ChatGPT gegeven en gevraagd wat hier niet goed ging. ChatGPT ontdekte dat je eerst een dag aan de datum moet toevoegen in vanilla JavaScript. Maak vervolgens een nieuwe datum en voeg de maand en het jaar toe. 

Het grappige was dat het gebeurde op de 31e dag van de maand. En er lijken eigenzinnige dingen te zijn met datums (DATES) in JavaScript (zoals velen van ons weten).

Uiteindelijk hebben we het opgelost. Maar dit laat zien dat als je veel vragen stelt aan ChatGPT, het veel dingen uitlegt en het uiteindelijk kan helpen bij het oplossen van problemen. 

Situatie: ChatGPT legt een stukje code uit

Omdat ik in een grote codebase werk, die ontwikkeld en onderhouden wordt door veranderende teamleden, kan de code niet altijd zo duidelijk zijn als je wilt.

ChatGPT kan je hierin ook helpen. Het heeft me geholpen om de functionaliteit veel eenvoudiger te maken en beter te begrijpen, zodat ik het kon herschrijven.  

Geef ChatGPT een stukje van de code en vraag om het uit te leggen. Zo simpel is het.

Voorbeeld: Vraag om uitleg 

Antwoorden:

ChatGPT kan je helpen betere tests te schrijven

Voor veel developers is het schrijven van tests een uitdagende taak. Na meer dan tien jaar ervaring vraag ik me soms nog steeds af:

  • Welke testen heb ik nodig?
  • Hoeveel testcases moet ik maken?
  • Heb ik alle randgevallen afgedekt?

En nog veel meer. ChatGPT heeft me hiermee ook geholpen.

Soms gebruik ik het om te brainstormen en te vragen om extra testcases die ik heb gemist.

ChatGPT heeft mijn team en mij echt geholpen, waardoor ik betere code geschreven heb om te testen.

Situatie: ChatGPT kan jouw code herschrijven voor een betere leesbaarheid

Soms vind je codevoorbeelden online en vraag je je af hoe het werkt en of er een eenvoudigere manier is om ze te schrijven.

Plaats een code in ChatGPT en vraag het om deze te herschrijven. Zo simpel is het en het helpt echt!

Voorbeeld: Laten we zeggen dat we een complexe productstructuur in onze API hebben. 


{
  "products": [
    {
      "id": 1,
      "name": "Product A",
      "category": {
        "id": 10,
        "name": "Electronics",
        "properties": {
          "warranty": "1 year",
          "returnPolicy": "30 days"
        }
      },
      "brand": {
        "id": 100,
        "name": "Brand X",
        "properties": {
          "country": "USA",
          "established": "1995"
        }
      },
      "properties": {
        "color": "black",
        "weight": "1.2 kg"
      }
    },
    {
      "id": 2,
      "name": "Product B",
      "category": {
        "id": 11,
        "name": "Furniture",
        "properties": {
          "material": "wood",
          "assemblyRequired": "yes"
        }
      },
      "brand": {
        "id": 101,
        "name": "Brand Y",
        "properties": {
          "country": "Germany",
          "established": "2001"
        }
      },
      "properties": {
        "dimensions": "100x50x30 cm",
        "color": "brown"
      }
    }
  ]
}

We willen de producten sorteren op basis van de eigenschap retourbeleid. Een ander heeft deze functie lang geleden ontwikkeld. Het is niet makkelijk te lezen, dus we willen het leesbaarder maken en TypeScript toevoegen.


function s(p){
  return p.sort((a,b)=>a.category.properties.returnPolicy.localeCompare(b.category.properties.returnPolicy))
}

We kunnen ChatGPT vragen om het leesbaarder te maken en typen toe te voegen. Dit is het resultaat: 


interface Properties {
  returnPolicy?: string;
  [key: string]: any;
}

interface Category {
  id: number;
  name: string;
  properties: Properties;
}

interface Product {
  id: number;
  name: string;
  category: Category;
  [key: string]: any;
}

/**
 * Sort an array of products based on the "returnPolicy" property.
 * @param {Product[]} products - The array of products to be sorted.
 * @return {Product[]} - The sorted array of products.
 */
function sortProductsByReturnPolicy(products: Product[]): Product[] {
  return products.sort((productA, productB) => {
    return productA.category.properties.returnPolicy.localeCompare(
      productB.category.properties.returnPolicy
    );
  });
}

Zoals je kunt zien, schreef ChatGPT een product-, categorie- en generieke eigenschappeninterface en paste deze toe op de functie. Maar het voegde er ook enkele expliciete opmerkingen aan toe.

Dus refactoring wordt een stuk eenvoudiger met ChatGPT!

Conclusie

Kortom, ChatGPT kan developers op vele manieren helpen. Of je nu net begint of al jaren developer bent, ChatGPT kan je helpen verbeteren. Deze blog biedt vijf tips voor het gebruik van ChatGPT voor probleemoplossing en leesbaarheid van code. Door ChatGPT te gebruiken, kun je sneller en met minder fouten code schrijven.

Een van de beste dingen van ChatGPT is dat het fouten in code kan vinden. Zelfs ervaren developers maken fouten en het vinden ervan kan lastig zijn. ChatGPT maakt het makkelijk om fouten te vinden en op te lossen. ChatGPT kan je ook uitleggen wat een code doet en betere tests schrijven.

ChatGPT is ook goed in het makkelijker leesbaar maken van code. Grote codebases kunnen moeilijk te onderhouden zijn, vooral als de code beter geschreven moet worden. Om de leesbaarheid van code te verbeteren, kun je met ChatGPT een code toegankelijker maken voor andere developers om te begrijpen.

Een van de krachtigste eigenschappen van ChatGPT is dat het developers kan helpen beter samen te werken. Developers kunnen effectiever werken met ChatGPT om mee te denken over oplossingen, fouten te vinden en de codekwaliteit te verbeteren. In combinatie met menselijke ervaring kan ChatGPT developers helpen betere resultaten te leveren en innovatie te stimuleren.

Kortom, ChatGPT is een waardevolle tool voor developers van alle niveaus. Door de tips in deze blog te volgen en ChatGPT in je werk te gebruiken, kunt je betere code schrijven, tijd besparen en betere resultaten behalen. Of je nu een beginner of een expert bent, ChatGPT is de moeite waard om te verkennen om te zien hoe het jou en jouw team kan helpen. 

{description}

Wil je onze collega worden?

Bekijk onze vacatures
{description}

Hoor van onze experts hoe leuk ShareValue is

Lees de verhalen van onze collega's