Roadmap Pengembang Java
Seorang teman saya bertanya-tanya mengapa pengembang selalu sangat senang. Jawaban yang dia berikan sederhana dan mengejutkan: mereka melakukan apa yang mereka sukai dan menghasilkan banyak uang. Selamat datang di dunia pengembang perangkat lunak.
Gaji pengembang perangkat lunak
Saya ingin memberi tahu Anda tentang gaji pengembang. Bagaimana letak tanah dengan gaji, ke mana Anda harus pergi bekerja, dan ke mana Anda tidak boleh bekerja. Jika Anda bukan seorang pengembang dan mencoba memecahkannya sendiri, Anda mungkin mendapatkan data yang agak kontroversial. Intinya, faktor utama yang mempengaruhi gaji developer bukanlah kualifikasi, melainkan tempat kerja. Kadang-kadang, dengan tingkat kualifikasi yang sama, perbedaan antara tempat kerja yang baik dan buruk bisa 2 sampai 10 kali (!) Setiap saat kualifikasi Anda konstan. Anda tidak bisa menjadi dua kali lebih memenuhi syarat dalam sebulan dan dibayar dua kali lipat. Tapi Anda bisa pindah tempat kerja dalam sebulan dan mendapat gaji dua kali lebih besar. Sekali dalam aliran dua bulan, gaji saya dikalikan tiga (!) – Pengalaman yang tak terlupakan. Jadi, mari kita cari tahu, tempat mana yang terbaik.- Apakah bisnis utama suatu perusahaan adalah pengembangan perangkat lunak
- Apakah perusahaan berorientasi pada pasar global atau lokal
- Di mana kantor pusat berada: negara maju atau negara berkembang
Angka-angka tertentu
Karena gaji berbeda di berbagai belahan dunia, saya mengusulkan untuk mengambil gaji Pengembang Java Senior dengan pengalaman 5 tahun sebagai titik awal dan menyebutnya "maksimum 5 tahun". Semua angka di bawah ini akan diberikan sebagai persentase dari jumlah ini. Berikut adalah beberapa contoh gaji “maksimal 5 tahun” di berbagai kota di dunia:


Apa yang dapat Anda capai kecuali Anda melakukan hal-hal bodoh
Jika Anda mulai mengerjakan pendidikan mandiri Anda dalam pemrograman sekarang, gaji Anda mungkin terlihat seperti ini:
Rencana
0-3 bulan (Pelajar)
Anda tahu sedikit tentang pemrograman. Anda mungkin pernah mempelajarinya di sekolah atau di perguruan tinggi pada tingkat dasar. Yang perlu Anda lakukan adalah mempelajari cara memprogram dan mempelajari Java. Tujuan Anda adalah mendapatkan pekerjaan sebagai Java Junior Developer di perusahaan level 3 atau lebih tinggi. Selama tiga bulan pertama dari rencana Anda tidak akan mendapatkan apa-apa, karena Anda baru belajar bagaimana memprogram. Tapi lebih awal Anda memulai lebih baik. Waktu terbaik adalah SEKARANG. Di masa depan, ketika Anda memiliki keluarga dan banyak pinjaman, akan jauh lebih sulit untuk memenuhi syarat. Untuk memperbaiki kesalahan Anda, Anda harus menyisihkan uang untuk membayar setidaknya satu tahun kehidupan normal. Jangan membuat kesalahan konyol.3-15 bulan (Java Junior Developer)
Anda sudah bekerja sebagai pengembang perangkat lunak dan pengalaman Anda bertambah setiap hari. Jangan santai. Banyak yang harus Anda lakukan sebelum beristirahat di atas dayung. Yang perlu Anda lakukan adalah – mempelajari teknologi yang Anda perlukan sebagai Pengembang Menengah. Apa ini? Dunia terus berubah. Saya akan memuat Anda dengan nasihat dan hidup akan mengubah semuanya. Temukan beberapa lowongan di web dan lihat apa yang perlu Anda lamar. Pastikan untuk membaca buku karya Bruce Eckel “Thinking in Java”. Tujuan Anda di tahun pertama bekerja sebagai Java Junior Developer adalah mencapai level Java Middle Developer. Tidak ada yang mengatakan itu mudah, tetapi itu mungkin bagi orang yang berorientasi pada tujuan. Ini akan meningkatkan gaji Anda dalam sekejap hingga 40% dari "maksimum 5 tahun" ($50K untuk SF dan London, $6K untuk Bangalore).Pemrograman 2 tahun (Java Middle Developer, level 1)
Anda telah melakukan pekerjaan dengan baik tahun lalu dan sekarang Anda adalah Java Middle Developer. Anda dapat hidup dengan cukup baik dengan mendapatkan 50% dari gaji Pengembang Senior Java. Anda diberi beberapa tugas serius di tempat kerja dan pengalaman Anda tumbuh secara signifikan. Anda akan mencapai level Pengembang Senior Java dalam dua atau tiga tahun. Tidak perlu terburu-buru. Lagi pula, Anda tidak akan mendapatkan gaji yang besar. Yang perlu Anda lakukan adalah mempelajari pola desain, baca – Kode Lengkap McConnell. Sempurnakan kualitas kode dan keterampilan tim Anda. Buat aturan membaca 1 buku tentang pemrograman komputer setiap bulan. Kemudian, dalam 4 tahun Anda akan menjadi 50 buku lebih pintar dari yang lainnya. Jangan tunda: Anda tidak akan mendapatkan lebih banyak waktu luang, selain itu, kemungkinan besar Anda akan memulai sebuah keluarga, atau jika Anda memilikinya, itu akan menjadi lebih besar. Tujuan Andaadalah memilih beberapa teknologi untuk dijadikan spesialisasi sebagai Pengembang Java Senior. Anda tidak bisa mempelajari semuanya, Anda tahu. Dan itu selalu merupakan keputusan yang bagus untuk menjadi guru dalam satu spesialisasi.
Pemrograman 3 tahun (Java Middle Developer, level 2)
Anda sekarang adalah Pengembang Menengah yang berpengalaman dan Anda berpikir untuk menjadi Pengembang Senior. Ini menyenangkan sekaligus bergengsi. Gaji Anda melebihi 60% dari “maksimum 5 tahun” ($10K di Bangalore, $25K di Kiev, $40K di Berlin, $80K di New York). Mulai saat ini, permintaan untuk profesional seperti Anda menaikkan tawaran. Anda akan selalu dapat menemukan pekerjaan dalam beberapa hari dan Anda hampir tidak akan pernah mendapatkan penghasilan kurang dari yang Anda dapatkan sekarang. Itu, tentu saja, jika Anda tidak melakukan hal bodoh. Yang perlu Anda lakukan adalahterus pelajari teknologi yang Anda pilih. Bekerja lebih baik. Bukan untuk kepentingan majikan Anda, untuk kepentingan Anda sendiri. Mendaftar untuk berpartisipasi dalam proyek yang melibatkan teknologi yang menjanjikan (seperti BigData, saat ini artikel ini sedang ditulis). Lagi pula, Anda akan menghabiskan 8 jam sehari di kantor, jadi mengapa tidak mendapatkan sedikit lebih banyak uang untuk itu, dan, yang jauh lebih penting, pengalaman paling berharga yang akan Anda perlukan di masa mendatang. Tujuan Anda adalah mencari pekerjaan baru. Tim yang bagus selalu ditemukan. Anda akan menghadapi proyek dan teknologi baru. Anda tidak perlu melakukan root ke kursi Anda. Jika Anda masih bekerja di perusahaan tingkat ketiga, pertimbangkan untuk mempekerjakan perusahaan tingkat keempat.Pemrograman tahun ke-5 (Pengembang Senior Java, level 1
Anda sekarang adalah Pengembang Senior. Mungkin, Anda tidak pantas mendapatkannya, dan Anda merasakannya. Tetap saja, selamat. Tidak masalah apakah Anda layak untuk posisi Anda sekarang, yang terpenting adalah Anda layak mendapatkannya di masa depan. Saya pikir Anda akan setuju lebih baik untuk mendapatkan pekerjaan yang baik dan setelah tumbuh ke tingkat yang dibutuhkan kemudian sebaliknya. Saya harap Anda tidak melupakan saran saya untuk membaca satu buku dalam sebulan? Setiap siswa akan iri dengan pengetahuan dan keterampilan Anda sekarang. Untuk lebih spesifik, dia akan mendoakan mereka. Bayangkan saja: Anda mendapatkan penghasilan yang serius, mendekati 90% dari gaji “maksimum 5 tahun”. Anda mungkin masih muda. Dunia ada di kaki Anda. Yang perlu Anda lakukan adalahuntuk mengevaluasi kembali teknologi yang telah Anda pilih. Mungkin, Anda perlu mengubah spesialisasi. Dunia telah berubah, teknologi berubah, dan Anda telah memperoleh cukup banyak pengetahuan dalam dua tahun terakhir. Apa yang Anda pilih sekarang akan menjadi headline untuk beberapa tahun ke depan bagi Anda. Saatnya memilih teknologi favorit Anda. Tujuan Anda adalah memilih arah pertumbuhan Anda. Jumlahnya banyak, tidak ada yang bisa menyebutkan semuanya, tetapi pilihan Anda harus dilakukan sekarang. Jika Anda membuat perubahan kecil hari ini, Anda akan mendapatkan perubahan besar di masa depan.Pemrograman tahun ke-6 (Pengembang Senior Java, level2)
Anda telah memutuskan masa depan Anda dan Anda sedang mengerjakan impian Anda untuk menjadi kenyataan. Arah yang dipilih dengan benar seiring dengan keinginan untuk maju – dan hasilnya tidak akan lama. Selamat. Saya senang melihat ada satu orang lagi yang mendaratkan mimpinya. Ada satu kebenaran yang mendalam. Orang sering melebih-lebihkan apa yang dapat mereka capai dalam satu tahun dan meremehkan apa yang dapat mereka lakukan dalam lima tahun. Lihatlah lima tahun yang lalu. Memang begitu. Yang perlu Anda lakukan adalah menghindari keputusan yang tidak bijaksana dan tidak malas. Tujuan Anda adalah memilih arah dan bergerak maju. Atau apakah Anda pikir itu berakhir di sini? Ingat kelulusanmu. Ini bukan akhir, itu hanya awal.Anda spesialisasi masa depan

Karier Pengembang Java
Karier pengembang berbeda dari yang lain. Anda tidak perlu menjadi manajer untuk mendapatkan banyak uang. Sering terjadi bahwa Pengembang Senior menghasilkan lebih banyak daripada manajer-bosnya. Semakin banyak pengalaman yang Anda dapatkan, semakin kuat hubungan kerja Anda dengan atasan Anda berubah dari "bos-bawahan" menjadi "bintang dan manajer".
Pengembang berusia dua ratus tahun
Jika Anda paling menikmati pemrograman, maka inilah cara Anda: Pengembang Senior, kemudian Pengembang Pimpinan Teknologi, dan seorang arsitek. Dengan cara ini Anda dapat bekerja sebagai pengembang selama 50 tahun atau lebih. Dalam sebagian besar kasus, gaji Pengembang Senior dan Pengembang Pimpinan Teknologi melebihi gaji manajer mereka. Jadi dapatkan nilai uang Anda.Pengelola. Kamu beruntung tidak seperti yang lain
Anda pergi ke musuh. Cuma bercanda. Jika Anda menemukan keterampilan organisasi yang hebat, maka cara Anda adalah: Pemimpin Tim, lalu Manajer Proyek. Ini akan memberi Anda kesempatan untuk menjadi kepala departemen dan membuka bisnis Anda sendiri. Itu yang Anda inginkan, bukan?Rumah adalah tempat hati berada

Lihat Naples dan jangan mati.
Anda belum memiliki keluarga dan Anda suka bepergian . oDesk adalah segalanya bagi Anda. Temukan klien, setujui tarif $20-$50 per jam, bawa laptop dan pergilah! Gaji Anda akan cukup untuk hidup di mana saja di dunia. Mengapa tidak segera mulai mewujudkan impian Anda?Saya tidak ingin memprogram, saya perempuan ..
Jika Anda perempuan , Anda mungkin perlu mengambil cuti hamil . Kedengarannya seperti lelucon seksis. Tetap saja, ada banyak akal sehat di dalamnya. Kemungkinan besar, mengambil cuti melahirkan Anda akan bisa mendapatkan banyak uang cuti melahirkan (di negara-negara dengan perlindungan sosial yang tinggi). Ada perusahaan yang tidak membayar apa-apa, dan ada juga yang membayar dengan baik. Salah satu siswa saya mendapat sepertiga dari gaji tahunan untuk cuti melahirkan. Dan ini terjadi pada musim semi 2009, saat pemutusan hubungan kerja. Dan dalam satu setengah tahun Anda mungkin kembali, setidaknya menjadi Pengembang Menengah.Tingkat 6

1 Elly. Visibilitas objek. batal
- Hei, Amigo! - Hai, Elly! Maukah Anda memberi tahu saya sesuatu yang menarik hari ini? - Hari ini saya akan memberi tahu Anda tentang masa hidup suatu objek . Setelah objek dibuat, objek tersebut ada (hidup) hingga setidaknya satu variabel menyimpan alamatnya (setidaknya ada satu referensi objek). Jika tidak ada referensi lagi, maka objek tersebut mati. Contoh:
2 Profesor, Pengumpulan sampah

3 Elly, selesaikan
- Halo lagi! Sekarang saya akan memberi Anda pengenalan singkat tentang metode finalize() . Metode ini dipanggil oleh mesin virtual Java pada objek sebelum objek dihancurkan. Faktanya, metode ini berlawanan dengan konstruktor. Dalam metode ini dimungkinkan untuk melepaskan sumber daya yang digunakan oleh suatu objek. - Kelas Objek memiliki metode ini, oleh karena itu, setiap kelas memilikinya ( semua kelas di Jawa dianggap diwarisi dari kelas Objek dan berisi salinan metodenya ). Jika Anda menulis di kelas Anda metode finalize() dan itu akan dipanggil sebelum objek kelas ini dihancurkan. Contoh:
4 Elly, Obyek seumur hidup
- Saya juga ingin memberi tahu Anda beberapa hal menarik tentang objek seumur hidup. Di Jawa, sangat sulit kehilangan objek secara tidak sengaja; jika Anda memiliki referensi objek, itu berarti objek tersebut pasti hidup. - Di dalam referensi objek menyimpan nomor – alamat objek ini di memori. Anda tidak dapat mengubah angka itu, menambah atau menguranginya. Anda tidak dapat membuat referensi jika Anda hanya memiliki alamat di memori. Anda hanya dapat membuat objek baru dan menetapkan referensinya ke sebuah variabel. Ini adalah satu-satunya cara untuk mendapatkan referensi baru. - Jadi begitu. Yaitu, jika saya mengatur ke null (menghapus) semua referensi objek, saya tidak akan pernah mendapatkan referensi objek dan mengaksesnya? - Ya. Namun seringkali yang terjadi justru sebaliknya – terlalu banyak benda hidup yang tidak terpakai.Sebagian besar program membuat lusinan objek dan menyimpannya dalam daftar berbeda saat runtime, tetapi tidak pernah membersihkan daftar tersebut. - Sebagian besar, pemrogram memberi label objek yang tidak diinginkan sebagai "dihapus", itu saja. Tidak ada yang peduli dengan penghapusan mereka dari daftar. Begitu besar program Java cenderung membengkak - semakin banyak objek yang tidak terpakai tetap hidup di memori. - Itu saja. Di masa mendatang, saya akan selalu menarik perhatian Anda ke objek yang tidak terpakai dan pembuangannya yang tepat. - ОK, terima kasih. Anda telah membereskan beberapa hal tentang referensi.5 Diego, Objek tugas seumur hidup
- Hei, Amigo! Berikut beberapa tugas untuk Anda:Tugas | |
---|---|
1 | 1. finalize() metode kelas Cat Tulis metode yang dilindungi void finalize() throws Throwable di kelas Cat |
3 | 2. Kelas Cat and Dog dan metode finalize() untuk setiap kelas Di setiap kelas Cat dan Dog, tulis metode finalize() , yang menampilkan pesan bahwa objek akan dihancurkan ke layar. |
3 | 3. 50.000 objek kelas Kucing dan 50.000 objek kelas Anjing Buat dalam lingkaran 50.000 objek kelas Kucing dan 50.000 objek kelas Anjing. (Mesin virtual Java akan menghancurkan objek yang tidak terpakai, sehingga metode finalize() akan dipanggil setidaknya sekali). |
4 | 4. Penghitung kucing Dalam konstruktor kelas Cat [public Cat()], tingkatkan penghitung kucing (variabel statis catCount dari kelas yang sama) sebesar 1. Dalam metode finalize() turunkan sebesar 1. |
6 Elly, kelas dan metode statis
- Ini topik baru yang menarik. Saya ingin memberi tahu Anda tentang variabel dan metode statis. - Oh, saya sudah mendengar tentang variabel statis. Tentang metode statis juga, saya kira. Tapi saya ingin memiliki rincian lebih lanjut. - Saat mendeklarasikan variabel di kelas, kami menentukan apakah variabel ini dibuat dalam satu instance bersama, atau apakah perlu membuat salinannya untuk setiap objek. Secara default, salinan baru dari variabel kelas dibuat untuk setiap objek kelas ini. Berikut tampilannya:



7 Risha, Kelas dan metode statis
- Selain metode statis, ada juga kelas statis . Kami akan mempertimbangkan kasus ini nanti, saya hanya akan menunjukkan contohnya:
8 Diego, Tugas pada metode statis
- Hei, Amigo! Berikut adalah beberapa tugas menarik tentang metode statis:Tugas | |
1 | 1. Kelas Cat dan variabel statis catCount Tulis variabel statis int catCount di kelas Cat. Buat konstruktor [ public Cat() ], di mana variabel yang diberikan harus ditambah 1. |
2 | 2. Metode statis: int getCatCount() dan setCatCount(int) Tambahkan dua metode statis ke kelas Cat: int getCatCount( ) dan setCatCount(int) yang dapat digunakan untuk mendapatkan / mengubah jumlah kucing (variabel catCount) |
3 | 3. Kelas Util Terapkan metode statis getDistance ganda (x1, y1, x2, y2) . Itu harus menghitung jarak antar titik. Gunakan metode double Math.sqrt(double a) untuk menghitung akar kuadrat dari parameter yang diteruskan |
4 | 4. Kelas ConsoleReader Tulis kelas ConsoleReader, yang akan memiliki 4 metode statis: - String readString() untuk membaca string dari keyboard - int readInt() untuk membaca angka dari keyboard - double readDouble() untuk membaca angka pecahan dari keyboard - void readLn () untuk menunggu menekan enter [gunakan readString()] |
5 | 5. Kelas StringHelper Tulis sebuah kelas StringHelper, yang akan memiliki 2 metode statis: - String perkalian(String s, int count) harus mengembalikan waktu hitungan berulang string. - String perkalian(String s) harus mengembalikan string s diulang 5 kali. Contoh: Amigo → AmigoAmigoAmigoAmigoAmigo |
9 Profesor, ruang lingkup statis objek dan seumur hidup

10 Julio
- Hei, Amigo! Anda melakukan pekerjaan yang hebat hari ini. Itu sebabnya saya tidak bisa memberi Anda lebih banyak. Ayo duduk, pertunjukan dimulai:11 Kapten Tupai
- Halo, prajurit! - Selamat pagi Pak! - Saya punya berita luar biasa untuk Anda. Inilah pemeriksaan cepat untuk memperkuat keterampilan Anda. Lakukan setiap hari, dan Anda akan meningkatkan keterampilan Anda dengan cepat. Tugas dirancang khusus untuk dilakukan di Intellij IDEA.Tugas tambahan yang harus dilakukan di Intellij Idea | |
---|---|
1 | Kelas Cat dan variabel statis catCount Tulis variabel statis public int catCount di kelas Cat. Buat konstruktor [public Cat()]. Biarkan variabel statis catCount bertambah 1 setiap kali Anda membuat kucing (objek baru Cat). Buat 10 objek Cat dan tampilkan nilai dari variabel catCount . |
2 | 2. Kucing statis
Untuk membuat variabel kucing , gunakan baris kode: public static ArrayList<Cat> cats = new ArrayList<Cat>(); |
3 | 3. Pindahkan satu pengubah statis Pindahkan satu pengubah statis agar kode terkompilasi. |
4 | 4. Jumlah minimum kata kunci statis Tambahkan jumlah minimum kata kunci statis untuk membuat kode dikompilasi dan program berhasil diselesaikan. |
5 | 5. Ada ide baru? Mari berpikir...
|
6 | 6. KissMyShinyMetalAss Tulis kelas bernama KissMyShinyMetalAss. Buat objek kelas ini, lalu tampilkan ke layar. |
7 | 7. Tiga nama variabel statis Tulis 3 variabel statis publik: String Solution.name , String Cat.name , String Dog.name |
GO TO FULL VERSION