CodeGym /Blog Java /rawak /Analisis kesilapan biasa yang dilakukan oleh pengaturcara...
John Squirrels
Tahap
San Francisco

Analisis kesilapan biasa yang dilakukan oleh pengaturcara baru, pt. 2

Diterbitkan dalam kumpulan
Hello sekali lagi, semua orang! Kami akan terus mempertimbangkan masalah yang mungkin dihadapi oleh pengaturcara muda dan tidak matang dalam tugas pertamanya. Bahagian pertama boleh didapati di sini . Analisis kesilapan biasa yang dilakukan oleh pengaturcara baru, pt.  2 - 1Jom sambung.

13. Kegagalan mematuhi garis panduan gaya pengekodan.

Pasukan pembangunan biasanya berpegang pada satu gaya pengekodan. Iaitu, pembangun individu mengikut peraturan bertulis atau tidak bertulis tertentu untuk memastikan gaya pengekodan mereka tidak berbeza daripada yang lain. Jangan cuba membezakan diri anda dengan gaya pengekodan yang tersendiri: ini tidak membuatkan anda kelihatan baik. Jika anda baru dalam projek itu, anda harus segera mengetahui sama ada terdapat sebarang dokumentasi yang mentakrifkan garis panduan gaya pengekodan umum. Mungkin terdapat beberapa fail gaya untuk projek khusus anda yang anda perlu minta dan import ke dalam IDE anda (contohnya, IntelliJ IDEA), jadi IDE boleh memberikan pembayang gaya pengekodan yang betul. Sebagai contoh, gaya mungkin memerlukan penggunaan pengubah suai akhir di mana mungkin. Fail gaya membolehkan IntelliJ IDEA menyerlahkan dalam kuning mana-mana pembolehubah yang tidak dihormati.

14. Putus asa kerana kesilapan

Analisis kesilapan biasa yang dilakukan oleh pengaturcara baru, pt.  2 - 2Kesilapan adalah sesuatu yang perlu anda biasakan. Mereka telah, sedang, dan akan. Tidak kira anda seorang pemula atau seorang arkitek yang serius, anda akan sentiasa melakukan kesilapan. Bilangan dan keterukan kesilapan anda mungkin berubah, tetapi ia akan menemani anda sepanjang kerjaya anda. Kadang-kadang anda bergelut untuk mendapatkan sesuatu untuk bekerja sepanjang minggu, anda membuat kesilapan, dan kemudian hari Jumaat petang dan anda menyelinap pulang seperti anjing yang dipukul, tanpa dapat membetulkan kesilapan terkutuk itu. Ia adalah satu perasaan yang tidak dapat digambarkan, tetapi bukan sesuatu yang harus mengecewakan anda. Lagipun, satu lagi perbezaan penting antara pembangun berpengalaman dan orang baru ialah cara dia menangani kesilapan. Pembangun yang berpengalaman tidak mengambil hati mereka, sebaliknya menganggap mereka sebagai pengalaman. Tiada siapa yang akan memarahi anda kerana melakukan kesilapan. Ini adalah perkara biasa — semua orang kadang-kadang menjadi kucar-kacir. Sekali lagi, anda boleh meminta bantuan rakan sekerja. Dan jangan lupa tentang orang seperti pengurus projek (PM). Jika anda terperangkap pada sesuatu, anda harus segera menghubungi PM. Dia boleh membantu anda mencari seseorang yang pakar dalam bidang yang bermasalah. Walau apa pun, PM perlu dimaklumkan tentang sebarang masalah yang anda hadapi dalam projek tersebut. Adalah menjadi tugas PM untuk membantu menyelesaikan semua jenis masalah, termasuk komunikasi dan interaksi antara ahli pasukan. Untuk meringkaskan: Kesilapan berlaku , jangan biarkan mereka membunuh anda. Sebaliknya, terima mereka sebagai cabaran kepada anda dan kemahiran anda. Pada akhirnya, ia hanya sebahagian daripada kerja.

15. Kegagalan untuk melaksanakan keselamatan benang.

Tiada yang baik dicipta dengan mudah. Setiap pembangun perlu memahami bahawa menulis fungsi khusus, sama ada modul atau hanya kaedah, memerlukan rancangan mengenai perkara yang akan dilakukan dan bagaimana. Sebagai peraturan, apabila membangunkan fungsi apa-apa kerumitan, anda perlu mematuhi prosedur berikut:
Fikir -> analisis -> buat rancangan -> tulis kod -> kod ujian -> refactor
Banyak ralat yang timbul dalam kod yang ditulis oleh pengaturcara baru berkaitan dengan langkah-langkah dalam prosedur ini. Sudah tentu, anda tidak boleh menolak bahawa terdapat saat-saat anda perlu menulis kod dengan pantas tanpa teragak-agak sebaik sahaja anda melihat tugas itu. Tetapi ini biasanya hanya berfungsi untuk tugas dan kaedah kecil tertentu yang pelaksanaannya jelas dan tidak memerlukan banyak pemikiran. Prosedur pembangunan yang dinyatakan di atas adalah lebih sesuai untuk tugas yang kompleks dan besar yang boleh dibahagikan kepada subtugas. Bukan idea yang baik untuk mula menulis kod tanpa memahami dengan jelas perkara yang ingin anda tulis. Pertama, anda perlu berfikir dengan teliti dan merancang segala-galanya. Ia juga boleh membantu untuk mengambil sehelai kertas dan pensel dan cuba melakar idea pelaksanaan anda. Saya sentiasa melakukan ini apabila merancang fungsi yang kompleks. Seorang pengaturcara menghabiskan sebahagian besar masanya untuk tidak menulis kod, tetapi memikirkan cara untuk menstrukturkan fungsi yang diperlukan . Sesungguhnya, sebaik sahaja anda merancang dan memikirkan segala-galanya, menulis kod menjadi proses mekanikal semata-mata tanpa kerumitan.

16. Terlalu bekerja

Analisis kesilapan biasa yang dilakukan oleh pengaturcara baru, pt.  2 - 3
dari filem "Fight club" (1999)
Mungkin setiap pemula berfikir bahawa dengan bekerja sehingga malam, dia akan mula menyelesaikan lebih banyak tugas dan akan diamanahkan dengan lebih banyak tanggungjawab. Saya juga pernah berfikir begitu, tetapi tidak lagi. Saya perasan bahawa ada masanya apabila anda mencapai had anda, apabila anda tidak lagi dapat berfikir dengan secukupnya. Anda mula menjadi agak kusam dan mengalami kabut mental. Ia mengambil masa sejam untuk melakukan perkara yang boleh anda lakukan dalam 10 minit jika fikiran anda segar. Hampir tanpa pengecualian, selepas anda melepasi garis keletihan ini, anda menghadapi beberapa masalah yang kelihatan tidak dapat diatasi. Tetapi apabila anda datang bekerja keesokan harinya, anda menyelesaikannya dalam sekelip mata. Oleh itu, apabila anda merasakan bahawa anda telah mencapai tahap ini, jangan berjaga malam. Balik sahaja ke rumah dan berehat. Lagipun, jika anda tinggal di meja anda sehingga larut malam, bukan sahaja anda tidak akan mencapai hasil yang sangat cemerlang semasa waktu siksaan ini, tetapi pada masa yang sama anda berisiko berehat yang lemah (tidak mencukupi) sebelum hari kerja berikutnya, apabila anda' akan kacau sekali lagi. Fikirkan tentang kesihatan anda: adakah ia berbaloi untuk melemahkannya seperti ini pada permulaan kerjaya anda? Saya rasa tidak. Ia adalah masa yang mahal untuk sakit. Dan fikirkan tentang majikan anda. Dengan terlalu banyak bekerja, anda memburukkan keadaan bukan sahaja untuk diri sendiri, tetapi juga untuk majikan anda. Siapa yang memerlukan pekerja yang sentiasa mengantuk, yang, kerana keletihan, tidak dapat melaksanakan algoritma pengisihan yang paling mudah? Ya, sudah pasti ada masa apabila anda mempunyai tarikh akhir yang panas, masa apabila segala-galanya menjadi salah, dan masa apabila — dan ini kegemaran peribadi saya — "kami memerlukan ini semalam". Tetapi situasi ini secara amnya jarang berlaku, dan sebaik sahaja anda mengatasinya, anda perlu duduk dan mempertimbangkan dengan teliti bagaimana ia boleh berlaku dan bagaimana untuk mengelakkannya pada masa hadapan.

