CodeGym /จาวาบล็อก /สุ่ม /การวิเคราะห์ข้อผิดพลาดทั่วไปที่ทำโดยโปรแกรมเมอร์มือใหม่, ...
John Squirrels
ระดับ
San Francisco

การวิเคราะห์ข้อผิดพลาดทั่วไปที่ทำโดยโปรแกรมเมอร์มือใหม่, pt. 2

เผยแพร่ในกลุ่ม
สวัสดีอีกครั้งนะทุกคน! เราจะพิจารณาปัญหาที่โปรแกรมเมอร์อายุน้อยและยังไม่บรรลุนิติภาวะอาจเผชิญในงานแรกของเขาหรือเธอต่อไป ส่วนแรกสามารถพบได้ที่นี่ การวิเคราะห์ข้อผิดพลาดทั่วไปที่ทำโดยโปรแกรมเมอร์มือใหม่, pt.  2 - 1มาต่อกันเลย

13. การไม่ปฏิบัติตามแนวทางการเขียนโค้ด

ทีมพัฒนามักจะยึดติดกับรูปแบบการเขียนโค้ดแบบเดียว นั่นคือนักพัฒนาแต่ละรายปฏิบัติตามกฎที่เป็นลายลักษณ์อักษรหรือไม่ได้เขียนไว้เพื่อให้แน่ใจว่ารูปแบบการเขียนโค้ดของตนไม่แตกต่างจากผู้อื่น อย่าพยายามสร้างความแตกต่างด้วยสไตล์การเขียนโค้ดที่โดดเด่น สิ่งนี้ไม่ได้ทำให้คุณดูดี หากคุณยังใหม่กับโปรเจ็กต์นี้ คุณควรตรวจสอบทันทีว่ามีเอกสารใดๆ ที่กำหนดหลักเกณฑ์สไตล์การเขียนโค้ดทั่วไปหรือไม่ อาจมีไฟล์สไตล์บางไฟล์สำหรับโปรเจ็กต์เฉพาะของคุณที่คุณต้องขอและนำเข้าไปยัง IDE ของคุณ (เช่น IntelliJ IDEA) ดังนั้น IDE จึงสามารถให้คำแนะนำสไตล์การเขียนโค้ดที่ถูกต้องได้ ตัวอย่างเช่น สไตล์อาจต้องใช้ตัวแก้ไขขั้นสุดท้ายหากเป็นไปได้ ไฟล์สไตล์ช่วยให้ IntelliJ IDEA เน้นตัวแปรใดๆ ที่ไม่เคารพด้วยสีเหลือง

14.ท้อแท้จากความผิดพลาด

การวิเคราะห์ข้อผิดพลาดทั่วไปที่ทำโดยโปรแกรมเมอร์มือใหม่, pt.  2 - 2ข้อผิดพลาดเป็นสิ่งที่คุณต้องทำความคุ้นเคย พวกเขาเคยเป็น เป็น และจะเป็น ไม่สำคัญว่าคุณจะเป็นมือใหม่หรือเป็นสถาปนิกตัวจริงจัง คุณก็มักจะทำผิดพลาดได้เสมอ จำนวนและความรุนแรงของข้อผิดพลาดของคุณอาจเปลี่ยนแปลงได้ แต่ข้อผิดพลาดเหล่านี้จะติดตามคุณไปตลอดอาชีพการงานของคุณ บางครั้งคุณดิ้นรนเพื่อหางานทำทั้งสัปดาห์ คุณทำผิดพลาด และจากนั้นก็เย็นวันศุกร์ และคุณก็กลับบ้านเหมือนกับสุนัขที่ถูกทุบตี โดยไม่สามารถแก้ไขข้อผิดพลาดเวรนั้นได้ มันเป็นความรู้สึกที่อธิบายไม่ได้ แต่ไม่ใช่สิ่งที่จะทำให้คุณท้อใจ ท้ายที่สุดแล้ว ข้อแตกต่างที่สำคัญอีกประการหนึ่งระหว่างนักพัฒนาที่มีประสบการณ์และมือใหม่ก็คือวิธีที่เขาหรือเธอจัดการกับข้อผิดพลาด นักพัฒนาที่มีประสบการณ์ไม่ได้คำนึงถึงพวกเขา แต่ถือว่าพวกเขาเป็นประสบการณ์แทน ไม่มีใครจะดุคุณที่ทำผิดพลาด นี่เป็นเรื่องปกติ - บางครั้งทุกคนก็ก้าวเข้าสู่ความวุ่นวายในบางครั้ง คุณสามารถขอความช่วยเหลือจากเพื่อนร่วมงานได้อีกครั้ง และอย่าลืมคนอย่างผู้จัดการโครงการ (PM) หากคุณติดขัดกับสิ่งใดสิ่งหนึ่ง คุณควรติดต่อ PM ทันที เขาหรือเธอสามารถช่วยคุณหาคนที่เชี่ยวชาญในด้านที่มีปัญหาได้ ไม่ว่าในกรณีใด PM จะต้องได้รับแจ้งเกี่ยวกับปัญหาใดๆ ที่คุณพบในโครงการ หน้าที่ของนายกรัฐมนตรีคือช่วยแก้ไขปัญหาทุกประเภท รวมถึงการสื่อสารและการมีปฏิสัมพันธ์ระหว่างสมาชิกในทีม สรุป: ข้อผิดพลาดเกิดขึ้นอย่าปล่อยให้มันฆ่าคุณ ให้ยอมรับว่าสิ่งเหล่านี้เป็นสิ่งท้าทายสำหรับคุณและทักษะของคุณ ท้ายที่สุดแล้วมันเป็นเพียงส่วนหนึ่งของงานเท่านั้น

