Roadmap van een Java-ontwikkelaar
Een vriend van mij vroeg zich af waarom ontwikkelaars altijd zo blij zijn. Het antwoord dat ze kwam was simpel en verrassend: ze doen wat ze leuk vinden en verdienen veel geld. Welkom in de wereld van softwareontwikkelaars.
Het salaris van een softwareontwikkelaar
Ik wil je iets vertellen over de salarissen van ontwikkelaars. Hoe het land ligt met salarissen, waar je wel en niet moet gaan werken. Als u geen ontwikkelaar bent en het zelf probeert uit te puzzelen, krijgt u mogelijk nogal controversiële gegevens. Het belangrijkste punt is dat de belangrijkste factor die van invloed is op het salaris van een ontwikkelaar niet de kwalificatie is, maar de plaats van tewerkstelling. Soms kan bij een gelijk kwalificatieniveau het verschil tussen goede en slechte arbeidsplaats 2 tot 10 keer(!) zijn op elk moment dat je kwalificatie constant is. Je kunt niet in een maand twee keer zo gekwalificeerd worden en twee keer zoveel betaald krijgen. Maar je kunt binnen een maand van werkplek veranderen en een dubbel zo hoog salaris krijgen. Eenmaal in de stroom van twee maanden mijn salaris vermenigvuldigd met drie (!) Onvergetelijke ervaring. Laten we dus eens kijken welke plaats het beste is.- Of de hoofdactiviteit van een bedrijf softwareontwikkeling is
- Of het bedrijf nu georiënteerd is op de globale of lokale markt
- Waar is het hoofdkantoor gevestigd: ontwikkeld land of ontwikkelingsland
Specifieke nummers
Aangezien de salarissen in verschillende delen van de wereld verschillen, stel ik voor om het salaris van Senior Java Developer met 5 jaar ervaring als uitgangspunt te nemen en dit "maximaal 5 jaar" te noemen. Alle onderstaande cijfers worden gegeven als een percentage van dit bedrag. Hier zijn enkele voorbeelden van "5 jaar maximum" salarissen in verschillende steden van de wereld:


Wat je kunt bereiken tenzij je domme dingen doet
Als je nu aan je zelfstudie in programmeren begint te werken, kan je salaris er zo uitzien:
Plan
0-3 maand (student)
Je weet heel weinig van programmeren. Je hebt het misschien op school of op een universiteit op basisniveau gestudeerd. Wat u moet doen, is leren programmeren en Java leren. Je doel is om een baan te krijgen als Java Junior Developer in een bedrijf van niveau 3 of hoger. De eerste drie maanden van het plan krijg je niets, omdat je net leert programmeren. Maar hoe eerder je begint, hoe beter. De beste tijd is NU. Als je in de toekomst een gezin hebt en heel veel leningen hebt, zal het veel moeilijker worden om je opnieuw te kwalificeren. Om je fout recht te zetten, moet je geld opzij leggen om in ieder geval een jaar normaal leven te kunnen betalen. Maak geen domme fouten.3-15 maanden (Java Junior Developer)
Je werkt al als softwareontwikkelaar en je ervaring groeit dagelijks. Ontspan niet. Je hebt veel te doen voordat je op roeispanen gaat rusten. Wat je moet doen, is technologieën bestuderen die je nodig hebt als middenontwikkelaar. Wat zijn deze? De wereld verandert voortdurend. Ik zal je overladen met adviezen en het leven zal het allemaal veranderen. Zoek een paar vacatures op internet en kijk wat je nodig hebt om te solliciteren. Lees zeker een boek van Bruce Eckel “Thinking in Java”. Je doel in het eerste jaar als Java Junior Developer is om het niveau van Java Middle Developer te bereiken. Niemand zegt dat dat gemakkelijk zou zijn, maar dat is mogelijk voor een doelgericht persoon. Het verhoogt uw salaris in een oogwenk tot 40% van "maximaal 5 jaar" ($ 50.000 voor SF en Londen, $ 6.000 voor Bangalore).2-jarig jaar programmeren (Java Middle Developer, level 1)
Je hebt het afgelopen jaar goed werk geleverd en nu ben je een Java Middle Developer. Je kunt redelijk goed leven door 50% van het salaris van een Senior Java Developer te verdienen. Je krijgt een aantal serieuze taken op het werk en je ervaring groeit aanzienlijk. In twee of drie jaar bereik je het niveau van Java Senior Developer. Geen reden om te haasten. Je krijgt sowieso geen hoge inkomens. Wat u moet doen, is ontwerppatronen leren, lezen - McConnell's Code Complete. Perfectioneer de kwaliteit van uw code en teamvaardigheden. Maak een regel om elke maand 1 boek over computerprogrammering te lezen. Dan ben je over 4 jaar 50 boeken slimmer dan de rest. Stel het niet uit: je zult niet meer vrije tijd krijgen, bovendien zul je hoogstwaarschijnlijk een gezin stichten, of als je er een hebt, zal het groter worden. Jou doelis om een paar technologieën te kiezen om je als Senior Java Developer in te specialiseren. Je kunt ze niet allemaal leren, weet je. En het is altijd een goede beslissing om goeroe te worden in een enkele specialisatie.
3-d jaar programmeren (Java Middle Developer, level 2)
Je bent nu een ervaren Middle Developer en je denkt erover om Senior Developer te worden. Het is zowel aangenaam als prestigieus. Uw salaris overschrijdt 60% van "5 jaar maximum" ($ 10.000 in Bangalore, $ 25.000 in Kiev, $ 40.000 in Berlijn, $ 80.000 in New York). Vanaf dit moment stijgt de vraag naar professionals zoals jij. Je vindt altijd binnen een paar dagen een baan en je zult bijna nooit minder verdienen dan nu. Dat natuurlijk, als je geen domme dingen doet. Wat je moet doen isblijf de technologieën bestuderen die je hebt gekozen. Werk beter. Niet voor je werkgever, maar voor jezelf. Meld u aan om deel te nemen aan projecten met veelbelovende technologieën (zoals BigData, op het moment dat dit artikel wordt geschreven). Je zult sowieso 8 uur per dag op kantoor doorbrengen, dus waarom zou je er niet wat meer geld voor krijgen, en, wat veel belangrijker is, de meest waardevolle ervaring die je in de toekomst nodig zult hebben. Je doel is om een nieuwe baan te vinden. Er is altijd een goed team te vinden. Je krijgt te maken met nieuwe projecten en technologieën. U hoeft niet naar uw stoel te wroeten. Als je nog steeds in een bedrijf op het derde niveau werkt, denk er dan over na om in dienst te treden bij een bedrijf op het vierde niveau.5e jaar programmeren (Java Senior Developer, niveau 1
Je bent nu Senior Developer. Misschien heb je het niet verdiend en voel je het. Toch mijn felicitaties. Het maakt niet uit of je je positie nu waardig bent, het gaat er alleen om of je het in de toekomst waardig wordt. Ik denk dat je het ermee eens zult zijn dat het beter is om een goede baan te krijgen en daarna door te groeien naar het vereiste niveau, en andersom. Ik hoop dat je mijn advies om één boek per maand te lezen niet bent vergeten? Elke student zal nu jaloers zijn op je kennis en vaardigheden. Om specifieker te zijn, hij zal op hen bidden. Denk er maar eens over na: u heeft een serieus inkomen, bijna 90% van het "5 jaar maximum" salaris. Je bent waarschijnlijk nog jong. De wereld ligt aan je voeten. Wat je moet doen isom technologieën die u hebt gekozen opnieuw te evalueren. Misschien moet u van specialisatie veranderen. De wereld is veranderd, technologieën zijn veranderd en je hebt de afgelopen twee jaar behoorlijk wat kennis opgedaan. Wat u nu kiest, wordt de komende jaren de kop voor u. Het is tijd om uw favoriete technologieën te kiezen. Je doel is om je groeirichting te kiezen. Ze zijn talrijk, niemand kan ze allemaal noemen, maar uw keuze moet nu worden gemaakt. Als je vandaag een kleine verandering maakt, krijg je in de toekomst een grote verandering.6e jaar programmeren (Java Senior Developer, level2)
Je hebt een beslissing genomen over je toekomst en je werkt aan je droom om uit te komen. Een correct gekozen richting samen met het verlangen om vooruit te gaan - en het resultaat zal niet lang op zich laten wachten. Gefeliciteerd. Ik ben blij te zien dat er nog een persoon zijn droom heeft waargemaakt. Er is één diepe waarheid. Mensen overschatten vaak wat ze in een jaar kunnen bereiken en onderschatten wat ze in vijf jaar kunnen doen. Kijk vijf jaar terug. Het is zo. Wat u moet doen, is onverstandige beslissingen vermijden en niet lui zijn. Je doel is om richting te kiezen en vooruit te gaan. Of dacht je dat het hier eindigt? Denk aan je afstuderen. Het is niet het einde, het is slechts het begin.Je toekomstige specialisatie

De carrière van een Java-ontwikkelaar
De carrière van een ontwikkelaar is anders dan alle andere. Je hoeft geen manager te worden om goed geld te verdienen. Het komt regelmatig voor dat een Senior Developer meer verdient dan zijn manager-baas. Hoe meer ervaring je opdoet, hoe sterker je werkrelatie met je baas verandert van 'baas-ondergeschikt' in 'ster en de manager'.
Tweehonderd jaar oude ontwikkelaar
Als je vooral van programmeren houdt, dan is dit jouw manier: Senior Developer, dan Tech Lead Developer en een architect. Zo kun je 50 jaar en langer aan de slag als ontwikkelaar. In de meeste gevallen zijn de salarissen van Senior Developers en Tech Lead Developers hoger dan die van hun managers. Dus krijg waar voor je geld.Manager. Je hebt geluk dat je niet bent zoals de anderen
Je ging naar de vijand. Grapje. Als je geweldige organisatievaardigheden ontdekt, dan is jouw manier: teamleider en vervolgens projectmanager. Het geeft je de kans om afdelingshoofd te worden en je eigen bedrijf te openen. Dat is wat je wilt, nietwaar?Oost, West, thuis best

Napels zien en niet sterven.
Je hebt nog geen gezin en je houdt van reizen . oDesk is uw alles. Zoek een klant, spreek een tarief af van $20-$50 per uur, neem een laptop mee en gaan! Uw salaris is voldoende om overal ter wereld te wonen. Waarom begin je niet meteen met het waarmaken van je dromen?Ik wil niet programmeren, ik ben een meisje..
Als je een meisje bent , moet je mogelijk zwangerschapsverlof opnemen . Het klinkt als een seksistische grap, en dat is het ook. Toch zit er veel gezond verstand in. Door zwangerschapsverlof op te nemen, kunt u hoogstwaarschijnlijk veel geld voor zwangerschapsverlof krijgen (in landen met een hoge sociale bescherming). Er zijn bedrijven die niets betalen, en er zijn bedrijven die goed betalen. Een van mijn studenten kreeg een derde van het jaarsalaris tijdens zwangerschapsverlof. En dit gebeurde in het voorjaar van 2009, tijdens ontslagen. En over anderhalf jaar kom je misschien terug, in ieder geval Middle Developer.Niveau 6

1 Elly. Zichtbaarheid van objecten. nul
- Hé, Amigo! - Hallo, elly! Vertel je me vandaag iets interessants? - Vandaag vertel ik je over de levensduur van een object . Nadat een object is gemaakt, bestaat het (leeft) totdat ten minste één variabele zijn adres opslaat (er is ten minste één objectreferentie). Als er geen referenties meer zijn, sterft het object. Voorbeelden:
2 Professor, vuilnisophaaldienst

3 Elly, afronden
- Welkom terug! Nu zal ik je een korte introductie geven van de methode finalize() . Deze methode wordt aangeroepen door de virtuele Java-machine op het object voordat het object wordt vernietigd. In feite is deze methode tegengesteld aan de constructor. Bij deze methode is het mogelijk om de bronnen vrij te geven die door een object worden gebruikt. - De klasse Object heeft deze methode, daarom heeft elke klasse deze ( alle klassen in Java worden beschouwd als geërfd van de klasse Object en bevatten een kopie van de methoden ). Als u de methode finalize() in uw klasse schrijft, wordt deze aangeroepen voordat objecten van deze klasse worden vernietigd. Voorbeeld:
4 Elly, Objectlevensduur
- Ik wil je ook een paar interessante dingen vertellen over de levensduur van objecten. In Java is het erg moeilijk om het object per ongeluk te verliezen; als u een objectreferentie heeft, betekent dit dat het object zeker leeft. - Binnen een objectreferentie wordt een nummer – adres van dit object in het geheugen opgeslagen. U kunt dat aantal niet wijzigen, verhogen of verlagen. U kunt geen referentie maken als u alleen een adres in het geheugen hebt. U kunt alleen een nieuw object maken en de referentie ervan toewijzen aan een variabele. Dit is de enige manier om een nieuwe referentie te krijgen. - Ik zie. Dat wil zeggen, als ik alle objectreferenties op nul zet (wissen), krijg ik nooit de objectreferentie en krijg ik er geen toegang toe? - Ja. Maar vaak is het tegenovergestelde waar - er zijn te veel levende objecten ongebruikt.De meeste programma's maken tientallen objecten en slaan ze tijdens runtime op in verschillende lijsten, maar ze maken die lijsten nooit schoon. - Meestal bestempelen programmeurs ongewenste objecten als "verwijderd", dat is alles. Niemand geeft om hun verwijdering van de lijsten. Dus grote Java-programma's hebben de neiging om op te zwellen - steeds meer ongebruikte objecten blijven levend in het geheugen. - Dat is alles. In de toekomst zal ik altijd uw aandacht vestigen op ongebruikte objecten en de juiste verwijdering ervan. - ОK, bedankt. Je hebt een aantal dingen over de referenties opgehelderd.5 Diego, Levensduurtaken van objecten
- Hé, Amigo! Hier zijn een paar taken voor je:Taken | |
---|---|
1 | 1. methode finalize() van klasse Cat Schrijf een methode beschermd leegte finalize() gooit Throwable in de klasse Cat |
3 | 2. Klassen Cat en Dog en methode finalize() voor elke klasse Schrijf in elke klasse Cat en Dog een methode finalize() die op het scherm een bericht weergeeft dat het object is vernietigd. |
3 | 3. 50.000 objecten van de Cat-klasse en 50.000 objecten van de Dog-klasse Maak in een lus 50.000 objecten van de Cat-klasse en 50.000 objecten van de Dog-klasse. (De virtuele Java-machine vernietigt ongebruikte objecten, dus de methode finalize() wordt minstens één keer aangeroepen). |
4 | 4. Cat-teller Verhoog in Cat class constructor [public Cat()] de cat-teller (statische variabele catCount van dezelfde klasse) met 1. Verlaag in de methode finalize() met 1. |
6 Elly, Statische klassen en methoden
- Hier is een nieuw interessant onderwerp. Ik wil je vertellen over de statische variabelen en methoden. - Oh, ik heb al gehoord over statische variabelen. Ook over statische methoden, denk ik. Maar ik zou graag meer details hebben. - Bij het declareren van variabelen in een klasse specificeren we of deze variabelen in een enkele gedeelde instantie worden gemaakt, of dat het nodig is om hun kopieën voor elk object te maken. Standaard wordt voor elk object van deze klasse een nieuwe kopie van de klassevariabele gemaakt. Zo ziet het eruit:



7 Risha, Statische klassen en methoden
- Naast statische methoden zijn er ook statische klassen . We zullen dit geval later bekijken, ik zal je er slechts een voorbeeld van laten zien:
8 Diego, Taken op statische methode
- Hé, Amigo! Hier zijn enkele interessante taken over statische methoden:Taken | |
1 | 1. Klasse Cat en statische variabele catCount Schrijf een statische variabele int catCount in de klasse Cat. Maak een constructor [ public Cat() ], waarin de gegeven variabele met 1 moet worden verhoogd. |
2 | 2. Statische methodes: int getCatCount() en setCatCount(int) Voeg twee statische methodes toe aan de klasse Cat: int getCatCount( ) en setCatCount(int) waarmee je het aantal katten kan krijgen/wijzigen (de variabele catCount) |
3 | 3. Class Util Implementeer een statische methode double getDistance(x1, y1, x2, y2) . Het zou de afstand tussen punten moeten berekenen. Gebruik de methode double Math.sqrt(double a) om de vierkantswortel van de doorgegeven parameter te berekenen |
4 | 4. Class ConsoleReader Schrijf een klasse ConsoleReader, die 4 statische methoden zal hebben: - String readString() om strings van het toetsenbord te lezen - int readInt() om getallen van het toetsenbord te lezen - double readDouble() om gebroken getallen van het toetsenbord te lezen - void readLn () om te wachten op enter [gebruik readString()] |
5 | 5. Klasse StringHelper Schrijf een klasse StringHelper, die 2 statische methoden zal hebben: - String multiply(String s, int count) zou de herhaalde teltijden van de string moeten teruggeven. - String multiply(String s) moet de string s 5 keer herhalen. Voorbeeld: Amigo → AmigoAmigoAmigoAmigoAmigo |
9 Professor, object statische reikwijdte en levensduur

10 juli
- Hé, Amigo! Je hebt geweldig werk geleverd vandaag. Daarom kan ik je gewoon niet meer geven. Kom op, ga zitten, de show begint:11 Kapitein Eekhoorns
- Hallo, soldaat! - Goedemorgen meneer! - Ik heb geweldig nieuws voor je. Hier is een snelle check om je vaardigheden te versterken. Doe het elke dag en je zult je vaardigheden snel verbeteren. Taken zijn speciaal ontworpen om te doen in Intellij IDEA.Extra taken te doen in Intellij Idea | |
---|---|
1 | Klasse Cat en statische variabele catCount Schrijf een statische variabele public int catCount in de klasse Cat. Maak een constructor [public Cat()]. Laat de statische variabele catCount elke keer dat u een kat maakt (een nieuw object Kat) met 1 toenemen. Maak 10 objecten Cat en toon de waarde van de variabele catCount . |
2 | 2. Statische katten
te maken : public static ArrayList<Cat> cats = new ArrayList<Cat>(); |
3 | 3. Verplaats een statische modifier Verplaats een statische modifier zodat de code wordt gecompileerd. |
4 | 4. Minimum aantal statische trefwoorden Voeg het minimum aantal statische trefwoorden toe om de code te laten compileren en het programma succesvol af te ronden. |
5 | 5. Nieuwe ideeën? Laten we nadenken...
|
6 | 6. KissMyShinyMetalAss Schrijf een klasse met de naam KissMyShinyMetalAss. Maak een object van deze klasse en toon het vervolgens op het scherm. |
7 | 7. Naam van drie statische variabelen Schrijf 3 openbare statische variabelen: String Solution.name , String Cat.name , String Dog.name |
GO TO FULL VERSION