เนื้อหา
- นักพัฒนาซอฟต์แวร์ทำอะไร
- ประเภทของผู้พัฒนาซอฟต์แวร์
- ผู้พัฒนาซอฟต์แวร์ต้องการทักษะและคุณสมบัติใดบ้าง?
- นักพัฒนาสแต็คเต็มรูปแบบ
- นักพัฒนามือถือ
- ผู้พัฒนาเกม
- การรับรองนักพัฒนาซอฟต์แวร์ที่ดีที่สุด
- คุณต้องการใบรับรองเพื่อเป็นนักพัฒนาซอฟต์แวร์หรือไม่?
- วิธีสอนโค้ดให้ตัวเอง
- ค้นหางานที่ได้รับค่าจ้างในฐานะนักพัฒนาซอฟต์แวร์
ไม่เคยมีเวลาดีกว่าที่จะเป็นนักพัฒนาซอฟต์แวร์ ความต้องการสำหรับนักพัฒนาซอฟต์แวร์เพิ่มขึ้นตลอดเวลาเช่นเดียวกับความหลากหลายของงานที่พวกเขามอบหมายให้ทำจนเสร็จ ถ้าอย่างนั้นก็จ่าย
ตามที่ USNews.comผู้พัฒนาซอฟต์แวร์โดยเฉลี่ยสร้างรายได้ $ 101,790 ในปี 2560 ตามที่ Gorroo.io นักพัฒนาซอฟต์แวร์ C # ได้รับ $ 102k ต่อปี
ในระยะสั้นการเขียนโปรแกรมเป็นหนึ่งในทักษะที่ต้องการมากที่สุดในโลกในขณะนี้ หากคุณกำลังมองหางานออนไลน์หรือเพื่อเตรียมตัวสำหรับก้าวต่อไปในอาชีพการงานของคุณมีการเคลื่อนไหวที่ฉลาดกว่าเรียนรู้รหัสน้อย
นักพัฒนา C # โดยเฉลี่ยได้รับ $ 102k ต่อปี
แต่จะเริ่มที่ไหนดี หากคุณเป็นคนที่ไม่ได้ขลุกอยู่กับรหัสในอดีตคุณอาจพบว่าตัวเองสูญเสียไปโดยสิ้นเชิงเกี่ยวกับวิธีเริ่มต้นใช้งาน ในโพสต์นี้เราจะสำรวจทุกสิ่งที่คุณจำเป็นต้องรู้: สิ่งที่นักพัฒนาซอฟต์แวร์ทำสิ่งที่คุณต้องการและคุณสมบัติในการหางาน
นักพัฒนาซอฟต์แวร์ทำอะไร
นักพัฒนาซอฟต์แวร์คือคนที่พัฒนาซอฟต์แวร์ นั่นหมายความว่าพวกเขาจะเขียนโค้ดใช้เครื่องมือและมักจะดำเนินโครงการตั้งแต่เริ่มต้นจนเสร็จ อีกทางเลือกหนึ่งพวกเขาอาจได้รับการว่าจ้างเพื่อระบุข้อบกพร่องในรหัสที่มีอยู่หรือเพื่ออัพเกรด / เพิ่มคุณสมบัติใหม่
ไม่ว่าจะด้วยวิธีใดงานของคุณจะประกอบด้วยการแก้ปัญหาส่วนใหญ่โดยใช้ภาษาการเขียนโปรแกรม API และเครื่องมือที่หลากหลาย คุณอาจทำงานในโครงการโดยตรงสำหรับลูกค้าผ่านตัวแทนหรือเป็นส่วนหนึ่งขององค์กรขนาดใหญ่
ประเภทของผู้พัฒนาซอฟต์แวร์
เหตุผลที่“ นักพัฒนาซอฟต์แวร์” นั้นเป็นคำที่กว้างมากนั่นก็คือมีซอฟต์แวร์หลายประเภทที่คุณอาจถูกขอให้ทำงานและเครื่องมือต่าง ๆ มากมายที่คุณอาจใช้เพื่อทำให้เกิดผล
นักพัฒนาซอฟต์แวร์อาจทำงานเป็นนักพัฒนาเว็บหรือ "นักพัฒนาสแต็กเต็ม" เพื่อสร้างเว็บไซต์หรือเพิ่มคุณสมบัติการโต้ตอบ พวกเขาอาจพัฒนาแอพมือถือหรือทำงานกับเครื่องมือในอุตสาหกรรม
ข้อแตกต่างที่ควรพิจารณา: ผู้พัฒนาซอฟต์แวร์และวิศวกรซอฟต์แวร์มีความแตกต่างกันอย่างไร
ในขณะที่เงื่อนไขทั้งสองนี้อาจใช้แทนกันได้ แต่ความแตกต่างนั้นขึ้นอยู่กับประเภทของงานที่ทำเสร็จและวิธีการดำเนินการ วิศวกรซอฟต์แวร์มองไปที่โค้ดจากมุมมองทางวิศวกรรม: พวกเขาพิจารณาวงจรชีวิตพวกเขาดูข้อผิดพลาดและข้อบกพร่องและพวกเขามักจะทำงานในโครงการขนาดใหญ่ในทีมขนาดใหญ่
ในทางกลับกันนักพัฒนาซอฟต์แวร์มีแนวโน้มที่จะเป็นผู้อำนวยการสร้างหลักในโครงการ พวกเขาพัฒนาซอฟต์แวร์ตั้งแต่ต้นจนจบสำหรับลูกค้าหรือองค์กรโดยปกติแล้วเพื่อให้บรรลุบทบาทเฉพาะ
ดังนั้นหากคุณทำงานกับ Facebook โดยเป็นส่วนหนึ่งของทีมวิศวกรรมคุณเป็นวิศวกรซอฟต์แวร์ หากคุณสร้างแอพสำหรับลูกค้าคุณเป็นผู้พัฒนาซอฟต์แวร์ แต่คุณอาจถูกเรียกได้ทั้งในสถานการณ์ใดสถานการณ์หนึ่ง
ผู้พัฒนาซอฟต์แวร์ต้องการทักษะและคุณสมบัติใดบ้าง?
ในการเป็นนักพัฒนาซอฟต์แวร์คุณจำเป็นต้องเรียนรู้การเขียนโปรแกรม
คำถามต่อไปคือ“ ภาษาการเขียนโปรแกรมที่ดีที่สุดในการเรียนรู้” หรือ“ นายจ้างภาษาโปรแกรมภาษาใดต้องการ”
ในขณะที่มันเป็นความจริงอย่างแน่นอนว่าบางภาษาการเขียนโปรแกรมเป็นที่ต้องการของลูกค้าและนายจ้าง (Python, Java, JavaScript, PHP, Swift, C #, C ++, Ruby) ความจริงก็คือว่าสิ่งนี้ขึ้นอยู่กับประเภทของงานที่คุณต้องการ . นี่คือตัวอย่างเล็ก ๆ น้อย ๆ
นักพัฒนาสแต็คเต็มรูปแบบ
Python, JavaScript, PHP และ Ruby เป็นภาษาทั้งหมดที่ใช้สำหรับการพัฒนาเว็บ หากคุณกำลังทำงานบนพอร์ทัลออนไลน์หรือทำการอัปเดตสำหรับแอปพลิเคชันเว็บเช่น Twitter สิ่งเหล่านี้อาจมีประโยชน์ ในบทบาทนี้อาจเป็นประโยชน์ในการทำความเข้าใจฐานข้อมูล (SQL) และรู้จักวิธีการของคุณรอบ ๆ เซิร์ฟเวอร์
“ นักพัฒนาสแต็คเต็ม” เป็นผู้พัฒนาเว็บที่ประสบความสำเร็จในรูปแบบสุดท้ายของพวกเขา: ใครบางคนที่สามารถจัดการทุกด้านของการออกแบบและการบำรุงรักษาเว็บตั้งแต่ส่วนหน้า (HTML, CSS, JavaScript) ไปจนถึงด้านหลัง (PHP, Python, Ruby) เพื่อการบำรุงรักษาเซิร์ฟเวอร์ มืออาชีพประเภทนี้กำลังเป็นที่ต้องการอย่างมาก
นี่เป็นหลักสูตรที่ยอดเยี่ยมจาก Udemy หากคุณต้องการเรียนรู้เพิ่มเติม: Full Stack Web Developer Bootcamp
นักพัฒนามือถือ
อย่างไรก็ตามหากคุณสนใจที่จะพัฒนาแอป Android คุณจะต้องเรียนรู้ Java หรือ Kotlin (ทั้งคู่) คุณจะต้องทำความคุ้นเคยกับ Android Studio, Android SDK (ชุดพัฒนาซอฟต์แวร์) และแนวคิดใหม่ทั้งหมดที่ Google แนะนำอยู่ตลอดเวลา (เช่นแอปพลิเคชันทันทีหรือฟองอากาศ)
อ่านเพิ่มเติม: วิธีการหางานทำในฐานะนักพัฒนา Android
หากคุณต้องการสร้างแอพ iOS สำหรับการใช้ชีวิตคุณควรเรียนรู้ Swift และ Objective C และทำความคุ้นเคยกับ Xcode หากคุณต้องการสร้างแอพ Windows หรือข้ามแพลตฟอร์มคุณจะต้องใช้ C # และเข้าใจ Visual Studio
ผู้พัฒนาเกม
ในการเป็นนักพัฒนาเกมคุณควรเรียนรู้ C # และ C ++ อย่างแท้จริง คุณควรทำความรู้จักกับเอ็นจิ้นเกมใหญ่ (Unity and Unreal) และคุณอาจต้องการเพิ่ม CAD นิดหน่อยในชุดทักษะของคุณ
Guide Ultimate to Unity เพื่อการพัฒนาเกมที่ Udemy เป็นจุดเริ่มต้นที่ดี
นี่เป็นเพียงการเกาพื้นผิว นักพัฒนาซอฟต์แวร์รายอื่นจะทำงานกับซอฟต์แวร์ที่มีอุปกรณ์อิเล็กทรอนิกส์จัดการข้อมูลขนาดใหญ่และอื่น ๆ
จากนั้นมีเครื่องมือเฉพาะที่ บริษัท จะใช้เพื่อจัดการเวิร์กโฟลว์และทำงานร่วมกันในโครงการขนาดใหญ่ เมื่อฉันไปที่ Facebook ในลอนดอนเมื่อไม่กี่เดือนที่ผ่านมาฉันได้รับการแนะนำให้รู้จักกับเครื่องมือต่างๆที่ บริษัท ใช้ในการติดตามโครงการต่างๆ พวกเขารวมถึงฟิลเตอร์, Mercurial, Sapienz และอื่น ๆ
แน่นอนว่าเครื่องมืออย่าง Github (ใช้สำหรับการควบคุมเวอร์ชัน) มีแนวโน้มว่าจะเป็นประโยชน์สำหรับวิศวกรซอฟต์แวร์และนักพัฒนาซอฟต์แวร์ที่ทำงานในอุตสาหกรรมที่หลากหลาย แอปการจัดการโครงการเช่น Asana หรือ Basecamp นั้นมีประโยชน์อย่างมากสำหรับการทำงานระยะไกล แสดงว่าคุณมีประสบการณ์ในด้านเหล่านี้จะทำให้ประวัติย่อของคุณดีขึ้นและทำให้คุณมีงานทำมากขึ้น
ในการสรุป: สิ่งที่คุณต้องรู้จะขึ้นอยู่กับประเภทของนักพัฒนาซอฟต์แวร์ที่คุณต้องการเป็น
การรับรองนักพัฒนาซอฟต์แวร์ที่ดีที่สุด
ดังนั้นเมื่อคุณเลือกประเภทของงานที่คุณต้องการและประเภทของรหัสที่คุณต้องการเขียนงานต่อไปของคุณคือการระบุประเภทของการฝึกอบรมที่คุณต้องการ คุณต้องการปริญญาเพื่อเป็นนักพัฒนาซอฟต์แวร์หรือไม่?
คำตอบสั้น ๆ คือไม่ คำตอบที่ยาวกว่าคือไม่ แต่มันก็ช่วยได้อย่างแน่นอน
แม้ว่าจะเป็นไปได้ที่จะได้งานโดยไม่มีปริญญา แต่ปริญญาวิทยาศาสตร์คอมพิวเตอร์จะเป็นข้อกำหนดสำหรับองค์กรและนายจ้างจำนวนมาก นอกจากนี้ยังจะช่วยให้คุณมีพื้นฐานความเข้าใจที่ดีเยี่ยมและมีความได้เปรียบในการแข่งขันกับผู้สมัครที่ไม่ได้รับปริญญา
อ่านเพิ่มเติม: ทำให้อนาคตของอาชีพและเงินเดือนของคุณเป็นนักวิเคราะห์ความปลอดภัยของข้อมูล
ในทำนองเดียวกันการศึกษาระดับปริญญาจะให้คุณได้เปรียบกว่าผู้สมัครอื่น ๆ ในระหว่างขั้นตอนการสมัคร
แต่องศามีราคาแพงและผู้ใหญ่ส่วนใหญ่จะไม่มีทางเลือกที่จะปรับตัวให้เข้ากับวิถีชีวิตที่วุ่นวายของพวกเขา ในกรณีนี้สิ่งที่ดีที่สุดถัดไปคือการเรียนหลักสูตรออนไลน์และได้รับการรับรองที่สามารถแสดงให้เห็นถึงความเข้าใจพื้นฐาน
มีการรับรองอุตสาหกรรมที่ได้รับการยอมรับมากมายที่จะทำให้คุณมีจำนวนของอิทธิพลเมื่อสมัครตำแหน่ง
ตัวอย่างเช่นคุณสามารถได้รับการรับรอง Unity โดยตรงจาก บริษัท ซึ่งอาจพิสูจน์คุณค่าให้กับนักพัฒนาเกม หากคุณต้องการที่จะเป็นนักพัฒนา Android คุณอาจสมัครเป็นผู้พัฒนา Android ที่เกี่ยวข้องซึ่งเป็นโปรแกรมอย่างเป็นทางการที่ดำเนินการโดย Google หรือคุณอาจเลือกที่จะเป็นนักพัฒนาแอปพลิเคชั่นที่ผ่านการรับรองของ Android ซึ่งเป็นที่รู้จักกันดี
การรับรองเช่นนี้มอบความอุ่นใจให้กับลูกค้าและ บริษัท ที่กำลังพิจารณาว่าจ้างคุณ พวกเขาแสดงให้เห็นว่าคุณมีความรู้ที่คุณอ้างว่ามีซึ่งหมายความว่าพวกเขาสามารถเพิ่มความเร็วให้คุณได้ด้วยการฝึกอบรมเพิ่มเติมเล็กน้อย
เพียงแค่ Google ประเภทงานที่คุณสนใจและหาการรับรองที่ดีที่สุดที่รู้จักในพื้นที่นั้น หากคุณไม่แน่ใจให้เลือกหนึ่งในภาษาใหญ่เช่น C # หรือ Java หรือมองหาวิทยาการคอมพิวเตอร์หรือหลักสูตรเต็มสแต็คที่จะครอบคลุมพื้นดินจำนวนมาก
คุณต้องการใบรับรองเพื่อเป็นนักพัฒนาซอฟต์แวร์หรือไม่?
ตัวเลือกที่ถูกที่สุดคือการเป็นนักพัฒนาซอฟต์แวร์โดยไม่มีการรับรองหรือคุณสมบัติ แต่เป็นไปได้ไหมที่จะหางานในฐานะนักพัฒนาที่สอนด้วยตนเองอย่างหมดจด?
ฉันสามารถรับประกันคุณได้ว่ามันเป็นเช่นนี้เป็นสิ่งที่ฉันทำ ฉันเรียนรู้การเขียนโปรแกรมพื้นฐานบน ZXSpectrum และจากนั้นความรู้ของฉันก็เพิ่มขึ้นด้วย QBASIC, B4A จากนั้น Java, C #, Python และอีกมากมาย
วิธีที่ฉันสามารถทำได้คือการให้ CV ของฉันพูดกับฉัน ฉันพัฒนาแอพ Android ที่ประสบความสำเร็จซึ่งมีการดาวน์โหลดที่จ่ายเงินมากกว่า 100,000 ครั้งทำงานกับชื่อที่ค่อนข้างใหญ่ออกมาจากนั้นจึงเขียนหนังสือเทคนิคเกี่ยวกับการพัฒนาเกมสำหรับ Apress Media (Springer)
ความสำเร็จเหล่านั้นให้การรับประกันแบบเดียวกันกับลูกค้าเช่นเดียวกับใบรับรองและอนุญาตให้ฉันคิดเงินมากกว่าที่ฉันจะทำได้
ฉันขอแนะนำให้พัฒนาแอพและเว็บไซต์ในเวลาว่างเพื่อเป็นตัวอย่างของงานของคุณทำงานถูก ๆ เพื่อให้เพื่อน ๆ สร้างพอร์ตโฟลิโอเข้ามามีส่วนร่วมในโครงการโอเพ่นซอร์สบน GitHub หรือเข้าร่วมแฮ็คแฮมตัน
ไซต์อิสระส่วนใหญ่เช่น UpWork ยังมีการทดสอบสั้น ๆ ที่คุณสามารถทำได้เพื่อแสดงให้เห็นถึงความเข้าใจพื้นฐานของคุณ
แม้จะไม่มีประสบการณ์แบบนั้นถ้าคุณตกลงที่จะรับเงินเมื่อได้รับอย่าคิดเงินมากเกินไปและเป็นตัวอย่างของงานของคุณคุณควรจะสามารถหางานได้ทันที
สำหรับการหางานกับนายจ้างรายใหญ่ผู้เชี่ยวชาญบางคนแนะนำว่าการรับรองอาจไม่ช่วยอะไรเลย
นั่นเป็นเพราะเมื่อคุณรู้ภาษาการเขียนโปรแกรมหนึ่งแล้วมันค่อนข้างง่ายที่จะเข้าใจคนอื่น ในขณะที่ไวยากรณ์เครื่องมือและกฎบางอย่างอาจแตกต่างกัน ภาษาแรกที่คุณเรียนรู้นั้นยังยากที่สุด มีสิ่งที่เทียบเท่ากับ“ ถ้า” ในทุก ๆ ภาษาที่คุณจะได้เรียนรู้
เมื่อคุณรู้ภาษาการเขียนโปรแกรมหนึ่งแล้วจะค่อนข้างง่ายที่จะเข้าใจผู้อื่น
เมื่อทำงานภายในองค์กรการฝึกอบรมจำเป็นต้องมีเสมอ นายจ้างจำนวนน้อยมากจะคาดหวังให้คุณรู้ทุกสิ่งในทันทีและด้วยความซื่อสัตย์ - มีจำนวนมากที่เกิดขึ้นในอาชีพของวิศวกรซอฟต์แวร์ คาดหวังว่าคุณจะรู้สึกถึงความลึกและเต็มไปด้วย“ อิมเพรสชั่นซิสเตอร์” เมื่อคุณเริ่มต้น แต่ไม่ต้องกังวลนั่นคือความรู้สึกของทุกคน!
วิธีสอนโค้ดให้ตัวเอง
การสอนตัวเองให้ใช้รหัสเป็นกระบวนการที่ท้าทายและแนวคิดขั้นสูงเช่นการเขียนโปรแกรมเชิงวัตถุอาจเป็นเรื่องยากที่จะแตก โชคดีที่มีวัสดุฟรีจำนวนมากออนไลน์อยู่ เราได้เน้นหลักสูตรที่ดีเยี่ยมสองสามรายการจาก Udemy แล้วและยังมีอีกมากมาย เรามีหลักสูตรสำหรับนักพัฒนา Android ที่ดำเนินการโดย Gary Sims เป็นต้น
นี่คือเครื่องมือที่ยอดเยี่ยมสำหรับการเรียนรู้รหัสตอนนี้:
- หลักสูตรที่ยอดเยี่ยมที่จะสอน Python สำหรับวิทยาศาสตร์ข้อมูล
- ชุดการเข้ารหัส C #
- ชุดฝึกอบรมนักพัฒนาเว็บมืออาชีพเก้าส่วน
และมีหลักสูตรที่ยอดเยี่ยมมากมายในไซต์เช่น SkillShare
ดูสิ่งนี้ด้วย: วิธีเริ่มการพัฒนาแอพ Android สำหรับผู้เริ่มต้นสมบูรณ์ใน 5 ขั้นตอน
ทำงานผ่านสิ่งเหล่านี้ในลักษณะที่เป็นตรรกะและฝึกฝนกับโครงการของคุณเอง มันเป็นเรื่องยากในตอนแรก แต่ถ้าคุณมุ่งเน้นไปที่แง่มุมที่คุณชอบคุณจะไปถึงที่นั่น
ค้นหางานที่ได้รับค่าจ้างในฐานะนักพัฒนาซอฟต์แวร์
ชิ้นส่วนสุดท้ายของปริศนาคือการหางานที่ได้รับค่าจ้างในฐานะผู้รับเหมาพนักงานที่ทำงานเต็มเวลาหรือจากผู้ทำงานอิสระ
การหางานอิสระเป็นเรื่องของการใช้ไซต์รายการงานเว็บไซต์อิสระเช่น PeoplePerHour หรือ UpWork
นอกจากนี้ยังมีไซต์อิสระที่มุ่งเน้นเฉพาะผู้พัฒนาซอฟต์แวร์และวิศวกร เหล่านี้รวมถึง Rent-a-code และแม้แต่ Stack Overflow
มีวิธีอื่นในการสร้างรายได้ด้วยความเชี่ยวชาญในฐานะนักพัฒนาซอฟต์แวร์ด้วย คุณสามารถเป็นนักเขียนได้ (เช่นในที่สุดฉันก็ทำได้) และเขียนบทช่วยสอนสำหรับบล็อกหรือหนังสือสำหรับสำนักพิมพ์ทางเทคนิค คุณสามารถสอนผ่านหลักสูตรออนไลน์ ทำไมไม่สร้างหลักสูตร Skillshare ของคุณเองล่ะ