15. ความล้มเหลวในการใช้ความปลอดภัยของเธรด

ไม่มีอะไรดีถูกสร้างขึ้นมาได้ง่ายๆ Developer ทุกคนจำเป็นต้องเข้าใจว่าการเขียนฟังก์ชันเฉพาะ ไม่ว่าจะเป็นโมดูลหรือเพียงวิธีการ จำเป็นต้องมีแผนเกี่ยวกับสิ่งที่จะดำเนินการและวิธี ตามกฎแล้วเมื่อพัฒนาฟังก์ชันที่ซับซ้อนใด ๆ คุณต้องปฏิบัติตามขั้นตอนต่อไปนี้:
คิด -> วิเคราะห์ -> วางแผน -> เขียนโค้ด -> โค้ดทดสอบ -> รีแฟคเตอร์
ข้อผิดพลาดมากมายที่เกิดขึ้นในโค้ดที่เขียนโดยโปรแกรมเมอร์มือใหม่เกี่ยวข้องกับขั้นตอนในโพรซีเดอร์นี้ แน่นอนว่าคุณไม่สามารถปฏิเสธได้ว่ามีบางครั้งที่คุณต้องเขียนโค้ดอย่างรวดเร็วโดยไม่ลังเลทันทีที่คุณเห็นงานนั้น แต่โดยทั่วไปวิธีนี้ใช้ได้กับงานเล็กๆ น้อยๆ และวิธีการปฏิบัติที่ชัดเจนและไม่ต้องใช้ความคิดมากนัก ขั้นตอนการพัฒนาที่กล่าวมาข้างต้นเหมาะสำหรับงานที่ซับซ้อนและใหญ่ที่สามารถแบ่งออกเป็นงานย่อยได้ ไม่ใช่ความคิดที่ดีที่จะเริ่มเขียนโค้ดโดยไม่เข้าใจสิ่งที่คุณต้องการเขียนอย่างชัดเจน ก่อนอื่นคุณต้องคิดและวางแผนทุกอย่างให้รอบคอบ นอกจากนี้ การหยิบกระดาษและดินสอมาสักแผ่นแล้วลองร่างแนวคิดในการนำไปปฏิบัติก็อาจเป็นประโยชน์เช่นกัน ฉันมักจะทำเช่นนี้เมื่อวางแผนฟังก์ชันการทำงานที่ซับซ้อน โปรแกรมเมอร์ใช้เวลาส่วนใหญ่ ไปกับการ เขียนโค้ด แต่คิดถึงวิธีจัดโครงสร้างของฟังก์ชันที่จำเป็น แท้จริงแล้ว เมื่อคุณวางแผนและคิดเกี่ยวกับทุกสิ่งทุกอย่างแล้ว การเขียนโค้ดจะกลายเป็นกระบวนการทางกลไกที่ไม่ยุ่งยากเลย

16. ทำงานหนักเกินไป

