JavaRush /Java Blog /Random-ID /Kay Horstmann dan 1500 kata-katanya tentang cara menjadi ...

Kay Horstmann dan 1500 kata-katanya tentang cara menjadi programmer Java yang lebih baik

Dipublikasikan di grup Random-ID
Kemungkinan Anda pernah mendengar nama Cay S. Horstmann. Beliau adalah orang yang cukup terkemuka di dunia Jawa dan penulis banyak buku tentang bahasa tercinta kita. Diantaranya adalah kursus klasik “Core Java” (diterbitkan dalam bahasa Rusia dalam buku dua volume “Java. Professional’s Library” ) dan seri dengan ringkasan singkat tentang esensi “Java for Impatient” (diterbitkan dalam bahasa Rusia “Java SE 8. Kursus Pengantar” dan “Java SE 8. Kursus Dasar " ). Ia menyandang gelar kebanggaan “Java Champion”. Dan di link ini Anda dapat menemukan website jadulnya dengan informasi menarik.
Kay Horstmann dan 1500 kata-katanya tentang cara menjadi programmer Java yang lebih baik - 1
Kami menyampaikan kepada Anda terjemahan artikel untuk sumber daya InformIT , di mana Kay menyuarakan beberapa tip untuk programmer pemula dan lanjutan tentang bagaimana menjadi lebih baik dalam profesi mereka. Suatu hari, Jennifer Bortel, direktur editorial InformIT, meminta saya menjelaskan cara menjadi programmer Java yang lebih baik. Dia menyarankan agar saya, penulis Core Java for the Impatient, mungkin mengetahui sesuatu tentangnya. “Tidak ada yang lebih mudah, beli saja bukunya,” pikirku pada awalnya. Tapi jawaban ini tidak berhasil, karena saya harus memasukkannya ke dalam 1500 kata, dan sampai saat ini hanya ada 62 kata* ( tentu saja, saat menerjemahkan artikel, kami tidak berusaha mempertahankan jumlah kata - kira-kira terjemahan ). Saya baru-baru ini menerima email dari seorang teman pengembang yang ditanyai pada sebuah wawancara mengapa kode berikut tidak aman untuk thread:
class ThreadSafeClass extends Thread
{
     private static int count = 0;

     public synchronized static void increment()
     {
         count++;
     }

     public synchronized void decrement()
     {
         count--;
     }
}
Teman saya memutuskan bahwa kode dalam contoh ini aman untuk thread, dan saya setuju dengannya, mencatat bahwa ada satu kata kunci yang hilang staticdalam metode kedua, dan setelah dimasukkan, akses dikontrol oleh kunci bawaan objek kelas. Saya juga mengatakan bahwa ini bukan pertanyaan wawancara yang bagus karena jika Anda memerlukan penghitung thread, lebih baik Anda menggunakan AtomicInteger. Namun kemudian di tengah malam saya terbangun dan bertanya-tanya: bagaimana jika kata ini staticdihilangkan karena suatu alasan? Mungkin ada pewawancara licik yang sengaja menyusun contoh ini sedemikian rupa untuk menyesatkan kandidat? Jadi saya menulis kembali kepada pengembang yang mengajukan pertanyaan dan mengatakan bahwa saya mungkin salah sebelumnya: di alam semesta paralel yang disebut Pertanyaan Wawancara, jawaban untuk pertanyaan ini adalah: “Metode kedua berisi kunci objek.” Setelah jawaban ini, pria tersebut bertanya apakah saya menjalankan saluran YouTube tempat saya mengajarkan cara menangani masalah wawancara seperti ini. Sayangnya, saya tidak melakukan ini. Saya mengajar ilmu komputer dan menulis buku, namun tujuan utama saya bukanlah untuk menjadikan “pemecah masalah wawancara” yang lebih baik, tetapi untuk menjadikan siswa saya pemrogram yang lebih baik. Suatu ketika, Peter Norvig ( ilmuwan Amerika di bidang kecerdasan buatan, direktur riset Google - kira-kira trans. ) menulis artikel yang bagus di blognya. Dia berargumen bahwa buku yang menjanjikan untuk mengajari Anda bahasa Java dalam 24 jam atau 21 hari adalah hal yang konyol. Sulit untuk tidak setuju dengannya: dibutuhkan 10 tahun, atau mungkin 10.000 jam, untuk menjadi ahli di bidang apa pun. Dan sudah diketahui bahwa para ahli memproses informasi secara berbeda dari para pemula. Dalam percobaan klasik, pecatur berpengalaman dan pemula diperlihatkan sebuah papan catur dengan susunan bidak tertentu selama beberapa detik, kemudian disembunyikan dan diminta menyusun bidak sebagaimana adanya. Para pemula tidak mengatasi tugas tersebut dengan baik, tetapi para ahli tidak mengalami masalah apa pun. Tetapi hanya dengan satu syarat penting: susunan bidak harus sesuai dengan permainan sebenarnya . Jika potongan-potongan tersebut ditempatkan secara acak, para ahli tidak akan lebih baik dalam membangun kembali papan tersebut dibandingkan para pemula.
Kay Horstmann dan 1500 kata-katanya tentang cara menjadi programmer Java yang lebih baik - 2
Itu sebabnya saya menjawab pertanyaan dari surat itu persis seperti yang saya lakukan. Latar belakang saya adalah pemrograman sebenarnya, bukan wawancara, jadi saya secara naluriah menambahkan kata kunci yang hilang dan membuat kesimpulan yang “salah”. Saya ingin berpikir bahwa saya akan tetap dipekerjakan setelah saya menjelaskan apa yang terjadi dan mengapa saya tidak akan pernah menulis kode seperti contoh tanpa tambahan saya. Mungkin, jika jawaban seperti itu tidak memuaskan mereka, saya sendiri tidak mau bekerja sama dengan mereka.
Sekarang, menurut saya belajar untuk ujian sertifikasi atau wawancara tidak akan mengubah Anda menjadi programmer yang lebih baik. Saya juga yakin bahwa membeli buku tentang pemrograman dalam jumlah besar dan kemudian membacanya dari depan ke belakang juga tidak akan berhasil (walaupun saya, sebagai penulis buku-buku ini, tidak mau mengakuinya!). Faktanya, cara terbaik untuk menjadi programmer yang lebih baik adalah dengan membuat perangkat lunak sebanyak mungkin . Dari waktu ke waktu saya mengajar kursus pengantar ilmu komputer di universitas saya. Sejauh ini, ini adalah mata pelajaran tersulit yang pernah saya ajarkan. Ini bahkan lebih sulit daripada program pascasarjana. Ketika saya pertama kali mulai bekerja sebagai profesor muda, saya dengan rajin memberikan ceramah kepada mahasiswa di mana saya dengan patuh membahas masalah pemrograman, seperti perbedaan antara loop fordan whileloop do. Saya kemudian menugaskan siswa empat proyek berdurasi tiga minggu. Dan mata pelajaran ini telah diajarkan dengan cara ini sejak awal mula di semua universitas. Setelah percobaan pertama saya, instruktur mata kuliah semester kedua mengeluh bahwa sebagian besar mantan siswa saya tidak benar-benar memahami loop sederhana setelah semester pertama pemrograman. Dan hasil seperti itu juga telah terjadi sejak permulaan zaman. Ingat artikel “FizzBuzz atau mengapa programmer tidak bisa memprogram” ? Saat Anda belajar bahasa asing, sebagian besar tugasnya adalah latihan dan praktik, bukan teori sama sekali. Sangatlah penting untuk “mendorong” pengetahuan ke alam bawah sadar. Titik baliknya terjadi ketika Anda tidak lagi harus secara aktif memikirkan setiap siklus, atau (dalam kasus bahasa Prancis), setiap kata kerja tidak beraturan. Jika momen ini telah tiba, maka Anda siap untuk melanjutkan ke level berikutnya. Dan tidak ada yang revolusioner dalam gagasan ini.
Kay Horstmann dan 1500 kata-katanya tentang cara menjadi programmer Java yang lebih baik - 3
Kunci dari segalanya adalah umpan balik instan. Beberapa psikolog percaya bahwa kita dapat melakukan lebih banyak hal dengan pembelajaran berbasis komputer dengan umpan balik instan. Misalnya, dalam eksperimen klasik lainnya, calon pilot peserta pelatihan menjalani sesi pelatihan di mana mereka diminta untuk melihat panel instrumen berulang kali dan menggambarkan pergerakan pesawat. Pada saat yang sama, mereka menerima umpan balik instan yang menunjukkan apakah mereka melakukannya dengan benar atau tidak. Setelah dua jam pelatihan, kinerja mereka mengungguli pilot berpengalaman. Tentu saja, ini tidak berarti bahwa mereka dapat langsung dikirim dalam penerbangan sungguhan, tetapi mereka tidak lagi merasa gugup dengan banyaknya dial yang bervariasi dan banyak di panel instrumen. Jadi, jika Anda baru mulai belajar Java, melakukan banyak latihan untuk berlatih adalah ide terbaik. Ada banyak situs web dan kursus online yang secara otomatis memeriksa kebenaran kode Anda. Pilih salah satu yang menawarkan tantangan nyata daripada omong kosong. Lagi pula, Anda ingin alam bawah sadar Anda mahir dalam kode yang akan Anda tulis dalam praktik. Inilah sebabnya saya tidak terlalu tertarik dengan contoh pemrograman yang menggunakan situasi yang dibuat-buat, seperti kelas hewan dengan metode mengeong dan menggonggong. Setelah beberapa waktu, Anda akan menguasai dasar-dasar pemrograman. Untuk pindah ke level berikutnya, Anda dapat menulis beberapa proyek. Beberapa tahun yang lalu, portal InformIT menanyakan pertanyaan kepada programmer berpengalaman: “Apa cara terbaik bagi seorang programmer untuk mempelajari bahasa baru?” Jika kami merangkum jawaban mereka, kami dapat menyimpulkan sebagai berikut: “gunakan bahasa ini dalam proyek Anda saat ini.” Jadi, pikirkan tentang apa yang selalu ingin Anda terapkan - dan lanjutkan. Dua puluh tahun yang lalu, ketika Java masih sangat muda,teman saya dan rekan penulis Gary Cornell menelepon saya dan berkata, “Kay, kami akan menulis buku tentang Java.” " Jawaban saya adalah dia dan saya tidak tahu apa-apa tentang Java ini, dan dia membalas: “Terus kenapa? Kami sudah memiliki kesepakatan buku." Tidak ada hubungannya. Kami harus bergegas karena orang lain mengumumkan peluncuran buku "Ajarkan Diri Anda Menjadi Boneka Java dalam 24 Jam" dalam waktu dekat ... Saya rasa judulnya seperti itu ( Kay mengolok-olok seri buku "For Dummies" - "untuk boneka" kata "Dummy" dapat diterjemahkan sebagai "dummy" - catatan penerjemah ). Untuk mempelajari bahasa baru, saya mulai dengan proyek - menulis sebuah program yang menciptakan antarmuka pengguna untuk perencanaan pensiun, dan kemudian sebuah program yang terhubung ke situs cuaca dan menampilkan laporan cuaca. Setelah itu - program yang mensimulasikan pergerakan mobil di jalan raya. Pada saat itu, program-program ini sungguh luar biasa!java.awtjava.netdan benang ( threads). Dan saya harus belajar bagaimana membuat ini berhasil, bukan hanya apa yang tertulis dalam dokumentasi. Pada saat itu, ini adalah hal yang sangat berbeda. Itu sebabnya Core Java [1] menjadi hit: bukan untuk orang bodoh.
Kay Horstmann dan 1500 kata-katanya tentang cara menjadi programmer Java yang lebih baik - 4
Saat itu, mempelajari Java jauh lebih sulit. Kami tidak memiliki situs seperti Stack Overflow ( dan kami juga tidak memiliki JavaRush - catatan editor ). Pada titik ini, saya melanjutkan dengan merumuskan saran berikut untuk meningkatkan “keterampilan” pemrograman Anda. Jadi, ketika Anda mengerjakan proyek Anda sendiri, Anda pasti terjebak di suatu tempat. Dalam hal ini, kunjungi forum khusus dan coba temukan jawabannya. Percayalah, ini ide bagus . Pertama, Anda akan menanyakan pertanyaan yang sudah sering ditanyakan sebelumnya. Namun segera Anda akan memperoleh pengetahuan dan pertanyaan Anda akan menjadi lebih unik. Ini adalah cara belajar yang luar biasa! Tentu saja, ini bukan sekadar menyalin-menempelkan sepotong kode dan bertanya: “Apa yang harus saya lakukan dengan ini sekarang?” Anda perlu memahaminya, menjelaskan upaya apa yang telah Anda lakukan untuk menyelesaikan masalah sebelum Anda mengalami kebuntuan. Ngomong-ngomong, dalam banyak kasus, ketika saya merumuskan pertanyaan secara tertulis, saya menemukan jawabannya sendiri dan yang harus saya lakukan hanyalah berkata pada diri sendiri: “Apa masalahnya di sini, tidak perlu khawatir” bahkan sebelum saya mengirimkan pertanyaannya. . Namun meskipun hal ini tidak terjadi... Percayalah, pertanyaan yang bijaksana cenderung menghasilkan jawaban yang bijaksana. Ingatlah untuk membalas budi sosial dengan menjawab pertanyaan bijaksana orang lain. Mengajukan pertanyaan dan menjawab pertanyaan yang bijaksana menjadikan Anda seorang programmer yang lebih baik. “Jadi, bagaimana dengan bukunya? - Anda bertanya. “Apakah mereka benar-benar sudah ketinggalan zaman berkat Google dan Stack Overflow ?” Setiap kali saya menavigasi teknologi baru, saya percaya bahwa saya adalah orang yang berani dan dapat mengatasi semua kesulitan sendirian. Tapi satu jam siksaan yang tidak masuk akal digantikan oleh satu jam kewarasan - dan saya membeli sebuah buku. Buku-buku teknis adalah tawaran yang menakjubkan saat ini. Jika saya membayar $40 untuk sebuah e-book dan hanya mendapatkan satu pertanyaan yang dijawab dengan cepat, saya sudah mendapatkan uang saya kembali. Saya benci mengecewakan rekan penulis saya, tetapi saya belum pernah membaca buku teknis dari awal sampai akhir. Saya memulai dari tempat yang menurut saya masalah saya dan solusinya tertulis, dan saya membaca sampai saya memahami cara menyelesaikannya. Oleh karena itu, saat ini saya mencoba menulis buku yang dapat dibaca dengan cara ini. Pendekatan ini memunculkan serial “Untuk Yang Tidak Sabar”. Dan pada titik ini saya harus berhenti - saya melampaui batas editorial 1500 kata. Izinkan saya menambahkan bahwa untuk menjadi programmer yang lebih baik, mulailah dengan menyadari bahwa ada banyak tingkatan pengetahuan.
  1. Pertama, “tarik” struktur bahasa dasar ke dalam alam bawah sadar Anda, yaitu membawa pengetahuan mereka ke otomatisitas dengan menyelesaikan sejumlah besar latihan.

  2. Mulailah mengerjakan proyek nyata yang Anda minati secepat mungkin.

  3. Kemudian bergabunglah dengan komunitas tempat Anda dapat bertanya dan menjawab pertanyaan.

  4. Setelah Anda melakukan ini, Anda akan dapat berbicara dengan pengetahuan dan pengalaman dalam wawancara. Dan tidak masalah apakah Anda memecahkan teka-teki yang dibuat-buat.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION