CodeGym /Java Blog /Acak /Analisis kesalahan umum yang dilakukan programmer pemula,...
John Squirrels
Level 41
San Francisco

Analisis kesalahan umum yang dilakukan programmer pemula, pt. 2

Dipublikasikan di grup Acak
Halo lagi semuanya! Kami akan terus mempertimbangkan masalah yang mungkin dihadapi oleh programmer muda dan belum dewasa pada pekerjaan pertamanya. Bagian pertama dapat ditemukan di sini . Analisis kesalahan umum yang dilakukan programmer pemula, pt.  2 - 1Ayo lanjutkan.

13. Kegagalan untuk mematuhi pedoman gaya pengkodean.

Tim pengembangan biasanya berpegang pada satu gaya pengkodean. Artinya, masing-masing pengembang mengikuti aturan tertulis atau tidak tertulis tertentu untuk memastikan bahwa gaya pengkodean mereka tidak berbeda dari yang lain. Jangan mencoba membedakan diri Anda dengan gaya pengkodean yang khas: ini tidak membuat Anda terlihat bagus. Jika Anda baru mengenal proyek ini, Anda harus segera mencari tahu apakah ada dokumentasi yang menjelaskan pedoman umum gaya pengkodean. Mungkin ada beberapa file gaya untuk proyek spesifik Anda yang perlu Anda minta dan impor ke IDE Anda (misalnya, IntelliJ IDEA), sehingga IDE dapat memberikan petunjuk gaya pengkodean yang benar. Misalnya, gaya mungkin memerlukan penggunaan pengubah akhir jika memungkinkan. File gaya memungkinkan IntelliJ IDEA menyorot dengan warna kuning variabel apa pun yang tidak dipatuhi.

14. Menjadi putus asa karena kesalahan

Analisis kesalahan umum yang dilakukan programmer pemula, pt.  2 - 2Kesalahan adalah sesuatu yang harus Anda biasakan. Mereka telah, sedang, dan akan menjadi. Tidak masalah apakah Anda seorang pemula atau seorang arsitek yang serius, Anda akan selalu membuat kesalahan. Jumlah dan tingkat keparahan kesalahan Anda mungkin berubah, tetapi kesalahan itu akan menemani Anda sepanjang karier Anda. Kadang-kadang Anda berjuang untuk melakukan sesuatu sepanjang minggu, Anda membuat kesalahan, dan kemudian hari Jumat malam dan Anda menyelinap pulang seperti anjing yang dipukuli, tanpa mampu memperbaiki kesalahan sialan itu. Ini adalah perasaan yang tak terlukiskan, namun bukan sesuatu yang membuat Anda patah semangat. Lagi pula, perbedaan penting lainnya antara pengembang berpengalaman dan pemula adalah cara dia menangani kesalahan. Pengembang berpengalaman tidak menganggapnya serius, melainkan menganggapnya sebagai pengalaman. Tidak ada yang akan memarahi Anda karena melakukan kesalahan. Ini normal - setiap orang terkadang mengalami kekacauan. Sekali lagi, Anda bisa meminta bantuan rekan kerja. Dan jangan lupakan orang-orang seperti manajer proyek (PM). Jika Anda mengalami kebuntuan pada sesuatu, Anda harus segera menghubungi PM. Ia dapat membantu Anda menemukan seseorang yang ahli dalam bidang permasalahan tersebut. Dalam keadaan apa pun, PM harus selalu mendapat informasi tentang masalah apa pun yang Anda temui dalam proyek tersebut. Tugas PM adalah membantu menyelesaikan segala macam masalah, termasuk komunikasi dan interaksi antar anggota tim. Ringkasnya: Kesalahan terjadi , jangan biarkan kesalahan itu membunuh Anda. Sebaliknya, terimalah itu sebagai tantangan bagi Anda dan keterampilan Anda. Pada akhirnya, itu hanya sebagian dari pekerjaan.

15. Kegagalan menerapkan keamanan benang.

Tidak ada hal baik yang tercipta dengan mudah. Setiap pengembang perlu memahami bahwa menulis fungsionalitas tertentu, baik itu modul atau hanya metode, memerlukan rencana mengenai apa yang akan dilakukan dan bagaimana caranya. Sebagai aturan, saat mengembangkan fungsionalitas dengan kompleksitas apa pun, Anda harus mengikuti prosedur berikut:
Pikirkan -> analisis -> buat rencana -> tulis kode -> kode uji -> refactor
Banyak kesalahan yang muncul dalam kode yang ditulis oleh programmer pemula berhubungan dengan langkah-langkah dalam prosedur ini. Tentu saja, Anda tidak dapat mengesampingkan bahwa ada saatnya Anda perlu menulis kode dengan cepat tanpa ragu-ragu segera setelah Anda melihat tugasnya. Namun umumnya ini hanya berfungsi untuk tugas dan metode kecil tertentu yang penerapannya sudah jelas dan tidak memerlukan banyak pemikiran. Prosedur pengembangan yang disebutkan di atas lebih cocok untuk tugas-tugas kompleks dan besar yang dapat dibagi menjadi subtugas. Bukan ide yang baik untuk mulai menulis kode tanpa memahami dengan jelas apa yang ingin Anda tulis. Pertama, Anda perlu memikirkan dan merencanakan semuanya dengan cermat. Mungkin juga berguna untuk mengambil selembar kertas dan pensil dan mencoba membuat sketsa ide implementasi Anda. Saya selalu melakukan ini ketika merencanakan fungsionalitas yang kompleks. Seorang programmer menghabiskan sebagian besar waktunya untuk tidak menulis kode, melainkan memikirkan bagaimana menyusun fungsionalitas yang diperlukan . Memang benar, setelah Anda merencanakan dan memikirkan segalanya, menulis kode menjadi proses mekanis murni yang tidak merepotkan.

16. Bekerja terlalu keras

Analisis kesalahan umum yang dilakukan programmer pemula, pt.  2 - 3
dari film "Fight Club" (1999)
Mungkin setiap pemula berpikir bahwa dengan bekerja sampai malam, dia akan mulai menyelesaikan lebih banyak tugas dan akan diberi lebih banyak tanggung jawab. Dulu aku juga berpikir begitu, tapi kini tidak lagi. Saya memperhatikan bahwa ada saatnya Anda mencapai batas Anda, ketika Anda tidak lagi mampu berpikir secara memadai. Anda mulai menjadi sangat membosankan dan mengalami kabut mental. Dibutuhkan satu jam untuk melakukan hal-hal yang dapat Anda lakukan dalam 10 menit jika pikiran Anda segar. Hampir tanpa pengecualian, setelah Anda melewati garis kelelahan ini, Anda menghadapi beberapa masalah yang tampaknya tidak dapat diatasi. Namun saat Anda datang kerja keesokan paginya, Anda menyelesaikannya dalam sekejap mata. Jadi ketika Anda merasa sudah mencapai titik ini, jangan begadang. Pulang saja dan istirahatlah yang baik. Lagi pula, jika Anda tetap di meja kerja sampai larut malam, Anda tidak hanya tidak akan mencapai hasil yang luar biasa selama jam-jam siksaan ini, tetapi pada saat yang sama Anda berisiko mengalami istirahat yang buruk (kurang) sebelum hari kerja berikutnya, ketika Anda sedang bekerja. akan mengacau sekali lagi. Pikirkan tentang kesehatan Anda: apakah layak dirusak seperti ini di awal karir Anda? Saya pikir tidak. Ini adalah waktu yang mahal untuk sakit. Dan pikirkan tentang majikan Anda. Dengan bekerja terlalu keras, Anda memperburuk keadaan tidak hanya bagi diri Anda sendiri, tetapi juga bagi majikan Anda. Siapa yang butuh karyawan yang selalu mengantuk, yang karena kelelahan tidak dapat menerapkan algoritma penyortiran yang paling sederhana? Ya, pasti ada saat-saat ketika Anda mempunyai tenggat waktu yang ketat, saat-saat ketika segalanya berjalan salah, dan saat-saat ketika — dan ini adalah favorit pribadi saya — "kita membutuhkan ini kemarin". Namun situasi ini umumnya jarang terjadi, dan setelah Anda melewatinya, Anda perlu duduk bersama dan mempertimbangkan dengan cermat bagaimana hal itu bisa terjadi dan bagaimana cara menghindarinya di masa depan.