การวิเคราะห์ข้อผิดพลาดทั่วไปที่ทำโดยโปรแกรมเมอร์มือใหม่, pt.  2 - 3
จากภาพยนตร์เรื่อง "Fight club" (1999)
บางทีผู้เริ่มต้นทุกคนอาจคิดว่าการทำงานในเวลากลางคืน เขาหรือเธอจะเริ่มทำงานให้สำเร็จมากขึ้นและจะได้รับความไว้วางใจให้มีความรับผิดชอบมากขึ้น ผมก็เคยคิดแบบนั้นเหมือนกัน แต่ตอนนี้ไม่แล้ว ฉันสังเกตว่ามีจุดหนึ่งเมื่อคุณถึงขีดจำกัดของคุณ เมื่อคุณหยุดคิดอย่างเพียงพอ คุณเริ่มจะค่อนข้างน่าเบื่อและพบกับหมอกทางจิต ใช้เวลาหนึ่งชั่วโมงในการทำสิ่งที่คุณทำได้ภายใน 10 นาทีถ้าจิตใจของคุณสดชื่น เกือบจะไม่มีข้อยกเว้น หลังจากที่คุณข้ามเส้นความเหนื่อยล้านี้ไปแล้ว คุณจะพบกับปัญหาบางอย่างที่ดูเหมือนผ่านไม่ได้ แต่เมื่อมาทำงานเช้าวันรุ่งขึ้นก็แก้ปัญหาได้ในพริบตา ดังนั้นเมื่อรู้สึกว่ามาถึงจุดนี้แล้วอย่านอนดึกเด็ดขาด แค่กลับบ้านและพักผ่อนให้เต็มที่ ท้ายที่สุด หากคุณอยู่ที่โต๊ะจนดึกดื่น ไม่เพียงแต่คุณจะไม่ได้รับผลลัพธ์ที่โดดเด่นเป็นพิเศษในช่วงเวลาแห่งความทรมานเหล่านี้ แต่ในขณะเดียวกัน คุณยังเสี่ยงต่อการพักผ่อนที่ไม่ดี (ไม่เพียงพอ) ก่อนวันทำงานถัดไป เมื่อคุณ จะพังอีกครั้ง คิดเกี่ยวกับสุขภาพของคุณ: มันคุ้มค่าที่จะบ่อนทำลายสิ่งนี้ในช่วงเริ่มต้นอาชีพของคุณหรือไม่? ผมคิดว่าไม่. เป็นเวลาที่ต้องป่วยราคาแพง และคิดถึงนายจ้างของคุณ การทำงานหนักเกินไปทำให้สิ่งต่างๆ แย่ลงไม่เพียงแต่ตัวคุณเองเท่านั้น แต่ยังรวมถึงนายจ้างของคุณด้วย ใครต้องการพนักงานที่ง่วงตลอดเวลา ใครที่ไม่สามารถใช้อัลกอริธึมการเรียงลำดับที่ง่ายที่สุดเนื่องจากความเหนื่อยล้า ใช่ ไม่ต้องสงสัยเลยว่ามีหลายครั้งที่คุณมีกำหนดเวลาที่ร้อนแรง เวลาที่ทุกอย่างผิดพลาด และเวลาที่ — และนี่คือสิ่งที่ฉันชอบเป็นการส่วนตัว — "เราต้องการสิ่งนี้เมื่อวานนี้" แต่โดยทั่วไปแล้วสถานการณ์เหล่านี้เกิดขึ้นไม่บ่อยนัก และเมื่อคุณผ่านมันไปได้ คุณจะต้องนั่งลงและพิจารณาอย่างรอบคอบว่าเหตุการณ์เหล่านี้จะเกิดขึ้นได้อย่างไร และจะหลีกเลี่ยงได้อย่างไรในอนาคต

17. ละเลยทักษะภาษาอังกฤษ