17. Mengabaikan kemahiran bahasa Inggeris

Ramai pembangun yang bercita-cita tinggi mengutamakan teknologi pembelajaran dan menangguhkan pembelajaran bahasa Inggeris. Ini adalah kesilapan yang serius, kerana selalunya seorang pengaturcara sangat sesuai untuk jawatan junior (atau latihan amali), tetapi tidak mendapat pekerjaan kerana kemahiran bahasa Inggeris yang lemah. Ya, sudah tentu, terdapat kes apabila anda boleh bertahan tanpa bahasa Inggeris. Sebagai peraturan, orang sedemikian diupah secara tempatan untuk projek di negara bukan berbahasa Inggeris. Tetapi syarikat tempatan tidak membayar gaji yang sama seperti syarikat asing. Dan ia akan menjadi sangat, sangat sukar untuk mendapatkan gaji yang layak, walaupun dari masa ke masa. Itulah sebabnya anda tidak boleh mengabaikan bahasa Inggeris. Daripada meletakkan bahasa Inggeris pada penunu belakang, anda perlu mempelajarinya untuk segera memberi tumpuan kepada projek bahasa Inggeris. Sesungguhnya, fikirkan sejenak — Bahasa Inggeris ialah bahasa perniagaan antarabangsa pada masa ini. Mana-mana negara yang anda pergi, anda boleh mencari bahasa yang sama dengan orang lain jika anda tahu bahasa Inggeris. Perkara yang sama berlaku dalam projek pembangunan. Tidak kira di mana projek itu berasaskan: Jerman, Australia, Perancis atau tempat lain — semua komunikasi, semua tugas, dokumentasi, dsb. akan dalam bahasa Inggeris. Dan jika anda memikirkannya sejenak, anda akan bersetuju bahawa ini sangat mudah, bukan?

18. Mengejar teknologi yang bergaya

Apabila pembangun memulakan laluan mereka, mereka sering cuba mengikuti teknologi terkini. Adakah itu perkara yang betul untuk dilakukan? Di satu pihak, ya: teknologi terkini, projek ... Tetapi adakah berbaloi untuk menjadikan ini sebagai keutamaan? Mungkin lebih baik untuk mengikuti "kit alat klasik" untuk pakar dalam bidang anda? Baharu sememangnya bagus, tetapi anda tidak boleh lupa tentang teknologi asas bidang anda. Dan hanya selepas itu, selepas anda mendapat sedikit pengalaman dan pengetahuan yang mendalam tentang asas-asas, anda boleh mencuba sesuatu yang baru. Pertimbangkan juga bahawa teknologi baharu mungkin lebih baik dalam beberapa cara yang halus, tetapi mereka mungkin kehilangan kelebihan dalam yang lain. Sehingga pembangun pemula memahami pertukaran ini, adalah lebih baik untuk kekal dengan penyelesaian yang diuji masa. Sebagai contoh, jika pengaturcara sedang membangunkan aplikasi yang berinteraksi dengan beberapa data, maka jangan tergesa-gesa untuk menggunakan penyelesaian NoSQL terkini hanya kerana ia dalam fesyen. Pangkalan data SQL biasa yang cuba dan benar (MySQL, PostrgreSQL, dll.) kemungkinan besar mempunyai dokumentasi dan penyelesaian terperinci pada StackOverFlow untuk sebarang masalah yang mungkin berlaku :)

19. Mempelajari beberapa teknologi dan/atau bahasa yang berbeza sekaligus