17. Mengabaikan kemampuan bahasa Inggris

Banyak calon pengembang yang memprioritaskan pembelajaran teknologi dan menunda pembelajaran bahasa Inggris. Ini adalah kesalahan serius, karena sering kali seorang programmer sangat cocok untuk posisi junior (atau magang), namun tidak mendapatkan pekerjaan tersebut karena kemampuan bahasa Inggrisnya yang lemah. Ya, tentu saja, ada kalanya Anda bisa bertahan tanpa bahasa Inggris. Biasanya, orang-orang seperti itu dipekerjakan secara lokal untuk proyek-proyek di negara-negara yang tidak berbahasa Inggris. Namun perusahaan lokal tidak memberikan gaji yang sama dengan perusahaan asing. Dan akan sangat-sangat sulit mendapatkan gaji yang layak, bahkan seiring berjalannya waktu. Itu sebabnya Anda tidak boleh mengabaikan bahasa Inggris. Daripada mengesampingkan bahasa Inggris, Anda perlu mempelajarinya agar dapat segera fokus pada proyek berbahasa Inggris. Coba pikirkan sejenak — Bahasa Inggris saat ini merupakan bahasa bisnis internasional. Negara mana pun yang Anda kunjungi, Anda dapat menemukan bahasa yang sama dengan negara lain jika Anda tahu bahasa Inggris. Hal serupa juga terjadi pada proyek-proyek pembangunan. Tidak peduli di mana proyek tersebut berada: Jerman, Australia, Perancis, atau di negara lain — semua komunikasi, semua tugas, dokumentasi, dll. akan dilakukan dalam bahasa Inggris. Dan jika Anda memikirkannya sejenak, Anda akan setuju bahwa ini sangat nyaman, bukan?

18. Mengejar teknologi yang trendi

Saat pengembang memulai perjalanannya, mereka sering kali mencoba mengikuti perkembangan teknologi terbaru. Apakah itu hal yang benar untuk dilakukan? Di satu sisi, ya: teknologi terbaru, proyek... Tapi apakah layak menjadikan ini sebagai prioritas utama? Mungkin lebih baik menggunakan "perangkat klasik" untuk spesialis di bidang Anda? Hal baru memang bagus, tetapi Anda tidak boleh melupakan teknologi dasar di bidang Anda. Dan baru kemudian, setelah Anda memperoleh sedikit pengalaman dan pengetahuan mendalam tentang dasar-dasarnya, Anda dapat mencoba sesuatu yang baru. Pertimbangkan juga bahwa teknologi baru mungkin lebih unggul dalam beberapa hal, namun mungkin kehilangan keunggulan dalam hal lain. Sampai pengembang pemula memahami pengorbanan ini, lebih baik tetap menggunakan solusi yang telah teruji waktu. Misalnya, jika seorang programmer sedang mengembangkan aplikasi yang berinteraksi dengan beberapa data, maka jangan terburu-buru menggunakan solusi NoSQL terbaru hanya karena solusi tersebut sedang populer. Database SQL biasa yang teruji dan benar (MySQL, PostrgreSQL, dll.) kemungkinan besar memiliki dokumentasi dan solusi terperinci di StackOverFlow untuk potensi masalah apa pun :)

19. Mempelajari beberapa teknologi dan/atau bahasa berbeda sekaligus

Kami berbicara di atas tentang pemula yang mencoba mempelajari teknologi modis. Nah, bagaimana dengan mempelajari banyak teknologi atau bahasa secara bersamaan? Tentunya Anda pernah mendengar tentang programmer yang mengetahui lebih dari satu bahasa pemrograman dan telah menguasai banyak teknologi. Namun saya akan segera menunjukkan bahwa orang-orang ini bukanlah orang baru dalam pemrograman. Ini adalah orang-orang dengan pengalaman bertahun-tahun di belakang mereka. Mereka telah menguasai teknologi aslinya dan kemudian melangkah lebih jauh. Pemula yang mencoba menguasai semuanya sekaligus harus mengingat pepatah bagus: "kejar dua kelinci, dan Anda tidak akan menangkap keduanya." Konsekuensinya mungkin Anda tidak akan menguasai topik apa pun dengan baik, tetapi hanya mempelajari mata pelajaran secara dangkal. Akan ada lebih banyak permintaan akan seorang spesialis yang mengetahui suatu bahasa secara mendalam dibandingkan dengan seseorang yang mengetahui sedikit tentang segala hal. Jadi jika Anda ingin menguasai banyak bahasa dan teknologi, Anda perlu mendekatinya dengan bijak. Untuk memulai, Anda perlu memilih bahasa inti dasar yang harus Anda pelajari secara mendalam. Dan baru setelah itu Anda harus mulai mempelajari bidang lain. Misalnya menjadi guru Java, lalu belajar Python sebagai bahasa kedua. Setelah itu, Anda mungkin mempelajari sesuatu tentang react/angular untuk frontend. Dalam hal ini, kita berbicara tentang teknologi yang tidak dapat dipertukarkan, seperti C# dan Java, melainkan saling melengkapi, sehingga memperluas peluang karier Anda. Namun sekali lagi saya ulangi: Anda tidak boleh mencoba mempelajari semuanya sekaligus. Anda harus melakukannya secara berurutan. Tangkap kelinci satu per satu.

20. Tujuan yang dirumuskan secara salah

Bagaimana Anda menetapkan tujuan untuk diri sendiri? Menjadi pengembang yang keren? Ingatlah hal ini untuk selamanya: Anda perlu menetapkan tujuan yang konkret, atau dengan kata lain — tujuan yang dapat dicapai. Apa yang saya bicarakan? Misalnya, Anda menetapkan tujuan: "Saya ingin menjadi kaya". Namun bagaimana Anda tahu apakah Anda telah mencapai tujuan ini? Atau bagaimana Anda mengukur seberapa dekat Anda untuk mencapainya? Nah, jika Anda menetapkan tujuan "Saya ingin menghasilkan satu juta dolar", itu lebih jelas, bukan? Setelah Anda memperoleh $10.000, Anda sudah $10.000 lebih dekat dengan tujuan Anda — tinggal $990.000 lagi. Masih banyak yang harus dicapai, namun Anda bisa merasakan kemajuan Anda dan memahami di mana garis finisnya, sehingga Anda akan termotivasi untuk terus melangkah. Dalam hal karier Anda, bagaimana jika Anda menetapkan tujuan yang lebih nyata? Misalnya: Saya ingin menjadi pemimpin tim. Atau pengembang senior. Atau pada akhirnya seorang arsitek. Ya, setiap tugas besar perlu dibagi menjadi subtugas kecil. Anda tidak menjadi pemimpin tim di awal karir Anda. Tetapkan tenggat waktu jika memungkinkan dan sesuai, dan fokuslah pada tahap saat ini.
  1. Jika kita berbicara tentang menjadi pengembang senior , maka tujuan kecil pertama adalah mencari magang atau pekerjaan sebagai pengembang junior di sebuah perusahaan.
  2. Selanjutnya, Anda dapat menetapkan tujuan untuk memperdalam pengetahuan Anda tentang teknologi tertentu. Sehubungan dengan Java, Anda dapat mempersiapkan diri untuk sertifikasi Oracle Level 1. Kami menetapkan kerangka waktu untuk persiapan dan mencapai tujuan.
  3. Kemudian, misalnya, Anda dapat menetapkan tujuan untuk meningkatkan bahasa Inggris Anda satu tingkat (misalnya, dari B1 ke B2). Kami menyusun rencana pembelajaran, menjadwalkan waktu, dan bergerak menuju tujuan.