นักพัฒนาที่มีความมุ่งมั่นจำนวนมากให้ความสำคัญกับเทคโนโลยีการเรียนรู้และเลื่อนการเรียนภาษาอังกฤษออกไป นี่เป็นข้อผิดพลาดร้ายแรง เนื่องจากบ่อยครั้งที่โปรแกรมเมอร์เหมาะสมอย่างยิ่งกับตำแหน่งระดับจูเนียร์ (หรือการฝึกงาน) แต่ไม่ได้งานเนื่องจากทักษะภาษาอังกฤษที่อ่อนแอ ใช่ แน่นอนว่ามีหลายกรณีที่คุณสามารถเดินทางได้โดยไม่ต้องใช้ภาษาอังกฤษ ตามกฎแล้ว คนดังกล่าวได้รับการว่าจ้างในท้องถิ่นสำหรับโครงการในประเทศที่ไม่ได้ใช้ภาษาอังกฤษ แต่บริษัทในประเทศไม่จ่ายค่าจ้างเท่ากับบริษัทต่างชาติ และจะเป็นเรื่องยากมากที่จะได้รับเงินเดือนที่เหมาะสมแม้เมื่อเวลาผ่านไปก็ตาม นั่นเป็นเหตุผลที่คุณไม่ควรละเลยภาษาอังกฤษ แทนที่จะเอาภาษาอังกฤษมาเป็นประเด็นสำคัญ คุณต้องเรียนรู้มันเพื่อที่จะมุ่งเน้นไปที่โครงงานภาษาอังกฤษในทันที ลองคิดดูสักครู่ว่าภาษาอังกฤษเป็นภาษาของธุรกิจระหว่างประเทศในปัจจุบัน ไม่ว่าคุณจะไปประเทศไหน คุณสามารถหาภาษาร่วมกับคนอื่นๆ ได้หากคุณรู้ภาษาอังกฤษ เช่นเดียวกับในโครงการพัฒนา ไม่สำคัญว่าโครงการจะตั้งอยู่ที่ใด: เยอรมนี ออสเตรเลีย ฝรั่งเศส หรือที่อื่นๆ การสื่อสารทั้งหมด งานทั้งหมด เอกสาร ฯลฯ จะเป็นภาษาอังกฤษ และถ้าลองคิดดูสักนิดก็จะยอมรับว่าวิธีนี้สะดวกมากใช่ไหม?

18. การแสวงหาเทคโนโลยีที่ทันสมัย

เมื่อนักพัฒนาเริ่มต้นเส้นทางของพวกเขา พวกเขามักจะพยายามตามให้ทันเทคโนโลยีล่าสุด นั่นเป็นสิ่งที่ถูกต้องหรือไม่? ในอีกด้านหนึ่งใช่: เทคโนโลยีล่าสุดโครงการ ... แต่มันคุ้มไหมที่จะให้ความสำคัญกับสิ่งนี้เป็นอันดับแรก? บางทีอาจเป็นการดีกว่าถ้าคุณเลือกใช้ "ชุดเครื่องมือแบบคลาสสิก" สำหรับผู้เชี่ยวชาญในสาขาของคุณ ใหม่เป็นสิ่งที่ดีอย่างแน่นอน แต่คุณต้องไม่ลืมเกี่ยวกับเทคโนโลยีพื้นฐานของสาขาของคุณ และหลังจากที่คุณได้รับประสบการณ์เล็กน้อยและความรู้พื้นฐานอย่างลึกซึ้งแล้ว คุณก็สามารถลองสิ่งใหม่ๆ ได้ พิจารณาด้วยว่าเทคโนโลยีใหม่อาจเหนือกว่าในบางแง่มุมที่ละเอียดอ่อน แต่อาจสูญเสียข้อได้เปรียบในสิ่งอื่น จนกว่านักพัฒนามือใหม่จะเข้าใจถึงข้อดีข้อเสียเหล่านี้ ควรใช้โซลูชันที่ผ่านการทดสอบตามเวลาจะดีกว่า ตัวอย่างเช่น หากโปรแกรมเมอร์กำลังพัฒนาแอปพลิเคชันที่โต้ตอบกับข้อมูลบางอย่าง อย่ารีบเร่งที่จะใช้โซลูชัน NoSQL ล่าสุดเพียงเพราะมันกำลังเป็นที่นิยม ฐานข้อมูล SQL ที่ทดลองแล้วเป็นจริง (MySQL, PostrgreSQL ฯลฯ) มักจะมีเอกสารประกอบโดยละเอียดและวิธีแก้ปัญหาบน StackOverFlow สำหรับปัญหาที่อาจเกิดขึ้น :)

19. การเรียนรู้เทคโนโลยีและ/หรือภาษาต่างๆ มากมายในคราวเดียว

