Hai Jika Anda membaca artikel ini, kemungkinan besar Anda memiliki pertanyaan bagaimana menjadi seorang programmer. Mungkin Anda bahkan memutuskan untuk belajar bahasa pemrograman Java, tetapi tidak tahu harus mulai dari mana. Saya juga berani mengakui bahwa banyak yang bertanya pada diri sendiri pertanyaan: Apakah mungkin belajar Jawa dalam 1 tahun? Bagaimana jika saya tidak belajar di universitas sebagai programmer? Saya bahkan tidak memiliki keahlian teknis. Akankah saya bisa? Berapa banyak waktu yang harus saya habiskan untuk pelajaran ini? Apa yang harus kamu pelajari? Di mana memulai pelatihan? Jika Anda memiliki setidaknya satu dari pertanyaan ini, maka Anda sekarang berada di tempat yang tepat.
Tidak mengherankan bahwa banyak orang tersesat di awal, tidak tahu harus mulai dari mana, karena ada begitu banyak bahasa di sekitar, banyak buku pemrograman, berbagai jenis pelatihan, kursus video dan bahkan bimbingan individu. Bagaimana memilih yang cocok untuk Anda dan bagaimana mencapai hasil dalam kerangka waktu yang memadai? Mari kita bicarakan semuanya secara berurutan.
Motivasi
Sebelum Anda memulai tugas sulit yang membutuhkan banyak waktu dan energi, Anda harus memahami mengapa ini untuk Anda. Kita masing-masing harus menjawab tiga pertanyaan penting untuk diri kita sendiri:
Mengapa Apakah pertanyaan yang paling sulit. Ini mendasari motivasi. Anda harus memahami dengan jelas apa tujuan Anda dan apa yang Anda perjuangkan. Uang di sini seharusnya tidak menjadi alasan utama, tetapi hanya merupakan tambahan penting. Jika Anda menyukai teknologi modern, Anda suka membuat sesuatu, Anda dapat duduk berjam-jam di bisnis favorit Anda, Anda siap untuk melakukannya secara gratis dan Anda memiliki pemikiran logis, maka kemungkinan kelas-kelas ini hanya untuk Anda. Anda harus dapat menikmati pekerjaan. Hanya dalam hal ini adalah mungkin untuk mencapai hasil yang sangat bagus.
Apa? - Ini pertanyaan yang cukup logis. Apa yang perlu dilakukan untuk berhasil dalam masalah ini. Di sini, pertanyaan yang sama mungkin muncul, bahasa mana yang harus dipilih dan bahan apa yang dibutuhkan untuk mempelajarinya.
Bagaimana? - Bagaimana mencapai hasil yang signifikan dalam kerangka waktu yang memadai.
Jika setiap orang harus menjawab pertanyaan pertama secara independen, maka kita dapat menangani dua pertanyaan terakhir bersama-sama.
Bahasa mana yang dipilih?
Misalkan dengan motivasi, semuanya baik-baik saja dan kita dapat beralih ke pertanyaan berikutnya. Sebelum memilih bahasa apa pun, Anda harus memahami apakah ada lowongan di pasar tenaga kerja, apakah akan ada pada saat Anda telah menguasai tingkat dasar dan akan memulai pencarian pekerjaan Anda. Juga, kompleksitas bahasa pemrograman berperan. Semakin kompleks bahasa, semakin banyak waktu yang Anda butuhkan untuk menguasainya. Di sisi lain, memilih apa yang paling mudah juga tidak selalu baik, karena persaingan bisa lebih tinggi di sini daripada di kategori lain. Untuk menentukan prospek bahasa, Anda perlu menganalisis di mana ia digunakan, seberapa luas cakupannya dan seberapa sering kerangka kerja baru muncul dalam bahasa yang Anda pilih. Di sini peringkat bahasa pemrograman dapat membantu kami.
Saya pikir sudah waktunya untuk membuat cadangan kata-kata dengan angka. Menurut berbagai jajak pendapat di antara lima pemimpin adalah Java, JavaScript, C ++, C dan Python.
Contoh survei dapat ditemukan berlimpah di Internet. Berikut ini beberapa di antaranya:
Misalnya, menurut versi tiobe.com , yang secara teratur menerbitkan peringkat bahasa pemrograman, Java tetap menjadi pemimpin selama bertahun- tahun. Lima teratas juga memiliki C ++ dan Python.

