ไม่ใช่ผู้แอบอ้าง: ต่อสู้กับความเหนื่อยล้าของ Front-End
เผยแพร่แล้ว: 2022-03-10เมื่อเร็ว ๆ นี้ฉันได้พูดคุยกับเพื่อนนักพัฒนาแบ็คเอนด์เกี่ยวกับจำนวนชั่วโมงที่ฉันใช้เขียนโค้ดหรือเรียนรู้เกี่ยวกับโค้ดนอกที่ทำงาน เขาให้ฉันดูข้อความตอนหนึ่งจากหนังสือ "Clean Code" ของลุงบ๊อบ ซึ่งเปรียบเทียบชั่วโมงที่นักดนตรีใช้ไปกับเครื่องดนตรีของพวกเขาในการเตรียมตัวสำหรับคอนเสิร์ตให้นักพัฒนาซอฟต์แวร์กำลังซ้อมโค้ดเพื่อแสดงในที่ทำงาน
ฉันชอบการเปรียบเทียบ แต่ฉันไม่แน่ใจว่าฉันสมัครรับข้อมูลอย่างเต็มที่ เป็นความคิดประเภทนั้นที่สามารถทำให้หมดไฟได้ตั้งแต่แรก ฉันคิดว่ามันดีมากถ้าคุณต้องการพัฒนาฝีมือและขยายชุดทักษะของคุณ แต่การทำทุก ๆ ชั่วโมงของวันนั้นไม่ยั่งยืน
ความเหนื่อยล้าของ Front-end นั้นเป็นจริงมาก ฉันเคยเห็นโพสต์จำนวนมากเกี่ยวกับความล้าของ JavaScript แต่ฉันคิดว่าปัญหาขยายออกไปมากกว่าภาษานั้น
เพื่อความชัดเจน นี่ไม่ใช่การพูดจาโผงผางอีกเรื่องหนึ่งว่าทุกอย่างแย่และทุกอย่างเคลื่อนไหวเร็วเกินไป ฉันชอบที่เทคโนโลยีที่พัฒนาไปอย่างรวดเร็ว ในทำนองเดียวกัน ฉันสามารถซาบซึ้งที่มันล้นหลามและรู้สึกไม่สบายใจในบางครั้ง
อ่านเพิ่มเติม เกี่ยวกับ SmashingMag:
- เคล็ดลับสกปรกจากมุมมืดของ Front-End
- บทกวีต่อข้อมูลจำเพาะของนักพัฒนาส่วนหน้า
- วิธีเตรียมตัวสำหรับการสัมภาษณ์งานส่วนหน้า
เท่าที่ฉันสามารถบอกได้ นี่เป็น ปัญหาสองง่าม
อย่างแรกคือในฐานะนักพัฒนา front-end คุณคิดว่าคุณต้องมีสิ่งต่อไปนี้ในคลังแสงของคุณ:
- HTML (เขียนสะอาด มาร์กอัปความหมาย)
- CSS (โมดูลาร์ ปรับขนาดได้)
- วิธีการ CSS (BEM, SMACSS, OOCSS)
- ตัวประมวลผลล่วงหน้า CSS (เช่น LESS, SCSS, PostCSS)
- CSS สมัยใหม่ (Flexbox, Grid)
- JS
- JS สมัยใหม่ (ES6, typescript)
- JS frameworks (Angular, React, Vue [แทรกล่าสุดที่นี่]
- JS methodology (การเขียนโปรแกรมเชิงฟังก์ชัน, OOP)
- ไลบรารี JS (ไม่เปลี่ยนรูป, Ramda, Lodash)
- หลักการออกแบบที่ตอบสนอง
- การทดสอบ (TDD)
- กรอบการทดสอบ (จัสมิน กรรม)
- SVG
- WebGL
- เทคนิคการทำแอนิเมชั่น
- การช่วยสำหรับการเข้าถึง
- การใช้งาน
- ผลงาน
- เครื่องมือสร้าง (Grunt, อึก, สคริปต์ NPM)
- ผู้รวบรวมสินทรัพย์ (WebPack, Browserify)
- ระบบนิเวศ NPM
- ความรู้เกี่ยวกับนิสัยใจคอของเบราว์เซอร์ที่แตกต่างกัน
- วิธีการแบบ Agile
- การควบคุมเวอร์ชัน (โดยปกติคือ Git)
- พื้นฐานการออกแบบภาพ
- ทักษะอ่อน การบริหารเวลา
- ความเข้าใจพื้นฐานของภาษาแบ็คเอนด์ใดๆ ก็ตามที่กำลังใช้อยู่
และยิ่งไปกว่านั้น คุณกำลังเล่นลิ้นหรือมองไปยังสิ่งต่างๆ เช่น:
- พนักงานบริการ
- เว็บแอปโปรเกรสซีฟ (PWA)
- ส่วนประกอบเว็บ
อย่างที่สองคือ งานประจำวันของคุณอาจไม่ครอบคลุมทั้งหมดหรือให้เวลาคุณในการเรียนรู้ทั้งหมด ดังนั้นคุณจะแน่ใจได้อย่างไรว่าคุณมีเครื่องมือทั้งหมดพร้อมใช้

ตอนนี้ ในฐานะผู้บริโภค คุณอาจ:
- สมัครรับจดหมายข่าวการพัฒนารายสัปดาห์ต่างๆ มากมาย
- ติดตามฟีด Twitter ของคุณ
- เข้าร่วมทีม Front-end ของคุณทุกสัปดาห์ในที่ทำงาน
- มีแชนเนล Slack นอกเวลางานกับ devs จำนวนหนึ่งที่คุณคุยกับร้านค้าด้วย
- ติดตามบทเรียนออนไลน์ (ที่หวังว่าจะไม่เป็นปัจจุบัน)
- ใช้ไซต์การฝึกอบรมหลักสูตรวิดีโอเช่น Frontend Masters
- ซื้อหนังสือพัฒนาเว็บ (หวังว่าจะไม่ล้าสมัย)
- เข้าร่วมการพบปะ
- เข้าร่วมสัมมนา
- เข้าอบรมหลักสูตร
ในฐานะผู้ร่วมให้ข้อมูล คุณอาจ:
- เขียนบล็อก/บทความนิตยสาร
- พูดตะกุกตะกัก
- เปิดพอดแคสต์
- มีส่วนร่วมในโครงการโอเพ่นซอร์ส
- มีโครงการด้านของคุณเอง
เมื่อเร็ว ๆ นี้ฉันพบว่าความสนใจของฉันถูกแบ่งออกเป็นสามวิธี ฉันมุ่งเน้นที่สามในการเขียนโค้ด โดยใช้หูฟังเพียงครึ่งเดียวเพื่อฟังการอภิปรายเกี่ยวกับโค้ดขณะสนทนาบน Slack เกี่ยวกับโค้ด ฉันตัดสินใจว่าพอแล้วก็พอ — ทุกปากถูกอุดตันด้วยรหัสและฉันก็หมดแรงทางจิตใจ
แม้ว่าจะเป็นจุดสิ้นสุดอย่างแน่นอน แต่ฉันแน่ใจว่าคนอื่น ๆ ในพวกคุณเคยประสบกับสิ่งที่คล้ายกัน เหนือสิ่งอื่นใด คุณอาจมีงานประจำ ครอบครัว เพื่อนฝูง งานอดิเรก ไม่น่าแปลกใจที่มีพวกเราหลายคนที่รู้สึกหมดไฟและ สงสัยว่าเราได้เลือกอาชีพที่ถูกต้อง หรือไม่
ฟรอนต์เอนด์ของฉันบางคนแสดงความสนใจที่จะจัดทุกอย่างให้เรียบร้อยและเปลี่ยนงานเป็นงานที่สามารถปิดได้ในเวลาห้าโมงเย็น แต่ส่วนหนึ่งของฉันคิดว่างานนี้ดึงดูดคนบางประเภท และถ้าเราต้องทิ้งงานทั้งหมดและมาเป็นตัวแทนขายอสังหาริมทรัพย์แทน คุณก็ยังต้องการเป็นตัวแทนอสังหาริมทรัพย์ที่ดีที่สุดเท่าที่จะเป็นได้ เข้าร่วมการพบปะตัวแทนอสังหาริมทรัพย์และติดตามแนวโน้มราคาบ้านในเวลาว่างของคุณ หลายเดือนก่อนฉันทำงานด้านการเงินและยังคงเรียนหนังสือในตอนเย็นและอ่านรอบ ๆ นี้เพื่อให้มีทักษะมากที่สุดเท่าที่จะทำได้ในสาขาที่ฉันเลือก
เราไม่ได้อยู่คนเดียวในสาขาวิชานี้ อาชีพจำนวนมากต้องการความทุ่มเทและการเรียนรู้นอกงานเป็นจำนวนมาก บางทีสิ่งที่เกี่ยวกับการพัฒนา front-end ก็คือ เทคโนโลยีมีวิวัฒนาการอย่างรวดเร็ว จนรู้สึกเหมือนมีคนคอยย้ายโพสต์เป้าหมาย ดูเหมือนวันเว้นวันฉันได้รับอีเมลแจ้งว่าเทคโนโลยี "XYZ" นั้นตายแล้ว ซึ่งฉันแน่ใจว่าไม่สามารถเป็นจริงได้เพราะไม่เช่นนั้นเราจะไม่มีเทคโนโลยีเหลืออยู่
ระบบนิเวศอยู่ในสถานะของการเปลี่ยนแปลงอย่างต่อเนื่องและฉันคิดว่านั่นอาจเป็นสิ่งที่ดี โดยส่วนตัวแล้วฉันชอบที่จะอยู่ในบทบาทที่ฉันสามารถเรียนรู้การพัฒนาและผลักดันตัวเองได้อย่างต่อเนื่อง แต่นั่นไม่ได้หมายความว่าฉันจะไม่ถูกครอบงำในบางครั้ง
เมื่อคำนึง ถึงสิ่งนี้ ต่อไปนี้คือบางสิ่งที่ฉันพยายามจดจำ เพื่อหยุดไม่ให้หัวระเบิด รวมทั้งคำแนะนำทั่วไปบางประการเกี่ยวกับวิธีหลีกเลี่ยงความเหนื่อยล้า
พวกเราทุกคนอยู่ด้วยกัน
นักพัฒนาซอฟต์แวร์ที่ฉันรู้จักทั้งในที่ทำงานและนอกองค์กรเป็นหนึ่งในคนที่ฉลาดที่สุดที่ฉันรู้จัก แต่พวกเขาทั้งหมดรู้สึกท่วมท้น ส่วนใหญ่มีรายการที่ต้องการของเทคโนโลยีที่พวกเขากำลังพยายามเรียนรู้ อาจมีไม่กี่คนที่รู้ทั้งหมดและเหนือสิ่งอื่นใด แต่พวกเราส่วนใหญ่อยู่ในตำแหน่งเดียวกัน

เราทุกคนยังคงพึ่งพา Google และ Stack Overflow เพื่อช่วยเหลือเราตลอดทั้งวัน และมีแท็บเปิดมากเกินไปซึ่งเต็มไปด้วยคำตอบสำหรับคำถามเกี่ยวกับเว็บ คุณไม่ได้โดดเดี่ยว!
มีความสุขที่ได้รู้ว่าคุณไม่ใช่นักพัฒนาที่แย่เพียงเพราะคุณยังไม่ได้ลองใช้สิ่งที่เด็กๆ เจ๋งๆ ใช้
ใช่ แม้แต่ “เว็บเซเลบ” ก็อยู่ในจุดเดียวกัน…
ไม่มีทางที่คุณจะรู้ทุกอย่างได้ และนักพัฒนาร็อคสตาร์ที่คุณติดตามบน Twitter มักจะเก่งมากในบางด้าน คุณจะสังเกตเห็นว่าสิ่งเหล่านี้เป็นพื้นที่เดียวกันกับที่พวกเขามีชื่อเสียงในด้านความรู้ อีกครั้งจะมีข้อยกเว้น แต่พวกเขาก็เป็นเพียงมนุษย์เช่นเรา :)
Imposter Syndrome มีจริงและเราทุกคนต่างก็มี
ฉันรู้จักนักพัฒนาฟรอนต์เอนด์ที่ยอดเยี่ยมหลายคนที่ไม่สมัครตำแหน่งเพราะพวกเขารู้สึกเหมือนเป็นการฉ้อโกงโดยไม่รู้ทุกสิ่งเกี่ยวกับข้อกำหนดของรายละเอียดงาน หากต้องการอ้างอิงหนึ่งในนั้น:
"90% ของ JDs ที่ฉันเห็นทำให้ฉันคิดว่า "แย่แล้ว ฉันล้าหลังมาก!" อันที่จริง มันกวนใจฉันมาก จนฉันคิดว่าจะทำหน้าที่ปัจจุบันต่อไป และแค่พยายามผลักดันหาเงินเพิ่ม เพียงเพราะฉันรู้สึกว่าฉันได้ "หนีจากมัน" ที่นี่
ความจริงก็คือข้อกำหนดของงานส่วนใหญ่เป็นเรื่องตลก Bard เพื่อนของฉันได้รวบรวมภาพที่ยอดเยี่ยมนี้ซึ่งแสดงให้เห็นความแตกต่างระหว่างข้อกำหนดเฉพาะของงานส่วนหน้ากับความหมายของงาน

แค่จำไว้ว่า มันจะโอเค ทุกงานที่ฉันเคยมี ฉันรู้สึกไม่ลึกเลยที่จะเริ่มต้น แต่ในที่สุดคุณก็คุ้นเคยกับเครื่องมือและเวิร์กโฟลว์ของพวกเขา คุณเรียนรู้และเป็นนักพัฒนาที่ดีขึ้นสำหรับงานนี้
อย่ากลัวที่จะเรียนรู้จากงาน วิธีที่ดีที่สุดในการรับทักษะใหม่ๆ คือการใช้ทักษะเหล่านี้ทุกวัน
หากคุณมีอาการแอบอ้าง คุณอาจเป็นนักพัฒนาที่ดีจริง ๆ เพราะไม่เช่นนั้นคุณจะไม่ตระหนักในตนเองมากพอที่จะรับรู้
รับความรู้พื้นฐานของคุณล็อคใน
เป็นเรื่องง่ายที่จะถูกเบี่ยงเบนความสนใจจากความแวววาวและความใหม่ แต่ถ้ารากฐานของคุณไม่มั่นคง โอกาสที่คุณกำลังสร้างจะไม่ทนต่อการทดสอบของเวลา
ครั้งหนึ่งเพื่อนรักของฉันเคยบอกกับฉันว่า
"การมุ่งเน้นที่พื้นฐานเป็นมนต์ของฉันเสมอมา หากคุณสามารถสร้าง sh!t ที่ดีและแก้ปัญหาได้ นั่นคือทั้งหมดที่สำคัญ วิธีที่คุณแก้ไข (เครื่องมือ) จะเปลี่ยนแปลงอยู่เสมอ"
ตัวอย่างเช่น เมื่อ React เปิดตัวเพื่อชื่อเสียง ดูเหมือนว่าจะรวมเข้ากับ ES6 เสมอ และฉันให้ความสำคัญกับการเปลี่ยนแปลงหรือส่วนเพิ่มเติมของภาษามากกว่าความแตกต่างของเฟรมเวิร์กเอง เมื่อ React ตายและจากไป ความรู้ที่ฉันได้รับจากการติดตาม Javascript ล่าสุดของ vanilla จะคงอยู่ต่อไป คุณลักษณะมากมายที่คุณสามารถเล่นได้โดยใช้ Chrome แบบเนทีฟ คุณจึงไม่ต้องดึง Babel และต้องจมอยู่ในนรกของการพึ่งพาเพื่อเล่นกับมัน
คุณไม่จำเป็นต้องเรียนรู้ทุกอย่าง
นี่เป็นกุญแจสำคัญจริงๆ ฉันไม่คิดว่ามันเป็นเฟรมเวิร์ก ไลบรารีและโมดูลใหม่ที่กำลังฆ่าเรา แต่เป็นความเชื่อของเราเองที่เราต้องเรียนรู้ทั้งหมด
ด้วยการเรียนรู้ ฉันพบว่าทางออกที่ดีที่สุดคือการจดจ่อ — ในขณะนี้ฉันกำลังเจาะลึกการเขียนโปรแกรม JavaScript ที่ใช้งานได้ใน ES6
มีหลายสิ่งหลายอย่างในรายการของฉันที่ฉันอยากเรียนรู้ แต่ฉันพยายามที่จะไม่ฟุ้งซ่าน ตัวอย่างเช่น ฉันชอบที่จะทบทวนความรู้ด้านความสามารถในการเข้าถึง เล่นกับ Polymer และเจาะลึกเทคนิค CSS ล่าสุดบางอย่าง เช่น Grid แต่ถ้าฉันเริ่มอ่านเกี่ยวกับพื้นที่ต่างๆ มากเกินไปในคราวเดียว ฉันจะไม่เก็บข้อมูลทั้งหมดไว้ สิ่งอื่น ๆ เหล่านี้จะไม่ไปไหน ฉันจะไปหามันเมื่อไปถึง
หลีกเลี่ยงการเร่งรีบและบริโภคทุกอย่าง ในหัวข้อที่กำหนด ใช้เวลาของคุณและให้แน่ใจว่าคุณเข้าใจอย่างถี่ถ้วน
ถ้าคุณเป็นเหมือนฉัน คุณจะมีรายชื่อเพิ่มขึ้นเรื่อยๆ แต่อย่ากลัวที่จะเลือกรายการจากมัน ไม่ใช่ทุกสิ่งที่คุ้มค่าที่จะลงทุนกับเวลา และคุณควรพยายามรับรู้ว่าอะไรควรค่าแก่การเรียนรู้และอะไรที่อาจจะหายไปในอีกไม่กี่ปีข้างหน้า การสละเวลาในการเรียนรู้รูปแบบการออกแบบโปรแกรมมิ่งและเทคนิคทางสถาปัตยกรรมมักจะเป็นประโยชน์มากกว่าในระยะยาวมากกว่าที่จะก้าวกระโดดไปสู่ความนิยมในปัจจุบันในกรอบงาน คุณจะจบลงด้วยการดิ้นรนเพื่อเล่น buzzword bingo อีกครั้งในขณะที่ติดตาม
บริษัทส่วนใหญ่ไม่ได้ใช้ Bleeding Edge Tech
มีสิ่งใหม่ๆ ออกมามากมาย เว็บมีความก้าวหน้าอย่างมาก แต่โดยทั่วไปแล้วจะใช้เวลานานกว่าที่ธุรกิจต่างๆ จะเริ่มใช้เทคโนโลยีใหม่เหล่านี้จริงๆ บริษัทส่วนใหญ่จะรอจนกว่าเทคโนโลยีจะพัฒนาไปชั่วขณะหนึ่งและจะพิสูจน์ว่ามันได้รับการพิสูจน์แล้วในภาคสนาม
Angular ก่อตั้งขึ้นเมื่อ 6 ปีที่แล้ว และครั้งแรกที่ฉันเริ่มทำงานกับบริษัทสตาร์ทอัพซึ่งตัดสินใจว่านี่เป็นเฟรมเวิร์กสำหรับพวกเขาเมื่อสามปีก่อน Reactjs มีมานานกว่าสามปีแล้วและบริษัทปัจจุบันของฉันเริ่มใช้งานก่อนวันคริสต์มาส ฉันแน่ใจว่ากรอบงานอื่นๆ มากมายเกิดขึ้นแล้วหายไปในเวลานั้น ถ้าฉันกระโดดขึ้นไปบนพวกเขาทั้งหมดฉันจะบ้า
ในดินแดน CSS Flexbox เปิดให้บริการมาตั้งแต่ปี 2010 — เมื่อหกปีที่แล้ว! การสนับสนุนเบราว์เซอร์ยังคงมีจำกัด เราเริ่มใช้มันในการผลิตเมื่อต้นปีนี้ แต่ฉันไม่เห็นว่ามันถูกใช้กันอย่างแพร่หลายในที่อื่น
ประเด็นของฉันคือ ไม่ต้องรีบร้อนที่จะเรียนรู้ทุกสิ่ง ในขณะที่เทคโนโลยีอาจเคลื่อนไหวอย่างรวดเร็ว ผู้ที่มีแนวโน้มจะเป็นนายจ้างของคุณก็เคลื่อนไหวช้าลงมาก คุณไม่จำเป็นต้องเข้าโค้ง เพียงให้แน่ใจว่าคุณจับตาดูวิถีของมัน
ยิ่งเรียนรู้มาก ยิ่งค้นพบโดยที่คุณไม่รู้ ไม่เป็นไร
นี่เป็นเรื่องปกติโดยสิ้นเชิง เมื่อคุณเริ่มต้น คุณไม่รู้ว่าคุณไม่รู้อะไร จากนั้นคุณเรียนรู้บางสิ่งและตัดสินใจว่าคุณเป็นอัจฉริยะ จากนั้นจินตนาการนั้นค่อย ๆ คลี่คลายและคุณก็เริ่มเข้าใจจริงๆ ว่ามีอะไรอีกมากที่คุณไม่รู้
โดยพื้นฐานแล้ว ยิ่งคุณได้รับประสบการณ์มากเท่าไร คุณก็จะยิ่งจมดิ่งลงไปในความว่างเปล่า คุณต้องสร้างสันติภาพด้วยสิ่งนี้ มิฉะนั้น มันจะกินคุณ หากมีสิ่งใด ความรู้สึกนี้ควรให้ความมั่นใจแก่คุณว่าคุณกำลังมุ่งหน้าไปในทิศทางที่ถูกต้อง อัตราต่อรองอยู่ในอาชีพที่เราเลือก คุณจะไม่สามารถนั่งบนบัลลังก์ที่สร้างขึ้นจากความรู้ส่วนหน้าทั้งหมดได้อย่างสะดวกสบาย
อย่าใช้เวลาว่างไปกับการเรียนรู้
ง่ายที่จะรู้สึกว่าคุณล้าหลังมาก คุณต้องเขียนโค้ดและเรียนรู้ทุกนาที นี่คือตั๋วเที่ยวเดียวไปยัง Burnout-ville จัดสรรเวลาบางส่วนเพื่อพัฒนาชุดทักษะของคุณ ดูว่าคุณสามารถเจรจาเวลากับเจ้านายของคุณบ้างเพื่อจัดตารางเวลาและใช้เวลาที่เหลือทำสิ่งที่คุณรัก
ฉันเคยมีอาการบางอย่างเกี่ยวกับการเข้ารหัสของฉันที่โรงยิม การออกกำลังกายมีความสำคัญอย่างยิ่งต่อจิตใจและร่างกายของคุณ พยายามทำอย่างน้อย 20-30 นาทีต่อวันเพื่อให้จิตใจของคุณเฉียบแหลมและช่วยป้องกันอาการหมดไฟ
หาเวลาให้กับครอบครัวและเพื่อนของคุณ อย่าพยายามคุยกับพวกเขา!
เป็นตลาดของนักพัฒนา
ไม่ต้องกังวลกับการหางานในตอนนี้ ในขณะนี้ เราอยู่ในตำแหน่งที่โชคดีมากที่มีบทบาทมากกว่านักพัฒนาที่ต้องทำ ฉันไม่รู้ว่ามันจะนานแค่ไหน แต่ตอนนี้ใช้ประโยชน์จากมัน!
คุณสามารถได้งานโดยไม่ต้องรู้ทุกเรื่อง ฉันพบว่าในการสัมภาษณ์นั้น มีคน 99% ที่ตำหนิเรื่องนี้โดยสิ้นเชิง
กรณีที่เลวร้ายที่สุด จำไว้ว่ามีทองคำอยู่ในรหัสดั้งเดิม หากคุณเป็นนักพัฒนาที่ชื่นชอบวิธีการแบบเก่า จะมีบริษัทที่ติดอยู่กับเทคโนโลยีแบบเก่าอยู่เสมอซึ่งต้องการให้นักพัฒนาซอฟต์แวร์ทำงานเกี่ยวกับซอฟต์แวร์ของตน
บทสรุป
ฉันหวังว่าคำแนะนำบางส่วนเหล่านี้จะช่วยลดความหงุดหงิดที่คุณอาจรู้สึกได้ สิ่งที่เลวร้ายที่สุดที่คุณสามารถทำได้คือไปให้ถึงขอบและหมดไฟเพราะเมื่อคุณเป็นแล้ว เป็นเรื่องยากมากที่จะฟื้นความหลงใหลในสิ่งที่คุณทำและเหตุผลที่คุณเริ่มทำมันตั้งแต่แรก
มีความสุขในการเข้ารหัส!