Kami bercakap di atas tentang pemula yang cuba mempelajari teknologi yang bergaya. Nah, bagaimana pula dengan mempelajari banyak teknologi atau bahasa secara serentak? Jelas sekali, anda pernah mendengar tentang pengaturcara yang mengetahui lebih daripada satu bahasa pengaturcaraan dan telah menguasai banyak teknologi. Tetapi saya akan segera menunjukkan bahawa orang-orang ini jauh daripada baru dalam pengaturcaraan. Mereka ini adalah orang yang mempunyai pengalaman bertahun-tahun di belakang mereka. Mereka telah menguasai teknologi asal mereka dan kemudian pergi lebih jauh dan lebih jauh. Pemula yang cuba menguasai segala-galanya sekaligus harus mengingati pepatah yang sangat baik: "kejar dua arnab dan anda tidak akan menangkap salah satu." Akibatnya mungkin anda tidak akan menguasai mana-mana topik dengan baik, tetapi hanya mempelajari subjek secara dangkal. Akan ada lebih banyak permintaan untuk pakar yang mengetahui satu-satu bahasa secara mendalam daripada seorang yang mengetahui serba sedikit tentang segala-galanya. Oleh itu, jika anda ingin mengetahui banyak bahasa dan teknologi, anda perlu mendekatinya dengan bijak. Untuk bermula, anda perlu memilih bahasa teras asas yang anda mesti pelajari dengan mendalam. Dan barulah anda mula mempelajari bidang lain. Sebagai contoh, menjadi guru Java, kemudian belajar Python sebagai bahasa kedua. Selepas itu, anda mungkin mempelajari sesuatu tentang tindak balas/sudut untuk bahagian hadapan. Dalam kes ini, kita bercakap tentang teknologi yang tidak boleh ditukar ganti, seperti C# dan Java, tetapi sebaliknya saling melengkapi, mengembangkan peluang kerjaya anda. Tetapi sekali lagi saya ulangi: anda tidak sepatutnya cuba mempelajari semuanya sekaligus. Anda perlu pergi secara berurutan. Tangkap seekor arnab pada satu masa, kononnya.

20. Matlamat yang dirumus dengan salah

Bagaimana anda menetapkan matlamat untuk diri sendiri? Menjadi pemaju yang hebat? Ingat ini sekali dan untuk semua: anda perlu menetapkan matlamat konkrit, atau dengan kata lain — matlamat yang boleh dicapai. Apa yang saya cakapkan? Sebagai contoh, anda menetapkan matlamat anda sendiri: "Saya mahu menjadi kaya". Tetapi bagaimana anda tahu sama ada anda telah mencapai matlamat ini? Atau bagaimana anda mengukur sejauh mana anda hampir untuk mencapainya? Nah, jika anda menetapkan matlamat "Saya ingin membuat satu juta dolar", itu lebih jelas sedikit, bukan? Sebaik sahaja anda memperoleh $10,000, anda hampir $10,000 kepada matlamat anda — hanya tinggal $990,000 sahaja lagi. Masih banyak lagi yang perlu dicapai, tetapi anda boleh merasakan kemajuan anda dan memahami di mana garisan penamat, jadi anda akan bermotivasi untuk meneruskan. Dari segi kerjaya anda, bagaimana pula jika anda menetapkan matlamat yang lebih ketara? Contohnya: Saya mahu menjadi ketua pasukan. Atau pembangun kanan. Atau akhirnya seorang arkitek. Nah, setiap tugas besar perlu dibahagikan kepada subtugas kecil. Anda tidak menjadi ketua pasukan pada permulaan kerjaya anda. Tetapkan tarikh akhir jika boleh dan sesuai, dan fokus pada peringkat semasa.
  1. Jika kita bercakap tentang menjadi pemaju kanan , maka matlamat kecil pertama adalah untuk mencari latihan atau pekerjaan sebagai pemaju junior di sebuah syarikat.
  2. Seterusnya, anda boleh menetapkan matlamat untuk memperdalam pengetahuan anda tentang teknologi tertentu. Berkenaan dengan Java, anda boleh bersedia untuk pensijilan Tahap 1 Oracle. Kami menetapkan jangka masa untuk persediaan kami dan mencapai matlamat.
  3. Kemudian, sebagai contoh, anda mungkin menetapkan matlamat untuk meningkatkan bahasa Inggeris anda dengan satu tahap (katakan, dari B1 hingga B2). Kami merangka rancangan pembelajaran, menjadualkan masa, dan bergerak ke arah matlamat.
Ini adalah cara kita boleh mencapai matlamat utama kita langkah demi langkah (sambil memperoleh pengalaman pembangunan perisian).

21. Teori tanpa amalan

Adalah fakta yang tidak dapat dipertikaikan bahawa kita menjadi profesional yang lebih baik dengan mempelajari teknologi baharu dan mendalami topik yang sudah kita ketahui. Tetapi pada permulaan perjalanan, pembangun jarang menyedari bahawa membaham buku teknikal satu demi satu tidak membawa manfaat yang besar jika pengetahuan baru itu tidak dicuba secara praktikal. Saya secara peribadi telah menemui ini lebih daripada sekali. Jika anda menumpukan banyak masa untuk sebuah buku tetapi anda tidak mempraktikkan apa-apa daripadanya, maka hampir semua pengetahuan yang baru diperolehi dilupakan: anda hanya tinggal dengan ingatan umum yang samar-samar tentang cara semuanya berfungsi. Hasilnya adalah banyak masa yang terbuang tanpa hasil yang ketara. Mengapa kita perlu membuang masa kita? Hidup tidak kekal selamanya. Perkara yang boleh diambil ialah apabila anda mempelajari teknologi baharu, anda tidak sepatutnya bergantung pada teori: tulis contoh yang diberikan selari dengan bacaan anda, bereksperimen dengan teknologi baharu. Ini adalah satu-satunya cara untuk mendapatkan otak anda untuk mengekalkan maklumat. Ya, anda akan menggunakan bahan baharu mestilah lebih perlahan, tetapi anda akan menyerap lebih banyak perkara yang anda baca. Apatah lagi, jika anda menguasai satu teknologi dengan baik, maka teknologi seterusnya akan menjadi lebih mudah untuk dikuasai (sama seperti mempelajari bahasa).

22. Perfeksionisme yang berlebihan

Kebanyakan pembangun adalah perfeksionis: orang yang berusaha untuk kesempurnaan. Ini bermakna kod mereka juga mestilah sempurna. Jadi kod anda telah ditulis, diuji, diperhalusi, dan nampaknya sudah tiba masanya untuk menyerahkannya ke cawangan utama. Tetapi anda masih tidak berpuas hati dengan kod itu, jadi anda mula memutarkannya ke sana sini, menghabiskan banyak masa untuk usaha ini. Dan dalam kes ini, masa adalah wang pelanggan anda. Pengaturcara baru lebih mudah terdedah kepada usaha untuk kesempurnaan ini. Pembangun yang berpengalaman sudah terbiasa dengan perasaan bahawa kod itu tidak akan sempurna dan mereka harus cuba menulisnya dengan lebih baik. Tetapi pada masa yang sama mereka tidak melampau dalam usaha untuk mendekati "ideal". Oleh itu, ingatlah untuk belajar bagaimana untuk mencapai medium yang gembira: bukan dengan cara yang tergelincir dan tidak cuba mencipta semula Mona Lisa dalam kod.

23. Kegagalan untuk berfikir tentang seni bina

Biar saya katakan sekali lagi: anda tidak sepatutnya menulis kod yang tidak kemas. Selain kebolehbacaan dan prestasi, anda juga perlu memikirkan cara kod anda mungkin mempengaruhi seluruh aplikasi anda secara keseluruhan. Sebagai contoh, betapa sukarnya untuk melanjutkan kod anda, dan sebagainya. Masalahnya ialah pembangun pemula, disebabkan kekurangan pengalaman, mungkin tidak segera menyedari bagaimana fungsi baharu mereka akan mempengaruhi aplikasi pada masa hadapan. Pandangan jauh ini sememangnya memerlukan banyak latihan untuk dikembangkan. Tetapi apa yang perlu dilakukan oleh orang baru? Tidak menulis kod? Dalam situasi ini, pelbagai paradigma pengaturcaraan membantu kami. Contohnya, prinsip SOLID atau pelbagai corak reka bentuk yang boleh menyampaikan amalan berguna kepada anda. Paradigma ini juga harus dilayan dengan berhati-hati dan tidak terlalu jauh. Tetapi bagaimana anda menentukan titik apabila anda berlebihan? Di sinilah semakan kod oleh rakan sekerja yang lebih berpengalaman akan membantu anda. Dengan membawa masuk mata yang segar dan objektif, rakan sekerja anda boleh menunjukkan anda ke arah yang betul.

24. Sindrom penipu

Analisis kesilapan biasa yang dilakukan oleh pengaturcara baru, pt.  2 - 4Sindrom penipu adalah fenomena psikologi di mana seseorang tidak dapat mengaitkan pencapaiannya dengan kualiti peribadi, kebolehan dan usaha. Walaupun bukti luaran prestasi konsisten mereka, orang yang terdedah kepada sindrom ini terus percaya bahawa mereka adalah penipu dan tidak layak untuk kejayaan yang telah mereka capai. Ramai pemaju mempunyai sindrom ini. Mungkin ia memberi kita kegigihan yang mendorong kita ke hadapan kepada pengetahuan dan teknologi baharu. Anda melihat rakan sekerja yang lebih berpengalaman dan berjaya dan anda berasa tidak senang, seperti anda tidak berbaloi dengan gaji anda. Percayalah, ini tidak benar. Terdapat dan akan sentiasa ada pembangun yang lebih baik atau lebih teruk daripada anda. Orang lain memandang anda dan berasa tidak senang, memikirkan bahawa dia tidak akan menjadi seperti anda. Dan ini adalah perkara biasa. Maklum balas daripada pasukan anda, ulasan kod dan perbincangan membantu memerangi perasaan ini sedikit. Percayalah, pendapat orang luar akan mengejutkan anda, tetapi hanya jika anda benar-benar tidak mengabaikan kerja dan pembangunan profesional anda. Jika anda mengabaikan perkara itu, maka anda telah memilih profesion yang salah. Dalam profesion ini, anda perlu sentiasa mempelajari sesuatu yang baru dan berusaha untuk yang terbaik. Tetapi saya rasa orang ramai yang berkumpul di sini jauh sekali daripada menjadi malas. Sebaliknya, orang-orang di sini dengan gigih bergerak ke arah matlamat mereka yang dihargai. Jika itu menggambarkan anda, maka anda tidak perlu takut.

25. Jarang membuat komitmen

Ingat untuk melakukan komitmen dengan kerap! Tidak setiap setengah jam, maklumlah. Jika anda menghabiskan masa seminggu untuk melaksanakan beberapa fungsi, maka anda tidak sepatutnya melakukan satu komitmen pada malam Jumaat, tetapi, katakan, lima komitmen. Hampir semua tugas besar boleh dipecahkan kepada tugas yang lebih kecil untuk kemudahan. Jadi anda menyelesaikan tugas yang lebih kecil ini dan komited. Dan jangan lupa untuk menghantar komitmen ini kepada pelayan jauh dengan segera. Jika tidak, anda mungkin membuat komitmen sepanjang minggu dan kemudian komputer anda mengalami kegagalan perkakasan pada hari Jumaat pada waktu makan tengah hari, dan kemudian anda kehilangan seminggu penuh untuk apa-apa! Tetapi jika anda memuat naik komit anda ke pelayan jauh, maka anda hanya akan menarik cawangan dengan komit terakhir anda ke komputer lain dan terus bekerja. Seperkara lagi: jangan serahkan fungsi baharu kepada pelayan pengeluaran langsung pada malam Jumaat. Percaya sahaja. Anda tidak memerlukan itu. Besar kemungkinan ralat yang tidak dijangka akan terbongkar dan anda akan menghabiskan hujung minggu anda untuk membetulkannya. Dan itu tidak menyeronokkan. Anda perlu berehat pada hujung minggu. Saya rasa itu sahaja untuk hari ini. PS Satu petua terakhir: tulis banyak kod. PPS Tulis jumlah kod yang sangat besar, kerana itu adalah satu-satunya cara untuk mendapatkan pengalaman yang sangat diperlukan.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION