Programma's die beginnende programmeurs nodig hebben. Tyzhprogrammer, of wat is een speciale mentaliteit

10 maart 2016 om 09:56 uur

Wat een programmeur moet kunnen om een ​​baan in de financiële wereld te krijgen

  • ITI Capital-blog,
  • Website ontwikkeling

In onze blog op Habré schrijven we veel over technologieën die worden gebruikt op het gebied van financiën. De beurzen gebruiken tegenwoordig de meest geavanceerde software en hardware - zowel voor het bouwen van de handelsinfrastructuur zelf als voor het creëren van online handelssystemen.

Tegenwoordig zijn wiskundigen, natuurkundigen en programmeurs hier gewild. Mensen kunnen handelsalgoritmen maken en op basis daarvan hoogwaardige software maken. Veel programmeurs zouden op hun beurt graag een poging wagen in de financiële sector - het kan een aantrekkelijke combinatie bieden van interessante taken en hoge salarissen.

Vandaag zullen we het hebben over welke vaardigheden je moet hebben om een ​​baan te krijgen bij een HFT-bedrijf, investeringsbank, hedgefonds of beursvennootschap. Bij het voorbereiden van het onderwerp is gebruik gemaakt van materialen van sites en quantstart.com.

Talen

Een van de meest populaire programmeertalen in de financiële wereld sinds vele jaren is C. Je moet het niet alleen kennen om legacy code te onderhouden, maar ook om het werk met API's in elektronische handelssystemen en gegevensuitwisseling met providers te organiseren.

C++ wordt de "hoofdtaal van Wall Street" genoemd omdat snelheid het belangrijkste is voor handelssystemen. Hoe goed doordacht en foutopsporing een handelsprogramma ook is, als het op een bepaald moment extra milliseconden besteedt aan "vuilnisophaling", kan dit tot ernstige verliezen leiden. Hetzelfde geldt voor de uitwisselingsinfrastructuur - allerlei gateways voor gegevensoverdracht en "connectoren" naar verschillende systemen.

Als gevolg hiervan is er veel vraag naar C++-programmeurs bij bedrijven in de financiële sector - ook op de beurzen zelf. En deze situatie zal nog vele jaren voortduren - iemand moet de huidige infrastructuur onderhouden.

Voor een van onze eerdere artikelen spraken we met een Russische expert op het gebied van het creëren van handelssystemen, die, in situaties waar maximale snelheid nodig is, de volgende technologieën gebruikt:

C ++ en pure C zijn zeer geschikt voor deze taken. Het komt ook voor dat snelle robots bijna in assembleertaal worden gemaakt - hier is het de moeite waard om de mechanismen te noemen van het direct lezen en schrijven van gegevens in het geheugen van een netwerkkaart, waarbij de standaard mechanismen van werk via stuurprogramma's, evenals werken met "supersnelle programmeerbare hardware" zoals FPGA.

Volgens de maker van het hulpmiddel QuantStart en professionele handelaar Michael Halls-Moore, kan een senior programmeur met 5-7 jaar ervaring in C ++ vandaag £ 500-700 per dag verdienen in Londen. Er is ook veel vraag naar C++-specialisten bij Russische bedrijven. Bovendien worden deze ontwikkelaars vaak gerekruteerd door professionele handelaren die een succesvolle handelsstrategie kunnen creëren, maar de hulp nodig hebben van iemand die deze kan programmeren.

Ook C# en Java worden al geruime tijd door verschillende financiële instellingen gebruikt. Meestal grote banken voor hun handelsinfrastructuur. Deze talen worden gebruikt voor het bouwen van frontend-interfaces en gegevensverwerking.

Op de Russische financiële markt worden specialisten die C ++ en C # kennen zeer gewaardeerd - in onze blog eerder hebben we het gehad over wie dankzij deze tools werk kon vinden in financiële bedrijven en vervolgens zijn eigen begon te creëren handelssystemen. Dit is wat de held van het materiaal programmeurs adviseerde om te studeren die in de toekomst een baan op het gebied van financiën zouden willen krijgen:

Voor degenen die hun reis in de handel beginnen of op de een of andere manier geïnteresseerd zijn in dit gebied, zou ik adviseren om hun aandacht te richten op platforms en talen op hoog niveau zoals .NET en Java. Dat laatste is erg populair op de westerse aandelenmarkten, we hebben er tot nu toe minder, maar er zijn goede vooruitzichten voor een bredere verspreiding van deze taal. Dit betekent dat er veel vraag zal zijn naar Java-programmeurs bij financiële bedrijven, fondsen en makelaars. .NET is immers een nogal gesloten platform, dat ook een aantal beperkingen kent. Het is niet erg geschikt voor low-latency en HFT-handel.

Maar zowel .NET als Java kunnen worden gebruikt om vrij snel complete softwareproducten te maken. Het grootste nadeel is dat ze niet de snelste zijn (als de telling in microseconden is).


Banken gebruiken vaak scripttalen zoals Python, MATLAB en R om kwantummodellen te prototypen in hedgefondsen en kwantumhandelaren.

Quantumhandelaren en ontwikkelaars van financiële applicaties schrijven de code van hun prototypes vaak in scripttalen. Dan zijn deze prototypes al beschreven met behulp van snellere talen als C++ door ontwikkelaars die hierin gespecialiseerd zijn.

Client-serversystemen

Handelssystemen zijn per definitie gedistribueerd. Bijna alle bedrijven, van kleine bedrijven tot grote investeringsbanken, bouwen hun systemen met behulp van TCP- en UDP-protocollen - soms is snelheid in de handel belangrijker dan het garanderen van de levering van gegevens.

Daarom moeten ontwikkelaars van handelsapplicaties goed thuis zijn in de socketklassen voor C: socket (), bind (), poll () en select (). Het is bijna nooit nodig om er direct mee te werken, aangezien er al veel kant-en-klare bibliotheken zijn hiervoor, maar het is gewoon noodzakelijk om te begrijpen hoe de interactie ermee werkt.

Daarnaast is voor ontwikkelaars van financiële software een pluspunt de kennis van protocollen voor gegevensoverdracht die op dit gebied worden gebruikt, zoals.

Streams

Het bouwen van client-serversystemen en multithreaded programmeren in de financiële wereld gaan hand in hand. Dit alles impliceert bijvoorbeeld het schrijven van een standaard TCP-server, een load balancing-server, een high-performance server - een ontwikkelaar die software wil maken in een financieel bedrijf, moet dit kunnen. Het is ook een goed idee om te begrijpen waar de concepten pthreads (), fork (), mutexen en semafoor over gaan. Als u Java gebruikt, moet u ook de bestaande synchronisatiemethoden voor deze taal begrijpen.

Database

De kern van financiële systemen zijn databases, dus ontwikkelaars hebben een grondige kennis van SQL nodig. Kennis van eenvoudige selectie-operators is niet genoeg - vaak zult u tijdens het werk moeten rommelen met het maken van opslagprocedures, omgaan met indexen, enz. U moet ook het verschil begrijpen tussen vergrendelingen op tabelniveau, paginaniveau en rijniveau.

UNIX
Handelssystemen gebruiken meestal het UNIX-platform (vaak Solaris en Linux). Voor Windows worden in de regel handelsterminals met grafische interfaces gemaakt, terwijl UNIX wordt gebruikt om de "engine" van handelssoftware te ontwikkelen.

Dit betekent dat ontwikkelaars alleen maar moeten begrijpen wat de commando's tail, sed, grep, awk, tr en top zijn. Het is nog beter als de technicus weet hoe hij met vi, vim of emacs moet werken en niet bang is voor problemen veroorzaakt door een onjuiste $ LD_LIBRARY_PATH-configuratie.

Debuggen vaardigheden

De mogelijkheid om kernbestanden te analyseren met dbx of gdb zal van pas komen in een programmeercarrière bij financiële instellingen. Zo'n behoefte komt niet vaak voor, maar als het toch gebeurt, is het beter om alles zelf te kunnen doen.

Gevolgtrekking

De aandelenmarkt is een extreem hightech industrie die volop in ontwikkeling is, wat het werken op dit gebied zeer aantrekkelijk maakt voor IT-professionals die hun vaardigheden willen ontwikkelen. Tegelijkertijd hoeft een ingenieur niet naar het buitenland te reizen om deel te nemen aan interessante projecten - nieuwe technologieën worden actief geïntroduceerd op de Russische aandelenmarkt. In een van onze eerdere materialen hebben we het gehad over de oprichting van de SmartX-terminal en het Matrix-makelaarshandelssysteem, aan de ontwikkeling waarvan u kunt deelnemen.

Tot slot nog een advies: maak je niet al te veel zorgen over het kennen van de innerlijke "keuken" van handelsprocessen en concepten uit de financiële wereld. Dit kan natuurlijk een bijkomend voordeel zijn, maar het gebrek aan economie en kennis zal een goede programmeur er waarschijnlijk niet van weerhouden om een ​​baan te vinden bij een financieel bedrijf.

P.S. Aan het ITinvest-ontwikkelteam voor projectwerk aan:

Groeten aan alle lezers en beginnende programmeurs die vol ambities zijn en ernaar streven om nieuwe dingen te leren! Het kan zonder overdrijving worden gezegd dat programmeurs nu meer dan ooit in trek zijn.

Elke dag hebben bloeiende bedrijven ervaren professionals nodig die vloeiend zijn in een reeks programma's en vloeiend in verschillende programmeertalen.

In de regel ligt hun loon op het niveau van enkele duizenden dollars per maand, en dit is verre van de limiet. Wat moet je doen om een ​​echte expert te worden op het gebied van programmeertalen en enorm veel geld te verdienen? Nu zullen we proberen deze vraag te beantwoorden.

Studeren, studeren en nog eens studeren!

Een geboren programmeur moet houden van wat hij doet. Dat betekent dat hij altijd naar iets meer moet streven om toegang te krijgen tot nog meer kennis en kansen.

Als je Pascal goed kent en denkt dat dit genoeg is om de aandacht van bekende bedrijven te trekken, dan heb je het mis. Zelfs als je een van de meest populaire JavaScript-talen van vandaag kent, zal niemand met je praten.

Wat kunnen we zeggen over de kennis van een Pascal. Immers, als zich een situatie voordoet die een niet-standaard aanpak vereist om een ​​specifiek probleem op te lossen, dan zal alleen kennis van andere moderne programmeertalen het mogelijk maken om het gewenste naar de realiteit te vertalen.

“Je moet dus bijna alle programmeertalen kennen, wat veel tijd en moeite kost! Is er een manier om dit te omzeilen?"

Helaas niet. Een echte programmeerexpert kan alleen iemand zijn die met een bestaande taal met u communiceert en dezelfde taak op verschillende manieren kan uitvoeren.

Dergelijke programmeurs zijn nu hun gewicht in goud waard, dus het zal een groot succes zijn voor een ontwikkelend bedrijf om zo'n persoon te vinden die in de kortst mogelijke tijd geoptimaliseerde code kan schrijven en klaar is om eventuele fouten in het werkt.

Gezien het feit dat moderne technologieën zich razendsnel ontwikkelen, worden er bij elke programmeur steeds meer eisen en wensen gesteld aan zijn werk. Als je het huidige ritme niet kunt bijhouden, dan blijven dromen van een eersteklas baan met enorme salarissen waarschijnlijk dromen.

Waar moet je beginnen?

Het eerste dat opvalt, is de liefde voor programmeren. Als je een coole programmeur wilt zijn, leer dan te houden van wat je doet. De tweede, die ook belangrijk is, is doorzettingsvermogen en een goede stressbestendigheid.

Zelfs de meest gekwalificeerde specialist kan bugs tegenkomen die nog moeten worden geïdentificeerd en zo snel mogelijk moeten worden verholpen. Dit kan enorm veel tijd en zenuwen kosten, dus je moet altijd voorbereid zijn op dergelijke situaties.

En begin natuurlijk je talent te ontwikkelen met eenvoudige, maar tegelijkertijd zeer effectieve cursussen. Er zijn er veel, dus u kunt degene kiezen die u het meest effectief lijken.

Dus, wat zal je helpen een unieke en veelbelovende programmeur te worden:
Kies de eerste programmeertaal die u het meest interesseert. Het is misschien eenvoudig, maar het begrijpen van de basis ervan zal in de toekomst helpen om gemakkelijk andere talen te gebruiken, die op hun beurt geavanceerder zullen zijn.

Voltooi de vereiste cursussen informatica, waaronder Coursera en Udacity. Ze zijn goed bekend in programmeurskringen en hebben al duizenden jonge en ambitieuze nieuwkomers kunnen helpen. Alles wordt in begrijpelijke taal vermeld, dus er zullen geen problemen zijn om ze onder de knie te krijgen.

Uw code testen. Hoe eerder je dit onder de knie hebt en in de praktijk brengt, hoe gemakkelijker het later zal zijn om de basis van veel programmeertalen te begrijpen.

Controleer jezelf voortdurend om nieuw materiaal te consolideren. Denk niet dat dit tijdverspilling is. Jarenlange ervaring leert dat de opgedane kennis niet altijd even gemakkelijk in de praktijk te brengen is. Het is mogelijk dat je tijdens het oefenen compleet andere manieren ontdekt om bepaalde problemen op te lossen, waardoor je veel tijd bespaart en de code veel eenvoudiger maakt dan oorspronkelijk gepland.

Begin met het bouwen van je website. U kunt beginnen met een eenvoudige code die verantwoordelijk is voor een klein deel van de site, en dan kunt u de organisatie van de hele server bereiken. Het zal veel beter zijn als je aan deze taken werkt met een team van programmeurs zoals jij.

Verdeel de verantwoordelijkheden onderling en bepaal de deadlines voor het voltooien van alle toegewezen taken. Zo leer je niet alleen harmonieus samenwerken in een team, maar leer je ook van elkaars waardevolle ervaringen.

Neem actief deel aan onafhankelijke projecten van andere programmeurs en deel met hen de ervaring die je al hebt opgedaan in je eigen projecten. Houd toezicht op hun werk en vergeet niet om hen te steunen in moeilijke tijden.

Tot slot zou ik willen zeggen dat programmeur worden niet zo moeilijk is als het op het eerste gezicht lijkt. Liefde voor je werk, continue verbetering van jezelf en je vaardigheden, evenals hun succesvolle toepassing in de praktijk - dit is de belangrijkste basis die elke beginner nodig heeft.

Iemand droomt alleen van het zoete leven van een succesvolle programmeur, iemand denkt dat niet iedereen het kan, en iemand begint gewoon klein en gaat dan snel omhoog. Terwijl sommigen het gewoon zullen wegpoetsen, ken je al enkele basisprincipes.

En na een maand kun je doen wat anderen als onmogelijk beschouwen, dus als je echt graag programmeertalen onder de knie wilt krijgen en een van de beste specialisten op dit gebied wilt worden, dan is het tijd om al je zaken uit te stellen en te beginnen met graven erin!

Voor een deel heb ik deze vraag al beantwoord in het artikel.

Maar daar ging het om programmeurs met een min of meer behoorlijk opleidingsniveau.

Vandaag zal ik het hebben over wat een beginnende programmeur zou moeten weten, dat wil zeggen, iemand die zich net aan het voorbereiden is om programmeur te worden.

Dus, laten we zeggen dat je in programmeren een complete nul bent, maar echt programmeur wilt worden. Voordat je begint met leren programmeren, is er geen speciale voorbereiding vereist. Er is echter nog iets dat u moet weten en kunnen. Bijvoorbeeld:

  1. Wees een zelfverzekerde computergebruiker. Het is belangrijk. Het is alleen zo dat in mijn praktijk regelmatig situaties ontstaan ​​waarin een persoon een boek "" downloadt en me vervolgens per post schrijft met de bewering dat er samen met het boek geen instructie is om het te openen. De vraag is: is het te vroeg voor een persoon om te leren programmeren als hij niet weet hoe hij een archief moet uitpakken en een PDF-bestand moet openen?
  2. Begrijp het verschil tussen een ervaren gebruiker en een programmeur. Op basis van het voorbeeld dat ik in paragraaf 1 gaf, concludeer ik dat veel mensen helemaal niet begrijpen wat programmeurs doen en denken dat een programmeur iemand is die goed thuis is in computers. In feite is dit niet zo - een programmeur begrijpt misschien helemaal geen computers (in sommige gevallen kan hij zijn werk zonder computers doen).
  3. Ken wiskunde op zijn minst op het niveau van de basisschool.
  4. Het is wenselijk om informatica op zijn minst in algemene termen te kennen.
  5. Goed kunnen typen op het toetsenbord (niet noodzakelijk, maar het zal tijd besparen bij het leren programmeren, aangezien je veel tekst moet typen om voorbeelden van verschillende leerplannen in de praktijk te testen).
  6. kunnen lezen)))

Als je al begint te leren programmeren, heb je in de beginfase iets als het volgende nodig:

Dus, eerst moet je uitzoeken welke programma's in het algemeen zijn, welke programma's zijn en waarom ze nodig zijn.

U moet weten hoe programma's worden gemaakt (nou ja, in ieder geval Windows-programma's).

Je moet begrijpen wat variabelen, datatypes, subroutines, modules, enz. zijn.

Je moet minstens één programmeertaal kennen (zo niet perfect, maar in ieder geval zodat je zelf een eenvoudig programma kunt schrijven).

Dit alles staat in mijn cursus voor beginners "Fundamentals of Programming", die hier te verkrijgen is.

Een softwareontwikkelaar houdt zich bezig met het schrijven van programma's voor verschillende soorten computers. Dit grotendeels creatieve beroep vereist veel vaardigheden, kennis en ervaring. Maar het eerste dat een programmeur moet weten, is welke persoonlijke kwaliteiten de vertegenwoordigers van deze omgeving hebben. Het gebied van informatietechnologie staat niet stil en ontwikkelt zich snel. Een echte specialist moet altijd op de hoogte zijn van alle veranderingen, wat betekent dat hij veel interesse en een neiging tot zelfstudie nodig heeft.

Het volgende dat je nodig hebt om Engels te kennen. Elke ontwikkelaar kent het op zijn minst op technisch niveau, omdat het met zijn hulp het gemakkelijker zal maken om de commando's van de meeste programmeertalen te begrijpen. Het is het buitenland dat zich het snelst ontwikkelt op het gebied van softwareontwikkeling. Daarom is de Engelse taal handig om kennis te maken met het laatste nieuws op dit gebied.

Tegenwoordig leggen veel faculteiten van instellingen voor hoger onderwijs niet alleen in detail uit wat er nodig is om programmeur te worden, maar bereiden ze ook meteen specialisten voor met de nodige basisvaardigheden op het gebied van wiskunde en natuurkunde. Veel ontwikkelaars beweren echter dat hoger onderwijs op dit gebied niet het belangrijkste is. Het is belangrijker om niet-standaard en succesvolle oplossingen te kunnen vinden tijdens het werken aan taken.

De volgende punten van wat een programmeur moet weten, zijn afhankelijk van het werkgebied van de specialist. Voor een websiteontwikkelaar is het bijvoorbeeld ook erg belangrijk met grafische editors, evenals kennis van moderne webontwikkeltalen. PHP is er een van.

Mensen die erover nadenken, moeten begrijpen dat basiskennis van de taal zelf niet voldoende is. Om een ​​goede baan en een fatsoenlijk loon te krijgen, moet je OOP begrijpen, dat wordt gebruikt bij het schrijven van populaire frameworks en CMS. Werken met is de volgende stap in wat een PHP-programmeur moet weten.

Voor nu is het voldoende om vertrouwd te raken met de werking van de meest voorkomende database - MySQL. Een echte expert kan waarschijnlijk ook niet zonder HTML- en CSS-lay-outtalen. Ondanks het feit dat PHP een servertaal is, wordt het juist geassocieerd met het samenstellen van webpagina's die in HTML zijn geschreven. Je hebt ook kennis nodig van de JavaScript-syntaxis en begrip van het werk van gemeenschappelijke frameworks - JQuery of ExtJS. Het is nu gemakkelijk om al deze moderne tools onder de knie te krijgen met behulp van talloze blogs en online cursussen.

Met kennis van wat er nodig is om programmeur te worden, en het bezitten ervan, kunt u verschillende activiteitsgebieden kiezen - programma's schrijven voor het automatiseren van de activiteiten van bedrijven, het ontwikkelen en moderniseren van websites en applicaties. Tegelijkertijd is het helemaal niet nodig om in een bedrijf op een vaste plek te werken. Er is een mogelijkheid om zelfstandig interessante bestellingen te vinden zonder het huis te verlaten, of om uw eigen bedrijf te organiseren, wat een echte bron van succes kan worden. Een dergelijke onderneming vereist echter aanvullende kennis op het gebied van economie, projectmanagement en jurisprudentie.

1.1 Waarom heb je het nodig?

