Veikart for en Java-utvikler
En venn av meg lurte på hvorfor utviklere alltid er så glade. Svaret hun kom med var enkelt og overraskende: de gjør det de liker og tjener store penger. Velkommen til en verden av programvareutviklere.
Programvareutviklers lønn
Jeg vil gjerne fortelle deg om utviklernes lønn. Hvordan landet ligger med lønn, hvor du skal jobbe, og hvor du ikke skal. Hvis du ikke er en utvikler og prøver å pusle det ut på egen hånd, kan du få en ganske kontroversiell data. Hovedpoenget er at hovedfaktoren som påvirker en utbyggers lønn ikke er kvalifikasjoner, men arbeidsstedet. Noen ganger, gitt likt kvalifikasjonsnivå, kan forskjellen mellom et godt og dårlig arbeidssted være 2 til 10 ganger(!) Hvert gitt tidspunkt er kvalifikasjonen din konstant. Du kan ikke bli dobbelt så kvalifisert på en måned og få dobbelt så mye betalt. Men du kan bytte arbeidssted om en måned og få dobbelt så høy lønn. En gang i løpet av to måneder multiplisert lønnen min med tre (!) – Uforglemmelig opplevelse. Så la oss finne ut hvilket sted som er best.- Enten hovedvirksomheten til et selskap er programvareutvikling
- Enten selskapet er orientert mot det globale eller lokale markedet
- Hvor ligger hovedkontoret: utviklet land eller utviklingsland
Spesifikke tall
Siden lønn er forskjellig i ulike deler av verden, foreslår jeg å ta utgangspunkt i lønnen til Senior Java Developer med 5 års erfaring og kalle det "5 års maksimum". Alle tall nedenfor vil bli gitt som en prosentandel av dette beløpet. Her er noen eksempler på "5 års maksimum" lønn i forskjellige byer i verden:


Hva du kan oppnå med mindre du gjør dumme ting
Hvis du begynner å jobbe med egenutdanning i programmering akkurat nå, kan lønnen din se slik ut:
Plan
0-3 måneder (student)
Du kan veldig lite om programmering. Du kan ha studert det på skolen eller på en høyskole på grunnleggende nivå. Det du trenger å gjøre er å lære å programmere og lære Java. Målet ditt er å få jobb som Java Junior Developer i et selskap på nivå 3 eller høyere. For de første tre månedene av planen får du ingenting, fordi du bare lærer hvordan du programmerer. Men jo tidligere du starter, jo bedre. Den beste tiden er NÅ. I fremtiden, når du har en familie og massevis av lån, vil det bli mye vanskeligere å kvalifisere deg på nytt. For å rette opp feilen din må du legge til side penger for å betale for minst et år med normalt liv. Ikke gjør dumme feil.3-15 måneder (Java Junior-utvikler)
Du jobber allerede som programvareutvikler og din erfaring vokser daglig. Ikke slapp av. Du har mye å gjøre før du hviler på årer. Det du trenger å gjøre er – studere teknologier du trenger som mellomutvikler. Hva er disse? Verden er i konstant endring. Jeg vil laste deg med råd og livet vil forandre alt. Finn noen ledige stillinger på nettet og se hva du trenger for å søke. Sørg for å lese en bok av Bruce Eckel "Thinking in Java". Målet ditt i det første året du jobber som Java Junior Developer er å nå nivået Java Middle Developer. Ingen sier at det ville være lett, men det er mulig for en målrettet person. Det vil øke lønnen din på et øyeblikk med opptil 40 % av "5 års maksimum" ($50K for SF og London, $6K for Bangalore).2-d års programmering (Java Middle Developer, nivå 1)
Du har gjort en god jobb i fjor, og nå er du en Java Middle-utvikler. Du kan leve ganske godt med å tjene 50% av senior Java-utviklers lønn. Du får noen seriøse oppgaver på jobben og erfaringen din vokser betraktelig. Du vil nå nivået som Java Senior Developer om to eller tre år. Ingen grunn til å skynde seg. Du får uansett ikke store overdeler i lønn. Det du trenger å gjøre er å lære designmønstre, les – McConnell's Code Complete. Perfekt kvaliteten på koden og teamferdighetene dine. Lag en regel om å lese 1 bok om dataprogrammering hver måned. Så, om 4 år vil du være 50 bøker smartere enn alle de andre. Ikke utsett det: du vil ikke få noen større mengde fritid, dessuten vil du sannsynligvis starte en familie, eller hvis du har en, vil den bli større. Ditt måler å velge noen få teknologier å spesialisere seg på som senior Java-utvikler. Du kan ikke lære dem alle, vet du. Og det er alltid en god avgjørelse å bli guru i en enkelt spesialisering.
3-d års programmering (Java Middle Developer, nivå 2)
Du er nå en erfaren mellomutvikler og du tenker på å bli seniorutvikler. Det er hyggelig så vel som prestisjefylt. Din lønn overstiger 60 % av "5 års maksimum" ($10K i Bangalore, $25K i Kiev, $40K i Berlin, $80K i New York). Fra dette øyeblikket øker etterspørselen etter profesjonelle som deg. Du vil alltid kunne finne en jobb i løpet av et par dager, og du vil nesten aldri tjene mindre enn du gjør nå. Det, selvfølgelig, hvis du ikke gjør noe dumt. Det du trenger å gjøre erfortsett å studere teknologiene du velger. Jobb bedre. Ikke for din arbeidsgivers skyld, for din egen. Søk om å delta i prosjekter som involverer lovende teknologier (som BigData, i øyeblikket denne artikkelen skrives). Du kommer uansett til å bruke 8 timer om dagen på kontoret, så hvorfor ikke få litt mer penger for det, og det som er langt viktigere, den mest verdifulle erfaringen du kommer til å trenge i fremtiden. Målet ditt er å finne en ny jobb. Et godt team er alltid å finne. Du vil møte nye prosjekter og teknologier. Du trenger ikke rote til stolen din. Hvis du fortsatt jobber i et selskap på tredje nivå, kan du tenke på å ansette til et selskap på fjerde nivå.5-års programmering (Java Senior Developer, nivå 1
Du er nå seniorutvikler. Kanskje du ikke fortjente det, og du føler det. Likevel, gratulerer. Det spiller ingen rolle om du er verdig posisjonen din nå, alt som betyr noe at du blir verdig den i fremtiden. Jeg tror du er enig i at det er bedre å få en god jobb og etter å vokse til det nivået som kreves, så omvendt. Jeg håper du ikke har glemt rådet mitt om å lese én bok i måneden? Enhver student vil misunne kunnskapen din og ferdighetene dine nå. For å være mer spesifikk, han vil be på dem. Bare tenk på det: du har seriøs inntjening, nær 90 % av "5 års maksimum" lønn. Du er sannsynligvis fortsatt ung. Verden ligger for dine føtter. Det du trenger å gjøre erfor å revurdere teknologier du har valgt. Kanskje du må endre spesialisering. Verden har endret seg, teknologiene endret seg, og du har fått en del kunnskap de siste to årene. Det du velger nå vil bli overskriften for deg noen neste år. Det er på tide å velge favorittteknologiene dine. Målet ditt er å velge vekstretningen din. De er mange, ingen kan navngi dem alle, men valget ditt må gjøres akkurat nå. Hvis du gjør en liten endring i dag, vil du få en stor en i fremtiden.6-års programmering (Java seniorutvikler, nivå 2)
Du har bestemt deg for fremtiden din, og du jobber med at drømmen din skal gå i oppfyllelse. En riktig valgt retning sammen med ønsket om å gå videre – og resultatet vil ikke vare lenge. Gratulerer. Jeg er glad for å se at det er en person til som har fått drømmen sin. Det er én dyp sannhet. Folk overvurderer ofte hva de kan oppnå på et år og undervurderer hva de kan gjøre på fem. Se fem år tilbake. Det er sånn. Det du må gjøre er å unngå ukloke beslutninger og ikke være lat. Målet ditt er å velge retning og gå videre. Eller trodde du det slutter her? Husk eksamen. Det er ikke slutten, det er bare begynnelsen.Din fremtidige spesialisering

Java-utviklers karriere
Utviklerkarrieren er forskjellig fra alle andre. Du trenger ikke bli manager for å tjene gode penger. Det hender ofte at en seniorutvikler tjener mer enn sin leder-sjef. Jo mer erfaring du får, desto sterkere endres arbeidsforholdet med sjefen din fra "sjef-underordnet" til "stjerne og leder".
To hundre år gammel utvikler
Hvis du liker programmering mest av alt, så er dette din måte: Seniorutvikler, deretter teknisk hovedutvikler og en arkitekt. Slik kan du jobbe som utvikler i 50 år og mer. I de fleste tilfeller overstiger lønnen til seniorutviklere og teknisk ledende utviklere lønnen til deres ledere. Så få pengene dine verdt.Sjef. Du er heldig du ikke er som de andre
Du gikk over til fienden. Bare tuller. Hvis du oppdager gode organisasjonsferdigheter, er måtene dine: Teamleder og deretter prosjektleder. Det vil gi deg en sjanse til å bli avdelingsleder og åpne din egen virksomhet. Det er det du vil, er det ikke?Hjemme er der hjertet er

Se Napoli og ikke dø.
Du har ikke familie ennå, og du elsker å reise . oDesk er alt. Finn en klient, godta en pris på $20-$50 per time, ta med deg en bærbar datamaskin og gå! Lønnen din vil være nok til å bo hvor som helst i verden. Hvorfor ikke begynne å gjøre drømmene dine til virkelighet med en gang?Jeg vil ikke programmere, jeg er en jente..
Hvis du er jente , må du kanskje ta en svangerskapspermisjon . Det høres ut som en sexistisk spøk, som det er. Likevel er det mye sunn fornuft i det. Mest sannsynlig vil du kunne få mange penger til fødselspermisjon (i land med høy sosial beskyttelse). Det er selskaper som ikke betaler noe, og det er de som betaler godt. En av studentene mine fikk en tredjedel av årslønnen i svangerskapspermisjon. Og dette skjedde våren 2009, under permitteringer. Og om et og et halvt år kan du komme tilbake, som i det minste mellomutvikler.Lebvel 6

1 Elly. Objektsynlighet. null
- Hei, Amigo! - Hei, Elly! Vil du fortelle meg noe interessant i dag? - I dag skal jeg fortelle deg om en gjenstands levetid . Etter at et objekt er opprettet, eksisterer det (lever) til minst én variabel lagrer adressen (det er minst én objektreferanse). Hvis det ikke er noen referanser lenger, dør objektet. Eksempler:
2 Professor, Søppeltømming

3 Elly, avslutt
- Hallo igjen! Nå skal jeg gi deg en kort introduksjon til metoden finalize() . Denne metoden kalles av Java virtuell maskin på objektet før objektet blir ødelagt. Faktisk er denne metoden motsatt av konstruktøren. I denne metoden er det mulig å frigjøre ressursene som brukes av et objekt. - Klassen Object har denne metoden, derfor har hver klasse den ( alle klasser i Java anses å være arvet fra klassen Object og inneholder en kopi av metodene ). Hvis du skriver i klassen din, vil finalize()-metoden kalles opp før objekter i denne klassen blir ødelagt. Eksempel:
4 Elly, Objektets levetid
– Jeg vil også fortelle deg et par interessante ting om objektets levetid. I Java er det veldig vanskelig å miste objektet ved et uhell; hvis du har en objektreferanse, betyr det at objektet sikkert er i live. - Inne i en objektreferanse lagrer et nummer – adresse til dette objektet i minnet. Du kan ikke endre det tallet, øke eller redusere det. Du kan ikke opprette en referanse når du bare har adresse i minnet. Du kan bare opprette et nytt objekt og tilordne dets referanse til en variabel. Dette er den eneste måten å få en ny referanse på. - Jeg skjønner. Det vil si at hvis jeg setter til null (sletter) alle objektreferansene, vil jeg aldri få objektreferansen og få tilgang til den? - Jepp. Men ofte er det motsatte sant – det er for mange levende gjenstander ubrukte.De fleste programmer lager dusinvis av objekter og lagrer dem i forskjellige lister under kjøring, men rens aldri disse listene. - For det meste merker programmerere uønskede objekter som "slettet", det er alt. Ingen bryr seg om at de blir fjernet fra listene. Så store Java-programmer har en tendens til å svulme opp - flere og flere ubrukte objekter forblir i live i minnet. - Det er alt. I fremtiden vil jeg alltid gjøre deg oppmerksom på ubrukte gjenstander og riktig avhending. - Ok, takk. Du har oppklart et par ting om referansene.5 Diego, Objekt livstidsoppgaver
- Hei, Amigo! Her er et par oppgaver for deg:Oppgaver | |
---|---|
1 | 1. finalize() metode for Cat-klassen Skriv en metode beskyttet void finalize() kaster Kastbar i klassen Cat |
3 | 2. Klasser Cat and Dog og finalize()-metoden for hver klasse Skriv en finalize()- metode i hver Cat and Dog-klasse, som viser en melding på skjermen om at objektet er ødelagt. |
3 | 3. 50 000 objekter av Cat-klassen og 50 000 objekter av Dog-klassen Lag i en løkke 50 000 objekter av Cat-klassen og 50 000 objekter av Dog-klassen. (Virtuell Java-maskin vil ødelegge ubrukte objekter, så metoden finalize() vil bli kalt minst én gang). |
4 | 4. Cat-teller I Cat-klassekonstruktøren [public Cat()], øker kattetelleren (statisk variabel catCount av samme klasse) med 1. I metoden finalize() reduseres med 1. |
6 Elly, Statiske klasser og metoder
– Her er et nytt interessant tema. Jeg vil fortelle deg om de statiske variablene og metodene. – Å, jeg har allerede hørt om statiske variabler. Om statiske metoder også, antar jeg. Men jeg vil gjerne ha flere detaljer. - Når vi deklarerer variabler i en klasse, spesifiserer vi om disse variablene er opprettet i en enkelt delt forekomst, eller om det er nødvendig å lage deres kopier for hvert objekt. Som standard opprettes en ny kopi av klassevariabelen for hvert objekt i denne klassen. Slik ser det ut:



7 Risha, Statiske klasser og metoder
- I tillegg til statiske metoder er det også statiske klasser . Vi skal vurdere denne saken senere, jeg skal bare vise deg et eksempel på det:
8 Diego, Oppgaver om statisk metode
- Hei, Amigo! Her er noen interessante oppgaver om statiske metoder:Oppgaver | |
1 | 1. Klasse Cat og statisk variabel catCount Skriv en statisk variabel int catCount i klassen Cat. Lag en konstruktør [ public Cat() ], der den gitte variabelen skal økes med 1. |
2 | 2. Statiske metoder: int getCatCount() og setCatCount(int) Legg til to statiske metoder til klassen Cat: int getCatCount( ) og setCatCount(int) som du kan bruke som du kan få / endre antall katter (variabelen catCount) |
3 | 3. Klasse Util Implementer en statisk metode double getDistance(x1, y1, x2, y2) . Den skal beregne avstanden mellom punktene. Bruk metoden double Math.sqrt(double a) for å beregne kvadratroten av parameteren som er bestått |
4 | 4. Class ConsoleReader Skriv en klasse ConsoleReader, som vil ha 4 statiske metoder: - String readString() for å lese strenger fra tastaturet - int readInt() for å lese tall fra tastaturet - dobbel readDouble() for å lese brøktall fra tastaturet - void readLn () for å vente på å trykke enter [bruk readString()] |
5 | 5. Klasse StringHelper Skriv en klasse StringHelper, som vil ha 2 statiske metoder: - String multiplisere (String s, int count) skal returnere strengens gjentatte telletider. - String multiply(String s) skal returnere strengen s gjentatt 5 ganger. Eksempel: Amigo → AmigoAmigoAmigoAmigoAmigo |
9 Professor, objekt statisk omfang og levetid

10 Julio
- Hei, Amigo! Du gjorde en flott jobb i dag. Det er derfor jeg bare ikke kan gi deg mer. Kom igjen, sett deg ned, showet begynner:11 Kaptein Ekorn
- Hei, soldat! - God morgen, sir! - Jeg har noen fantastiske nyheter til deg. Her er en rask sjekk for å styrke ferdighetene dine. Gjør det hver dag, og du vil forbedre ferdighetene dine raskt. Oppgaver er spesielt designet for å gjøre i Intellij IDEA.Ytterligere oppgaver å gjøre i Intellij Idea | |
---|---|
1 | Klasse Cat og statisk variabel catCount Skriv en statisk variabel public int catCount i klassen Cat. Lag en konstruktør [public Cat()]. La den statiske variabelen catCount øke med 1 hver gang du oppretter en katt (et nytt objekt Cat). Lag 10 objekter Cat og vis verdien til variabelen catCount . |
2 | 2. Statiske katter
For å lage cats -variabel bruk kodelinje: public static ArrayList<Cat> cats = new ArrayList<Cat>(); |
3 | 3. Flytt en statisk modifikator Flytt en statisk modifikator slik at koden kompileres. |
4 | 4. Minimum antall statiske nøkkelord Legg til minimum antall statiske nøkkelord for å få koden til å kompilere og programmet til å fullføre. |
5 | 5. Noen nye ideer? La oss tenke...
|
6 | 6. KissMyShinyMetalAss Skriv en klasse som heter KissMyShinyMetalAss. Lag et objekt av denne klassen, og vis det deretter på skjermen. |
7 | 7. Navn på tre statiske variabler Skriv tre offentlige statiske variabler: String Solution.name , String Cat.name , String Dog.name |
GO TO FULL VERSION