Køreplan for en Java-udvikler
En af mine venner undrede sig over, hvorfor udviklere altid er så glade. Svaret, hun kom med, var enkelt og overraskende: de gør, hvad de kan lide og tjener store penge. Velkommen til en verden af softwareudviklere.![Gammelt niveau 06 - 1](https://cdn.codegym.cc/images/article/19d25706-3262-447b-8e1b-d8f628e6d1b3/800.jpeg)
Softwareudviklers løn
Jeg vil gerne fortælle dig om udviklernes løn. Hvordan jorden ligger med lønninger, hvor du skal arbejde, og hvor du ikke skal. Hvis du ikke er en udvikler og prøver at pusle det ud på egen hånd, kan du få en ret kontroversiel data. Hovedpointen er, at den vigtigste faktor, der påvirker en udviklers løn, ikke er kvalifikation, men ansættelsesstedet. Nogle gange, givet lige kvalifikationsniveau, kan forskellen mellem godt og dårligt ansættelsessted være 2 til 10 gange(!). Hvert givet tidspunkt er din kvalifikation konstant. Du kan ikke blive dobbelt så kvalificeret på en måned og få dobbelt så meget udbetalt. Men du kan skifte arbejdsplads på en måned og få dobbelt så stor løn. En gang i løbet af to måneder ganget min løn med tre (!) – Uforglemmelig oplevelse. Så lad os finde ud af, hvilket sted der er bedst.- Om hovedforretningen for en virksomhed er softwareudvikling
- Uanset om virksomheden er orienteret på det globale eller lokale marked
- Hvor er hovedkontoret placeret: udviklet land eller udviklingsland
Specifikke tal
Da lønningerne er forskellige i forskellige dele af verden, foreslår jeg at tage udgangspunkt i lønnen for Senior Java Developer med 5 års erfaring og kalde det "5 års maksimum". Alle tal nedenfor vil blive angivet som en procentdel af dette beløb. Her er nogle eksempler på "5 års maksimum" lønninger i forskellige byer i verden:![Gammelt niveau 06 - 2](https://cdn.codegym.cc/images/article/1afaa877-5c1d-4093-91f9-af2b596fc1f1/800.jpeg)
![Gammel niveau 06 - 3](https://cdn.codegym.cc/images/article/417f0805-fde8-4d4d-a3e9-f6d0ea805e7c/800.jpeg)
![Gammelt niveau 06 - 4](https://cdn.codegym.cc/images/article/89ad7cb7-db6d-4f32-ad72-4be161d604f8/800.jpeg)
Hvad du kan opnå, medmindre du gør dumme ting
Hvis du begynder at arbejde med din selvuddannelse i programmering lige nu, kan din løn se sådan ud:![Gammelt niveau 06 - 5](https://cdn.codegym.cc/images/article/06c56ee7-2f9d-4e5e-aae4-e702673789de/800.jpeg)
Plan
0-3 måneder (elev)
Du ved meget lidt om programmering. Du har måske studeret det i skolen eller på et kollegium på grundlæggende niveau. Det du skal gøre er at lære at programmere og lære Java. Dit mål er at få et job som Java Junior Developer i en virksomhed på niveau 3 eller derover. I de første tre måneder af planen får du intet, fordi du lige er ved at lære at programmere. Men jo tidligere du starter, jo bedre. Det bedste tidspunkt er NU. I fremtiden, når du har en familie og masser af lån, vil det være meget sværere at genkvalificere. For at rette op på din fejl bliver du nødt til at lægge penge til side for at betale for mindst et år af normalt liv. Lav ikke dumme fejl.3-15 måneder (Java Junior Udvikler)
Du arbejder allerede som softwareudvikler, og din erfaring vokser dagligt. Slap ikke af. Du har meget at gøre, før du hviler på årer. Hvad du skal gøre er - studere teknologier, du skal bruge som mellemudvikler. Hvad er disse? Verden ændrer sig konstant. Jeg vil fylde dig med råd, og livet vil ændre det hele. Find et par ledige stillinger på nettet og se, hvad du skal bruge for at søge. Sørg for at læse en bog af Bruce Eckel "Thinking in Java". Dit mål i det første år af arbejdet som Java Junior Developer er at nå niveauet som Java Middle Developer. Ingen siger, at det ville være let, men det er muligt for en målorienteret person. Det vil øge din løn på et øjeblik op til 40 % af "5 års maksimum" ($50K for SF og London, $6K for Bangalore).2-d års programmering (Java Middle Developer, niveau 1)
Du har gjort et godt stykke arbejde sidste år, og nu er du Java Middle Developer. Du kan leve ret godt med at tjene 50% af senior Java-udviklers løn. Du får nogle seriøse opgaver på arbejdet, og din erfaring vokser markant. Du når niveauet som Java Senior Developer om to eller tre år. Ingen grund til at skynde sig. Du får alligevel ikke store overskud i løn. Hvad du skal gøre er at lære designmønstre, læs – McConnell's Code Complete. Perfekt kvaliteten af din kode og teamfærdigheder. Lav en regel om at læse 1 bog om computerprogrammering hver måned. Så vil du om 4 år være 50 bøger klogere end alle de andre. Udsæt det ikke: du vil ikke få nogen større mængde fritid, desuden vil du højst sandsynligt stifte familie, eller hvis du har en, bliver den større. Dit måler at vælge nogle få teknologier at specialisere sig i som senior Java-udvikler. Du kan ikke lære dem alle sammen. Og det er altid en god beslutning at blive guru i en enkelt specialisering.![Gammelt niveau 06 - 6](https://cdn.codegym.cc/images/article/07ba983e-9cf5-4f2d-8b63-90df726b6aa5/800.jpeg)
3-d års programmering (Java Middle Developer, niveau 2)
Du er nu en erfaren mellemudvikler, og du overvejer at blive seniorudvikler. Det er behageligt såvel som prestigefyldt. Din løn overstiger 60 % af "5 års maksimum" ($10K i Bangalore, $25K i Kiev, $40K i Berlin, $80K i New York). Fra dette øjeblik og efterspørgsel efter professionelle som dig stiger tilbuddet. Du vil altid kunne finde et job om et par dage, og du vil næppe nogensinde tjene mindre, end du gør nu. Det, selvfølgelig, hvis man ikke gør noget dumt. Det du skal gøre erfortsæt med at studere de teknologier, du har valgt. Arbejd bedre. Ikke for din arbejdsgivers skyld, for din egen. Ansøg om at deltage i projekter, der involverer lovende teknologier (som BigData, i det øjeblik denne artikel skrives). Du kommer alligevel til at bruge 8 timer om dagen på kontoret, så hvorfor ikke få lidt flere penge for det, og hvad der er langt vigtigere, den mest værdifulde oplevelse, du får brug for i fremtiden. Dit mål er at finde et nyt job. Et godt hold er altid at finde. Du vil møde nye projekter og teknologier. Du behøver ikke rode til din stol. Hvis du stadig arbejder i en virksomhed på tredje niveau, så tænk på at ansætte til en virksomhed på fjerde niveau.5-års programmering (Java Senior Developer, niveau 1
Du er nu seniorudvikler. Måske har du ikke fortjent det, og du føler det. Alligevel, mit tillykke. Det er lige meget, om du er værdig til din stilling nu, alt det betyder, at du bliver værdig til det i fremtiden. Jeg tror, du vil være enig i, at det er bedre at få et godt job og efter at vokse til det krævede niveau, så omvendt. Jeg håber ikke du har glemt mit råd om at læse en bog om måneden? Enhver studerende vil misunde din viden og færdigheder nu. For at være mere specifik, vil han bede på dem. Tænk bare over det: du har en seriøs indtjening, tæt på 90 % af "5 års maksimum" løn. Du er sikkert stadig ung. Verden ligger for dine fødder. Det du skal gøre erat revurdere teknologier, du har valgt. Måske skal du skifte specialisering. Verden har ændret sig, teknologier ændret sig, og du har fået en del viden i de sidste to år. Det, du vælger nu, vil blive overskriften i nogle få år for dig. Det er tid til at vælge dine yndlingsteknologier. Dit mål er at vælge din vækstretning. De er talrige, ingen kan nævne dem alle, men dit valg skal gøres lige nu. Hvis du laver en lille forandring i dag, får du en stor i fremtiden.6-års programmering (Java Senior Developer, niveau 2)
Du har besluttet dig for din fremtid, og du arbejder på, at din drøm skal gå i opfyldelse. En retning valgt korrekt sammen med ønsket om at komme videre – og resultatet vil ikke vare længe. Tillykke. Jeg er glad for at se, at der er endnu en person, der har landet sin drøm. Der er én dyb sandhed. Folk overvurderer ofte, hvad de kan opnå på et år og undervurderer, hvad de kan gøre på fem. Se fem år tilbage. Det er så. Det, du skal gøre, er at undgå ukloge beslutninger og ikke være doven. Dit mål er at vælge retning og komme videre. Eller troede du, det slutter her? Husk din eksamen. Det er ikke slutningen, det er kun begyndelsen.Din fremtidige specialisering
![Gammelt niveau 06 - 7](https://cdn.codegym.cc/images/article/896e521a-6e71-467f-9066-8538285f1f7d/1080.jpeg)
Java-udviklerkarriere
Udviklerkarriere er anderledes end nogen anden. Du behøver ikke at blive manager for at tjene gode penge. Det sker ofte, at en seniorudvikler tjener mere end sin leder-chef. Jo mere erfaring du får, desto stærkere skifter dine arbejdsrelationer med din chef fra "chef-underordnet" til "stjerne og leder".![Gammelt niveau 06 - 8](https://cdn.codegym.cc/images/article/974ae291-df1d-4ce3-aaf5-29cad8d43679/800.jpeg)
To hundrede år gammel udvikler
Hvis du nyder programmering mest af alt, så er dette din måde: Seniorudvikler, derefter Tech Lead Developer og en arkitekt. På denne måde kan du arbejde som udvikler i 50 år og mere. I de fleste tilfælde overstiger lønningerne for seniorudviklere og tekniske ledende udviklere deres lederes løn. Så få dine penge værd.Manager. Du er heldig, du ikke er som de andre
Du gik over til fjenden. Bare for sjov. Hvis du opdager store organisationsevner, så er dine måder: Teamleder og derefter projektleder. Det giver dig en chance for at blive afdelingsleder og åbne din egen virksomhed. Det er det, du vil, ikke?Hjem er hvor hjertet er
![Gammelt niveau 06 - 9](https://cdn.codegym.cc/images/article/63d085b9-b1d0-45b3-9f1e-0a4ec1883e75/800.jpeg)
Se Napoli og ikke dø.
Du har ikke en familie endnu, og du elsker at rejse . oDesk er dit alt. Find en kunde, accepter en takst på $20-$50 i timen, tag en bærbar computer med dig og gå! Din løn vil være tilstrækkelig til at bo hvor som helst i verden. Hvorfor ikke begynde at gøre dine drømme til virkelighed med det samme?Jeg vil ikke programmere, jeg er en pige..
Hvis du er en pige , skal du muligvis tage en barselsorlov . Det lyder som en sexistisk joke, hvilket det er. Alligevel er der meget sund fornuft i det. Hvis du tager en barselsorlov, vil du højst sandsynligt kunne få mange barselspenge (i lande med høj social beskyttelse). Der er virksomheder, der ikke betaler noget, og der er dem, der betaler godt. En af mine elever fik en tredjedel af årslønnen på barsel. Og det skete i foråret 2009 under afskedigelser. Og om halvandet år kommer du måske tilbage, som i det mindste mellemudvikler.Niveau 6
![Gammelt niveau 06 - 10](https://cdn.codegym.cc/images/article/c26ec3c8-8a08-4404-b92b-21557796c6e7/800.jpeg)
1 Elly. Objekt synlighed. nul
- Hej, Amigo! - Hej, Elly! Vil du fortælle mig noget interessant i dag? - I dag vil jeg fortælle dig om en genstands levetid . Når et objekt er oprettet, eksisterer det (lever), indtil mindst én variabel gemmer dens adresse (der er mindst én objektreference). Hvis der ikke længere er referencer, dør objektet. Eksempler:![Gammelt niveau 06 - 11](https://cdn.codegym.cc/images/article/70ecf870-832e-438a-94c0-433ae6dab2ee/512.jpeg)
2 Professor, Skraldesamling
![Gammelt niveau 06 - 12](https://cdn.codegym.cc/images/article/a4a7bf6c-5233-4d13-a720-ca630b7fa73e/1080.jpeg)
3 Elly, afslut
- Hej igen! Nu vil jeg give dig en kort introduktion til metoden finalize() . Denne metode kaldes af Java virtuel maskine på objektet, før objektet ødelægges. Faktisk er denne metode modsat konstruktøren. I denne metode er det muligt at frigive de ressourcer, der bruges af et objekt. - Klassen Object har denne metode, derfor har hver klasse den ( alle klasser i Java anses for at være nedarvet fra klassen Object og indeholder en kopi af dens metoder ). Hvis du skriver i din klasse, vil finalize() metoden blive kaldt, før objekter i denne klasse bliver ødelagt. Eksempel:![Gammelt niveau 06 - 13](https://cdn.codegym.cc/images/article/a8882f08-1770-499b-8541-8962af6914c1/512.jpeg)
4 Elly, Objektets levetid
- Jeg vil også fortælle dig et par interessante ting om objektets levetid. I Java er det meget svært at miste objektet ved et uheld; hvis du har en objektreference, betyder det, at objektet helt sikkert er i live. - Inde i en objektreference gemmer et nummer – adresse på dette objekt i hukommelsen. Du kan ikke ændre det tal, øge eller mindske det. Du kan ikke oprette en reference, når du bare har adresse i hukommelsen. Du kan kun oprette et nyt objekt og tildele dets reference til en variabel. Dette er den eneste måde at få en ny reference på. - Jeg ser. Det vil sige, at hvis jeg indstiller til null (sletter) alle objektreferencer, får jeg aldrig objektreferencen og får adgang til den? - Jep. Men ofte er det modsatte sandt - der er for mange levende genstande, der ikke bruges.De fleste programmer opretter snesevis af objekter og gemmer dem på forskellige lister under kørsel, men rens aldrig disse lister. - For det meste mærker programmører uønskede objekter som "slettet", det er alt. Ingen bekymrer sig om deres fjernelse fra listerne. Så store Java-programmer har en tendens til at svulme op - flere og flere ubrugte objekter forbliver i live i hukommelsen. - Det er alt. I fremtiden vil jeg altid henlede din opmærksomhed på ubrugte genstande og deres korrekte bortskaffelse. - Ok, tak. Du har opklaret et par ting om referencerne.5 Diego, Objekt livstidsopgaver
- Hej, Amigo! Her er et par opgaver til dig:Opgaver | |
---|---|
1 | 1. finalize() metode for Cat klasse 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 besked på skærmen om, at objektet er ødelagt. |
3 | 3. 50.000 objekter af Cat-klassen og 50.000 objekter af Dog-klassen Opret i en sløjfe 50.000 objekter af Cat-klassen og 50.000 objekter af Dog-klassen. (Java virtuel maskine vil ødelægge ubrugte objekter, så metoden finalize() vil blive kaldt mindst én gang). |
4 | 4. Cat-tæller I Cat-klassekonstruktøren [public Cat()], øges kattetælleren (statisk variabel catCount af samme klasse) med 1. I metoden finalize() reduceres med 1. |
6 Elly, Statiske klasser og metoder
- Her er et nyt interessant emne. Jeg vil gerne fortælle dig om de statiske variabler og metoder. - Åh, jeg har allerede hørt om statiske variable. Også om statiske metoder, tror jeg. Men jeg vil gerne have flere detaljer. - Når vi deklarerer variabler i en klasse, angiver vi, om disse variable er oprettet i en enkelt delt instans, eller om det er nødvendigt at oprette deres kopier for hvert objekt. Som standard oprettes en ny kopi af klassevariablen for hvert objekt i denne klasse. Sådan ser det ud:![Gammelt niveau 06 - 14](https://cdn.codegym.cc/images/article/7a75f73b-2ff1-4f6b-befd-9750d4b9e36a/512.jpeg)
![Gammelt niveau 06 - 15](https://cdn.codegym.cc/images/article/ad249170-a3ef-4165-9f34-eda62b8583cb/512.jpeg)
![Gammelt niveau 06 - 16](https://cdn.codegym.cc/images/article/8ec6718d-391a-4430-8f64-93a26514b88b/512.jpeg)
![Gammelt niveau 06 - 17](https://cdn.codegym.cc/images/article/474f4874-a110-4dbd-aa9a-ef7a43b2cd5e/512.jpeg)
7 Risha, Statiske klasser og metoder
- Ud over statiske metoder er der også statiske klasser . Vi vil overveje denne sag senere, jeg vil bare vise dig et eksempel på det:![Gammelt niveau 06 - 18](https://cdn.codegym.cc/images/article/276e92dc-a35e-4148-9640-dec042a08a19/512.jpeg)
8 Diego, Opgaver om statisk metode
- Hej, Amigo! Her er nogle interessante opgaver om statiske metoder:Opgaver | |
1 | 1. Klasse Cat og statisk variabel catCount Skriv en statisk variabel int catCount i klassen Cat. Opret en konstruktør [ public Cat() ], hvor den givne variabel skal øges med 1. |
2 | 2. Statiske metoder: int getCatCount() og setCatCount(int) Tilføj to statiske metoder til klassen Cat: int getCatCount( ) og setCatCount(int) ved hjælp af hvilke du kan få/ændre antallet af katte (variablen catCount) |
3 | 3. Klasse Util Implementer en statisk metode double getDistance(x1, y1, x2, y2) . Den skal beregne afstanden mellem punkter. Brug metoden double Math.sqrt(double a) til at beregne kvadratroden af den parameter, der er bestået |
4 | 4. Class ConsoleReader Skriv en klasse ConsoleReader, som vil have 4 statiske metoder: - String readString() til at læse strenge fra tastatur - int readInt() for at læse tal fra tastatur - dobbelt readDouble() for at læse brøktal fra tastatur - void readLn () for at vente på at trykke enter [brug readString()] |
5 | 5. Klasse StringHelper Skriv en klasse StringHelper, som vil have 2 statiske metoder: - String multiplicer (String s, int count) skal returnere strengens gentagne tælle gange. - String multiplicer(String s) bør returnere strengen s gentaget 5 gange. Eksempel: Amigo → AmigoAmigoAmigoAmigoAmigo |
9 Professor, objekt statisk omfang og levetid
![Gammelt niveau 06 - 19](https://cdn.codegym.cc/images/article/77240abd-fb6c-4f52-a2b3-9cb326912345/1080.jpeg)
10 Julio
- Hej, Amigo! Du gjorde et godt stykke arbejde i dag. Derfor kan jeg bare ikke give dig mere. Kom nu, sæt dig ned, showet begynder:11 kaptajn egern
- Hej, soldat! - Godmorgen hr! - Jeg har nogle fantastiske nyheder til dig. Her er et hurtigt tjek for at styrke dine færdigheder. Gør det hver dag, og du vil hurtigt forbedre dine færdigheder. Opgaver er specielt designet til at udføre i Intellij IDEA.Yderligere opgaver at udføre i Intellij Idea | |
---|---|
1 | Klasse Cat og statisk variabel catCount Skriv en statisk variabel public int catCount i klassen Cat. Opret en konstruktør [public Cat()]. Lad den statiske variabel catCount stige med 1, hver gang du opretter en kat (et nyt objekt Cat). Opret 10 objekter Cat og vis værdien af variablen catCount . |
2 | 2. Statiske katte
for at oprette kattevariable : public static ArrayList<Cat> cats = new ArrayList<Cat>(); |
3 | 3. Flyt en statisk modifikator Flyt en statisk modifikator, så koden kompileres. |
4 | 4. Minimum antal statiske nøgleord Tilføj det mindste antal statiske nøgleord for at få koden til at kompilere og programmet til at fuldføre. |
5 | 5. Nogen nye ideer? Lad os tænke...
|
6 | 6. KissMyShinyMetalAss Skriv en klasse ved navn KissMyShinyMetalAss. Opret et objekt af denne klasse, og vis det derefter på skærmen. |
7 | 7. Navn på tre statiske variable Skriv 3 offentlige statiske variable: String Solution.name , String Cat.name , String Dog.name |
GO TO FULL VERSION