Wees een schrijver! Ze zal je bevrijden van belastingen, ze zal je beschermen tegen allerlei soorten werk. Ze zal je van de schoffel halen en... en je zult de mand niet dragen. Het zal je scheiden van roeien en peddelen, het zal je uit de problemen halen. Je zult niet onder veel heersers en veel heersers staan.
[...]
Word een schrijver! De leden zijn glad en je handen zullen zacht worden. Als je uitgaat, ben je verkleed, je bent verheven, de hovelingen ondervragen je. Als iemand een vakman zoekt, vinden ze jou. Wie niets weet, zoekt een wetenschapper. Hij [is] verheven tot het punt dat hij hem [de titel van] sera ontvangt, geprezen om zijn uitstekende gedrag.

Papyrus Apastasi II, het oude Egypte

Tijden gaan voorbij, maar er verandert niets. De belangrijkste reden is dat programmeurs hard nodig zijn op de arbeidsmarkt. De vraag is de hoofdoorzaak van alle andere factoren. Goede arbeidsvoorwaarden, hoge salarissen, loyale bazen. Dit alles ziet er heel, heel aantrekkelijk uit. In feite is het beroep van programmeur de enige sociale lift in onze tijd. Je hebt geen rijke ouders nodig, uitgebreide connecties met allerlei "de juiste mensen", een prestigieuze hogere opleiding en andere attributen van succesvolle mensen in onze tijd. Het enige dat u nodig hebt, is de mogelijkheid om computerprogramma's of websites te maken. Je kunt beginnen met programmeren door in de verste en minst prestigieuze provincie te wonen. En fantastisch succes behalen in het leven.

In het ergste geval kan je carrière er voorlopig als volgt uitzien. Eerst een half jaar of een jaar zelfstudie. Die. studeren zonder uitgebreide hulp van buitenaf. Het maximale dat je kunt, vraag iets op thematische forums. Je wordt zeker geholpen. Maar 99% zal dikke boeken lezen en van daaruit oefeningen doen, 3-4 uur per dag. Dan kun je betaald worden voor je kennis. En het zal echt zijn om zo'n baan te vinden. Na een jaar zo te hebben gewerkt, voor het meest voorkomende salaris van $ 300-400. Je zult een ervaring hebben die alle deuren in het leven voor je opent. U kunt vanaf $ 1000 op afstand ontvangen en / of gaan waar u maar wilt. Zelfs naar een ander land. En daar wonen is niet erger dan de lokale bevolking. Ik sta niet achter de stomme slogan "ga weg van ...", maar als je echt van vaste verblijfplaats wilt veranderen. Dit beroep is de kortste en gemakkelijkste weg.

Als je eenmaal klaar bent met je stage, zul je nooit slechter af zijn. Dit zal heel moeilijk zijn. Zelfs puur psychologisch is het beroep ontspannend. Je zult niet bang zijn voor crises, oorlogen, natuurrampen en slechte bazen. Want je kunt op elk moment overal naartoe verhuizen en van baan wisselen voor een ander. Je hebt altijd genoeg geld voor een "broodje boter" en zelfs vervroegde aflossing van de hypotheek.

1.2 Wie kan programmeur worden?

Nu een beetje vlieg in de zalf. Iedereen die met zijn hoofd kan werken, kan programmeur worden. Hoofdwerk is in feite net zo zwaar als zwaar lichamelijk werk. Tijdens het sporten verbruiken de hersenen veel voedingsstoffen en energie. Hij moet met een wilsinspanning aan het werk worden gezet. Hoofdwerkliefhebbers zijn niet vaker te vinden dan mensen die van lichamelijke activiteit houden. We weten allemaal hoeveel mensen zich vrijwillig kunnen aanmelden om 's ochtends te sporten en jarenlang regelmatig naar de sportschool te gaan. Ongeveer hetzelfde aantal wil vrijwillig hun brein met werk belasten. Het zal wilskracht en geduld vergen. Als je meer dan een jaar klaar bent om complexe problemen, "onoplosbare" problemen, op te lossen, kun je programmeur worden.

Natuurlijk moest ik in dit deel opsommen wat voor opleiding je zou moeten hebben. Welke opleidingen, diploma's en competenties je moet hebben. Maar dit alles is secundair. Want diploma's, competenties en cursussen zijn winstgevend. Als je niet klaar bent om aan het graniet van de wetenschap te knagen, schijnt er niets voor jou. Anders kunt u in zes maanden alle benodigde kennis opdoen.

Het is logisch dat hoe beter u uw computer kent, hoe gemakkelijker uw pad zal zijn. U moet een ervaren computergebruiker zijn. Die. weet wat een bestandssysteem is, hoe u uw bestanden daar opslaat, hoe u ze opent met verschillende programma's, hoe u programma's installeert en gebruikt, als dit geen speciale kennis vereist over wat deze programma's doen. Ik denk dat je in zes maanden voldoende met een computer kunt leren omgaan. Ook al heb je hem nog nooit gezien.

De meesten die programmeur wilden worden, liefhebbers van computerspelletjes, wier ouders het internet hadden uitgeschakeld om terug te keren naar de realiteit. Terug in de realiteit, waar je jezelf moet voeden, geen virtueel personage. Opgezet door systeembeheerders, het laagste niveau. Ze gaan aan de slag in de technische ondersteuning, want een computer is het enige dat ze goed kunnen gebruiken. Zulke mensen hebben al de nodige kennisbasis.

Als je moeite hebt om met een computer te communiceren, raad ik je aan om eerst te leren hoe je er zelfverzekerd mee om kunt gaan. Al was het maar omdat de problemen die je tegenkomt tijdens het leren programmeren dezelfde aanpak en vaardigheden vereisen als bij het oplossen van problemen van een gewone gebruiker. Daarom moeten onervaren gebruikers ervaren worden. Er zijn talloze gratis literatuur, online cursussen, videozelfstudies en ervaren gebruikers om u te helpen. Op zijn minst zijn de taken bij het leren programmeren veel moeilijker dan de taken van een gewone gebruiker. Goede computervaardigheden zijn de verantwoordelijkheid van elke programmeur!

De rest van de kennis, zoals vreemde talen en zelfs wiskunde, kan in de beginfase als onbeduidend worden beschouwd.
Natuurlijk zullen er mensen zijn die zullen vragen: “Wacht !!! Wat als ik dom ben (oud, gehandicapt, enz.) ??? Welk IQ moet ik hebben ??? "

In feite is er geen 100% manier om uw programmeervermogen te definiëren aan de hand van enkele formele criteria. Volgens een populaire neurowetenschapper is het menselijk brein zeer variabel. Als het gewicht, de lengte en de grootte van de belangrijkste menselijke organen variëren, conventioneel + \ - 50% in het grootste deel van de volwassenen, dan varieert de grootte van de hersenkwabben tien keer. Daarom is het erg moeilijk om te begrijpen welke activiteit voor jou het meest geschikt is. Hiervoor is het nodig om een ​​nieuw type te maken van een toch al waanzinnig duur medisch hulpmiddel. Huur dan zeldzame en dure specialisten in die de meetwaarden van het apparaat analyseren. En tegelijkertijd is het geen feit dat ze voor jouw geld gewoon geen fouten maken. Zoals bij alle complexe en dure projecten, in de beginfase.

Natuurlijk denkt iedereen dat alles gereduceerd kan worden tot zoiets als een toelatingsexamen voor een universiteit, met als hoofdvak wiskunde. Maar nee! Ik haast me om iedereen van streek te maken. Aan de buitenkant lijkt wiskunde op programmeren, maar dit is alleen op het eerste gezicht. Ik herinner me dat ik 10 jaar geleden een fragment uit een boek las waarin de auteur, een ervaren programmeur, zei dat programmeren meer op taalkunde lijkt. Ja Ja! Volgens hem kunnen professionele taalkundigen betere programmeurs zijn dan professionele wiskundigen! Ik kan het niet 100% eens zijn. Maar hier zit een rationele korrel in.

Laten we een voorbeeld nemen. Voor het doen van boodschappen in de winkel moet u instructies voor uw kind opstellen. Zoals: “Je gaat naar de winkel op zoek naar rietsuiker, als je die niet hebt, koop je gewone suiker. Dan koop je brood, een wit en zwart brood. Als er geen zwart is, koop dan een grijze ... "Je zult verrast zijn, maar dit soort instructies is puur programmeren. Bovendien kunt u ze in vreemde talen schrijven. Of u kunt de syntaxis van een programmeertaal op dezelfde manier gebruiken als een vreemde. En een andere programmeur zal kunnen begrijpen wat er staat.

Voor degenen die het niet geloven, laten we eens kijken naar eenvoudige logica die in honderden programma's is geïmplementeerd. “Vraag het aantal geselecteerde rijen in de tabel aan. Als het aantal groter is dan nul, maak dan de knop "Toepassen" actief. Anders passief ... ”Je kunt dit algoritme ook in een natuurlijke moedertaal of vreemde taal of in een programmeertaal schrijven.
Het zal je ook verbazen, maar het vertalen van algoritmen van een natuurlijke taal naar een programmeertaal is de meest voorkomende klus. Wanneer de programmeur de taak krijgt om duidelijke logica te implementeren die door anderen is uitgevonden. Omgekeerd is ook vertaling van de geprogrammeerde logica in natuurlijke taal nodig. Wanneer deze "anderen" moeten beschrijven hoe het programma precies werkt. Ja, dat klopt, C++, PHP en andere programmeertalen kunnen als bijzondere buitenlandse worden gezien. Wiskunde is soms ook nodig, maar in de regel bij het uitvoeren van een aantal zeer gespecialiseerde taken die u misschien nooit zult tegenkomen. Je kunt beginnen zonder wiskundige achtergrond.

Programmeren is een aparte tak van wetenschap. Het heeft op de een of andere manier met wiskunde te maken. Maar het kan ook worden geassocieerd met taalkunde. Zeker, sommige programmeertechnologieën zijn gerelateerd aan iets anders. Daarom is het onmogelijk om zo eenvoudig te zeggen of u zult slagen of niet.

1.3 Drie etappes op weg naar het beroep

Nu je genoeg hebt van allerlei onzin en een beetje verrassende feiten, is het tijd om verder te gaan met je studie. Je professionele ontwikkeling moet in drie fasen plaatsvinden:

1) Proefperiode. Je zou deze activiteit eens moeten proberen.
Het is een feit dat het beheersen van een vak zes maanden of zelfs een jaar studie kost. En je moet zo vroeg mogelijk begrijpen of je het wel of niet kunt. Moet u uw tijd en zelfs geld investeren. Of er wacht een teleurstelling.

Gedurende deze periode is het noodzakelijk om 2-3 technologieën van echt programmeren onder de knie te krijgen. Maar het zou niet lang moeten duren om ze onder de knie te krijgen. Als je het kunt, is het logisch om de beloofde zes maanden of een jaar aan de volgende fase te besteden.

2) Zelfstudie.
Als je de vorige fase hebt doorstaan, kun je je tijd investeren in het beheersen van het vak.

3) Stage.
Je eerste baan en je eerste geld.

2 Proefperiode

2.1 Wat te doen?!

In feite is er maar één manier om te weten of je het kunt of niet. “Om te beginnen met programmeren, moet je beginnen met programmeren. En om te beginnen met programmeren, moet je beginnen met programmeren!”

Veel mensen beschouwen programmeren als een moeilijk beroep, je moet veel dingen weten om als programmeur te werken. En het is waar. Als het makkelijk was, zouden ze niet zulke hoge salarissen krijgen. Maar aan de andere kant zijn er veel boeken in het publieke domein. Bovendien zijn de meeste van hoge kwaliteit. Professionals van grote bedrijven hebben de neiging om enorme boeken of artikelen te schrijven waarin ze hun onschatbare ervaring aan anderen beschrijven. Vreemde mensen natuurlijk. In plaats van veel geld te krijgen voor hun werk, zijn ze bezig met het schrijven van boeken, waarvoor ze minder of zelfs helemaal niets betalen. Deze "eigenaardigheden" zullen later worden besproken. En nu moeten we duidelijk leren, er zijn maar heel weinig geheimen in dit beroep. De meeste vragen worden opgelost door te zoeken op internet. Daarom, ondanks de complexiteit, programmeren is een van de meest toegankelijke beroepen.

Tijdens de proefperiode moet u beslissen met welke technologieën u gaat starten. Ze moeten niet te ingewikkeld en tijdrovend zijn om te leren. Maar aan de andere kant moeten ze wel gewild zijn op de markt, zodat zelfs die paar weken of een maand die eraan zijn besteed niet verspild zijn.

Persoonlijk zou mijn mening moeten zijn:

2.1.1 HTML
Een zeer eenvoudige programmeertaal. Om precies te zijn, dit is niet eens de programmeertaal die iedereen gewend is. Procedureel en objectgericht, zoals C++, PHP, Ruby, etc. Het is onmogelijk om er "wat te doen in de winkel" op te schrijven. Het is een opmaaktaal die je op elke webpagina tegenkomt. De instructies van deze taal zien er ongeveer zo uit: “Deze paragraaf moet een cursief lettertype hebben”, “Toon hier een afbeelding picture.png”, “De lettergrootte van dit stuk tekst is 12 punten. De kleur is rood."

Het is een zeer nuttige taal voor beginners. Zelfs als u zich niet bezighoudt met webontwikkeling, zal deze kennis nuttig voor u zijn. Geschatte ontwikkeltijd, 2-5 dagen. Het is echter niet nodig om uitgebreide referentiegegevens te onthouden. Het is voldoende om te leren hoe u dezelfde naslagwerken kunt gebruiken. Onder programmeurs wordt HTML niet als iets serieus of moeilijks beschouwd. Maar onwetendheid over de basisprincipes van HTML, die je alleen kunt bekennen aan de naaste mensen. Werkgevers en collega's zullen je als mentaal gehandicapt beschouwen.

Terwijl je HTML leert, zul je constant verwijzingen naar CSS-technologie tegenkomen. Onderzoek is in dit stadium niet nodig. Maar als je je laat meeslepen door CSS, is deze kennis niet overbodig.

2.1.2 JavaScript

Dit is al een "echte" programmeertaal. De studie ervan is nauw verwant aan HTML. Dit is waar de eerste echte moeilijkheden op je wachten. Al is er qua taal een enorme variëteit aan studieboeken, videotutorials en allerlei sites, waar alles tot in de puntjes is uitgekauwd. Dit wordt een echte test.

Er staat vast wel iemand te popelen om C, Python en zelfs Haskell te leren. Maar ook als je systeemprogrammeur gaat worden. Hoogstwaarschijnlijk komt u vroeg of laat HTML en JS tegen.

Een van de redenen om voor JS als eerste programmeertaal te kiezen, is de toepasbaarheid op verschillende gebieden. Beginnend met de logica van de webpagina's aan de clientzijde. Eindigend met de JS-achtige QML-taal, waar de ontwikkelaars van het Qt-framework ons ​​aan de oren trekken.

Als een beginnende programmeur geen simpele dingen weet, maakt het niet veel uit waar te beginnen. De voorgestelde technologieën vereisen geen grote en zware ontwikkel- en uitvoeringsomgevingen. Er zijn veel studieboeken en naslagwerken in het Russisch voor hen. Het is niet nodig om verward te raken met adresberekeningen en soortgelijke bijzonderheden. Jouw taak is om te leren hoe je logische basisconstructies kunt maken, zoals lussen, branches, enz.

Elke tutorial bevat oefeningen. En in de beginfase moet je deze oefeningen doen. Hoe groter hoe beter!

Er zijn echter twee kleine categorieën mensen die JS door iets anders kunnen vervangen:

1) Degenen die goede mentoren hebben in andere programmeertechnologieën.
Bijvoorbeeld een broer/koppelaar die werkt als systeemprogrammeur C. En hij staat klaar om je te helpen. In dit geval kan C de voorkeur hebben. Maar voor zover ik weet, is ongeveer 30% van de programmeurs WEB-programmeurs. Dus JS is waarschijnlijk de juiste keuze.

2) Mensen die nu een andere taal nodig hebben om te werken. Systeembeheerders zijn meestal SQL en bash.

In het geval van SQL zou ik mezelf niet vleien. Dit is ook een "nep" taal. Complexiteit tussen HTML en JS. Het zal in ieder geval hoogstwaarschijnlijk aan iedereen moeten worden geleerd. Maar na verloop van tijd zou ik je aanraden om iets als JS te proberen dat hoe dan ook de procedurele en OOP-paradigma's ondersteunt. Er is nog steeds een pluspunt in het leren van SQL. Als je het niet onder de knie hebt, heeft het geen zin om door te gaan.

Maar met bash is het anders. Ik heb gehoord dat je met JS bash kunt vervangen via een module in node.js. Dus als je helemaal opnieuw scripts moet schrijven, zal JS interessanter zijn. Als u corrigeert wat voor u is geschreven, is er geen andere keuze. Net als bij SQL blijft JS aan de beurt.

2.2 Zelfstudies

Een heel belangrijke vraag is welke tutorials je moet gebruiken. Hier zijn de opties in Oke die hen moet passeren.
  1. Videolessen. Er zijn er veel over elk onderwerp. YouTube zal zeker afspeellijsten vrijgeven voor alle populaire technologieën. Zelfs in het Russisch. Alles is daar duidelijk en begin met het beeldhouwen van je eerste "Hallo, wereld!" het is nodig van hen. Er is alleen één nadeel. Ze dekken mogelijk niet alle diepten van de doeltaal. Maar zonder heb je al genoeg problemen.
  2. Multimediale leerboeken. Hoogstwaarschijnlijk zijn dit verzamelingen videozelfstudies plus iets anders. Ze worden vaak voor geld verkocht.
  3. Boeken. Het moeilijkst waar te nemen. Ze dekken gewoon meer van de fijne kneepjes van verschillende technologieën. Laat het voor later. Wanneer u de mogelijkheden van de vorige opties uitput.
Maar alstublieft, hierna. Je hoeft geen cursussen te kopen en te betalen voor de wonderboeken. Alle "wonderen" bestaan ​​al heel lang, hoogstens op torrents. Naar mijn mening bevat rutracker, verboden in Rusland, de beste verzameling multimediale leerboeken en boeken.

2.3 Technische problemen oplossen

Met wilskracht en geduld begon je heldhaftig aan je studie van het onderwerp. En allerlei technische problemen begonnen zich voor je neus te voordoen. Je kunt alles doen volgens de instructies. Maar uw voorbeelden werken mogelijk niet. Al was het maar omdat er instructies geschreven kunnen worden voor eerdere versies van softwaretools. De moeilijkste stap is misschien de eerste run van de broncode, die u zojuist uit de zelfstudie hebt herschreven.

De meest voorkomende fouten houden verband met het feit dat beginners de neiging hebben om te haasten en sommige dingen als optioneel beschouwen. Jij, net als ieder normaal mens, denkt dat er secundaire punten zijn in boeken over programmeren. Waarschijnlijk wil je snel het resultaat hebben, in de vorm van een stageplaats. En dan zul je, omringd door competente collega's, alles begrijpen en grondig bestuderen. Dus "een tutorial" over JavaScript dat niet eens je primaire taal zal zijn. Het kan worden gezien als een marathonafstand die zo snel mogelijk moet worden overwonnen. In feite moet elk programmeerboek worden gezien als een veld dat moet worden geploegd. Iedereen die de kleine dingen overslaat, krijgt uiteindelijk te maken met hardnekkige problemen. En in plaats van een bedrijf van competente collega's, zullen ze helemaal alleen zijn om de stof opnieuw te bestuderen.

Herinner je je bijvoorbeeld een secundaire term slecht? En na een paar dagen zal de code-interpreter of compiler u uitgebreide foutmeldingen geven. Waarin er tientallen termen zullen zijn, zoals diegene die eerder in het leerboek zijn tegengekomen, maar ook die welke niet zijn aangetroffen. En de fout die u herkent, kan de belangrijkste zijn. Nadat je het hebt gerepareerd, zullen alle anderen op magische wijze verdwijnen. De meeste redenen voor schooluitval in de beginfase houden precies verband met de analyse van fouten door de tolk of compiler.

Het lijkt je, gedetailleerde beschrijving is het gebruik van aanhalingstekens met rekenkunde gekke onzin die je nooit zult gebruiken? Je bent misschien niet. Maar de auteur beschouwt het als eenvoudig. Daarom vindt u verderop in de tutorial overal de toevoeging van tekens met en zonder aanhalingstekens. Maar zelfs als je besluit dat het beter is om een ​​leerboek te nemen over een andere programmeertaal waar je hoge verwachtingen van hebt. Ook hij zal je kwellen met regels als "5" + 3. Bovendien, met dezelfde "domme" uitgebreide uitleg.

Onoplosbare problemen maken deel uit van het leven van elke programmeur. En hoe ijverig je alles ook doet, je komt er niet van weg. Persoonlijk kijk ik, hoewel ik 5 jaar ervaring heb, ook naar boeken over iets obscuurs en complexs. En soms denk ik ook: “Het is nog steeds een soort onzin. Hoe ga ik dit oplossen?! " En precies hetzelfde als die van jou. Voor mij hangt veel af van de oplossing van problemen die volkomen doodlopend lijken.

Als je problemen hebt waarmee je contact kunt opnemen met het forum of de thematische groep van het sociale netwerk, dan is het met mijn problemen nutteloos.

Er is zelfs een speciaal algoritme om ze op te lossen:

1) Het is noodzakelijk om goed na te denken over de redenen. Het parseren van compiler-, runtime- of interpreter- (JavaScript)-berichten met betrekking tot de fout. U moet heel goed begrijpen dat de computer u over het probleem vertelt. Als u het niet begrijpt, zoekt u op internet naar de tekst of foutcode. Heel vaak worden verklaringen gevonden, maar in het Engels. Zelfs na vertaling kan er weinig worden begrepen. Maar je moet heel hard je best doen. Het is niet alleen een situatie waarin u een specifiek probleem oplost. Dit is een situatie waarin je een nieuwe ervaring opdoet. Niet minder belangrijk dan de kennis uit het leerboek. Daarnaast wordt een analyse van potentieel problematische code uitgevoerd. Als je ergens code hebt herschreven of gekopieerd, moet je deze goed begrijpen.
Als je in anderhalf tot twee uur alles lijkt te hebben onderzocht en begrepen. Maar een oplossing vonden ze niet. We moeten het probleem dus tot morgen laten. Ook als er meer ideeën zijn.

2) Doe iets anders dat niet van uw probleem afhangt en het blijkt. Je kunt zelfs je huidige tutorial blijven bestuderen. U zult verrast zijn, maar na verloop van tijd zullen er ideeën ontstaan ​​om het probleem op te lossen. Als ze niet helemaal duidelijk zijn. Het wordt niet aanbevolen om meteen naar de oplossing te rennen. Het is beter om het op te schrijven en het voor morgen te laten.

3) De volgende of een andere dag. We proberen alle nieuwe ideeën om het probleem op te lossen. We herhalen de eerste fase.

4) Als alles nog steeds slecht is, maken we een vraag voor de mentor of voor het forum. Je moet duidelijk zijn over wat je wilde doen. En wat je code is. Vragen om code voor je uit te zoeken die je niet eens goed hebt bestudeerd, is volkomen respectloos.

In de regel is dit voldoende om elk probleem op te lossen.

2.4 Werken met mentoren

Een kleine set regels voor het werken met verschillende ervaren professionals, mentoren, mentoren, etc.
  • Alvorens te vragen, moet u proberen zelf een oplossing te vinden.
  • Probeer alleen te vragen wat niet wordt beschreven in boeken, documentatie en internet. Anders word je daarheen gestuurd.
  • Als je ergens naartoe bent gestuurd, moet je daarheen gaan. Anders gaat de mentor er zelf heen en vindt een oplossing. Dit zal zijn mening over jou enorm bederven.
  • Om te voorkomen dat de mentor uren aan je tafel staat en je elke stap bekijkt, moet je de vragen groeperen. Vraag ze "in bulk", veel verzameld in één keer. En niet zoals het zich voordoet.
  • Het is het beste om vragen te stellen wanneer uw voorwaartse beweging wordt geblokkeerd. Als er nog iets anders te doen is, doe het dan. Het kan ook vragen oproepen. Welke kun je beter samen vragen.

3 Zelfstudie

Kom in je plaats! De boeken liggen al voor je kameraden. Neem je jurk en zorg voor je sandalen. Lees het boek aandachtig. Breng uw dag niet werkeloos door, anders wee uw lichaam! Schrijf met je hand, lees met je mond, vraag advies aan iemand die meer weet dan jij.

Breng je dagen niet werkeloos door, anders word je geslagen, want het oor van de jongen zit op zijn rug en hij luistert als hij wordt geslagen.

Wees geen man zonder reden, zonder opleiding! En 's avonds krijg je les, en overdag word je opgevoed, maar je luistert niet naar instructies en doet wat je van plan bent. En de leeuwen worden getraind en de paarden worden getemd - en alleen jij! Ze kennen je niet in het hele land. Noteer dit voor jezelf!

Ze vertellen me dat je het leren opgeeft, je geniet van genoegens, je dwaalt van straat naar straat, waar het naar bier ruikt. En bier verleidt mensen, het maakt je ziel van streek. Je bent als een gebedshuis zonder zijn god, als een huis zonder brood. Je leert op de fluit te zingen. Je zit voor een meisje en je bent gezalfd met wierook. Je bloemenkrans hangt om je nek.

Ik zal je voeten vastbinden als je door de straten dwaalt en je wordt geslagen met een nijlpaardzweep!
Instructies voor de schrijver. Het oude Egypte

Na het beheersen van de basis van JavaScript. Je hebt al een goed idee van wat het betekent om programmacode te schrijven.

En je bent klaar om zes maanden of een jaar het vak onder de knie te krijgen. En wat belangrijk is, dit is voor jou een kwestie van tijd.

3.1 Wat te leren?

Alle mensen die een beroep proberen onder de knie te krijgen, kunnen worden onderverdeeld in twee categorieën: amateurs en professionals.

Geliefden mensen die van deze activiteit houden. En ze zijn bereid om het zelfs gratis te doen. Tijd opofferen die kan worden besteed aan entertainment, ontspanning, enz. Sinds je het hebt geprobeerd, weet je heel goed of je van programmeren houdt of niet. Amateurs hebben een zeer goede kwaliteit. Ze hoeven niet gemotiveerd te zijn. Ze zullen hard werken, gewetensvol werken en met plezier nieuwe kennis opdoen. Vervolgens delen ze deze kennis met hetzelfde plezier met collega's en vrienden. Maar de meeste amateurs onder de amateurs schrijven artikelen en zelfs hele boeken over hun ervaringen.

professionals ze zijn bereid dit alleen voor geld te doen. Of voor het vooruitzicht ze te krijgen. Professionals moeten gemotiveerd worden. En ze stoppen bijna altijd in hun ontwikkeling zodra ze een goede baan hebben. Zelfs een salarisverhoging. twee keer kan voor hen geen reden zijn om verder te studeren. In de regel zijn alleen amateurs geschikt voor geavanceerde training.

Pure professionals en amateurs zijn natuurlijk zeldzaam. Sommige mensen houden van half- of kwartwerk. Iemand die verschillende technologieën heeft geprobeerd, vindt iets naar zijn gading.

Laten we zeggen dat een ontwikkelaar voor zichzelf werkte voor geld. Hij had op de een of andere manier de kans om naar de klant te gaan, om de vereisten met de directe gebruikers te verduidelijken. En de ontwikkelaar begreep het. Accountants bezoeken is veel interessanter dan code schrijven. Hierdoor rijdt de ontwikkelaar voor het hele team. Ook na uren. Geleidelijk omgeschoold tot systeemanalist of projectmanager.

Maar eigenlijk proberen ze verschillende technologieën. Sommige zijn boeiend, andere niet. Zelfs één en dezelfde technologie kan eerst boeien, en na een jaar gaan vervelen.

Het is erg belangrijk voor iedereen om te begrijpen welke activiteit ze het leukst vinden. Want het comfort van het leven hangt er sterk van af. Er is een algemene misvatting dat werken alleen is om geld te verdienen. Hoewel dit een enorm en het beste deel van het leven is. Op het werk kun je creatief zijn, communiceren en nog veel meer. Als je omwille van geld naar een onbeminde baan gaat, zul je dit op de een of andere manier moeten compenseren met entertainment, rust. Daardoor is er misschien niet eens genoeg geld voor compensatie.

De best betaalde professionals zijn ervaren amateurs. Ze halen ook het meeste plezier uit werk en leven. Daarom moet je in dit stadium beslissen wat je het leukst vindt.

De technologie (de programmeertaal die je gaat leren) moet commercieel beschikbaar zijn. Uit de TOP 10 populaire talen. Anders krijgt u geen geld voor uw werk. Dit betekent dat je geen programmeur kunt worden. Je zult apart geld moeten verdienen, apart programmeren. Wat natuurlijk onmogelijk is.

Je hebt nog een stage voor de boeg. En alleen in schaarse specialismen lopen ze graag stage. Vooral op afstand. Bedenk/beslis daarom waar je je leven aan wilt wijden. Wat ga je in deze fase studeren. JavaScript kan worden voortgezet. Je kunt iets anders proberen. Niemand neemt de moeite om midden op de weg van gedachten te veranderen. Je hebt jezelf al getest en er is een bepaald veld om te experimenteren.

De enige uitzondering die ik zou maken is voor C++. Dit is een moeilijke taal. Het duurt waarschijnlijk twee keer zo lang om onder de knie te krijgen. Dan alleen C of JS. In dat geval wordt het salaris maximaal 20% hoger. C++ is de taal van C++-liefhebbers.

Als je niet van JS houdt, en je voelt je als de "professional" hierboven beschreven, dan is Java waarschijnlijk de beste keuze. Eens kon ik niet eens een programma uitvoeren dat in deze taal was geschreven (jar-archief). Maar aan de andere kant zijn Java-ontwikkelaars in combinatie met Oracle (PL \ SQL) van grote bedrijven aantoonbaar de best betaalde ontwikkelaars in IT. Ondanks het feit dat dit technologieën zijn van gemiddelde complexiteit. (Ik veronderstel dat ze in de Java-wereld alleen betalen voor de mogelijkheid om jar-bestanden uit te voeren.)

Er is ook een prachtige Python-taal. Het zal zeer nuttig zijn voor alle soorten wiskundigen, statistici, omdat: opent voor hen de deur naar de wereld van Data Science. Aan de andere kant is het de webontwikkelingstaal voor alle anderen.

Studies in dit stadium zijn erop gericht hun kwalificaties maximaal te verhogen. In feite verhoogt u de marktwaarde van uw arbeid. U kunt er zeker van zijn dat alles wat u in dit stadium door het programmeren verliest, vele malen zal terugkeren.

Zelfstudie heeft voorrang op stages. U kunt meer fundamentele kennis opdoen. In feite zijn de meeste programmeurs professionals. Ze hebben een beetje geleerd. We moeten aan het werk. En ze exploiteren hun weinige kennis. Het meeste van wat ze lezen zijn kleine artikelen over hoe je snel iets kunt koken. Of hou je mond over elk probleem. Ze missen echt fundamentele kennis. Je zult verrast zijn, maar niet alles is mogelijk
"Googlen". Iets wat je in eerste instantie moet weten en kunnen. Al was het maar omdat je te maken hebt met wat je "googlet". De code die u vindt, kan worden geschreven door een zeer goed persoon. Met een gebrek aan fundamentele kennis, zul je het gewoon niet begrijpen.

Kies zelf een groot, fundamenteel boek over een programmeertaal. En bestudeer het tot het einde. Samen met alle studieopdrachten.

Het voltooien van educatieve taken in dit stadium is een zware, sombere taak! Je zult je vervelen, oninteressant zijn, je zult alles willen opgeven. De meesten doen dat. Motiveer jezelf, bedenk interessante opdrachten, blijf leren. En jij zult niet die meerderheid zijn.

Naast de belangrijkste programmeertaal zoals C, Java, JS, etc., moet je het volgende leren:

de Engelse taal
Zoals je weet, zijn programmeurs het soort mensen dat Engels kan lezen, maar niet kan spreken. Dit is de taal waarin u oplossingen zoekt voor uw problemen, communiceert met klanten. Conversationeel Engels breidt het bereik van het zoeken naar werk aanzienlijk uit. Dit is erg goed voor het salaris. Hoewel, toegegeven, je kunt er net zoveel tijd aan besteden als aan een programmeertaal.

Technisch Engels, gemakkelijker te leren. Vertaal gewoon het materiaal dat je nodig hebt in verschillende vertalers. Onthoud onbekende woorden.

SQL
In de meeste gevallen heeft u deze technologie vroeg of laat nodig. Het is niet nodig om PL \ SQL-invoegtoepassingen te leren (behalve het leren van Java). Maar het is zeer wenselijk om het maken van tabellen, joins en vakbonden onder de knie te krijgen. De meest bruikbare is misschien wel de studie naar het voorbeeld van PostgreSQL.

SQL heeft een ander aspect. Deze taal is misschien wel het moeilijkste om te vragen bij het inhuren van een tester. Daarom, als je het alleen leert, is er een kans om een ​​baan te krijgen die heel dicht bij programmeren ligt. In zo'n baan zal het wat gemakkelijker zijn om het programmeren zelf te leren. En je wordt heel gemakkelijk overgezet van testers naar ontwikkelaars. Zodra je laat zien dat je goede code kunt schrijven.

Beheers de "blinde" tienvingermethode van typen op het toetsenbord
Er is veel om af te drukken. Zorg er daarom voor dat je het onder de knie hebt. Er zijn genoeg gratis online simulatoren op het web. Je kunt proberen het onder de knie te krijgen voor de eerste, "test" -fase. Als je zelfs hiervoor niet het geduld hebt, heeft het geen zin om verder te gaan.

Versiecontrolesystemen
Dit zal natuurlijk Git zijn. Zorg ervoor dat u de basis leert en probeer het uit in uw leerprojecten. Maar niet in de laatste plaats. In het begin zal het moeilijk zijn om te begrijpen wat het is, welke voordelen het biedt.

Deze vakken zijn goed omdat je daarmee gelijke tred kunt houden met je studie. Zelfs als je vastzit aan het leren van de hoofdtaal. U zult waarschijnlijk de beschreven "onoplosbare" problemen hebben. Schakel hier over en zoek langzaam naar een oplossing.

3.2 Veelvoorkomende manieren om kennis te verwerven

Universiteit
Ik kan je veel vertellen over het hoger onderwijs. Maar dit heeft geen praktische waarde. Kortom. Het is beter om na een jaar zelfstudie stage te lopen dan na vier jaar studeren aan de universiteit. Degenen die nu gaan studeren volgens mijn aanbevelingen, zullen over 4 jaar technische tests uitvoeren bij het aannemen van degenen die nu naar universiteiten gaan.

Betaalde programmeurstrainingen
Alles is hier erg ingewikkeld. Vraag creëert aanbod. Maar dit aanbod is vaak van zeer slechte kwaliteit. Je kunt ze allemaal proberen. Maar heb alsjeblieft geen hoop. Probeer de eerste lessen gratis te volgen. En ren vanaf daar weg als je iets niet begrijpt in de klas. Geen van de merken waaronder deze cursussen zijn gemaakt, zal bijdragen aan uw begrip van het onderwerp. "Garantie van werkgelegenheid" daar is in de regel een bedrog.

Cursussen en scholen van grote bedrijven voor hun toekomstige werknemers
Het meest bekende geval is misschien wel de "School of Data Analysis" van Yandex.

Hier krijg je les van echt dure specialisten. En ze zullen het doen voor hun interne behoeften. In de regel stellen dergelijke cursussen bepaalde eisen aan kandidaten. Yandex vereiste wiskundige training. EPAM vereiste basis programmeerkennis. Je kunt er gewoon niet komen. Maar als er een mogelijkheid is om deze cursussen te volgen, is het zeker de moeite waard om daar naar te streven! Ook al blijf je een heel jaar in "slavernij" bij deze bedrijven voor zo'n 400-500 dollar per maand. Een groot pluspunt van dergelijke cursussen. Ze hebben geen opleiding nodig.

3.3 Leerstrategie

De meeste studenten verwachten te leren programmeren door gewoon te leren. Alsof ik aan een leerboek ging zitten dat het onderwerp niet kende, maar ik was klaar met het onderwijzen ervan en begon alles te begrijpen. Het hele proces is lineair voor beginners. Door van hoofdstuk naar hoofdstuk te gaan, educatieve taken door te geven, verwerft een persoon kennis. Mensen vertegenwoordigen geen andere modellen. Omdat we nooit complexe en langdurige projecten hebben gedaan. Maar in werkelijkheid is alles niet zo eenvoudig. Elke programmeur weet dat in de loop van een project onvermijdelijk nieuwe details worden ontdekt die de uitvoering ervan belemmeren of juist helpen. In de regel geldt: hoe groter het project, hoe minder het lijkt op wat oorspronkelijk bedacht was.

Een eenvoudig voorbeeld. Je hebt een pak voor jezelf besteld in het atelier. Over alle details waren we het eens. Een week later belt de meester met het nieuws, de afgesproken vorm van de naden ziet er erg slecht uit op het pak, het moet worden veranderd. Dan blijkt dat een deel van het materiaal veranderd moet worden. Niet nodig. Je verandert en verandert. Uiteindelijk krijg je ongeveer 2/3 van wat je oorspronkelijk van plan was. In het geval van softwareontwikkeling. In het project van een pak kun je een zwempak krijgen. En voor de prijs van het pak. Als je dit onvoorstelbaar vindt, vraag het dan na afloop aan een slimme projectmanager. In de tussentijd heb je één ding te leren, er zullen veel onverwachte dingen zijn in je studieproject. En die verrassingen moet je aankunnen.

Als je je niet verdiept in de jungle van projectmanagement, moet je je in IT ook niet lineair ontwikkelen, zoals in het begin beschreven. En "in een spiraal". Het ziet er ongeveer zo uit. Als u de computer niet goed kent. Je hoeft er niet aan te denken dat je over een jaar een C++ of PHP programmeur bent. Eerst bestudeer je de computer. Er gaan nieuwe kansen en obstakels voor je open. Ze zijn zich bijvoorbeeld bewuster geworden van wat je uiteindelijk wilt doen, websites of desktopapplicaties. Vervolgens probeer je tijdens de proefperiode te programmeren voor het web (html, js). Je leert nog meer over programmeren. Na de proefperiode kun je je hoofdrichting al raden. Welke taal ga je leren. Iemand die helemaal aan het begin van de reis stond, had misschien geen vermoeden van systeemprogrammering. Dat er een apart gebied is waar ontwikkelaars programma's schrijven die onzichtbaar zijn voor de gemiddelde gebruiker. En misschien is het interessanter voor je dan waar je in het begin van droomde.

In het leerproces zullen er zeker leerboeken worden gelezen en van daaruit problemen worden opgelost. Maar de volgorde zelf en de volgorde waarin de leerboeken worden doorgegeven, moeten de 'spiraalvormige' cyclus volgen. Zodat elke fase een goede basis vormt voor de volgende.

Je moet je eigen manager en plan zijn haalbaar doelen, etappes. Op dit moment dromen veel jonge mensen ervan hoe ze de makers van een topwebsite of besturingssysteem zullen worden. En iemand wil een rekenmachine schrijven en daarmee een stageplek krijgen. Ik hoop dat je kunt raden wie over een jaar een succesvolle programmeur zal zijn. Het is erg belangrijk dat uw projecten en ideeën succesvol worden uitgevoerd. Een vogel in de hand is er twee waard in de bush.

Bovendien zijn "bestuurlijke" kwaliteiten erg nuttig voor degenen die zichzelf als "dom" beschouwen. In IT is het heel gemakkelijk om slim te zijn en heel moeilijk integendeel. Een slimme kan gemakkelijk een leerboek pakken, lezen en meteen iets nuttigs doen. Degenen die dom zijn, zullen hetzelfde leerboek lezen en niets begrijpen. Je moet het trainingsmateriaal dus in delen opsplitsen en op basis van deze delen meer trainen (code schrijven). Je kunt het materiaal in delen opsplitsen, zodat iedereen het kan pakken. Voor degenen die weten hoe ze hun leerproces moeten plannen en "onoplosbare problemen" (2.3) kunnen oplossen, zijn er geen onoverkomelijke obstakels. Je zult absoluut alles beheersen, ongeacht intelligentie. Laat het aanzienlijk langer duren. Maar het is veel belangrijker voor u om holistische en beproefde kennis / ervaring te hebben dan de snelheid van hun acquisitie.

Natuurlijk zal het voor u erg moeilijk zijn om een ​​dergelijk model te begrijpen en, belangrijker nog, in de praktijk toe te passen. Maar wie daarin slaagt, krijgt een mooie bonus in de vorm van het vooruitzicht om "projectmanager" te worden. Als je nu alleen het salaris van een programmeur wilt krijgen, dan wil je het salaris van een projectmanager zo graag dat je niet kunt slapen. Er is hier maar één minpuntje. Toch moet je eerst een goede programmeur worden.

3.4 Wanneer een baan zoeken

Het is erg moeilijk om te zeggen wanneer je op zoek moet naar je eerste baan in deze specialiteit. In feite kunt u direct na de eerste fase beginnen met het zoeken naar een baan. Ik vermoed dat velen dat zullen doen. Als je jonger bent dan 23 - 25 jaar en je woont in een goed ontwikkelde softwareontwikkelingsindustrie, dan kun je het doen. Je bent misschien geen goede professional. Maar je zult zeker de kost verdienen.

Aan de andere kant. Er zijn mensen die wonen waar niemand betrokken is bij softwareontwikkeling. En er zijn mensen die ruim boven de 25 zijn. Zulke mensen zouden langer moeten studeren. Om van laaggeschoold naar hooggeschoold te gaan. Om hooggekwalificeerde programmeurs in zijn gelederen te krijgen, is de werkgever tot veel toe. Mogelijk krijgt u verhuishulp aangeboden. Of zelfs op afstand werken. Leeftijd in de dertig of veertig maakt niet zoveel uit. Het belangrijkste is om je hoge ervaringsniveau te laten zien.

Het is verstandig om zo vroeg mogelijk op zoek te gaan naar een baan als je al een baan hebt met een hoge werkdruk. Waar je geen programmeerboeken leest. In dit geval maakt het u niet uit na welk werk u 's avonds het onderwerp gaat bestuderen. Een huidige of post-trainee stagiair.

Vroege zoekopdrachten hebben een groot nadeel. Na het gesprek heeft de werkgever een oordeel over jou. Wat je in de loop van de tijd niet wilt veranderen, als je ooit een laag kennisniveau hebt getoond. Over zes maanden, als je veel meer weet, wordt je cv misschien niet eens in overweging genomen. Omdat de mening van jou hetzelfde zal blijven. We kunnen alleen maar hopen dat het eerste interview uiteindelijk vergeten zal worden. Maar dit is minimaal zes maanden. Het kan zijn dat de werkgever een database met kandidaten bijhoudt. Om ze niet twee keer te interviewen. In dit geval zal alles heel verdrietig zijn.

3.5 "Wat moet ik weten om als Junior aangenomen te worden?"

Nieuwelingen stellen deze vraag vaak. Er is geen definitief antwoord. Deze vraag kan alleen door een bepaalde werkgever op een bepaald moment worden beantwoord. Het is onmogelijk om altijd verantwoordelijk te zijn voor de hele arbeidsmarkt. Je kans op een baan als "Junior" of, zoals ik al zei, "stagiair" varieert in de tijd, afhankelijk van verschillende processen en factoren.

Je zelfstudietraject maakt je aantrekkelijker voor werkgevers. Op dit moment verschijnen er vacatures die bij jou passen. Nauw verwant aan de programmeertaal die u aan het leren bent. Daar stuur je je cv naartoe. En de werkgever kiest uit de respondenten de meest geschikte kandidaat. De kwalificaties van kandidaten worden van bovenaf beperkt door het salaris van de vacature. Misschien ben jij wel de beste voor dit salaris. Of misschien niet. Dus na verloop van tijd leer je en word je duurder. En op een gegeven moment zul je hoe dan ook de beste zijn van al degenen die hebben gereageerd.

Er is ook de factor van de leeftijd van de kandidaat. Wat je aantrekkelijkheid een beetje vermindert. Hoe hoger de leeftijd, hoe groter de daling. Er is een factor van het hebben van een goede portefeuille die een boost geeft. Ervaring, aanbevelingen en nog veel meer.

Je kunt veel waard zijn als C++ programmeur, maar heel weinig als PHP programmeur.
De meest "gratis" factor is uw populariteit bij werkgevers. Wanneer je bekend bent bij meer werkgevers. Meer kans dat je ergens naartoe wordt gebracht.

"Geduld en werk zullen alles vermalen!" Permanente zelfstudie is uw garantie op het krijgen van een baan!

4 Eerste baan als stagiair

4.1 Hoe zoek je je eerste baan?

4.1.1 Portefeuille

Schrijf eerst een portfolio. Het moet een klein programma of script voor de site zijn dat een taak doet die eruitziet alsof het nuttig is. De opdracht moet duidelijk zijn voor uw potentiële werkgever. Bijvoorbeeld een adresboek. Als je een rekenmachine maakt voor het berekenen van de banen van de aardse satellieten, zal het zeker cool zijn. Maar uw toekomstige werkgever is nauwelijks in het onderwerp. Daarom kan hij het resultaat niet beoordelen. Het is wenselijk dat het programma op de een of andere manier de instellingen en gebruikersgegevens opslaat. Er moet een klein en samenhangend stukje code zijn. Als u bijvoorbeeld uw patch naar een gratis project stuurt, is de werkgever mogelijk te lui om in de broncode van het hele project te duiken. En evalueer wat je daar in deze context hebt veranderd. Het is goed als de toepassing de SQL-database gebruikt waar dat zinvol is.

En het belangrijkste natuurlijk. Hoe het zal worden geschreven. Het moet goed opgemaakte en gestructureerde code zijn. Wees voorbereid, de werkgever zal een regel uit deze code nemen en deze in een zoekmachine invoeren.

Om ervoor te zorgen dat de code in de portfolio goed is, moet deze een week "rusten". Die. schrijven en een week weggaan. Pas daarna de hele code aan. Nadat je de fouten hebt hersteld, upload je het naar een tijdelijke bal en maak je een onderwerp op het forum met een verzoek om de broncode van meer ervaren programmeurs te zien. Met de verplichte vermelding dat dit uw portefeuille is.

Na het corrigeren van de fouten die u zullen worden gewezen. Misschien wordt het zelfs een wereldwijde herwerking van je werk. Upload de code naar een van de broncodehosting. Verwijder het onderwerp waarin u over uw fouten werd verteld. De toekomstige werkgever hoeft niets te weten van fouten.

Uiteindelijk is het erg belangrijk om elke regel die je schrijft te begrijpen. Hoogstwaarschijnlijk wordt u eromheen gesleept en worden u allerlei lastige vragen gesteld.

Geloof me, het maken van een portfolio en code review (code review) door meer ervaren collega's zal +30% toevoegen aan je ervaring. Het stelt u ook in staat om uw huidige kwalificaties adequaat te beoordelen. Je code zal zeker niet perfect zijn. Maak je klaar, ze zullen daar fouten vinden (gratis!) Het is niet zo erg. Maar als je niet weet waarom je de code op deze manier hebt geschreven, en niet op een andere manier, de echte problemen. Het betekent dat je de code gewoon niet hebt geschreven! In dit geval trappen ze af met de wens om over een half jaar terug te komen met hun eigen code.

4.1.2 Samenvatting

Over het algemeen kan een cv veel over een persoon vertellen. Bijvoorbeeld een slecht gestructureerd cv. Hoogstwaarschijnlijk wordt het geschreven door een ontwikkelaar die niet veel geeft om de structuur van de broncode.
Een gedeelte gekopieerd van het netwerk, bijvoorbeeld "Professionele kwaliteiten". Zegt dat de kandidaat geneigd is te liegen. Gebrek aan prestaties, die zelfs tijdens het interview niet worden onthouden, zegt dat de persoon "professioneel" is. En nog veel meer.

Er was eens een grappig verhaal. Beloofd kritiek te leveren op het cv van een collega. De bevindingen waren teleurstellend. Ik zeg: 'Je hebt zo'n slecht cv dat ik je zou aannemen! Je bent een goede specialist. Maar met je cv vind je geen goede baan. U kunt dus op een klein salaris worden gehouden. En je gaat nergens heen!"

Zodat dit niet gebeurt. Het is ook raadzaam om je cv ter beoordeling aan HR-specialisten en programmeurs te geven.

Natuurlijk is het niet nodig om te liegen of dubieuze feiten in het cv te vermelden. Het zal zeer aandachtig worden gelezen door mensen met uitgebreide levenservaring. Elke poging om iets te verbergen of te verfraaien zal als uiterst negatief worden beschouwd.

Het is beter om een ​​bescheiden cv te hebben. Maar zorg ervoor dat je antwoord geeft op elk woord dat erin staat.
Als je al wat werkervaring hebt opgedaan en iets hebt om over op te scheppen. Helemaal aan het einde kunt u een gedeelte 'Portfolio' toevoegen. Beschrijf in detail de projecten waaraan u hebt deelgenomen. Interessante technische oplossingen, realisaties (in detail). Minimaal 10 pagina's. Maar juist op het einde.
Geef zeker aan dat je klaar bent voor verhuizing (verhuizing) en zakenreizen.
Een ingevuld profiel op LinkedIn, HeadHunter en andere vacaturesites zal je ook helpen.

4.1.3 Zoeken naar werk

Nu op naar het leuke gedeelte.
Je moet duidelijk begrijpen dat stagiairs en onervaren ontwikkelaars zelden door iemand nodig zijn. Werkgevers zijn vooral op zoek naar ervaren. Maar door hun salaris kunnen ze niet altijd de juiste mensen aannemen. Daarom zal vroeg of laat je cv met nul ervaring in overweging worden genomen. En de code uit je portfolio helpt hier enorm bij.

Stuur daarom cv's naar alle vacatures die bij je profiel passen. We hebben bijvoorbeeld JavaScript bestudeerd. Dien uw cv in waar dit JavaScript nodig was. Ongeacht de minimaal vereiste anciënniteit, de aanwezigheid van gespecialiseerd hoger onderwijs, het feit dat de vacature al gesloten is en nog veel meer. De “andere kant van de lijn” weet beter wat ermee te doen. Stuur ook naar alle kantoren die theoretisch specialisten in uw profiel hebben of kunnen hebben. De post wordt meestal door secretaresses geregeld. Het is niet erg als ze je brief naar de prullenbak sturen. De mening van deze werkgevers over jou doet er niet toe. Zelfs als dit de meest prestigieuze bedrijven zijn.

Het zoeken naar een baan zelf duurt een maand tot twee. Als je op een vacature solliciteert, wordt er doorgaans binnen 2-3 dagen contact met je opgenomen. Dan, binnen een week, een interview en/of testopdracht. En dan, binnen een maand, denkt de werkgever na over de resultaten. Directe weigeringen worden meestal niet verzonden. Ze vergeten je gewoon en dat is het. Dus bereid je voor op talloze interviews waardoor je ze vergeet. Het is niet nodig om hoop te vestigen op opties. Slaag voor je sollicitatiegesprek en duik weer in het leren programmeren.

4.1.4 "Karma" van de programmeur

Er is een heel merkwaardig moment bij het zoeken naar een baan. Laten we zeggen dat je JavaScript hebt geleerd. Gewetensvol geleerd en gestudeerd. Dan op zoek naar een baan als JavaScript programmeur. En ineens word je aangeboden om bijvoorbeeld systeemprogrammeur te worden. De werkgever zou kunnen zeggen dat uw JavaScript goed is. Maar hij heeft alleen stagevacatures voor systeemprogrammeurs C. Je kunt dus terecht voor stagiair S.

De truc hier is na deze eerste baan. Weer aan het werk gaan met JavaScript zal problematisch zijn. En dit is niet een soort magie daar. Net als een C programmeur zul je ervaren zijn. Als JavaScript-programmeur onervaren. Die. terugkeren naar JavaScript verlaagt uw salaris. Misschien zelfs twee keer. Daarom blijf je de rest van je leven een programmeur van systeem C. Ik vind dit geen slechte optie. Maar u moet op de hoogte zijn van dergelijke beperkingen.

4.1.5 Interview

Het zou je verbazen, maar de meeste interviews voor programmeurs vinden op afstand plaats. Daarom, zelfs als je een baan wilt krijgen in de stad, honderden kilometers bij je vandaan, is het oké dat je nu op een andere plek bent. Een werkgever kan op afstand je competenties checken en beslissen of je naar een persoonlijk gesprek gaat of meteen aan de slag gaat in zijn stad.

Als het interview bij verstek is, is alles eenvoudig. Je hebt wel een goede verbinding, internet en telefoon nodig. En anderhalf tot twee uur tijd, waarin niemand zich ermee bemoeit. Als stilte en goed internet bij jou thuis onmogelijk is. Spreek met je vrienden af ​​dat ze je hun computerkamer of appartement zullen geven voor het interview. Videocommunicatie is meestal niet vereist. Hoogstwaarschijnlijk hebt u Skype en TeamViewer nodig. Zware ontwikkelomgevingen, compilers, editors zijn meestal niet nodig. Een eenvoudige code-editor zoals Sublime of Notepad++ is voldoende. De werkgever schrijft zelf op wat je nodig hebt voor het gesprek.

Er is veel geschreven over face-to-face interviews. Ik zie geen reden om mezelf te herhalen. In ieder geval moeten ze, nadat ze een uitnodiging hebben ontvangen, zoveel mogelijk leren over het uitnodigende bedrijf. Bekijk reviews over haar als werkgever. En beslis of je daar wilt werken. Als je wilt, zorg dan dat je een reden verzint waarom precies daar. Waarom heb je je cv daar naartoe gestuurd?! Het kan immers zijn dat het niet aan de formele eisen voldoet.

In ieder geval wil je in de eerste plaats een interessante baan en professionele groei. Zoals we probeerden te programmeren, je vond het erg leuk. En nu ben je op zoek naar een interessante baan in deze richting. Allereerst verwacht je interessante taken van je toekomstige baan. Het vermogen om te communiceren met gelijkgestemde collega's. En natuurlijk je professionele vaardigheden oppoetsen. Dit is het soort vraag dat je in het begin moet stellen. Je zou geïnteresseerd moeten zijn in wat voor soort ervaring je toekomstige collega's zullen hebben. Welke technologieën worden gebruikt in het project waarvoor ze een medewerker zoeken.

Laten we natuurlijk eerlijk zijn. De meesten kriebelen bij de hoofdvraag, over het salaris. Dit moet als laatste worden verduidelijkt. Deze vragen worden in eerste instantie meestal door "professionals" gesteld. De bazen zijn op zoek naar amateurs.

Meestal is het salaris van een stagiair, met enige kennis van het onderwerp, het salaris van een gewone kantoorhamster in dezelfde stad. Maar als het aanbod lager is, is mijn advies om toch akkoord te gaan. Stel dat u werkt als systeembeheerder. Je krijgt $ 500. Ik denk dat $ 500 voor een systeembeheerder in centraal Rusland het plafond is. En nu krijg je de functie van programmeur (eigenlijk een stagiair) aangeboden voor $ 300. Als dat stom voor je is. Begin niet eens iets te leren. Sluit dit artikel. En vergeet programmeren als toekomstig beroep.

Je eerste ontwikkelaarssalaris moet voldoende zijn om te overleven. Feit is dat je samen met $ 300 $ 1000 aan ervaring en kennis ontvangt. Krijg een gezamenlijke ontwikkelingservaring. Je werk wordt beoordeeld door meer ervaren collega's. Krijg onbeperkt toegang tot hun ervaring. Hoogstwaarschijnlijk zal uw portfolio groeien met echte projecten. Dit alles maakt je tot een echte en gewilde specialist. Als je niet lui bent en profiteer van dit alles. In zes maanden, haal je $ 500 in. En dit is nog maar het begin van je carrière.

Natuurlijk kan het gebeuren, "Ervaring en kennis voor $ 1000" zal niet krijgen. Zoek in dat geval gewoon een andere baan.

Tijdens het gesprek hoef je nergens bang voor te zijn. Je moet je natuurlijk gedragen, maar een werkhouding hebben. Interviews worden meestal beleefd gevoerd. De taak van je toekomstige baas is om te begrijpen wat voor soort persoon en specialist je bent. Ze zullen je liever heel goed in de gaten houden.
Niemand zal je ooit een echte mening over jou vertellen. Een slechte mening kan je tegenwerken. Wat geen zin heeft. Wat als je nog van pas komt. Een goede kan de aanleiding zijn voor verzoeken om een ​​hoger salaris.

Een interview is als een eerste date met een meisje. Alles is altijd beleefd, beschaafd en goed. Alleen de volgende mag niet plaatsvinden.

4.2 Stage

De taak van de stage is het oppoetsen van de opgedane kennis.

4.2.1 Zelfstandige

Beginnende programmeurs kunnen op internet artikelen lezen die vertellen hoe leuk het is om “freelancer” te zijn. Zittend onder palmbomen, eenmalige bestellingen opnemen en "niet werken voor mijn oom".

Om de voor- en nadelen van freelancen te begrijpen, moet u begrijpen dat de werkgever bereid is om in uw opleiding te investeren, alleen vanuit het langetermijnperspectief. Anders is het voor hem gemakkelijker om een ​​​​kant-en-klare specialist te veel te betalen dan te wachten tot beginners complexe problemen oplossen. Freelancen biedt daarom geen diepgaande ervaring. Niemand zal je zomaar opdrachten geven als je niet over de nodige competenties beschikt. Aan de andere kant is freelancen de eerste interessante praktijk en het eerste geld. En voor het geld van de klant kun je tegelijkertijd een portfolio voor jezelf maken.

Hoge verwachtingen hebben is niet nodig. Probeer maar eens opdrachten te vinden aan het einde van de zelfstudie. Het zal geweldig zijn als je slaagt. Maar ga er niet vanuit dat je stage hebt gelopen en een echte programmeur bent geworden. Dit is alleen een goede activiteit als je nog niet door serieuze bedrijven wordt aangenomen. Of je werkt er al 3-5 jaar.

4.2.2 Bedrijven

Ooit hoorde ik over een economische wet. Hoe groter de vakbond van werknemers, hoe meer inkomen deze vakbond per werknemer ontvangt. Dienovereenkomstig zijn de lonen van werknemers in grote bedrijven meestal hoger. Dan sommige "freelancers". In de ICT althans. Het zijn de bekende reuzen van de industrie die de hoogste salarissen betalen en de knapste koppen opkopen. Daarom moet de "oom" die specialisten in een handvol verzamelt en werk geeft, bemind worden. Want samen kun je veel meer verdienen dan apart.

En als het zo is. Je moet leren om als team te werken. Gebruik tools voor collectieve ontwikkeling. Collega's zullen hun ervaring met u delen, u helpen fouten te corrigeren. Je zult er zelf versteld van staan ​​hoeveel nieuw er in het vak is dat je nog niet eerder bent tegengekomen.

Zoals eerder vermeld, zijn de meeste mensen 'professionals'. Als ze bij hun eerste baan komen, 'kalmeren' ze. En hun strategie is overleven. Ze zullen zich alleen de kennis eigen maken die hier en nu nodig is. Stel dat u SQL-query's voor de code moet schrijven. Ze zoeken snel op internet hoe ze een aanvraag voor een bepaalde taak kunnen doen. En op basis hiervan schrijven ze de code. Vervolgens wordt de code naar een ervaren collega gestuurd voor code review. Het blijkt dat je in plaats van twee verzoeken en een heleboel code één verzoek kunt schrijven, maar met "joins". En dan klimt de stagiair het internet op. Hij leest daar een stukje materiaal over "joins". Herwerkt de code. Dus elke dag. Zo doen de meeste cursisten kennis op.

Het zou correct zijn, na 3-4 soortgelijke vragen met betrekking tot de database, om de handleiding over dit DBMS te nemen en deze volledig te bestuderen. Dit wordt meestal alleen gedaan door "amateurs". Wat merkwaardig wordt wat er naast de "joins" nog is.

Opgemerkt moet worden dat het lezen van handleidingen in dit stadium veel interessanter is. Je bent al bekend met de techniek. En een goede kennis kan het werk veel gemakkelijker maken. Dit is veel aantrekkelijker dan alleen de abstracte voorbeelden uit de boeken in de vorige stap.

De stage gaat vlot over in het reguliere werk. Het is moeilijk om het moment aan te wijzen waarop je jezelf als een volwaardige ontwikkelaar kunt beschouwen. Waarschijnlijk wanneer uw vragen aan collega's opraken van eenvoudige antwoorden. En u begrijpt, de meeste problemen zullen we zelf moeten oplossen. Meestal is deze periode zes maanden. Als je het in de vorige fase goed hebt gedaan. Als je haast had, ging je zitten, nadat je het boek over de hoofdtaal voor de helft had gelezen. Dus blijf het boek en de aanvullende technologieën onder de knie krijgen.

Na je stage ben je vrij om te doen en laten wat je wilt. Zelfstandig. Doe onafhankelijke projecten en meer. Maar mijn advies aan jou. Lees soms literatuur over uw werk. Voor gevorderden. Als je eerder hebt gelezen hoe je code schrijft. Nu kun je lezen hoe je het heel goed en correct doet. Wees gerust, je zult altijd nieuwe horizonten zien in professionele training. Wees niet lui! Zeker als je een hoog salaris wilt.

5. Conclusie

Ik hoop dat dit artikel iedereen zal helpen die ons prachtige beroep onder de knie wil krijgen.
Als je van dit werk houdt. Ik heb een idee om te praten over de voor- en nadelen van hoger onderwijs in de IT.

Trefwoorden:

Tags toevoegen

Opmerkingen 179