Inilah cara kami mencapai tujuan akhir kami selangkah demi selangkah (sambil memperoleh pengalaman pengembangan perangkat lunak).

21. Teori tanpa praktek

Merupakan fakta yang tidak terbantahkan bahwa kita menjadi profesional yang lebih baik dengan mempelajari teknologi baru dan mendalami topik yang sudah kita ketahui. Namun di awal perjalanannya, para pengembang jarang menyadari bahwa melahap buku-buku teknis satu per satu tidak membawa manfaat yang besar jika ilmu baru tidak dicoba dalam praktik. Saya pribadi telah menemukan ini lebih dari sekali. Jika Anda mencurahkan banyak waktu untuk membaca sebuah buku tetapi Anda tidak mempraktikkan apa pun darinya, maka hampir semua pengetahuan yang baru diperoleh akan terlupakan: Anda hanya memiliki ingatan umum yang samar-samar tentang bagaimana segala sesuatunya bekerja. Akibatnya banyak waktu terbuang sia-sia tanpa hasil nyata. Mengapa kita harus membuang waktu kita? Hidup tidak bertahan selamanya. Kesimpulannya adalah ketika Anda mempelajari teknologi baru, Anda tidak boleh terpaku pada teorinya: tuliskan contoh-contoh yang diberikan secara paralel dengan bacaan Anda, bereksperimenlah dengan teknologi baru. Ini adalah satu-satunya cara agar otak Anda menyimpan informasi. Ya, Anda akan mengonsumsi materi baru dengan lebih lambat, tetapi Anda akan mengasimilasi lebih banyak materi yang Anda baca. Terlebih lagi, jika Anda menguasai satu teknologi dengan baik, maka teknologi berikutnya akan lebih mudah dikuasai (seperti halnya belajar bahasa).

22. Perfeksionisme yang berlebihan

Kebanyakan pengembang adalah perfeksionis: orang yang berjuang untuk mencapai kesempurnaan. Artinya kodenya juga harus sempurna. Jadi kode Anda telah ditulis, diuji, disempurnakan, dan sepertinya sudah waktunya mengirimkannya ke cabang utama. Namun Anda masih belum puas dengan kodenya, jadi Anda mulai memelintirnya ke sana kemari, menghabiskan banyak waktu untuk upaya ini. Dan dalam hal ini, waktu adalah uang klien Anda. Pemrogram pemula lebih rentan terhadap pencarian kesempurnaan ini. Pengembang berpengalaman terbiasa dengan perasaan bahwa kodenya tidak akan pernah sempurna dan mereka harus mencoba menulisnya dengan lebih baik. Namun pada saat yang sama mereka tidak bertindak ekstrem dalam upaya mendekati "yang ideal". Jadi, ingatlah untuk mempelajari cara mencapai medium bahagia: tidak dengan cara yang ceroboh dan tidak mencoba menciptakan kembali Mona Lisa dalam kode.

23. Kegagalan memikirkan arsitektur

Izinkan saya mengatakannya lagi: Anda tidak boleh menulis kode yang berantakan. Selain keterbacaan dan kinerja, Anda juga perlu memikirkan bagaimana kode Anda dapat memengaruhi aplikasi Anda secara keseluruhan. Misalnya, betapa sulitnya memperluas kode Anda, dan sebagainya. Masalahnya adalah pengembang pemula, karena kurangnya pengalaman, mungkin tidak segera menyadari bagaimana fungsi baru mereka akan mempengaruhi aplikasi di masa depan. Pandangan ke depan ini tentu membutuhkan banyak latihan untuk dikembangkan. Namun apa yang harus dilakukan oleh para pemula? Tidak menulis kode? Dalam situasi ini, berbagai paradigma pemrograman membantu kita. Misalnya prinsip SOLID atau berbagai pola desain yang dapat menyampaikan praktik bermanfaat bagi Anda. Paradigma-paradigma ini juga harus diperlakukan dengan hati-hati dan tidak diambil terlalu jauh. Tapi bagaimana Anda menentukan maksudnya ketika Anda berlebihan? Di sinilah peninjauan kode oleh rekan yang lebih berpengalaman akan membantu Anda. Dengan memberikan pandangan yang segar dan obyektif, kolega Anda dapat mengarahkan Anda ke arah yang benar.

24. Sindrom penipu

Analisis kesalahan umum yang dilakukan programmer pemula, pt.  2 - 4Sindrom penipu adalah fenomena psikologis di mana seseorang tidak dapat mengaitkan pencapaiannya dengan kualitas, kemampuan, dan upaya pribadi. Terlepas dari bukti eksternal atas kinerja mereka yang konsisten, orang-orang yang rentan terhadap sindrom ini tetap percaya bahwa mereka adalah penipu dan tidak pantas mendapatkan kesuksesan yang telah mereka raih. Banyak pengembang mengalami sindrom ini. Mungkin hal ini memberi kita kegigihan yang mendorong kita maju menuju pengetahuan dan teknologi baru. Anda melihat rekan-rekan yang lebih berpengalaman dan berprestasi dan Anda merasa tidak nyaman, seolah-olah Anda tidak sepadan dengan gaji Anda. Percayalah, ini tidak benar. Ada dan akan selalu ada pengembang yang lebih baik atau lebih buruk dari Anda. Orang lain memandang Anda dan merasa tidak nyaman, berpikir bahwa dia tidak akan pernah menjadi seperti Anda. Dan ini normal. Masukan dari tim Anda, tinjauan kode, dan diskusi sedikit membantu mengatasi perasaan ini. Percayalah, pendapat orang luar akan mengejutkan Anda, tetapi hanya jika Anda benar-benar tidak mengabaikan pekerjaan dan pengembangan profesional Anda. Jika Anda mengabaikan hal-hal tersebut, maka Anda salah memilih profesi. Dalam profesi ini, Anda harus selalu mempelajari sesuatu yang baru dan berusaha untuk menjadi yang terbaik. Tapi menurut saya orang-orang yang berkumpul di sini jauh dari kata malas. Sebaliknya, orang-orang di sini dengan gigih bergerak menuju tujuan yang mereka hargai. Jika itu menggambarkan Anda, maka Anda tidak perlu takut.

25. Jarang membuat komitmen

Ingatlah untuk sering melakukan komitmen! Tidak setiap setengah jam, ingatlah. Jika Anda menghabiskan waktu seminggu untuk mengimplementasikan beberapa fungsi, maka Anda tidak boleh melakukan satu komit pada Jumat malam, tetapi, katakanlah, lima komit. Hampir semua tugas besar dapat dipecah menjadi tugas-tugas kecil untuk kenyamanan. Jadi, Anda menyelesaikan tugas-tugas kecil ini dan berkomitmen. Dan jangan lupa untuk segera mengirimkan komitmen ini ke server jauh. Jika tidak, Anda mungkin melakukan komitmen sepanjang minggu dan kemudian komputer Anda mengalami kegagalan perangkat keras pada hari Jumat saat makan siang, dan kemudian Anda kehilangan satu minggu penuh tanpa hasil! Namun jika Anda mengunggah komitmen Anda ke server jarak jauh, maka Anda cukup menarik cabang dengan komitmen terakhir Anda ke komputer lain dan terus bekerja. Satu hal lagi: jangan mengirimkan fungsionalitas baru ke server produksi langsung pada Jumat malam. Percayalah padaku. Anda tidak membutuhkan itu. Kemungkinan besar kesalahan tak terduga akan terungkap, dan Anda akan menghabiskan akhir pekan untuk memperbaikinya. Dan itu tidak menyenangkan. Anda perlu istirahat di akhir pekan. Saya rasa itu saja untuk hari ini. PS Satu tip terakhir: tulis banyak kode. PPS Tulis kode dalam jumlah yang SANGAT besar, karena itulah satu-satunya cara untuk mendapatkan pengalaman yang sangat dibutuhkan.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION