
"ฉันอยากจะลองพัฒนาตัวเองอย่างแน่นอน"
หลังจากเกรด 9 เมื่อฉันต้องเลือกทิศทางสำหรับการศึกษาต่อ (เช่น สายเทคนิค มนุษยธรรม เศรษฐกิจ และการแพทย์) ฉันถูกเลือกระหว่างสายมนุษยธรรมและสายเทคนิค สำหรับฉัน มนุษยศาสตร์เป็นตัวแทนของอาชีพนักข่าว โดยประณามความชั่วร้ายและสนับสนุนกิจกรรมดีๆ ทั่วโลก ขณะที่ฉันพิจารณาเส้นทางทางเทคนิค ฉันคิดว่า ถ้าฉันไม่ต่อสู้กับปีศาจ อย่างน้อยฉันก็จะไม่แตะต้องมัน ฉันเดินตามเส้นทางที่มีการต่อต้านน้อยที่สุดและเลือกเส้นทางทางเทคนิค หลังเลิกเรียน ฉันเข้ามหาวิทยาลัย วิชาเอกวิทยาการคอมพิวเตอร์และวิศวกรรมคอมพิวเตอร์ อนิจจา มหาวิทยาลัยไม่ได้จัดเตรียมทักษะใดๆ ในภาษาใดโดยเฉพาะ ฉันได้เรียนรู้บางอย่างเกี่ยวกับเค้าโครง C++, C#, JavaScript และ UI ในรูปแบบที่ไม่ปะติดปะต่อกัน ในปีที่สามของฉัน ฉันสุ่มสนใจโฆษณาตามบริบทและเพิ่งได้งานในบริษัทที่มีชื่อเสียงพอสมควร เป็นผลให้ฉันยังคงอยู่โฆษณาเป็นเวลา 2 ปี ฉันสนุกกับความสำเร็จที่ดี แต่ฉันอยากจะลองพัฒนาตัวเองอย่างแน่นอน การกลับมาเขียนโปรแกรมของฉันก็ไม่มีการวางแผนที่ดีเช่นกัน ฉันได้รับอีเมลที่ทำงานเกี่ยวกับบริการใหม่ที่ต้องการจ้างนักพัฒนา Java ฝึกงาน ฉันตัดสินใจไปสัมภาษณ์ แน่นอนว่าในเวลานั้นความรู้พื้นฐานของฉันยังไม่เพียงพอที่จะรับข้อเสนอ แต่ตอนนี้ทำให้ฉันต้องค้นหาแหล่งข้อมูลเกี่ยวกับ Java ฉันบังเอิญเจอหลักสูตรนี้ทางอินเทอร์เน็ต ในตอนแรกพวกเขาไม่ได้ดึงดูดฉัน รูปภาพตลกๆ และเรื่องราวของหุ่นยนต์ทำให้ฉันดูไม่จริงจัง แต่ฉันชอบโอกาสที่จะฝึกฝนและตรวจสอบงานของฉันมาก ฉันลังเลอยู่และตัดสินใจลอง แล้วฉันก็ถูกดึงเข้าไป"ฉันล้มเหลวในการสัมภาษณ์สองสามครั้งแรก"
ฉันเรียนโดยไม่มีตารางเรียนที่เข้มงวด เหมาะสมและเริ่มต้น: ระหว่างพักงาน บางครั้งตอนกลางคืน ประมาณชั้น 16-17 ฉันเริ่มพยายามหางานทำ ตอนนั้นฉันเรียนได้ประมาณสามเดือนและมีช่วงพักบ้าง หากคุณไม่มีประสบการณ์การทำงาน พวกเขาก็ชอบถามเกี่ยวกับอัลกอริธึม แต่ฉันก็แทบไม่รู้จักพวกเขาเลย ดังนั้นฉันจึงไม่ผ่านการสัมภาษณ์สองสามครั้งแรก ฉันต้องเตรียมตัวมากขึ้น มองหาคำถามที่พบบ่อย และจดจำคำตอบ ฉันเรียนรู้ SQL อย่างเร่งด่วน ศึกษาระบบการกำหนดเวอร์ชันโค้ด (IMO, CodeGym กล่าวถึง Git ในระดับขั้นสูงเกินสมควร จนถึงระดับ 30) และหลักการ SOLID และเรียนรู้อัลกอริธึมการเรียงลำดับ ในที่สุด ฉันก็ได้รับการว่าจ้างให้เป็นนักพัฒนารุ่นน้องในบริษัทเล็กๆ แห่งหนึ่ง งานแรกของฉันเป็นเรื่องเล็กน้อยมาก: การพัฒนาฟังก์ชันการทำงานของระบบใหม่ ขัดเกลาฟังก์ชันที่มีอยู่ แก้ไขข้อบกพร่อง เราใช้วิธีการแบบ Waterfall: นักธุรกิจส่งงาน นักวิเคราะห์อธิบายรายละเอียดเพิ่มเติมอีกเล็กน้อย นักพัฒนาใช้งาน นักวิเคราะห์ทดสอบงาน จากนั้นนักพัฒนาจึงรวมงานนั้นลงในผลิตภัณฑ์ เราไม่ได้ใช้เทคโนโลยีพิเศษใดๆ เราเขียนทุกอย่างด้วย Java ล้วนๆ — เป็นหินใหญ่ก้อนเดียวแทนที่จะเป็นไมโครเซอร์วิส ในการทำงานกับฐานข้อมูล เราใช้เฟรมเวิร์กโอเพนซอร์สที่เป็นกรรมสิทธิ์ของเราเอง ในช่วงเริ่มต้นมีความยากลำบากมากมาย ตั้งแต่การเรียนรู้วิธีอัปโหลดโปรเจ็กต์ไปยังพื้นที่เก็บข้อมูล ไปจนถึงวิธีเขียนคำขอไปยังฐานข้อมูลเพื่อไม่ให้หมดเวลา ฉันต้องใช้ Google มากมายเกี่ยวกับการทำงานกับ JSON, SOAP เกี่ยวกับว่า Maven คืออะไร และเกี่ยวกับวิธีการสร้างโปรเจ็กต์ Maven ฉันไม่ละทิ้งการเรียนรู้ ฉันพยายามอ่านหนังสืออย่างน้อยวันเว้นวัน แต่มีหลายครั้งที่ต้องพักการเรียนเป็นเวลาหนึ่งเดือน แต่เป้าหมายของฉันคือการผ่านด่าน 40 อันเป็นที่รักให้สำเร็จ ในขณะเดียวกัน ฉันได้เรียนหลักสูตรเกี่ยวกับ Spring Framework Spring ได้เปิดโอกาสใหม่ๆ มากมายสำหรับฉัน และข้อเสนอที่ฉันได้รับจากเรซูเม่ของฉันก็เพิ่มทวีคูณขึ้นหลายเท่า ในระหว่างการกักกัน ฉันเปลี่ยนงานและเปลี่ยนไปใช้โปรเจ็กต์ที่มีสถาปัตยกรรมไมโครเซอร์วิส เรากำลังสร้างบริการสำหรับการค้นหา ขาย ซื้อ และให้เช่าอสังหาริมทรัพย์ที่อยู่อาศัยและพาณิชยกรรม รวมถึงการยื่นขอและให้บริการจำนอง 80% ของบริการของเราเขียนด้วย Kotlin อีก 20% เขียนด้วยภาษา Javaแผนการของฉันในอนาคตอันใกล้นี้คือ:
-
ดื่มด่ำไปกับสถาปัตยกรรมอย่างลึกซึ้งยิ่งขึ้น ฉันอยากจะเจาะลึกเกี่ยวกับการออกแบบสถาปัตยกรรมแบ็กเอนด์
-
การเรียนรู้ภาษาซี++ ฉันคิดว่าสิ่งนี้จะมีประโยชน์อย่างแน่นอนสำหรับโปรแกรมเมอร์ทุกคน เพื่อให้สามารถเขียนส่วนต่างๆ ของแอปพลิเคชันที่ต้องทำงานเร็วเป็นพิเศษได้ หากจำเป็น ซึ่งจะเป็นประโยชน์สำหรับการคำนวณทางคณิตศาสตร์ที่ซับซ้อน
-
DevOps บริษัทบางแห่งถึงกับกำหนดให้ทักษะนี้เป็นข้อกำหนดบังคับสำหรับโปรแกรมเมอร์ และจะเป็นประโยชน์กับบริษัทอื่นอย่างแน่นอน
เคล็ดลับสำหรับนักพัฒนามือใหม่:
- เขียนโปรแกรมต่อ งานของโปรแกรมเมอร์ประกอบด้วยการแก้ปัญหาบางอย่าง การค้นหาข้อผิดพลาดบางอย่าง และการแก้ไขให้ถูกต้อง บางครั้งสิ่งนี้อาจ (และแน่นอนจะเป็นเช่นนั้น!) ดูเหมือนยากเหลือทน น่าเบื่อ และก่อกวน แต่เมื่อคุณแก้ปัญหาได้ในที่สุด คุณจะรู้สึกเหมือนเป็นความก้าวหน้าที่แท้จริง ชัยชนะ เกือบจะเป็นการค้นพบ และวงจรนี้ก็จะเกิดขึ้นซ้ำอีกครั้ง ความโกรธ การยอมรับ ความพยายามอันยาวนาน และความล้มเหลวไม่รู้จบ จนกระทั่งถึงชัยชนะ ความตื่นเต้นในการทำงานของโปรแกรมเมอร์นั้นขึ้นอยู่กับความคาดหมายของความก้าวหน้าและชัยชนะครั้งต่อไป
-
เรียนรู้ต่อไปเมื่อใดก็ตามที่เป็นไปได้ อ่านบทความและหนังสือ ค้นหาและลงเรียนหลักสูตรในด้านต่างๆ ของการพัฒนาซอฟต์แวร์ อย่าลืมลองใช้เทคโนโลยีใหม่ ๆ นำไปใช้กับโครงการส่วนตัวของคุณ โต้ตอบกับผู้อื่นที่มีความหลงใหลในการพัฒนาซอฟต์แวร์ แลกเปลี่ยนประสบการณ์และความคิด กาลครั้งหนึ่งมีการพูดคุยกับคนที่มีความทะเยอทะยานซึ่งช่วยให้ฉันไม่อิดโรยในบริษัทแรกและไม่กลัวที่จะก้าวต่อไป
-
ดังนั้นเคล็ดลับที่สามของฉัน — อย่ากลัวที่จะเปลี่ยนแปลงสิ่งต่างๆ : งานใหม่ กรอบงานใหม่ ภาษาใหม่ (ยกโทษให้ฉัน CodeGym) ชัยชนะครั้งสำคัญทั้งหมดของฉันเหนือตัวเองเกิดขึ้นในช่วงเวลาที่ฉันเปลี่ยนงาน ในตอนแรก ดูเหมือนน่ากลัวที่จะไปที่ไหนสักแห่งโดยไม่เข้าใจเทคโนโลยีหรือภาษาอย่างเชี่ยวชาญ แต่สิ่งนี้จะกระตุ้นให้เกิดการเติบโตอย่างมาก เมื่อคุณศึกษาเทคโนโลยีหรือภาษาที่ไม่รู้จักนี้ ลมที่สองของคุณพัดเข้ามา และคุณจะพบความหมายพิเศษในการทำความเข้าใจและศึกษาสิ่งใหม่ๆ
-
มีความสมเหตุสมผลในการประเมินจุดแข็งของคุณ แม้ว่าคุณจะสามารถรวมงาน การเรียนอิสระที่บ้าน หลักสูตรออนไลน์ มหาวิทยาลัย หรือแม้แต่ครอบครัวเข้าด้วยกันได้ชั่วระยะเวลาหนึ่ง ก็ยังมีโอกาสมากที่คุณจะรู้สึกเหนื่อยล้า น่าเสียดายที่ฉันรู้จักผู้ชายสองสามคนที่หมดไฟและละทิ้งการเขียนโปรแกรมหลังจากรวมมหาวิทยาลัยมาเป็นเวลานาน ได้รับการว่าจ้างให้ทำงานอย่างมีกำไร และยังทำงานเป็นนักพัฒนาซอฟต์แวร์ฝึกหัดโดยไม่ได้รับค่าตอบแทนอีกด้วย หากพวกเขาลาหยุดหรือลาเรียนพิเศษที่มหาวิทยาลัยหนึ่งวัน ถ้าพวกเขาลาพักร้อนหนึ่งวันและพักการเรียนไว้ถ้าพวกเขาได้พักจากหลักสูตรออนไลน์สักสองสามสัปดาห์ บางทีทุกอย่างอาจจะออกมาดี แตกต่างกัน
GO TO FULL VERSION