Sumber statistik otoritatif lain, situs web Stackoverflow , yang melakukan survei di antara para penggunanya, mengatakan bahwa JavaScript ada di peringkat pertama, sementara Java berada di peringkat kelima peringkat. Namun di sini bahasa markup HTML dan CSS juga diperhitungkan.

Perlu mempertimbangkan fakta bahwa banyak programmer Java sampai batas tertentu dapat mengetahui JavaScript. Di antara pengembang JavaScript, ada lebih sedikit orang yang juga mengenal Java. Ini menambahkan beberapa poin ke JavaScript dalam survei sebelumnya.
Sekarang mari kita lihat jumlah lowongan dan tanggapan kandidat dalam berbagai bahasa. Agar tidak menjelaskan untuk waktu yang lama, saya akan memberikan beberapa tautan saja. Misalnya, situs web DOU.ua secara teratur menerbitkan berbagai statistik tentang lowongan, gaji, dll. Misalnya, Anda dapat mengamati tren menarik dalam peningkatan jumlah lowongan dalam bahasa teratas, dan di sana Anda dapat menggunakan berbagai filter yang menunjukkan rasio jumlah lowongan di berbagai kota dan dalam berbagai bahasa. Data tersedia baik dalam bentuk tabel dan grafik. Di antara favorit di sini, seperti biasa, adalah Java, Python, C ++, .NET. Selain itu, rasio jumlah lowongan / tanggapan untuk 2018 adalah yang terbaik untuk C ++, 2-3 orang per tempat. Sayangnya, saya tidak dapat menemukan statistik serupa untuk negara lain. Tetapi di Habré ada artikel bagus dengan infografis khusus tentang Jawa.
Secara umum, Anda perlu memilih salah satu bahasa top dan kemudian pada saat kelulusan Anda akan memiliki peluang bagus untuk mencari pekerjaan.
Menurut pendapat saya, pilihan yang baik untuk memulai karier adalah Java. Bahasa tidak terlalu rumit, ruang lingkup besar dan jumlah lowongan yang cukup. Ini tentang Jawa yang akan menjadi bagian kedua dari artikel kami. Jika saya harus memulai semuanya sekarang, Python bisa menjadi alternatif yang baik, karena secara aktif mendapatkan popularitas.
Ikhtisar ekosistem Jawa
Agar Anda memiliki pemahaman yang lebih baik tentang apa yang perlu Anda lalui untuk menjadi programmer Java, kami akan memberikan gambaran kecil tentang ekosistem Java. Saya sarankan melihat ilustrasi berikut. Ini tentu saja tidak mencakup semua aspek, tetapi itu akan memberi Anda beberapa pengertian.

Di pusat alam semesta, seperti biasa, kita memiliki bahasa Jawa itu sendiri. Lebih khusus lagi, Java Core. Pada saat penulisan artikel ini, Java JDK 10 melihat cahaya. Oracle telah mengubah kebijakan untuk bekerja dengan versi Java dan sekarang tidak ada perbedaan besar antara versi seperti ketika Java 8, misalnya, dirilis. Ini adalah versi yang tetap paling populer dan sering digunakan dalam sebagian besar perusahaan dan proyek. Anda dapat dengan aman mulai mempelajari bahasa dengan versi ini, dan mempelajari chip baru dengan menerapkannya pada pengetahuan dasar. Mempelajari bagian ini mungkin merupakan tugas yang paling sulit bagi seorang pemula. Anda harus menguasai jenis kegiatan baru dan mulai berpikir secara berbeda. Sejumlah besar bahan yang perlu diperoleh juga ditumpangkan pada ini. Sebagian besar dari mereka yang baru mulai putus sekolah justru pada tahap ini. Itu semua tergantung pada motivasi Anda.
Jika mempelajari Java baik-baik saja, maka Anda akan memerlukan alat tambahan, seperti sistem kontrol versi (Version Control System) dan sistem untuk membangun proyek. Sebagai VCS, saya sarankan menggunakan Git, yang merupakan pemimpin mutlak di antara jenis mereka sendiri. Semua sistem lain, seperti Subversion dan Perforce adalah sesuatu dari masa lalu. Plus, Anda dapat menggunakan repositori Github atau GitLab, untuk kode Anda, gratis. Dengan probabilitas tinggi di perusahaan, Anda akan menggunakan BitBucket Atlassian. Tapi ini hanya kulit. Jika Anda belajar menggunakan Git, maka semua hal lain tidak akan menjadi penting. Atlassian juga merupakan pemasok produk seperti Jira dan Confluence, tetapi ini tidak berperan dalam studi Anda.
Adapun alat untuk membangun proyek, ada dua opsi: Maven dan Gradle. Menurut pendapat subjektif saya, Maven lebih disukai, tetapi pengembang lain mungkin memiliki pendapat mereka sendiri. Pada prinsipnya, kedua kerangka kerja itu setara.
Setelah Anda berkenalan dengan hal-hal di atas, ada baiknya mempertimbangkan cara mana untuk melanjutkan. Pada gambar di atas, Anda melihat empat arah utama pergerakan: Front-End (HTML, CSS, JS), Back-End (Hibernate, Spring, SQL), Android dan Big Data. Keempat bagian ini, meskipun terpisah dalam gambar, sebenarnya terhubung cukup erat. Misalnya, jika Anda memutuskan untuk menjadi pengembang Java Full-Stack, maka Anda harus mempelajari bagian Back-End dengan baik dan memiliki pemahaman umum tentang dasar-dasar bagian Front-End. Anda seharusnya tidak diharapkan bahwa Anda akan terlibat dalam tata letak situs, tetapi Anda harus tahu HTML. Saya juga harus mencatat bahwa di bagian Back-End, Spring merujuk terutama ke Spring Core. Dengan bagian kerangka inilah Anda harus memulainya. Sekarang telah berkembang sedemikian rupa sehingga mencakup semua aspek pembangunan Jawa. Atau, Oracle mencoba mempromosikan spesifikasi Java EE, tetapi mereka tidak melakukannya dengan baik.
Sedangkan untuk BigData, ada juga setumpuk teknologi yang agak besar. Pada dasarnya, semuanya dirancang untuk penyimpanan terdistribusi dan pemrosesan data terdistribusi menggunakan pendekatan Map-Reduce. Teknologi tertua dan paling terkenal di sini adalah Hadoop.
Saya pikir Android tidak layak dijelaskan. Saya hanya bisa mengatakan bahwa untuk menulis aplikasi untuk platform seluler ini, Anda harus belajar Java.
Seperti yang mungkin telah Anda perhatikan, ada cukup banyak aplikasi untuk Java, jadi di masa mendatang, setelah mempelajari Java, Anda tidak akan dibiarkan tanpa pekerjaan.
Di mana untuk memulai? Apa yang harus dibaca?
Jelas, Anda harus mulai dengan dasar-dasarnya, mis. dengan Java Core. Kemudian Maven, Git, dan kemudian arah yang Anda sukai.
Di sini Anda memiliki tiga opsi. Kami tidak mempertimbangkan situasi ketika Anda memilih spesialisasi ini di universitas. Dia masih tidak mengecualikan opsi-opsi yang dijelaskan nanti.
Opsi Satu - Buku JavaCara yang paling kuno, tradisional dan sejauh ini paling terbukti. Keuntungan: sebagian besar buku dari penerbit terkenal ditulis oleh penulis profesional, banyak di antaranya memiliki puluhan tahun pengalaman dalam mengembangkan dan mengajar di universitas Barat yang bergengsi. Buku-buku ini juga diperiksa dengan cermat oleh penerbitnya sendiri, sehingga kemungkinan kesalahannya sangat rendah. Terutama ketika buku yang sama diterbitkan ulang berulang kali saat bahasa diperbarui. Setelah membaca buku-buku dasar, Anda harus pindah ke yang lebih maju. Ada beberapa tempat di mana Anda dapat menemukan topik pemrograman tingkat lanjut yang dipertimbangkan dengan kedalaman yang sama. Kekurangan: banyak buku ditulis dalam bahasa akademik yang kering dan lebih seperti buku referensi. Penulis terkenal Kay Horstmann sendiri berulang kali mengakui bahwa dia tidak membaca buku seperti itu sepenuhnya, tetapi hanya bab-bab yang membantunya memecahkan masalah saat ini.
Di antara buku-buku yang paling populer dan terbaik untuk pemula adalah yang berikut (namanya dalam bahasa Inggris, dalam kasus di mana buku itu tidak diterjemahkan ke dalam bahasa Rusia atau terjemahannya tidak ditemukan):
- Java How to Program - Paul Daytel dan Harvey Daytel. Buku ini telah bertahan dari banyak cetak ulang dan mungkin tutorial Java yang paling komprehensif. Selain bahasa itu sendiri, dasar-dasar algoritma masih dijelaskan dengan cukup baik di sana.
- Filosofi Jawa - Bruce Eckel - juga mendapat tempat terhormat di perpustakaan programmer. Penjelasan yang dapat diakses dan dimengerti. Bagus untuk pemula.
- Head First Java, 2nd Edition - Bert Bates, Kathy Sierra - sebuah buku yang telah menjadi populer karena kemampuannya menjelaskan konsep-konsep kompleks dengan contoh-contoh kehidupan sederhana. Tidak terlalu dalam konten, tetapi masih menarik.
- Jawa Perpustakaan profesional. Volume 1.2 - Kay Horstmann. Buku referensi ini, juga, telah lama disimpan di rak-rak banyak pengembang Java. Hanya dari kategori buku-buku itu dari mana bab-bab terpisah dibaca untuk memecahkan masalah, dan bukan keseluruhan buku.
- Java 8. A Beginner's Guide - Herbert Shildt. Saya tidak membaca buku ini sendiri, tetapi saya mendengar beberapa ulasan positif. Baca atau tidak - putuskan sendiri.
- Struktur dan Algoritma Data di Jawa - Robert Laforet. Salah satu buku terbaik tentang struktur data.
- Jawa Pemrograman yang Efektif - Joshua Bloch. Buku Java yang sedikit lebih maju. Ini berisi banyak tips dan trik tentang bagaimana Anda dapat meningkatkan kode Anda. Baru-baru ini merilis edisi ke-3 buku ini. Sangat merekomendasikan membaca.
- Java Concurrency dalam Praktek - Brian Goetz. Merupakan panduan multithreading yang bagus di Jawa yang tidak ketinggalan zaman.
Saya merekomendasikan membaca tiga buku terakhir untuk mereka yang sudah terbiasa dengan dasar-dasar pemrograman Java, tetapi berencana untuk mengembangkan lebih lanjut. Contoh buku tentang berbagai jenis kerangka tidak akan diberikan. Mereka juga telah ditulis beberapa.
Opsi kedua - kursus video tentang pemrograman dan tidak hanya ...Kursus video dan berbagai jenis pelajaran video kini mulai mendapatkan popularitas besar. Idenya sendiri sangat bagus dan saya pribadi menyukainya. Jenis materi pelatihan ini sangat cocok untuk visual, bagi orang-orang yang paling memahami informasi secara visual. Selain itu, Anda juga dapat menggunakan pemahaman mendengarkan. Salah satu keunggulannya adalah harga yang terjangkau. Selain itu, di YouTube Anda dapat menemukan sejumlah besar pelajaran gratis, di antaranya ada yang cukup bagus. Di antara kekurangan pelajaran di YouTube, saya harus mencatat seringnya fragmentasi dan kurangnya sistematisasi, serta fakta bahwa materi di dalamnya disajikan dengan sangat dangkal. Tetapi bahkan di sini ada pengecualian dalam arti kata yang baik.
Pelajaran YouTube alternatif dapat berupa situs-situs tersebut:
Safari O'Reilly - koleksi besar buku, tutorial video, dan webinar tentang berbagai topik. Kualitas bahan adalah keuntungan utama. Pelatihan buku dan video direkam oleh para profesional yang diakui di lapangan. Kelemahan utama di sini adalah harga. $ 400 per tahun jika Anda membayar segera atau $ 480 jika Anda membayar setiap bulan. Semua materi dalam bahasa Inggris. Jika Anda memutuskan untuk berlangganan, saya sarankan bahan yang disiapkan oleh penerbit O'Reilly sendiri, mereka biasanya lebih baik daripada pelajaran dari penerbit lain.
Pluralsight adalah tempat yang bagus untuk tutorial video. Pilihan bahan pada topik besar, tetapi sebagian besar lebih dangkal daripada dalam kasus sebelumnya. Semua materi di sini juga dalam bahasa Inggris. Harga berlangganan adalah $ 29 per bulan, atau 299 per tahun. Di sini, seperti dalam kasus sebelumnya, ada akses ke materi sambil membayar berlangganan. Anda tidak bisa hanya membeli satu atau dua kursus selamanya.
Udemy adalah perpustakaan besar berbagai kursus. Berbeda dengan kursus di sini tidak hanya dalam bahasa Inggris, tetapi juga dalam bahasa Rusia. Kebijakan penetapan harga di sini sangat berbeda dari sumber daya sebelumnya. Di sini Anda dapat membeli kursus dan itu akan tetap bersama Anda selamanya. Memilih kursus tentang Udemy, Anda perlu memperhatikan jumlah jam pelajaran video, kualitas suara (biasanya beberapa kuliah tersedia tanpa registrasi), ulasan dari pendengar lain. Di sini saya ingin merekomendasikan kursus “Jawa. Dari yang sederhana sampai yang kompleks . ” Dalam hal kualitas (jumlah jam) untuk harga, ini mungkin kursus Udemy paling menguntungkan di Rusia. Dengan mengikuti tautan Anda mendapatkan harga tetap dengan diskon 90%. Hanya 10 dengan dolar kecil selama 33 jam konten video yang sangat baik. Dalam proses mempersiapkan kursus, penulis menganalisis sejumlah besar kursus, buku dan materi pelatihan, dan juga menerapkan pengalaman tujuh tahun dalam mengembangkan aplikasi tingkat perusahaan.
Opsi Tiga - Kursus Penuh-WaktuOpsi pelatihan lain yang dapat mengarahkan Anda ke tujuan yang Anda hargai. Semuanya ambigu di sini. Di satu sisi, mengikuti kursus penuh waktu yang Anda harapkan ditunjukkan dan memberi tahu semua yang Anda butuhkan. Di sisi lain, Anda harus belajar sendiri. Tidak ada guru yang bisa mengajarkan Anda betapa baiknya dia. Di sini, seperti di semua tempat lain, semuanya tergantung pada motivasi pribadi dan kecerdasan pribadi. Jadi saya katakan dengan yakin bahwa tidak ada jalan keluar dari pelajaran buku dan video. Keuntungannya mungkin bahwa seorang guru yang baik akan membantu Anda memahami hal-hal yang tidak dapat Anda bayangkan sendiri dan mempercepat proses belajar sedikit.
Di sini, seperti dalam kasus kursus video, Anda perlu mendekati pilihan dengan hati-hati. Seperti di daerah lain, permintaan menciptakan pasokan dan diharapkan akan ada banyak kursus penuh waktu berkualitas rendah di pasar. Alasan kualitas buruk berbeda dan alasannya tidak selalu guru. Masalah umum adalah bahwa untuk meningkatkan pendapatan, kursus sekolah mendapatkan terlalu banyak siswa, dan bahkan pelatih terbaik tidak akan dapat mencurahkan cukup waktu untuk setiap siswa. Semakin besar kelompok, semakin beragam siswa dalam kelompok. Pada akhirnya, kelompok itu terbagi menjadi lebih kuat dan lebih lemah. Pada akhirnya, Anda langsung menginjak di tempat, karena guru harus menjelaskan hal yang sama beberapa kali atau jika sebagian besar kelompok memiliki pengalaman lebih dari Anda, Anda mulai dengan putus asa tertinggal. Setelah waktu yang singkat, bunga hilang dan menjadi jelas bahwa uang itu terbuang sia-sia. Saat memilih kursus, perhatikan ulasan dari mereka yang telah menyelesaikan kursus, jumlah jam kursus, berapa banyak orang dalam grup. Indikator penting adalah ketersediaan pengujian input dan deskripsi persyaratan minimum.
Opsi mana yang harus dipilih?Di sini, setiap orang harus memiliki pilihan terbaiknya sendiri. Menurut penulis, opsi terbaik adalah kombinasi dari ketiga opsi untuk satu derajat atau yang lain. Jelas tanpa buku itu tidak akan berhasil. Jika Anda memutuskan untuk mengambil kursus pemrograman penuh waktu, maka pertama-tama Anda perlu memahami apakah kegiatan ini cocok untuk Anda sama sekali. Jika demikian, maka sebelum Anda pergi ke sana, baca setidaknya satu buku, tonton beberapa tutorial video. Pertama, Anda akan dengan jelas memahami milik Anda atau tidak. Kedua, dengan basis minimum, Anda dapat mengajukan pertanyaan yang tepat dan pada akhirnya mengambil yang maksimal dari kursus. Ketiga, Anda bisa mengikuti kursus di mana seorang siswa diharuskan sedikit lebih dari keterampilan komputer dasar.
Setelah Anda memperoleh seperangkat pengetahuan minimal, akan menyenangkan untuk menemukan seorang mentor. Kesenangan tidak murah, tetapi jika mentornya baik, maka itu akan menghemat banyak waktu. , — , , , , , .
?
. , . , . . Hello World , . . , . — , .
. , . . . , .
— . , . , . . , .
hackerrank . , . .
GitHub GitLab. , . - . , . , , , , . , . .
Pada level ini, Anda mungkin bisa menyelundupkan ke sumber terbuka. Jika belum ada pekerjaan, berlatihlah di sana. Anda mendapat manfaat, manfaat masyarakat.
Bersamaan dengan repositori, saatnya untuk menyiapkan resume dan mulai mengalahkan ambang batas perusahaan. Ingatlah untuk menyertakan tautan ke proyek di repositori Anda. Dapatkan sebanyak mungkin wawancara. Kemampuan untuk melewatinya adalah keterampilan yang sangat penting yang pada akhirnya akan memberi Anda penghasilan tambahan.
Sebagai kesimpulan, saya ingin mengucapkan semoga sukses. Ingat, Facebook dan Apple, dulunya adalah perusahaan kecil dengan seseorang di garasi atau asrama. Hanya perlu belajar. Tidak masalah berapa jam Anda belajar, tetapi berapa hari berturut-turut Anda melakukannya.