เราได้พูดคุยกันข้างต้นเกี่ยวกับผู้เริ่มต้นที่พยายามเรียนรู้เทคโนโลยีที่ทันสมัย แล้วการศึกษาเทคโนโลยีหรือภาษามากมายไปพร้อม ๆ กันล่ะ? แน่นอนว่าคุณเคยได้ยินเกี่ยวกับโปรแกรมเมอร์ที่รู้ภาษาการเขียนโปรแกรมมากกว่าหนึ่งภาษาและเชี่ยวชาญเทคโนโลยีมากมาย แต่ฉันจะชี้ให้เห็นอย่างรวดเร็วว่าคนเหล่านี้ยังห่างไกลจากการเขียนโปรแกรมใหม่ คนเหล่านี้คือผู้ที่มีประสบการณ์หลายปีอยู่เบื้องหลัง พวกเขาเชี่ยวชาญเทคโนโลยีดั้งเดิมของตนแล้วก้าวต่อไปอีกเรื่อยๆ ผู้เริ่มต้นที่พยายามเชี่ยวชาญทุกสิ่งในคราวเดียวควรจำสุภาษิตที่ยอดเยี่ยม: "ไล่ล่ากระต่ายสองตัวแล้วคุณจะไม่จับตัวใดตัวหนึ่ง" ผลที่ตามมาอาจเป็นได้ว่าคุณจะไม่เชี่ยวชาญหัวข้อใด ๆ ได้ดี แต่จะเรียนเฉพาะวิชาอย่างผิวเผินเท่านั้น ผู้เชี่ยวชาญที่รู้ภาษาเดียวอย่างลึกซึ้งจะมีความต้องการมากกว่าผู้เชี่ยวชาญที่รู้ทุกเรื่องเพียงเล็กน้อย ดังนั้นหากคุณต้องการทราบภาษาและเทคโนโลยีมากมาย คุณต้องเข้าหาพวกเขาอย่างชาญฉลาด ในการเริ่มต้น คุณต้องเลือกภาษาหลักพื้นฐานที่คุณต้องเรียนรู้อย่างลึกซึ้ง และเมื่อนั้นคุณควรเริ่มศึกษาด้านอื่น ๆ ตัวอย่างเช่น มาเป็นกูรูด้าน Java จากนั้นเรียนรู้ Python เป็นภาษาที่สอง หลังจากนั้น คุณอาจเรียนรู้บางอย่างเกี่ยวกับการตอบสนอง/เชิงมุมสำหรับส่วนหน้า ในกรณีนี้ เรากำลังพูดถึงเทคโนโลยีที่ไม่สามารถใช้แทนกันได้ เช่น C# และ Java แต่เป็นส่วนเสริมในการขยายโอกาสในการทำงานของคุณ แต่ฉันขอย้ำอีกครั้ง: คุณไม่ควรพยายามเรียนรู้ทุกสิ่งในคราวเดียว คุณต้องไปตามลำดับ จับกระต่ายทีละตัวเพื่อที่จะพูด

20. ตั้งเป้าหมายไม่ถูกต้อง

คุณตั้งเป้าหมายให้กับตัวเองอย่างไร? มาเป็นนักพัฒนาเจ๋งๆ ไหม? จำสิ่งนี้ไว้ตลอดไป: คุณต้องตั้งเป้าหมายที่เป็นรูปธรรม หรืออีกนัยหนึ่งคือ เป้าหมายที่บรรลุผลได้ ฉันกำลังพูดถึงอะไร? ตัวอย่างเช่น คุณตั้งเป้าหมายให้ตัวเองว่า "ฉันอยากรวย" แต่คุณจะรู้ได้อย่างไรว่าคุณบรรลุเป้าหมายนี้แล้ว? หรือคุณจะวัดได้อย่างไรว่าคุณเข้าใกล้ความสำเร็จเพียงใด? ถ้าคุณตั้งเป้าหมายว่า "ฉันอยากมีเงินล้าน" มันก็ชัดเจนขึ้นนิดหน่อยใช่ไหม? เมื่อคุณมีรายได้ $10,000 คุณจะเข้าใกล้เป้าหมายของคุณอีก $10,000 เหลืออีกเพียง $990,000 เท่านั้น ยังมีอีกหลายสิ่งที่ต้องทำให้สำเร็จ แต่คุณสามารถสัมผัสได้ถึงความก้าวหน้าและเข้าใจว่าเส้นชัยอยู่ที่ไหน ดังนั้นคุณจึงมีแรงบันดาลใจที่จะก้าวต่อไป ในแง่ของอาชีพการงาน ลองตั้งเป้าหมายที่ชัดเจนมากขึ้นให้ตัวเองดูไหม? ตัวอย่าง: ฉันอยากเป็นหัวหน้าทีม หรือนักพัฒนาอาวุโส หรือเป็นสถาปนิกในที่สุด งานใหญ่ทุกงานจะต้องแบ่งออกเป็นงานย่อยย่อย คุณไม่ได้เป็นผู้นำทีมในช่วงเริ่มต้นอาชีพของคุณ กำหนดเส้นตายหากเป็นไปได้และเหมาะสม และมุ่งเน้นไปที่ขั้นตอนปัจจุบัน
  1. หากเรากำลังพูดถึงการเป็น Senior Developerเป้าหมายเล็กๆ อย่างแรกคือการหางานฝึกงานหรืองานในตำแหน่ง Junior Developer ในบริษัท
  2. จากนั้น คุณสามารถกำหนดเป้าหมายเพื่อเพิ่มพูนความรู้เกี่ยวกับเทคโนโลยีบางอย่างให้ลึกซึ้งยิ่งขึ้นได้ ในส่วนของ Java คุณสามารถเตรียมตัวสำหรับการรับรองระดับ 1 ของ Oracle ได้ เรากำหนดกรอบเวลาสำหรับการเตรียมตัวและรับมือกับเป้าหมาย
  3. ตัวอย่างเช่น คุณอาจตั้งเป้าหมายที่จะพัฒนาภาษาอังกฤษของคุณขึ้นหนึ่งระดับ (เช่น จาก B1 ถึง B2) เราจัดทำแผนการเรียนรู้ กำหนดเวลา และก้าวไปสู่เป้าหมาย
นี่คือวิธีที่เราสามารถบรรลุเป้าหมายสูงสุดทีละขั้นตอน (ในขณะที่ได้รับประสบการณ์การพัฒนาซอฟต์แวร์)

21. ทฤษฎีที่ไม่มีการปฏิบัติ

เป็นข้อเท็จจริงที่เถียงไม่ได้ว่าเราจะกลายเป็นมืออาชีพที่ดีขึ้นโดยการศึกษาเทคโนโลยีใหม่และเจาะลึกในหัวข้อที่เรารู้อยู่แล้ว แต่ในช่วงเริ่มต้นของการเดินทาง นักพัฒนาแทบไม่ตระหนักเลยว่าการกลืนกินหนังสือเชิงเทคนิคทีละเล่มนั้นไม่ก่อให้เกิดประโยชน์มหาศาล หากไม่ได้ทดลองความรู้ใหม่ในทางปฏิบัติ โดยส่วนตัวฉันเจอสิ่งนี้มากกว่าหนึ่งครั้ง หากคุณอุทิศเวลาให้กับหนังสือเป็นจำนวนมาก แต่ไม่ได้ฝึกฝนอะไรเลยจากหนังสือนั้น ความรู้ใหม่ ๆ เกือบทั้งหมดก็จะถูกลืมไป คุณจะเหลือเพียงความทรงจำที่คลุมเครือทั่วไปเกี่ยวกับวิธีการทำงานของทุกสิ่ง ผลลัพธ์ที่ได้คือเสียเวลาไปมากโดยไม่มีผลลัพธ์ที่จับต้องได้ ทำไมเราต้องเสียเวลาของเรา? ชีวิตไม่ได้คงอยู่ตลอดไป สิ่งสำคัญคือเมื่อคุณเรียนรู้เทคโนโลยีใหม่ คุณไม่ควรยึดติดกับทฤษฎี: เขียนตัวอย่างที่ให้มาควบคู่ไปกับการอ่าน ทดลองกับเทคโนโลยีใหม่ นี่เป็นวิธีเดียวที่จะทำให้สมองของคุณเก็บข้อมูลได้ ใช่ คุณจะต้องบริโภคเนื้อหาใหม่ช้าลง แต่คุณจะซึมซับสิ่งที่คุณอ่านได้มากขึ้นอย่างมาก ยิ่งไปกว่านั้น หากคุณเชี่ยวชาญเทคโนโลยีหนึ่งได้ดี เทคโนโลยีถัดไปก็จะยิ่งเชี่ยวชาญได้ง่ายขึ้น (เช่นเดียวกับการเรียนรู้ภาษา)

22. ความสมบูรณ์แบบมากเกินไป

