Egy Java fejlesztő útiterve
Egy barátom azon töprengett, miért olyan boldogok a fejlesztők mindig. A válasz egyszerű és meglepő volt: azt csinálják, amit szeretnek, és nagy pénzt keresnek. Üdvözöljük a szoftverfejlesztők világában.
Szoftverfejlesztő fizetés
A fejlesztők fizetéséről szeretnék mesélni. Hogyan fekszik a föld a fizetésekkel, hová kell menni dolgozni, és hová nem. Ha Ön nem fejlesztő, és egyedül próbálja megfejteni, akkor meglehetősen ellentmondásos adatot kaphat. A lényeg az, hogy a fejlesztő fizetését nem a végzettség, hanem a munkavégzés helye befolyásolja leginkább. Egyenlő képzettségi szint mellett előfordulhat, hogy a jó és a rossz munkahely közötti különbség 2-10-szeres(!) lehet. Minden adott pillanatban a végzettsége állandó. Nem lehetsz kétszer olyan képzett egy hónap alatt, és nem kaphatsz kétszer annyi fizetést. De egy hónap alatt munkahelyet válthatsz, és kétszer nagyobb fizetést kaphatsz. Egyszer a két hónap leforgása alatt a fizetésem megszorozva hárommal (!) – Felejthetetlen élmény. Tehát nézzük meg, melyik a legjobb hely.- Egy cég fő tevékenysége szoftverfejlesztés
- Függetlenül attól, hogy a vállalat a globális vagy a helyi piacra orientálódik
- Hol található a fő iroda: fejlett ország vagy fejlődő ország
Konkrét számok
Mivel a fizetések a világ különböző részein eltérőek, azt javaslom, hogy az 5 éves tapasztalattal rendelkező Senior Java Developer fizetését vegyük kiindulópontnak, és nevezzük ezt „5 év maximum”. Az összes alábbi szám ennek az összegnek a százalékában lesz megadva. Íme néhány példa „5 éves maximum” fizetésekre a világ különböző városaiban: Az


Amit elérhetsz, ha nem csinálsz hülyeségeket
Ha most kezd el dolgozni a programozási önképzésen, akkor a fizetése így nézhet ki:
Terv
0-3 hónap (diák)
Nagyon keveset tudsz a programozásról. Lehet, hogy az iskolában vagy egy főiskolán tanultad alapszinten. Amit meg kell tennie, az az, hogy megtanulja programozni és megtanulni a Java-t. A cél az, hogy Java Junior Developerként dolgozzon egy 3. szintű vagy magasabb szintű vállalatnál. A terv első három hónapjában semmit sem kapsz, mert még csak programozni tanulsz. De minél korábban kezdi, annál jobb. A legjobb idő MOST. A jövőben, amikor családod lesz és rengeteg hiteled lesz, sokkal nehezebb lesz újrakvalifikálni. Annak érdekében, hogy kijavítsa a hibáját, pénzt kell félretennie, hogy legalább egy évig normális életet fizessen. Ne kövess el buta hibákat.3-15 hónap (Java Junior fejlesztő)
Ön már szoftverfejlesztőként dolgozik, és tapasztalata naponta bővül. Ne lazíts. Sok dolgod van, mielőtt evezőkön pihensz. Amit tennie kell, az az , hogy tanulmányozza azokat a technológiákat, amelyekre középfejlesztőként szüksége lesz. Mik ezek? A világ folyamatosan változik. Megraklak tanácsokkal, és az élet mindent megváltoztat. Keressen néhány üres állást az interneten, és nézze meg, mire van szüksége. Feltétlenül olvassa el Bruce Eckel „Thinking in Java” című könyvét. Java Junior Developerként végzett munka első évében a cél az, hogy elérje a Java Middle Developer szintjét. Senki sem mondja, hogy ez könnyű lenne, de egy célorientált ember számára ez lehetséges. Ez egy pillanat alatt megnöveli a fizetését az „5 éves maximum” 40%-ára (50 000 USD SF és London, 6 000 USD Bangalore).Kétéves programozás (Java Middle Developer, 1. szint)
Tavaly jó munkát végzett, most pedig Java Middle Developer. Elég jól meg lehet élni, ha megkeresi a Senior Java Developer fizetésének 50%-át. Komoly feladatokat kapsz a munkahelyeden, és jelentősen gyarapodik a tapasztalatod. Két-három éven belül eléri a Java Senior Developer szintjét. Nem kell sietni. Úgysem kapsz nagy fizetést. Amit tennie kell, az az, hogy megtanulja a tervezési mintákat, olvassa el – McConnell Code Complete. Tökéletesítse kódja minőségét és csapatkészségeit. Hozz létre egy szabályt, hogy havonta olvass el 1 könyvet a számítógépes programozásról. Aztán 4 év múlva 50 könyvvel okosabb leszel, mint a többi. Ne halogasd: nem lesz több szabadidőd, ráadásul nagy valószínűséggel családot alapítasz, vagy ha van, akkor még nagyobb lesz. A célodaz, hogy válasszunk néhány technológiát, amelyekre szakosodjunk vezető Java fejlesztőként. Nem tanulhatod meg mindegyiket, tudod. És mindig jó döntés egyetlen szakterületen guruvá válni.
3D éves programozás (Java Middle Developer, 2. szint)
Ön most tapasztalt középfejlesztő, és azon gondolkodik, hogy vezető fejlesztő lesz. Kellemes és tekintélyes is. Az Ön fizetése meghaladja az „5 éves maximum” 60%-át (10 000 USD Bangaloreban, 25 000 USD Kijevben, 40 000 USD Berlinben, 80 000 USD New Yorkban). Ettől a pillanattól kezdve az Önhöz hasonló szakemberek iránti kereslet növekszik. Néhány napon belül mindig találhat munkát, és aligha fog kevesebbet keresni, mint most. Persze, ha nem csinálsz semmi hülyeséget. Amit tennie kell, azfolytassa a választott technológiák tanulmányozását. Dolgozz jobban. Nem a munkáltató kedvéért, hanem a saját érdekében. Jelentkezzen olyan projektekben való részvételre, amelyek ígéretes technológiákat tartalmaznak (például a BigData, a cikk írása jelenleg zajlik). Amúgy is napi 8 órát fog tölteni az irodában, szóval miért nem kap egy kicsit több pénzt érte, és ami még fontosabb, a legértékesebb tapasztalatot, amire a jövőben szüksége lesz. Az a célod, hogy új állást találj. Egy jó csapatot mindig találni kell. Új projektekkel és technológiákkal kell szembenéznie. Nem kell a székhez gyökerezni. Ha még mindig egy harmadik szintű vállalatnál dolgozik, gondoljon egy negyedik szintű alkalmazásra.5. éves programozás (Java Senior Developer, 1. szint
Ön most vezető fejlesztő. Lehet, hogy nem érdemelted meg, és ezt érzed. Ennek ellenére gratulálok. Nem számít, hogy méltó-e most a pozíciójára, csak az számít, hogy a jövőben méltóvá váljon rá. Azt hiszem, egyetértesz azzal, hogy jobb, ha jó állást kapsz, és utána a szükséges szintre nősz, majd fordítva. Remélem, nem felejtette el azt a tanácsomat, hogy olvass el havonta egy könyvet? Bármely diák irigyelni fogja most tudását és készségeit. Pontosabban, imádkozni fog értük. Gondoljon csak bele: komoly keresete van, az „5 éves maximum” fizetés közel 90%-a. Valószínűleg még fiatal vagy. A világ a lábad előtt van. Amit tennie kell, azhogy újraértékelje a választott technológiákat. Talán szakterületet kell váltania. Változott a világ, változtak a technológiák, és az elmúlt két évben elég sok tudásra tettél szert. Amit most választ, az néhány következő évben a főcím lesz az Ön számára. Ideje kiválasztani kedvenc technológiáit. Célod a növekedési irány kiválasztása. Sok van, senki sem tudja megnevezni őket, de a választást most azonnal meg kell hoznia. Ha ma változtatsz egy kicsit, a jövőben nagyot fogsz tenni.6. éves programozás (Java Senior Developer, 2. szint)
Döntöttél a jövődről, és azon dolgozol, hogy az álmod valóra váljon. Helyesen megválasztott irány, előrelépési vágy – és az eredmény nem tart sokáig. Gratulálunk. Örülök, hogy látom, hogy van még egy ember, aki elérte álmát. Van egy mély igazság. Az emberek gyakran túlbecsülik azt, amit egy év alatt elérhetnek, és alábecsülik azt, amit öt alatt. Nézz vissza öt évre. Olyan. Amit tenned kell, hogy kerüld az oktalan döntéseket, és ne legyél lusta. A célod az irány megválasztása és a továbblépés. Vagy azt hitted, hogy itt a vége? Emlékezz az érettségire. Ez nem a vég, ez csak a kezdet.A jövőbeni specializáció

Java Developer karrierje
A fejlesztő karrierje különbözik a többitől. Nem kell menedzsernek lenni ahhoz, hogy jó pénzt keress. Gyakran előfordul, hogy egy Senior Developer többet keres, mint a menedzsere-főnöke. Minél több tapasztalatot szerez, annál erősebb a munkakapcsolata a főnökével a „főnök-beosztott” helyett „sztár és vezető”.
Kétszáz éves fejlesztő
Ha a legjobban a programozást szereted, akkor ez az út: vezető fejlesztő, majd műszaki vezető fejlesztő és építész. Így akár 50 évig is dolgozhat fejlesztőként. A legtöbb esetben a vezető fejlesztők és a műszaki vezető fejlesztők fizetése meghaladja a vezetőik fizetését. Tehát kapja meg a pénzét.Menedzser. Szerencséd van, hogy nem vagy olyan, mint a többiek
Átmentél az ellenséghez. Csak viccel. Ha nagyszerű szervezési készségeket fedez fel, akkor a következőképpen járhat el: csapatvezető, majd projektmenedzser. Lehetőséget ad arra, hogy osztályvezetővé váljon, és megnyissa saját vállalkozását. Ezt akarod, nem?Ahol a szívünk, ott a hazánk

Lásd Nápolyt, és ne halj meg.
Még nincs családod és szeretsz utazni . Az oDesk mindened. Keressen egy ügyfelet, fogadja el a 20-50 USD/óra díjszabást, vigyen magával egy laptopot és menjen! A fizetése elegendő lesz ahhoz, hogy a világon bárhol éljen. Miért nem kezdi el azonnal megvalósítani álmait?Nem akarok programozni, lány vagyok.
Ha lány vagy , lehet, hogy szülési szabadságot kell kivennie . Szexista viccnek hangzik, és az is. Ennek ellenére sok józan ész van benne. Valószínűleg, ha szülési szabadságot vesz ki, sok szülési szabadsághoz juthat (a magas szociális védelemmel rendelkező országokban). Vannak cégek, amelyek semmit sem fizetnek, és vannak, amelyek jól fizetnek. Az egyik tanítványom az éves fizetés egyharmadát kapta szülési szabadságon. Ez pedig 2009 tavaszán történt, az elbocsátások idején. Másfél év múlva pedig visszatérhetsz, legalább középfejlesztőként.Levvel 6

1 Elly. Objektum láthatósága. nulla
- Szia Amigo! - Szia Elly! Mesélsz ma valami érdekeset? - Ma egy tárgy élettartamáról fogok mesélni . Egy objektum létrehozása után addig létezik (él), amíg legalább egy változó el nem tárolja a címét (legalább egy objektumhivatkozás van). Ha már nincsenek hivatkozások, akkor az objektum meghal. Példák:
2 Professzor, Szemétgyűjtés

3 Elly, fejezd be
- Szia ismét! Most röviden bemutatom a finalize() metódust . Ezt a metódust a Java virtuális gép hívja meg az objektumon, mielőtt az objektum megsemmisül. Valójában ez a módszer ellentétes a konstruktorral. Ebben a módszerben lehetőség van egy objektum által használt erőforrások felszabadítására. - Az Object osztály rendelkezik ezzel a metódussal, ezért minden osztály rendelkezik vele ( a Java-ban minden osztályt az Object osztálytól örököltnek tekintünk, és annak metódusainak másolatát tartalmazza ). Ha beírod az osztályodba a finalize() metódust, és az meg lesz hívva, mielőtt az osztály objektumai megsemmisülnének. Példa:
4 Elly, Az objektum élettartama
- Néhány érdekességet szeretnék elmondani a tárgy élettartamáról is. Java-ban nagyon nehéz véletlenül elveszíteni az objektumot; Ha van objektumhivatkozása, az azt jelenti, hogy az objektum biztosan él. - Az objektumhivatkozás belsejében ennek az objektumnak a számát – címét tárolja a memóriában. Ezt a számot nem módosíthatja, nem növelheti vagy csökkentheti. Nem hozhat létre hivatkozást, ha csak cím van a memóriában. Csak új objektumot hozhat létre, és annak hivatkozását egy változóhoz rendelheti. Ez az egyetlen módja annak, hogy új referenciát kapjunk. - Látom. Vagyis ha nullára állítom (törölöm) az összes objektumhivatkozást, akkor soha nem fogom megkapni az objektumhivatkozást és hozzáférni? - Igen. De gyakran ennek az ellenkezője igaz – túl sok élő tárgy van kihasználatlanul.A legtöbb program objektumok tucatjait hoz létre, és futás közben különböző listákon tárolja, de soha nem tisztítja meg ezeket a listákat. - Többnyire a programozók a nem kívánt objektumokat „törölt”-ként jelölik meg, ez minden. Senkit nem érdekel, hogy lekerüljenek a listákról. Így a nagy Java programok általában felduzzadnak – egyre több nem használt objektum marad életben a memóriában. - Ez minden. A jövőben mindig felhívom a figyelmet a használaton kívüli tárgyakra és azok megfelelő ártalmatlanítására. - Oké, köszönöm. Tisztáztál pár dolgot a referenciákkal kapcsolatban.5 Diego, Objektum életre szóló feladatok
- Szia Amigo! Íme néhány feladat a számodra:Feladatok | |
---|---|
1 | 1. Cat osztály finalize() metódusa Írjon védett metódust void finalize() dobás Dobható a Cat osztályban |
3 | 2. Cat and Dog osztályok és finalize() metódus minden osztályhoz Minden Cat and Dog osztályba írjon egy finalize() metódust, amely a képernyőn egy üzenetet jelenít meg, hogy az objektum megsemmisült. |
3 | 3. 50 000 Cat osztály és 50 000 Dog osztály objektum Hozzon létre egy hurokban 50 000 Cat osztály és 50 000 Dog osztály objektumot. (A Java virtuális gép megsemmisíti a nem használt objektumokat, ezért a finalize() metódus legalább egyszer meghívásra kerül). |
4 | 4. Cat számláló A Cat osztály konstruktorában [public Cat()] növelje meg a macskaszámlálót (ugyanazon osztályú catCount statikus változó) 1-gyel. A finalize() metódusban csökkentse 1-gyel. |
6 Elly, Statikus osztályok és metódusok
- Itt egy új érdekes téma. A statikus változókról és módszerekről szeretnék beszélni. - Ó, már hallottam a statikus változókról. A statikus módszerekről is, gondolom. De szeretnék több részletet. - Amikor változókat deklarálunk egy osztályban, megadjuk, hogy ezek a változók egyetlen megosztott példányban jönnek-e létre, vagy minden objektumhoz szükséges másolatot készíteni. Alapértelmezés szerint ennek az osztálynak minden objektumához létrejön az osztályváltozó új másolata. Így néz ki:



7 Risha, Statikus osztályok és módszerek
- A statikus módszerek mellett vannak statikus osztályok is . Ezt az esetet később megfontoljuk, csak egy példát mutatok rá:
8 Diego, Feladatok statikus módszerrel
- Szia Amigo! Íme néhány érdekes feladat a statikus módszerekkel kapcsolatban:Feladatok | |
1 | 1. Osztály Cat és statikus változó catCount Írjon egy statikus változót int catCount a Cat osztályba. Hozzon létre egy konstruktort [ public Cat() ], amelyben az adott változót 1-gyel kell növelni. |
2 | 2. Statikus metódusok: int getCatCount() és setCatCount(int) Adjunk hozzá két statikus metódust a Cat osztályhoz: int getCatCount( ) és setCatCount(int) , melyek segítségével lekérhetjük/módosíthatjuk a macskák számát (a catCount változót) |
3 | 3. Osztály Util Valósítson meg egy statikus metódust double getDistance(x1, y1, x2, y2) . Ki kell számítania a pontok közötti távolságot. Az átadott paraméter négyzetgyökének kiszámításához használja a double Math.sqrt(double a) metódust |
4 | 4. Class ConsoleReader Írjon egy ConsoleReader osztályt, amely 4 statikus metódussal rendelkezik: - String readString() karakterláncok billentyűzetről történő olvasásához - int readInt() számok beolvasásához a billentyűzetről - double readDouble() törtszámok billentyűzetről történő olvasásához - void readLn () várni az enter megnyomására [use readString()] |
5 | 5. Osztály StringHelper Írjon egy StringHelper osztályt, aminek 2 statikus metódusa lesz: - String multiply(String s, int count) az s karakterlánc ismétlődő számlálását adja vissza. - String multiply(String s) az s karakterláncot 5-ször ismételje vissza. Példa: Amigo → AmigoAmigoAmigoAmigoAmigo |
9 Professzor, objektum statikus hatóköre és élettartama

10 Julio
- Szia Amigo! Nagyszerű munkát végeztél ma. Ezért nem tudok többet adni. Gyerünk, üljön le, kezdődik a műsor:11 Kapitány Mókus
- Szia katona! - Jó reggelt uram! - Van egy nagyszerű hírem a számodra. Íme egy gyors ellenőrzés, amellyel erősítheti képességeit. Csináld minden nap, és gyorsan fejleszted képességeidet. A feladatokat kifejezetten az Intellij IDEA-ban való használatra tervezték.További feladatok az Intellij Idea programban | |
---|---|
1 | Osztály Cat és statikus változó catCount Írjon egy statikus változót public int catCount a Cat osztályba. Hozzon létre egy konstruktort [public Cat()]. Hagyja, hogy a catCount statikus változó 1-gyel növekedjen minden alkalommal, amikor macskát (egy új Cat objektumot) hoz létre. Hozzon létre 10 Cat objektumot, és jelenítse meg a catCount változó értékét . |
2 | 2. Statikus macskák
változó létrehozásához használja a következő kódsort: public static ArrayList<Cat> cats = new ArrayList<Cat>(); |
3 | 3. Mozgass egy statikus módosítót Mozgass egy statikus módosítót a kód fordításához. |
4 | 4. Statikus kulcsszavak minimális száma Adja hozzá a minimális számú statikus kulcsszót a kód lefordításához és a program sikeres befejezéséhez. |
5 | 5. Van valami új ötleted? Gondolkozzunk...
|
6 | 6. KissMyShinyMetalAss Írj egy KissMyShinyMetalAss nevű osztályt. Hozzon létre egy objektumot ebből az osztályból, majd jelenítse meg a képernyőn. |
7 | 7. Három statikus változó neve Írjon 3 nyilvános statikus változót: String Megoldásnév , String Cat.name , String Kutyanév |
GO TO FULL VERSION