Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

การเป็นโปรแกรมเมอร์ที่ดีไม่ใช่แค่การเขียนโค้ดเท่านั้น

อะไรประกอบเป็นโปรแกรมเมอร์ในอุดมคติของคุณ? เป็นคอมพิวเตอร์ที่เขียนโค้ดตั้งแต่อายุเจ็ดขวบและสร้างแอปล้านดอลลาร์หรือไม่? เป็นนักพัฒนาที่มีประสบการณ์ 10 หรือ 20 ปีในธุรกิจที่รู้ทุกภาษา (แต่เฉพาะภาษาที่ดีเท่านั้น) และสามารถสร้างเว็บไซต์ในเวลาที่คุณจะต้องไปดื่มกาแฟอีกสักแก้วหรือไม่? เป็นนักเขียนโค้ดที่สามารถเขียนโค้ดได้สวยงามจนทำให้ทุกคนร้องไห้ด้วยความเกรงใจและขบเขี้ยวเคี้ยวฟันด้วยความอิจฉาไปพร้อม ๆ กัน?

เอ่ออาจจะ? โปรแกรมเมอร์ในฝันเหล่านั้นฟังดูดีมาก แต่คุณจะเชื่อฉันไหมเมื่อฉันบอกว่าทักษะการเขียนโค้ดที่บ้าคลั่งนั้นไม่ใช่ทุกอย่าง และโปรแกรมที่ดีนั้นประกอบขึ้นเป็นโปรแกรมเมอร์ที่ดีเพียงครึ่งเดียวใช่ไหม

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

พี>

อะไรคือเครื่องหมายของการเป็นนักพัฒนาที่ดี? นี่คือบางส่วนที่ฉันรวบรวมมา ฉันแน่ใจว่ายังมีอีกมาก

1. เขียนโค้ดที่สะอาด

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

ข้อมูลเพิ่มเติมเกี่ยวกับการเขียนโค้ดที่ดี (ลิงก์ที่ไม่ใช่ของ Affiliate ไม่ต้องห่วง!):
Clean Code
The Pragmatic Programmer
Refactoring:Improving the Design of Existing Code

2. ติดตามเทรนด์อยู่เสมอ

เราทุกคนรู้ดีว่าแนวโน้มการพัฒนาเว็บที่รวดเร็วอย่างบ้าคลั่งในปัจจุบันเปลี่ยนแปลงไปอย่างไร ฉันไม่ได้บอกว่าคุณต้องเป็นนักเขียนโค้ดนกกางเขนและไล่ตามความร้อนแรงใหม่ล่าสุด แต่ในอีกด้านของสเปกตรัม ถ้าคุณรู้สึกสบายใจและพอใจแล้ว คุณจะกลายเป็นไดโนเสาร์ coder ซึ่งแย่กว่านั้นมาก มีสื่อที่มีความสุขซึ่งคุณพยายามฝึกฝนทักษะหลักบางอย่าง แต่อย่างน้อยก็ควรคุ้นเคยกับเทรนด์และข่าวสารอื่นๆ ที่กำลังเกิดขึ้น

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

ข่าวแฮ็กเกอร์
A List Apart
Smashing Magazine
CSS Tricks

3. เปิดใจรับสิ่งใหม่และเรียนรู้อย่างรวดเร็ว

หากคุณยังอยู่ในช่วงเริ่มต้นของการเรียนรู้การเขียนโค้ด อย่ากดดันตัวเองมากเกินไป ฉันไม่ได้แนะนำว่าคุณควรจะเชี่ยวชาญ Angular ในหนึ่งสัปดาห์ แต่จงเปิดใจรับความเป็นไปได้ที่สำหรับปัญหาใดๆ ก็ตาม วิธีแก้ไขอาจเป็นสิ่งที่คุณยังไม่รู้ และ “ยัง” เป็นความแตกต่างที่สำคัญ เพราะสิ่งที่คุณไม่รู้? เป็นเพียงบางสิ่งที่คุณสามารถเรียนรู้วิธีการทำและเพิ่มลงในชุดเครื่องมือของคุณ

สิ่งสำคัญคือต้องพยายามเรียนรู้สิ่งใหม่อย่างรวดเร็วและมีประสิทธิภาพมากที่สุด เพราะยิ่งคุณหยิบของได้เร็วเท่าไร คุณก็จะยิ่งต้องใช้เวลาเขียนโค้ดและเรียนรู้สิ่งใหม่ๆ มากขึ้นเท่านั้น การเรียนรู้ทักษะการเขียนโค้ดเป็นทักษะที่คุณเรียนรู้ได้เอง

4. โฟกัสและทำงานอย่างมีประสิทธิภาพ

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

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

อ่านเพิ่มเติม:
Deep Work โดย Cal Newport

5. ประมาณการเวลาที่จำเป็นในการทำงานให้เสร็จสิ้นได้อย่างแม่นยำ

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

ข้อควรทราบข้อหนึ่งเกี่ยวกับเรื่องนี้:คุณไม่จำเป็นต้องระบุเวลาเป็นจำนวน X ชั่วโมงเสมอไป โดยปกติคุณสามารถระบุช่วงหรืออาจพูดได้ว่าคุณไม่สามารถประมาณค่าจริงได้เนื่องจากคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์โครงการ วิธีหนึ่งที่คุณสามารถเริ่มประมาณระยะเวลาที่คุณทำโปรเจ็กต์ให้เสร็จได้คือการติดตามเวลาของคุณเมื่อเขียนโค้ด (สิ่งนี้ควบคู่ไปกับ #4 ด้วย เพราะการประมาณการของคุณจะดีกว่าเมื่อคุณไม่ได้เปิดดู Reddit ครึ่งเวลา)

6. สามารถอธิบายแนวคิดเกี่ยวกับเทคโนโลยีกับคนที่ไม่ใช่เทคโนโลยีได้

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

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

การทำงานร่วมกับทุกคนในทีมได้ดีหมายความว่าคุณต้องอธิบายเกี่ยวกับโค้ดให้พวกเขาทราบ และในลักษณะที่พวกเขาจะทำได้ ขั้นตอนแรกคือการทำความเข้าใจว่าแม้คุณอาจเห็นโลกในแง่ของปัญหาการเขียนโค้ดที่ต้องแก้ไข คนอื่นๆ ทำงานโดยใช้หลักการ เช่น เงิน กำหนดเวลา และลูกค้า

หากคุณสามารถคิดวิธีพูดคุยกับผู้อื่นตามเงื่อนไขของพวกเขา และด้วยคำศัพท์ของพวกเขา คุณก็จะสามารถเป็นผู้เล่นที่ยอดเยี่ยมในทีมได้ สมมติว่าคุณถูกขอให้เพิ่มคุณสมบัติบางอย่างให้กับโครงการของคุณ แทนที่จะตะโกนว่า “เปล่า โง่ ฉันไม่อยาก!” และวิ่งกลับเข้าไปในถ้ำของคุณ อธิบายว่าคุณลักษณะดังกล่าวจะเพิ่มการทำงานอีก 20 ชั่วโมง และกำหนดเวลาจะต้องถูกผลักกลับ

7. อย่าเอาอัตตามาทำงาน

การบรรลุ 100% ทุกวันเป็นไปไม่ได้สำหรับทุกคนยกเว้นสิ่งที่ดีที่สุดของเรา แต่อย่างน้อยเราก็พยายามอย่าปล่อยให้อัตตาของเรายึดติดกับงานอย่างหมดจด สิ่งนี้หมายความว่า? หมายความว่าคุณไม่ได้แค่ทำให้ตัวเองดูดีเท่านั้น คุณต้องการให้โครงการของคุณ ทีมงาน และบริษัทของคุณดูดีเช่นกัน หากคุณทำงานอย่างหนักเพื่อช่วยเหลือผู้อื่นและรับประกันความสำเร็จสำหรับทุกคน ไม่ใช่แค่ตัวคุณเอง ผู้คนจะรักที่จะร่วมงานกับคุณ

หากคุณพยายามเหยียบย่ำคนอื่นเพื่อบรรลุสิ่งที่คุณต้องการสำหรับตัวคุณเอง แสดงว่าคุณกำลังจุดไฟเผาสะพาน และคุณจะอยู่ตรงกลางเมื่อมันพังทลายลง แน่นอนว่าคุณอาจได้กำไรในระยะสั้น แต่คุณต้องการเป็นคนโง่ที่คนอื่นเกลียดการทำงานด้วยหรือไม่

8. อย่าปิดบังความผิดพลาดของคุณ

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

หากคุณทำผิดพลาดที่จะส่งผลเสียต่อโครงการ สิ่งที่ดีที่สุดที่คุณสามารถทำได้เพื่อตัวคุณเองและคนอื่น ๆ ที่คุณทำงานด้วยคือทำความสะอาดทันที บอกหัวหน้างานของคุณ บอกลูกค้า ใครก็ตามที่คุณต้องการบอก และเริ่มดำเนินการคัดแยก ปกปิดความผิดของคุณและหวังว่าจะไม่มีใครสังเกตเห็นในบางครั้ง แต่ถ้าคุณถูกค้นพบ มันจะทำลายความไว้วางใจอย่างร้ายแรง และอาจเป็นอันตรายต่อโครงการของคุณ หรือแม้แต่งานของคุณ

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

9. สามารถขอความช่วยเหลือจากผู้อื่นและให้ความช่วยเหลือผู้อื่นได้

อย่ากลัวที่จะถามคำถามหากคุณติดขัดหรือไม่เข้าใจอะไรบางอย่าง หากคุณกำลังทำงานในโครงการที่มีกำหนดส่ง อย่าใช้เวลาหลายชั่วโมงหลายชั่วโมงในการพยายามคิดหาทางออกด้วยตัวเองเมื่อคุณสามารถขอความช่วยเหลือและหาทางแก้ไขได้ภายในเวลาไม่ถึงหนึ่งชั่วโมง

คุณต้องสร้างสมดุลด้วยการไปให้ไกลที่สุดเท่าที่จะทำได้โดยใช้ Google, StackOverflow หรือ Slack แต่ฉันคิดว่ามีแนวโน้มนี้ โดยเฉพาะอย่างยิ่งถ้าคุณอยู่ในบริษัทที่ต้องการมีความเป็นอิสระและสามารถทำอะไรก็ได้โดยไม่ได้รับความช่วยเหลือ มันสามารถทำให้คุณเสียเวลาจริงๆ มันยาก แต่จงกลืนความภาคภูมิใจของคุณและยอมรับว่าคุณต้องการความช่วยเหลือ คุณจะได้เรียนรู้และทำงานให้เสร็จเร็วขึ้น

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

เมื่อมีคนขอความช่วยเหลือจากคุณ พยายามช่วยพวกเขาในลักษณะที่จะเตรียมพวกเขาให้ประสบความสำเร็จในครั้งต่อไป แทนที่จะให้คำตอบเพียงอย่างเดียว ให้บริบทเล็กน้อยเพื่อให้พวกเขาเข้าใจหลักการพื้นฐานและวิธีแก้ไขปัญหา รู้ยัง "สอนคนจับปลา" ทั้งเรื่อง 🙂

มีรายการเหล่านี้สะท้อนหรือตีกลับบ้านกับคุณหรือไม่? ไม่เห็นด้วยกับพวกเขา? แสดงความคิดเห็นด้านล่างได้เลย!