นักพัฒนาส่วนใหญ่เป็นพวกชอบความสมบูรณ์แบบ: ผู้ที่มุ่งมั่นเพื่อความสมบูรณ์แบบ ซึ่งหมายความว่าโค้ดของพวกเขาจะต้องสมบูรณ์แบบด้วย ดังนั้นโค้ดของคุณจึงถูกเขียน ทดสอบ ปรับแต่ง และดูเหมือนว่าจะถึงเวลาส่งไปที่สาขาหลักแล้ว แต่คุณยังไม่พอใจกับโค้ด ดังนั้นคุณจึงเริ่มบิดมันไปในทางนี้และนั่น โดยใช้เวลาส่วนใหญ่ไปกับความพยายามนี้ และในกรณีนี้ เวลาคือเงินของลูกค้า โปรแกรมเมอร์มือใหม่มีความอ่อนไหวต่อการแสวงหาความสมบูรณ์แบบนี้มากกว่า นักพัฒนาที่มีประสบการณ์คุ้นเคยกับความรู้สึกว่าโค้ดจะไม่มีวันสมบูรณ์แบบ และพวกเขาควรพยายามเขียนให้ดีขึ้น แต่ในขณะเดียวกัน พวกเขาก็จะไม่พยายามสุดขั้วเพื่อเข้าใกล้ "อุดมคติ" มากขึ้น ดังนั้น อย่าลืมเรียนรู้วิธีสร้างสื่อที่มีความสุข ไม่ใช่แบบหลุดลอยและไม่พยายามสร้างโมนาลิซ่าขึ้นมาใหม่โดยใช้โค้ด

23. การล้มเหลวในการคิดถึงสถาปัตยกรรม

ฉันขอพูดอีกครั้ง: คุณไม่ควรเขียนโค้ดที่ยุ่งเหยิง นอกจากความสามารถในการอ่านและประสิทธิภาพแล้ว คุณยังต้องคิดด้วยว่าโค้ดของคุณอาจส่งผลต่อส่วนที่เหลือของแอปพลิเคชันโดยรวมอย่างไร ตัวอย่างเช่น มันจะยากแค่ไหนในการขยายโค้ดของคุณ และอื่นๆ ปัญหาคือนักพัฒนามือใหม่เนื่องจากขาดประสบการณ์จึงอาจไม่ทราบทันทีว่าฟังก์ชันใหม่จะส่งผลต่อแอปพลิเคชันในอนาคตอย่างไร การมองการณ์ไกลนี้ต้องอาศัยการฝึกฝนอย่างมากในการพัฒนา แต่สามเณรจะทำอย่างไร? เขียนโค้ดไม่ได้เหรอ? ในสถานการณ์เหล่านี้ กระบวนทัศน์การเขียนโปรแกรมต่างๆ เข้ามาช่วยเหลือเรา ตัวอย่างเช่น หลักการ SOLID หรือรูปแบบการออกแบบต่างๆ ที่สามารถถ่ายทอดแนวทางปฏิบัติที่เป็นประโยชน์ให้กับคุณได้ กระบวนทัศน์เหล่านี้ควรได้รับการปฏิบัติด้วยความระมัดระวังและไม่ไกลเกินไป แต่คุณจะระบุประเด็นได้อย่างไรเมื่อคุณทำมากเกินไป? นี่คือจุดที่การตรวจสอบโค้ดโดยเพื่อนร่วมงานที่มีประสบการณ์มากกว่าจะช่วยคุณได้ ด้วยการดึงดูดสายตาที่สดใสและเป็นกลาง เพื่อนร่วมงานของคุณจะสามารถชี้แนะคุณไปในทิศทางที่ถูกต้องได้

24. กลุ่มอาการแอบอ้าง

การวิเคราะห์ข้อผิดพลาดทั่วไปที่ทำโดยโปรแกรมเมอร์มือใหม่, pt.  2 - 4กลุ่มอาการแอบอ้างเป็นปรากฏการณ์ทางจิตวิทยาที่บุคคลไม่สามารถถือว่าความสำเร็จของตนเกิดจากคุณสมบัติ ความสามารถ และความพยายามส่วนบุคคลได้ แม้จะมีหลักฐานภายนอกที่แสดงถึงประสิทธิภาพที่สม่ำเสมอ แต่ผู้ที่อ่อนแอต่อกลุ่มอาการนี้ยังคงเชื่อว่าตนเป็นการฉ้อโกงและไม่สมควรได้รับความสำเร็จที่พวกเขาได้รับ นักพัฒนาซอฟต์แวร์จำนวนมากมีอาการนี้ บางทีมันอาจทำให้เรามีความพากเพียรที่ขับเคลื่อนเราไปสู่ความรู้และเทคโนโลยีใหม่ ๆ คุณมองไปที่เพื่อนร่วมงานที่มีประสบการณ์และประสบความสำเร็จมากขึ้น และรู้สึกไม่สบายใจ เหมือนกับว่าคุณไม่คุ้มกับเงินเดือนของคุณ เชื่อฉันเถอะว่านี่ไม่เป็นความจริง มีนักพัฒนาที่ดีกว่าหรือแย่กว่าคุณอยู่เสมอ คนอื่นมองคุณแล้วรู้สึกไม่สบายใจโดยคิดว่าเขาจะไม่มีวันเป็นเหมือนคุณ และนี่เป็นเรื่องปกติ คำติชมจากทีมของคุณ การตรวจสอบโค้ด และการสนทนา ช่วยต่อสู้กับความรู้สึกนี้เล็กน้อย เชื่อฉันเถอะว่าความคิดเห็นของคนนอกจะทำให้คุณประหลาดใจ แต่ถ้าคุณไม่ละเลยงานและการพัฒนาทางอาชีพของคุณอย่างแท้จริง หากคุณละเลยสิ่งเหล่านั้น แสดงว่าคุณเลือกอาชีพผิดแล้ว ในอาชีพนี้ คุณจะต้องเรียนรู้สิ่งใหม่ๆ และมุ่งมั่นเพื่อสิ่งที่ดีที่สุดอยู่เสมอ แต่ฉันคิดว่าผู้คนที่มารวมตัวกันที่นี่ไม่ได้เกียจคร้าน ผู้คนที่นี่กลับมุ่งหน้าสู่เป้าหมายอันเป็นที่รักของตนอย่างมั่นคง หากนั่นเป็นคำอธิบายของคุณ คุณก็ไม่มีอะไรต้องกลัว

25. ไม่ค่อยมีการคอมมิต

อย่าลืมทำ Commit บ่อยๆ! ไม่ใช่ทุกครึ่งชั่วโมงนะคุณ หากคุณใช้เวลาหนึ่งสัปดาห์ในการปรับใช้ฟังก์ชันบางอย่าง คุณไม่ควรกระทำเพียงครั้งเดียวในคืนวันศุกร์ แต่ให้กระทำห้าครั้ง งานใหญ่เกือบทุกงานสามารถแบ่งออกเป็นงานเล็กๆ ได้เพื่อความสะดวก ดังนั้นคุณจึงทำงานเล็กๆ น้อยๆ เหล่านี้ให้สำเร็จและมุ่งมั่น และอย่าลืมส่งคอมมิตเหล่านี้ไปยังเซิร์ฟเวอร์ระยะไกลทันที ไม่เช่นนั้น คุณอาจคอมมิตทั้งสัปดาห์แล้วคอมพิวเตอร์ของคุณเกิดข้อผิดพลาดด้านฮาร์ดแวร์ในวันศุกร์ช่วงพักเที่ยง จากนั้นคุณก็จะเสียเวลาไปทั้งสัปดาห์โดยเปล่าประโยชน์! แต่ถ้าคุณอัปโหลดการคอมมิตของคุณไปยังเซิร์ฟเวอร์ระยะไกล คุณก็แค่ดึงสาขาที่มีการคอมมิตครั้งล่าสุดไปยังคอมพิวเตอร์เครื่องอื่นแล้วทำงานต่อไป อีกประการหนึ่ง: อย่าส่งฟังก์ชันใหม่ไปยังเซิร์ฟเวอร์ที่ใช้งานจริงในคืนวันศุกร์ แค่เชื่อใจฉัน คุณไม่ต้องการสิ่งนั้น มีโอกาสสูงที่ข้อผิดพลาดที่ไม่คาดคิดจะเกิดขึ้น และคุณจะใช้เวลาช่วงสุดสัปดาห์เพื่อแก้ไขข้อผิดพลาดเหล่านั้น และนั่นก็ไม่สนุก คุณต้องพักผ่อนในช่วงสุดสัปดาห์ ฉันเดาว่านั่นคือทั้งหมดสำหรับวันนี้ PSเคล็ดลับสุดท้าย: เขียนโค้ดเยอะๆ PPSเขียนโค้ดจำนวนมากอย่างเหลือเชื่อ เพราะนั่นคือวิธีเดียวที่จะได้รับประสบการณ์ที่จำเป็นมาก
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION