Roadmap ng isang Java Developer
Nagtataka ang isang kaibigan ko kung bakit laging masaya ang mga developer. Ang sagot niya ay simple at nakakagulat: ginagawa nila ang gusto nila at kumikita ng malaking pera. Maligayang pagdating sa mundo ng mga software developer.
Ang suweldo ng developer ng software
Gusto kong sabihin sa iyo ang tungkol sa mga suweldo ng mga developer. Paano ang lupa ay namamalagi sa mga suweldo, kung saan ka dapat pumunta sa trabaho, at kung saan hindi dapat. Kung ikaw ay hindi isang developer at subukang palaisipan ito sa iyong sarili, maaari kang makakuha ng medyo kontrobersyal na data. Ang pangunahing punto ay ang pangunahing kadahilanan na nakakaimpluwensya sa suweldo ng isang developer ay hindi kwalipikasyon, ngunit ang lugar ng trabaho. Minsan, kung bibigyan ng pantay na antas ng kwalipikasyon, ang pagkakaiba sa pagitan ng mabuti at masamang lugar ng trabaho ay maaaring 2 hanggang 10 beses(!) Sa bawat ibinigay na sandali ng oras ang iyong kwalipikasyon ay pare-pareho. Hindi ka maaaring maging dalawang beses bilang kwalipikado sa isang buwan at mababayaran ng dalawang beses nang mas malaki. Ngunit maaari kang magpalit ng lugar ng trabaho sa isang buwan at makakuha ng dalawang beses na mas malaking suweldo. Minsan sa daloy ng dalawang buwan ang aking suweldo ay pinarami ng tatlo (!) – Hindi malilimutang karanasan. Kaya, alamin natin, kung aling lugar ang pinakamaganda.- Kung ang pangunahing negosyo ng isang kumpanya ay software development
- Kung ang kumpanya ay nakatuon sa global o lokal na merkado
- Saan matatagpuan ang pangunahing tanggapan: maunlad na bansa o umuunlad na bansa
Mga tiyak na numero
Dahil iba-iba ang mga suweldo sa iba't ibang bahagi ng mundo, iminumungkahi kong kunin ang suweldo ng Senior Java Developer na may 5 taong karanasan bilang panimulang punto at tawagin itong "5 taon na maximum". Ang lahat ng mga numero sa ibaba ay ibibigay bilang isang porsyento ng halagang ito. Narito ang ilang mga halimbawa ng “5 taong maximum” na suweldo sa iba't ibang lungsod sa mundo:


Ano ang maaari mong makamit maliban kung gumawa ka ng mga katangahan
Kung magsisimula kang magtrabaho sa iyong self-education sa programming ngayon, ang iyong suweldo ay maaaring magmukhang ganito:
Plano
0-3 buwan (Mag-aaral)
Kaunti lang ang alam mo tungkol sa programming. Maaaring pinag-aralan mo ito sa paaralan o sa isang kolehiyo sa pangunahing antas. Ang kailangan mong gawin ay matutunan kung paano magprogram at matuto ng Java. Ang iyong layunin ay makakuha ng trabaho bilang Java Junior Developer sa isang antas 3 o mas mataas na kumpanya. Sa unang tatlong buwan ng plano, wala kang makukuha, dahil nag-aaral ka lang kung paano magprogram. Ngunit ang mas maaga mong simulan ang mas mahusay. Ang pinakamagandang oras ay NGAYON. Sa hinaharap, kapag mayroon kang isang pamilya at maraming mga pautang, magiging mas mahirap na muling maging kwalipikado. Upang maitama ang iyong pagkakamali, kailangan mong magtabi ng pera upang bayaran ang hindi bababa sa isang taon ng normal na buhay. Huwag gumawa ng mga hangal na pagkakamali.3-15 buwan (Java Junior Developer)
Nagtatrabaho ka na bilang software developer at lumalaki ang iyong karanasan araw-araw. Huwag magpahinga. Marami kang dapat gawin bago magpahinga sa mga sagwan. Ang kailangan mong gawin ay – pag-aralan ang mga teknolohiyang kakailanganin mo bilang Middle Developer. Ano ang mga ito? Ang mundo ay patuloy na nagbabago. I'll load you with advices and life will change it all. Maghanap ng ilang bakante sa web at tingnan kung ano ang kailangan mong ilapat. Siguraduhing magbasa ng libro ni Bruce Eckel "Thinking in Java". Ang iyong layunin sa unang taon ng pagtatrabaho bilang Java Junior Developer ay maabot ang antas ng Java Middle Developer. Walang nagsasabi na magiging madali iyon, ngunit posible iyon para sa taong nakatuon sa layunin. Ito ay magtataas ng iyong suweldo sa isang iglap hanggang 40% ng “5 taon na maximum” ($50K para sa SF at London, $6K para sa Bangalore).2-d year programming (Java Middle Developer, level 1)
Nakagawa ka ng isang mahusay na trabaho noong nakaraang taon at ngayon ikaw ay isang Java Middle Developer. Maaari kang mamuhay nang maayos na kumikita ng 50% ng suweldo ng Senior Java Developer. Binibigyan ka ng ilang seryosong gawain sa trabaho at ang iyong karanasan ay lumalaki nang malaki. Maaabot mo ang antas ng Java Senior Developer sa loob ng dalawa o tatlong taon. Hindi kailangang magmadali. Hindi ka naman makakakuha ng malaking mataas sa suweldo. Ang kailangan mong gawin ay matuto ng mga pattern ng disenyo, basahin – Kumpleto ang Kodigo ni McConnell. Maperpekto ang kalidad ng iyong code at mga kasanayan sa koponan. Gumawa ng panuntunan sa pagbabasa ng 1 libro sa computer programming bawat buwan. Pagkatapos, sa loob ng 4 na taon, magiging 50 aklat ka nang mas matalino kaysa sa iba. Huwag ipagpaliban ito: hindi ka makakakuha ng mas malaking halaga ng bakanteng oras, bukod pa, malamang na magsisimula ka ng isang pamilya, o kung mayroon ka, ito ay magiging mas malaki. Ang iyong layuninay ang pumili ng ilang teknolohiyang pagdadalubhasaan bilang isang Senior Java Developer. Hindi mo matututuhan silang lahat, alam mo. At palaging isang magandang desisyon ang pagiging guru sa isang espesyalisasyon.
3-d year programming (Java Middle Developer, level 2)
Isa ka na ngayong makaranasang Middle Developer at iniisip mong maging Senior Developer. Ito ay kaaya-aya at prestihiyoso. Ang iyong suweldo ay lumampas sa 60% ng "5 taon na maximum" ($10K sa Bangalore, $25K sa Kiev, $40K sa Berlin, $80K sa New York). Mula sa sandaling ito on demand para sa mga propesyonal na tulad mo tumaas ang alok. Palagi kang makakahanap ng trabaho sa loob ng ilang araw at halos hindi ka na kikita ng mas kaunti kaysa ngayon. Syempre yun kung wala kang gagawing katangahan. Ang kailangan mong gawin aypatuloy na pag-aralan ang mga teknolohiyang pinili mo. Magtrabaho ng mas mahusay. Hindi para sa kapakanan ng iyong employer, para sa iyong sarili. Mag-apply upang lumahok sa mga proyektong may kinalaman sa mga promising na teknolohiya (tulad ng BigData, sa sandaling isinusulat ang artikulong ito). Gugugugol ka pa rin ng 8 oras sa isang araw sa opisina, kaya bakit hindi kumuha ng kaunting pera para dito, at, ano ang mas mahalaga, pinakamahalagang karanasan na kakailanganin mo sa hinaharap. Ang iyong layunin ay makahanap ng bagong trabaho. Ang isang mahusay na koponan ay palaging matatagpuan. Haharapin mo ang mga bagong proyekto at teknolohiya. Hindi mo kailangang mag-root sa iyong upuan. Kung nagtatrabaho ka pa rin sa isang pangatlong antas ng kumpanya, isipin ang pag-empleyo sa ikaapat na antas ng isa.5-th year programming (Java Senior Developer, level 1
Isa ka na ngayong Senior Developer. Siguro, hindi mo ito deserve, at nararamdaman mo. Gayunpaman, ang aking pagbati. Hindi mahalaga kung karapat-dapat ka sa iyong posisyon ngayon, ang mahalaga ay maging karapat-dapat ka rito sa hinaharap. I think you'll agree it's better to get a good job and after grow to the level required then vice versa. Sana hindi mo nakalimutan ang payo ko na magbasa ng isang libro sa isang buwan? Kahit sinong mag-aaral ay maiinggit sa iyong kaalaman at kakayahan ngayon. Upang maging mas tiyak, siya ay magdarasal para sa kanila. Isipin mo na lang: mayroon kang seryosong kita, malapit sa 90% ng “5 taon na maximum” na suweldo. Malamang bata ka pa. Ang mundo ay nasa iyong paanan. Ang kailangan mong gawin ayupang muling suriin ang mga teknolohiyang pinili mo. Marahil, kailangan mong baguhin ang espesyalisasyon. Nagbago ang mundo, nagbago ang mga teknolohiya, at medyo nakakuha ka ng kaalaman sa nakalipas na dalawang taon. Ang pipiliin mo ngayon ay magiging headline para sa ilang susunod na taon para sa iyo. Oras na para piliin ang iyong mga paboritong teknolohiya. Ang iyong layunin ay piliin ang iyong direksyon sa paglago. Marami sila, walang makakapagsabi sa kanilang lahat, ngunit ang iyong pinili ay dapat gawin ngayon. Kung gumawa ka ng kaunting pagbabago ngayon, magkakaroon ka ng malaking pagbabago sa hinaharap.6-th year programming (Java Senior Developer, level2)
Nakapagdesisyon ka na sa iyong kinabukasan at nagsusumikap ka sa iyong pangarap na matupad. Isang direksyon na napili nang tama kasama ang pagnanais na sumulong – at ang resulta ay hindi magtatagal. Binabati kita. Masaya akong makitang may isa pang taong nakarating sa kanyang pangarap. May isang malalim na katotohanan. Ang mga tao ay madalas na labis na tinatantya kung ano ang maaari nilang makamit sa isang taon at maliitin kung ano ang maaari nilang gawin sa lima. Tumingin sa limang taon na ang nakaraan. Ito ay gayon. Ang kailangan mong gawin ay iwasan ang mga hindi matalinong desisyon at huwag maging tamad. Ang iyong layunin ay pumili ng direksyon at sumulong. O akala mo ba dito na magtatapos? Tandaan ang iyong pagtatapos. Hindi ito ang katapusan, ito ay simula lamang.Dalubhasa ka sa hinaharap

Ang karera ng Java Developer
Ang karera ng developer ay iba sa iba. Hindi mo kailangang maging manager para kumita ng magandang pera. Madalas nangyayari na mas malaki ang kinikita ng isang Senior Developer kaysa sa kanyang manager-boss. Kung mas maraming karanasan ang iyong nakukuha, mas lumalakas ang iyong pakikipagtrabaho sa iyong boss, mula sa "boss-subordinate" ay nagiging "star at ang manager".
Dalawang daang taong gulang na developer
Kung nae-enjoy mo ang programming higit sa lahat, ito ang paraan mo: Senior Developer, pagkatapos ay Tech Lead Developer at isang arkitekto. Sa ganitong paraan maaari kang magtrabaho bilang isang developer sa loob ng 50 taon at higit pa. Sa karamihan ng mga kaso, ang suweldo ng mga Senior Developer at Tech Lead Developer ay lumampas sa mga suweldo ng kanilang mga manager. Kaya kunin ang halaga ng iyong pera.Manager. Ang swerte mo hindi ka tulad ng iba
Napunta ka sa kalaban. Biro lang. Kung matuklasan mo ang mahusay na mga kasanayan sa organisasyon, ang iyong mga paraan ay: Team Lead, at pagkatapos ay Project Manager. Bibigyan ka nito ng pagkakataong maging pinuno ng departamento at magbukas ng sarili mong negosyo. Yun naman ang gusto mo diba?Ang tahanan ay kung nasaan ang puso

Tingnan ang Naples at huwag mamatay.
Wala ka pang pamilya at mahilig kang maglakbay . Ang oDesk ay iyong lahat. Maghanap ng kliyente, sumang-ayon sa rate na $20-$50 kada oras, magdala ng laptop at pumunta! Ang iyong suweldo ay sapat na upang mabuhay saanman sa mundo. Bakit hindi mo simulan agad na matupad ang iyong mga pangarap?Ayokong magprogram, babae ako..
Kung babae ka , maaaring kailanganin mong kumuha ng maternity leave . Parang isang sexist joke, which it is. Gayunpaman, mayroong maraming sentido komun dito. Malamang, ang pagkuha ng maternity leave ay makakakuha ka ng maraming pera sa maternity leave (sa mga bansang may mataas na proteksyon sa lipunan). May mga kumpanyang walang binabayaran, at may mga, na nagbabayad nang maayos. Ang isa sa aking mga estudyante ay nakakuha ng 1/3 ng taunang suweldo sa isang maternity leave. At nangyari ito noong tagsibol ng 2009, sa panahon ng pagtanggal sa trabaho. At sa loob ng isang taon at kalahati maaari kang bumalik, na hindi bababa sa Middle Developer.Antas 6

1 Elly. Pagpapakita ng bagay. wala
- Hoy, Amigo! - Hi, Elly! Sasabihin mo ba sa akin ang isang bagay na kawili-wili ngayon? - Ngayon sasabihin ko sa iyo ang tungkol sa buhay ng isang bagay . Pagkatapos malikha ang isang bagay, ito ay umiiral (nabubuhay) hanggang sa hindi bababa sa isang variable ang mag-imbak ng address nito (mayroong kahit isang object reference). Kung wala nang mga sanggunian, ang bagay ay namatay. Mga Halimbawa:
2 Propesor, Pagkolekta ng basura

3 Elly, tapusin mo na
- Hello ulit! Ngayon ay bibigyan kita ng maikling panimula sa pamamaraang finalize() . Ang pamamaraang ito ay tinatawag ng Java virtual machine sa object bago masira ang object. Sa katunayan, ang pamamaraang ito ay kabaligtaran sa tagabuo. Sa pamamaraang ito, posibleng ilabas ang mga mapagkukunang ginagamit ng isang bagay. - Ang class Object ay may ganitong pamamaraan, samakatuwid, ang bawat klase ay mayroon nito ( lahat ng mga klase sa Java ay itinuturing na minana mula sa class Object at naglalaman ng isang kopya ng mga pamamaraan nito ). Kung isusulat mo sa iyong klase ang finalize() na pamamaraan at ito ay tatawagin bago masira ang mga bagay ng klase na ito. Halimbawa:
4 Elly, Object habang buhay
- Gusto ko ring sabihin sa iyo ang ilang mga kawili-wiling bagay tungkol sa panghabambuhay na bagay. Sa Java, napakahirap na mawala ang bagay nang hindi sinasadya; kung mayroon kang object reference, nangangahulugan ito na ang bagay ay tiyak na buhay. - Sa loob ng isang object reference ay nag-iimbak ng isang numero - address ng object na ito sa memorya. Hindi mo maaaring baguhin ang bilang na iyon, dagdagan o bawasan ito. Hindi ka makakagawa ng reference kapag mayroon ka lang address sa memorya. Maaari ka lamang lumikha ng isang bagong bagay at italaga ang reference nito sa isang variable. Ito ang tanging paraan upang makakuha ng bagong sanggunian. - Nakita ko. Iyon ay, kung itatakda ko sa null (burahin) ang lahat ng mga sanggunian sa bagay, hindi ko kailanman makukuha ang sanggunian ng bagay at ma-access ito? - Oo. Ngunit kadalasan ang kabaligtaran ay totoo - napakaraming mga live na bagay na hindi ginagamit.Karamihan sa mga programa ay gumagawa ng dose-dosenang mga bagay at iniimbak ang mga ito sa iba't ibang mga listahan sa oras ng pagtakbo, ngunit hindi kailanman linisin ang mga listahang iyon. - Kadalasan, nilagyan ng label ng mga programmer ang mga hindi gustong bagay bilang "tinanggal", iyon lang. Walang nagmamalasakit sa kanilang pagtanggal sa mga listahan. Kaya ang malalaking programa ng Java ay may posibilidad na mamaga - parami nang parami ang hindi nagamit na mga bagay na nananatiling buhay sa memorya. - Iyon lang. Sa hinaharap, palagi kong itutuon ang iyong pansin sa mga hindi nagamit na bagay at sa tamang pagtatapon ng mga ito. - ОK, salamat. Na-clear mo ang ilang bagay tungkol sa mga sanggunian.5 Diego, Object panghabambuhay na gawain
- Hoy, Amigo! Narito ang ilang gawain para sa iyo:Mga gawain | |
---|---|
1 | 1. finalize() method ng Cat class Sumulat ng method protected void finalize() throws Throwable sa klase Cat |
3 | 2. Classes Cat and Dog at finalize() method para sa bawat class Sa bawat Cat and Dog class magsulat ng finalize() method, na nagpapakita sa screen ng mensahe na ang object ay nawasak. |
3 | 3. 50,000 object ng Cat class at 50,000 objects ng Dog class Create in a loop 50,000 objects ng Cat class at 50,000 objects ng Dog class. (Sisirain ng Java virtual machine ang mga hindi nagamit na bagay, kaya ang method finalize() ay tatawagin kahit isang beses). |
4 | 4. Cat counter Sa Cat class constructor [public Cat()], taasan ang cat counter (static variable catCount of the same class) ng 1. Sa method finalize() ay bumaba ng 1. |
6 Elly, Static na mga klase at pamamaraan
- Narito ang isang bagong kawili-wiling paksa. Gusto kong sabihin sa iyo ang tungkol sa mga static na variable at pamamaraan. - Oh, narinig ko na ang tungkol sa mga static na variable. Tungkol din sa mga static na pamamaraan, sa palagay ko. Ngunit nais kong magkaroon ng higit pang mga detalye. - Kapag nagdedeklara ng mga variable sa isang klase, tinutukoy namin kung ang mga variable na ito ay nilikha sa isang iisang shared instance, o kung kinakailangan na gumawa ng kanilang mga kopya para sa bawat object. Bilang default, isang bagong kopya ng variable ng klase ang nilikha para sa bawat object ng klase na ito. Narito kung ano ang hitsura nito:



7 Risha, Static na mga klase at pamamaraan
- Bilang karagdagan sa mga static na pamamaraan mayroon ding mga static na klase . Isasaalang-alang namin ang kasong ito sa ibang pagkakataon, magpapakita lang ako sa iyo ng isang halimbawa nito:
8 Diego, Mga gawain sa static na pamamaraan
- Hoy, Amigo! Narito ang ilang mga kagiliw-giliw na gawain sa mga static na pamamaraan:Mga gawain | |
1 | 1. Class Cat at static variable catCount Sumulat ng static variable int catCount sa klase Cat. Lumikha ng isang constructor [ public Cat() ], kung saan ang ibinigay na variable ay dapat tumaas ng 1. |
2 | 2. Mga static na pamamaraan: int getCatCount() at setCatCount(int) Magdagdag ng dalawang static na pamamaraan sa klase Cat: int getCatCount( ) at setCatCount(int) gamit kung saan mo makukuha / baguhin ang bilang ng mga pusa (ang variable na catCount) |
3 | 3. Class Util Magpatupad ng static na paraan double getDistance(x1, y1, x2, y2) . Dapat itong kalkulahin ang distansya sa pagitan ng mga puntos. Gamitin ang paraang double Math.sqrt(double a) upang kalkulahin ang square root ng parameter na naipasa |
4 | 4. Class ConsoleReader Sumulat ng isang class ConsoleReader, na magkakaroon ng 4 na static na pamamaraan: - String readString() para basahin ang mga string mula sa keyboard - int readInt() para basahin ang mga numero mula sa keyboard - double readDouble() para basahin ang mga fractional na numero mula sa keyboard - void readLn () upang maghintay para sa pagpindot sa enter [use readString()] |
5 | 5. Class StringHelper Sumulat ng isang class na StringHelper, na magkakaroon ng 2 static na pamamaraan: - String multiply(String s, int count) ay dapat magbalik ng string ng paulit-ulit na bilang ng beses. - Dapat ibalik ng String multiply(String s) ang string na paulit-ulit nang 5 beses. Halimbawa: Amigo → AmigoAmigoAmigoAmigoAmigo |
9 Propesor, object static na saklaw at panghabambuhay

10 Julio
- Hoy, Amigo! Napakaganda ng ginawa mo ngayon. Kaya lang hindi ako makapagbigay sa iyo ng higit pa. Halika, maupo, magsisimula ang palabas:11 Kapitan Squirrels
- Hello, sundalo! - Magandang umaga, ginoo! - Mayroon akong ilang kahanga-hangang balita para sa iyo. Narito ang isang mabilis na pagsusuri upang palakasin ang iyong mga kasanayan. Gawin ito araw-araw, at mapapahusay mo ang iyong mga kasanayan nang mabilis. Ang mga gawain ay espesyal na idinisenyo upang gawin sa Intellij IDEA.Mga karagdagang gawain na gagawin sa Intellij Idea | |
---|---|
1 | Class Cat at static variable catCount Sumulat ng static variable public int catCount sa klase Cat. Lumikha ng isang constructor [pampublikong Cat()]. Hayaang tumaas ng 1 ang static na variable na catCount sa tuwing gagawa ka ng pusa (isang bagong object na Cat). Lumikha ng 10 bagay na Cat at ipakita ang halaga ng variable na catCount . |
2 | 2. Mga static na pusa
Para gumawa ng variable ng pusa , gumamit ng linya ng code: public static ArrayList<Cat> cats = new ArrayList<Cat>(); |
3 | 3. Ilipat ang isang static na modifier Ilipat ang isang static na modifier para mag-compile ang code. |
4 | 4. Pinakamababang bilang ng mga static na keyword Idagdag ang pinakamababang bilang ng mga static na keyword upang mai-compile ang code at matagumpay na makumpleto ang programa. |
5 | 5. Anumang mga bagong ideya? Tayo'y mag isip...
|
6 | 6. KissMyShinyMetalAss Sumulat ng klase na pinangalanang KissMyShinyMetalAss. Gumawa ng object ng klase na ito, pagkatapos ay ipakita ito sa screen. |
7 | 7. Pangalan ng tatlong static na variable Sumulat ng 3 pampublikong static na variable: String Solution.name , String Cat.name , String Dog.name |
GO TO FULL VERSION