คุณจึงตัดสินใจเป็นโปรแกรมเมอร์
บางทีคุณอาจสนใจที่จะสร้างสิ่งใหม่
บางทีเงินเดือนก้อนโตอาจดึงดูดคุณ
บางทีคุณเพียงต้องการเปลี่ยนสาขากิจกรรมของคุณ
ไม่ใช่ประเด็น
สิ่งสำคัญคือคุณตัดสินใจ มาเป็นโปรแกรมเมอร์.
จะทำอย่างไรตอนนี้?
และมีหลายวิธี
แรก: ไปมหาวิทยาลัย เพื่อความเชี่ยวชาญด้านไอทีและได้รับการศึกษาเฉพาะทาง วิธีที่ธรรมดาที่สุด ค่อนข้างเชื่อถือได้ ยาวมาก เป็นแนวทางพื้นฐานที่สุด มันได้ผลถ้าคุณยังเรียนจบอยู่ หรือคุณมีเงินพอเลี้ยงตัวเองได้ตั้งแต่ครึ่งแรก (อย่างดีที่สุด ถ้าคุณทำทุกอย่างได้ทันทีและสามารถเริ่มทำงานได้ในปีที่ 2) ถึงสี่ (หากรวมการทำงานและการเรียนเข้าด้วยกัน ไม่ใช่จุดแข็งของคุณ) ปี
สิ่งสำคัญที่ต้องรู้ที่นี่คืออะไร?
- จำเป็นต้องเลือกมหาวิทยาลัยที่เหมาะสม ดูโปรแกรมการฝึกอบรม เรตติ้ง ตัวชี้วัดที่ดีคือการแข่งขันจากมหาวิทยาลัย หากทีมมหาวิทยาลัยติดหนึ่งในสิบอันดับแรกของโปรแกรมโอลิมปิกที่มีขนาดค่อนข้างใหญ่เป็นระยะๆ การเขียนโค้ดที่มหาวิทยาลัยก็จะไม่ถือเป็นพื้นฐาน (แม้ว่าโดยส่วนตัวแล้วคุณอาจไม่สนใจโอลิมปิกเลยก็ตาม) โดยทั่วไปแล้ว กฎสามัญสำนึก: ไม่น่าเป็นไปได้ที่สาขา Bratsk ของ Baikal State University จะทำให้คุณมีพลังเต็มกอง
ตัวอย่างของมหาวิทยาลัยที่ดี: Moscow State University/St.Petersburg State University (แน่นอน), Baumanka (มอสโก), ITMO (เซนต์ปีเตอร์สเบิร์ก), NSU (Novosibirsk) แม้จะมีชื่อเสียงทั้งหมด แต่ก็ค่อนข้างเป็นไปได้ที่จะเข้าร่วมด้วยงบประมาณหากคุณไม่ได้มุ่งเป้าไปที่แผนกชั้นนำ - ไม่ใช่แค่มหาวิทยาลัยเท่านั้น แม้ว่าคุณจะได้รับการฝึกอบรมอย่างครอบคลุมในทุกเรื่อง แต่ก็ยังไม่เพียงพอ เนื่องจากระบบราชการ โปรแกรมการฝึกอบรมจึงมักจะล้าหลังเทรนด์สมัยใหม่อยู่เสมอ อย่างดีที่สุด - สำหรับหนึ่งหรือสองปี ที่แย่ที่สุด - เป็นเวลา 5-10 ปี คุณจะต้องสร้างความแตกต่างด้วยตัวเอง ที่ชัดเจน: หากคุณศึกษาเนื้อหาร่วมกับนักเรียนคนอื่น ๆ แต่ละคนก็จะเป็นคู่แข่งที่เท่าเทียมกันของคุณ หากคุณเลือกที่จะก้าวไปข้างหน้า คุณจะดูดีขึ้นมากในตลาด
- หางานให้เร็วที่สุด ฉันเริ่มทำงานในปีที่สอง เมื่อจบมหาวิทยาลัย ฉันก็เป็นนักพัฒนาระดับกลางอยู่แล้ว และไม่ใช่รุ่นน้องที่ถ่อมตัวและไม่มีประสบการณ์ ฉันคิดว่าเห็นได้ชัดว่าหลังจากสำเร็จการศึกษาจากวิทยาลัย การหารายได้ 100 แสนก็น่าพอใจมากกว่าการหารายได้ 30 จะบรรลุเป้าหมายนี้ได้อย่างไร? ประการแรก ดูจุด A และ B ประการที่สอง ไปที่งานมีตติ้ง เทศกาล การประชุม งานมหกรรมจัดหางาน ติดตามตลาดและพยายามหางานพาร์ทไทม์รุ่นน้อง/เด็กฝึกงานในบริษัทใดๆ ก็ตามที่คุณมีความเหมาะสมเป็นอย่างน้อย อย่ากลัวการประชุมแบบเสียเงิน เพราะมักจะเสนอส่วนลดดีๆ ให้กับนักศึกษา
หากคุณปฏิบัติตามประเด็นเหล่านี้ทั้งหมด เมื่อถึงเวลาที่คุณได้รับประกาศนียบัตร คุณสามารถเป็นผู้เชี่ยวชาญที่ดีมากด้วยประสบการณ์การทำงานและความรู้พื้นฐานมากมาย ซึ่งผู้ที่เรียนรู้ด้วยตนเองมักละเลยเนื่องจากลักษณะที่ไม่ได้ใช้ เปลือกโลกสามารถช่วยได้หากคุณเดินทางไปต่างประเทศ: พวกเขาดูสิ่งนี้ค่อนข้างบ่อยที่นั่น
ถ้าไม่ปฏิบัติตาม...ก็ทำคะแนนได้ตามกระแส คัดลอก เตรียมสอบข้ามคืน แต่คุณคิดว่าคุณจะแข่งขันได้ขนาดไหน? แน่นอน ฉันไม่ได้บอกว่าคุณต้องได้เกรด A ในทุกสิ่ง คุณเพียงแค่ต้องได้รับความรู้ ใช้สามัญสำนึก. ศึกษาสิ่งที่น่าสนใจและเป็นประโยชน์และไม่สนเรื่องเกรด
สิ่งสำคัญไม่ใช่สิ่งที่พวกเขาพยายามจะผลักดันคุณ สิ่งสำคัญคือสิ่งที่น่าสนใจและเกี่ยวข้อง
-
นอกจากนี้ วิธีที่สอง: หลักสูตรการเขียนโปรแกรม. อินเทอร์เน็ตเต็มไปด้วยข้อเสนอที่จะทำให้คุณเป็นรุ่นน้องในชั้นเรียนเพียง 3 เดือน แค่มีพอร์ตโฟลิโอก็จะช่วยคุณหางานด้วย แค่เดือนละ 10 ใช่ครับ
บางทีนี่อาจใช้ได้ผลสำหรับบางคน แต่เป็น IMHO ล้วนๆ: นี่เป็นเรื่องไร้สาระโดยสิ้นเชิง อย่าเสียเวลาและเงินของคุณ และนั่นคือเหตุผล:
คนที่ห่างไกลจากไอทีจะไม่สามารถเข้าใจถึงลักษณะเฉพาะของวิชาชีพได้ภายใน 3 เดือน ไม่มีทางเลย. มีข้อมูลมากเกินไปที่จะดูดซับ มากเกินไปที่จะเข้าใจ และยิ่งกว่านั้น มากเกินไปที่จะคุ้นเคย
แล้วพวกเขาจะขายอะไรให้คุณ? พวกเขาจะขาย "ทักษะทางกล" ให้คุณ พวกเขาจะแสดงให้คุณเห็นว่าคุณต้องเขียนอะไรเพื่อให้ได้ผลลัพธ์นี้โดยไม่ต้องเจาะลึกรายละเอียดมากนัก ด้วยคำแนะนำโดยละเอียดและความช่วยเหลือจากครู คุณจะเขียนใบสมัครบางประเภท หนึ่ง สูงสุดสอง นี่คือผลงาน และช่วยในการหางานคือการส่งตำแหน่งงานว่างให้กับรุ่นน้องจากบริษัทใหญ่ๆที่ไม่น่าจะได้รับการสัมภาษณ์
ทำไมจึงเป็นเช่นนี้? ง่ายมาก: มันสำคัญมากสำหรับโปรแกรมเมอร์ที่จะต้องคิดเชิงนามธรรม โปรแกรมเมอร์แก้ปัญหาที่สามารถแก้ไขได้นับพันล้านวิธี และภารกิจหลักคือเลือกหนึ่งสิ่งที่ถูกต้องที่สุดจากจำนวนหลายพันล้านและนำไปปฏิบัติ การสร้างโปรเจ็กต์หนึ่งหรือสองโปรเจ็กต์ตามคำแนะนำจะทำให้คุณมีความรู้เกี่ยวกับภาษาการเขียนโปรแกรม แต่จะไม่สอนวิธีแก้ปัญหาเชิงนามธรรมให้คุณ หากต้องการเปรียบเทียบ: ลองจินตนาการว่าพวกเขาสัญญาว่าจะสอนให้คุณนำทาง พาคุณไปตามเส้นทางเดินป่าง่ายๆ สองสามเส้นทาง แล้วบอกว่าคุณพร้อมที่จะพิชิตไทกาในฤดูหนาวเพียงลำพัง คุณได้รับการสอนให้ใช้เข็มทิศและจุดไฟโดยไม่ใช้ไม้ขีด
สรุป: อย่าเชื่อคนที่สัญญาว่าจะ "ม้วน" คุณในเวลาอันสั้น หากเป็นไปได้ ทุกคนคงเป็นโปรแกรมเมอร์ไปนานแล้ว
ซ้าย: สิ่งที่คุณจะได้รับการสอน ขวา: คุณต้องการอะไรจากที่ทำงาน?
-
วิธีที่สาม - เส้นทางที่คนส่วนใหญ่เลือก การศึกษาด้วยตนเอง.
วิธีที่ยากที่สุด แต่อาจเป็นวิธีที่สูงส่งที่สุด มาดูรายละเอียดเพิ่มเติมกันดีกว่า
คุณจึงตัดสินใจเป็นโปรแกรมเมอร์ จะเริ่มตรงไหน?
ก่อนอื่นคุณต้องตอบคำถามตัวเองก่อน: ทำไมคุณถึงต้องการสิ่งนี้? ถ้าคำตอบคือ “ก็แน่นอนว่ามันไม่น่าสนใจเป็นพิเศษแต่ก็จ่ายเยอะ”แล้วคุณก็สามารถหยุดตรงนั้นได้ นี่ไม่ใช่สถานที่สำหรับคุณ แม้ว่ากำลังใจของคุณจะเพียงพอที่จะกรองข้อมูลจำนวนมาก เขียนโค้ดหลายพันบรรทัด ทนต่อความล้มเหลวหลายร้อยครั้ง และยังคงได้งานทำ ด้วยเหตุนี้ หากปราศจากความรักในอาชีพนี้ สิ่งนี้จะนำไปสู่ความเหนื่อยหน่ายทางอารมณ์เท่านั้น การเขียนโปรแกรมต้องใช้ความพยายามทางสติปัญญาอย่างมาก และหากความพยายามเหล่านี้ไม่ได้ถูกกระตุ้นให้อารมณ์กลับมาในรูปแบบของความพึงพอใจต่อปัญหาที่ได้รับการแก้ไข ไม่ช้าก็เร็วสมองก็จะบ้าคลั่งและกีดกันคุณจากความสามารถในการแก้ไขสิ่งใด ๆ เลย . ไม่ใช่สถานการณ์ที่น่าพอใจที่สุด
หากคุณแน่ใจว่าคุณสนใจสิ่งนี้คุณสามารถตัดสินใจได้เฉพาะเจาะจงว่าคุณต้องการทำอะไรกันแน่ หากคุณไม่รู้ว่าโปรแกรมเมอร์มีความแตกต่างกันอย่างไร Google ช่วยคุณได้
ฉันจะเขียนคำแนะนำชิ้นแรกทันที ดังนั้นอย่าลืม: เรียนภาษาอังกฤษ จำเป็นต้องมีภาษาอังกฤษ คุณไม่สามารถไปไหนได้หากไม่มีภาษาอังกฤษ ไม่มีทาง. หากไม่มีภาษาอังกฤษ คุณจะไม่สามารถเป็นโปรแกรมเมอร์ธรรมดาได้ แค่นั้นแหละ.
ต่อไปขอแนะนำให้จัดทำแผนงาน: แผนงานที่คุณจะพัฒนา ศึกษาข้อมูลเฉพาะ ดูตำแหน่งงานว่างในสาขาเฉพาะของคุณ ค้นหาอย่างเผินๆ ว่ามีการใช้เทคโนโลยีประเภทใดบ้าง
ตัวอย่างแผนการทำงานสำหรับโปรแกรมเมอร์แบ็กเอนด์ (ไม่ใช่สำหรับทุกคน แน่นอนว่านี่เป็นเพียงหนึ่งในตัวเลือกที่เป็นไปได้):
- พื้นฐานของ html/css
- หลาม พื้นฐาน
- การเขียนโปรแกรมเครือข่าย ปฏิสัมพันธ์ระหว่างหลามและเว็บ
- กรอบการพัฒนา จังโก้ กระติกน้ำ (หมายเหตุ: เพียงเพื่อให้เข้าใจว่าเป็น "django" และ "flask" ประเภทใด คุณต้องดูตำแหน่งงานว่างและอ่านสิ่งที่จำเป็นต้องมี)
- การศึกษางูหลามแบบเจาะลึก
- พื้นฐานของ js
มัน มากฉันขอย้ำอีกครั้ง มาก แผนคร่าวๆ แต่ละประเด็นมีขนาดใหญ่ในตัวเอง และไม่รวมหัวข้อต่างๆ มากมาย (เช่น การทดสอบโค้ด) แต่อย่างน้อยนี่คือการจัดระบบความรู้บางอย่างที่จะช่วยให้คุณไม่สับสนเกี่ยวกับสิ่งที่คุณรู้และสิ่งที่คุณไม่รู้ ขณะที่เราศึกษา สิ่งที่ขาดหายไปจะชัดเจนขึ้น และจะมีการเสริมแผนงานนี้ด้วย
ถัดไป: ค้นหาสื่อที่คุณจะใช้ในการศึกษา ตัวเลือกหลักที่เป็นไปได้:
- หลักสูตรออนไลน์ ไม่ใช่หลักสูตรที่ "มิถุนายนใน 3 วัน" แต่เป็นหลักสูตรที่สอนเรื่องใดเรื่องหนึ่งโดยเฉพาะ บ่อยครั้งที่หลักสูตรเหล่านี้ฟรี ตัวอย่างไซต์ที่มีหลักสูตรปกติ:
สเตปิก ,coursera . - หนังสือเรียนออนไลน์ มีฟรีแชร์แวร์จ่ายเงิน คุณจะคิดออกเองว่าจะจ่ายที่ไหนและไม่ควรจ่ายที่ไหน ตัวอย่าง:
htmlacademy ,Learn.javascript.ru ,หนังสือจังโก้ . - หนังสือ. มีมากมายหลายตัว หากคุณเลือกไม่ได้ คำแนะนำสามประการ: พยายามอ่านหนังสือใหม่ เพราะ... ข้อมูลล้าสมัยเร็วมาก สำนักพิมพ์ O'Reilly มีคุณภาพและการนำเสนอในระดับค่อนข้างสูง ถ้าเป็นไปได้ให้อ่านเป็นภาษาอังกฤษ
- การพบปะ/การประชุม/การบรรยาย ไม่มีประโยชน์ในแง่ของความสมบูรณ์ของข้อมูล แต่มีประโยชน์อย่างยิ่งในแง่ของโอกาสในการสื่อสารกับเพื่อนร่วมงาน ถามคำถามที่เกี่ยวข้อง และทำความรู้จักกับเพื่อนใหม่ บางทีอาจหาที่ว่างก็ได้
- Google. หลายคนดูถูกดูแคลน แต่ความสามารถในการค้นหาคำตอบสำหรับคำถามบางข้อนั้นสำคัญมาก อย่าลังเลที่จะใช้ Google สิ่งที่คุณไม่เข้าใจ แม้แต่ผู้อาวุโสที่ช่ำชองก็ทำเช่นนี้ ความสามารถในการค้นหาข้อมูลเกี่ยวกับบางสิ่งบางอย่างอย่างรวดเร็วนั้นโดยพื้นฐานแล้วเหมือนกับการรู้สิ่งนั้น
เอาล่ะ เราได้ตัดสินใจเกี่ยวกับแหล่งที่มาของข้อมูลแล้ว จะทำงานร่วมกับพวกเขาได้อย่างไร?
- อ่าน/ฟังอย่างมีวิจารณญาณ อย่าอ่านเมื่อคุณเหนื่อย เจาะลึกความหมายอย่าข้ามประเด็นที่เห็นชัดเจน บ่อยครั้งที่การเปลี่ยนจากสิ่งที่ชัดเจนไปสู่สิ่งที่ไม่สามารถเข้าใจได้นั้นเกิดขึ้นอย่างรวดเร็ว รู้สึกอิสระที่จะกลับไปอ่านอีกครั้ง
- จดบันทึก. ประการแรก คุณจะเข้าใจบันทึกย่อของคุณได้ง่ายขึ้นเมื่อมีข้อมูลจำนวนมาก ประการที่สอง วิธีนี้ทำให้ข้อมูลถูกดูดซึมได้ดีขึ้น
- ทำงานทั้งหมดที่แหล่งข้อมูลแนะนำให้คุณ แม้ว่าจะไม่เป็นเช่นนั้นก็ตาม ทำ ทั้งหมด งานที่แหล่งที่มาเสนอให้คุณ แม้แต่สิ่งที่ดูเหมือนเรียบง่าย โดยเฉพาะสิ่งที่ดูซับซ้อนเกินไป หากติดขัดขอความช่วยเหลือได้ที่
สแต็คโอเวอร์โฟลว์ อย่างน้อยก็ผ่านทาง Google แปล การมอบหมายงานเขียนขึ้นด้วยเหตุผลซึ่งจำเป็นสำหรับการดูดซึมเนื้อหาที่ถูกต้อง - คิดงานด้วยตัวเองและทำมันด้วย ตามหลักการแล้ว ควรมีการปฏิบัติมากกว่าทฤษฎี ยิ่งคุณยึดวัสดุไว้แน่นมากเท่าไร คุณก็จะมีโอกาสไม่ลืมมันมากขึ้นในหนึ่งเดือนเท่านั้น
- ไม่บังคับ: สร้างแบบทดสอบให้ตัวเองขณะอ่าน เขียนคำถามที่ยุ่งยากลงในแหล่งแยกต่างหาก และหลังจากผ่านไปหนึ่งสัปดาห์หรือหนึ่งเดือน ให้อ่านและพยายามตอบ หากไม่ได้ผล ให้ลองอีกครั้ง
และเราทำซ้ำ 5 ประเด็นนี้สำหรับแต่ละเทคโนโลยีที่ศึกษา ด้วยวิธีนี้เท่านั้น (ด้วยการศึกษาทฤษฎีอย่างละเอียดและการฝึกฝนที่ครอบคลุม) คุณจะพัฒนาฐานความรู้คุณภาพสูงซึ่งคุณสามารถเป็นมืออาชีพได้
และดูเหมือนว่าทุกอย่างจะง่ายดาย เราเรียนรู้เทคโนโลยีทีละอย่าง เข้าใจเซน และเริ่มทำงาน มันก็เป็นเช่นนั้นแต่ไม่ใช่
คนส่วนใหญ่ที่เรียนการเขียนโปรแกรมจะเป็นดังนี้:
รูปภาพถูกขโมยโดยสุจริต
และที่นี่คุณต้องดูรายละเอียดเพิ่มเติมแต่ละขั้นตอน:
เริ่มต้น: คุณไม่มีความรู้เลย จุดออกเดินทาง. ยังไม่มีอะไรชัดเจน แต่น่าจะน่าสนใจอย่างยิ่ง เส้นทางเริ่มขึ้นเนินแต่เบาๆ ในไม่ช้าคุณจะปีนขึ้นไป
จุดสูงสุดแห่งความโง่เขลา: “ไชโย คุณได้สำเร็จหลักสูตรสองสามหลักสูตรแรกของคุณแล้ว! ทุกอย่างได้ผล!” ในระยะนี้ ความอิ่มเอมใจจากความสำเร็จครั้งแรกจะทำให้ดวงตาบอดลง ดูเหมือนว่าความสำเร็จใกล้เข้ามาแล้ว แม้ว่าคุณจะยังอยู่ที่จุดเริ่มต้นของการเดินทางก็ตาม และในขณะที่มุ่งมั่นเพื่อความสำเร็จนี้ คุณอาจไม่สังเกตว่าการตกลงไปในหลุมอย่างรวดเร็วจะเริ่มต้นขึ้นอย่างไร และชื่อของหลุมนี้:
หุบเขาแห่งความสิ้นหวัง: คุณจบหลักสูตรพื้นฐานแล้ว อ่านหนังสือบางเล่ม และตัดสินใจที่จะเริ่มเขียนบางอย่างของคุณเอง และทันใดนั้น ไม่ทำงาน, ไม่เป็นผล. ดูเหมือนว่าทุกอย่างจะรู้แล้ว แต่จะรวมเข้าด้วยกันอย่างไรจึงจะได้ผลไม่ชัดเจน "ฉันไม่รู้อะไรเลย", “ฉันจะไม่ทำสำเร็จ”. ในขั้นตอนนี้หลายคนยอมแพ้ ความจริงแล้วความรู้มีอยู่จริงและไม่ได้หายไปไหน ข้อกำหนดและการสนับสนุนที่ชัดเจนก็หายไป การเขียนโปรแกรมจริงได้เริ่มขึ้นแล้ว เมื่อต้องเคลื่อนที่ในพื้นที่ที่มีเป้าหมายแต่ไม่มีขั้นกลาง หลายๆ คนจะตกอยู่ในอาการมึนงง แต่ในความเป็นจริงแล้ว นี่เป็นเพียงอีกขั้นตอนหนึ่งของการเรียนรู้ - แม้ว่าทุกอย่างจะออกมาเป็นสิบครั้งแรกด้วยความพยายามมหาศาลและน่าเกลียดก็ตาม สิ่งสำคัญคือต้องทำให้เรื่องเสร็จซ้ำแล้วซ้ำอีก อย่างน้อยก็อย่างใด. ครั้งที่สิบเอ็ดทุกอย่างจะง่ายขึ้น ในวันที่ห้าสิบวิธีแก้ปัญหาจะปรากฏขึ้นซึ่งดูสวยงามสำหรับคุณ วันที่ร้อยจะไม่น่ากลัวอีกต่อไป แล้วมันก็จะมา
ความลาดชันแห่งการตรัสรู้: ในขั้นตอนนี้ ขอบเขตของความรู้และความไม่รู้ของคุณปรากฏอย่างชัดเจน ความไม่รู้ไม่น่ากลัวอีกต่อไป มีความเข้าใจว่าจะเอาชนะมันได้อย่างไร การเคลื่อนย้ายในอวกาศจะง่ายขึ้นโดยไม่ต้องตัดสินใจ นี่คือเส้นชัยแล้ว เมื่อตระหนักถึงสิ่งที่คุณขาดในฐานะผู้เชี่ยวชาญ คุณจะเติมเต็มและรวบรวมสิ่งที่จำเป็นและเข้าสู่สนามด้วยจิตวิญญาณที่สงบ
ที่ราบแห่งเสถียรภาพ: ยินดีด้วย. นี่คือเส้นชัย คุณเป็นผู้เชี่ยวชาญ คุณทำงานได้ไม่หลงทางเมื่อต้องเผชิญกับเทคโนโลยีที่ไม่คุ้นเคย ปัญหาแทบทุกอย่างจะผ่านไปได้ถ้าคุณมีความพยายามมากพอ และถึงแม้ว่านี่คือเส้นชัย แต่มันก็เป็นเพียงจุดเริ่มต้นของการเดินทางที่ยิ่งใหญ่กว่าเท่านั้น
เส้นทางของโปรแกรมเมอร์
ขอให้โชคดีกับสิ่งนี้!
วรรณกรรมสำหรับการอ่านทางเลือก:
เกี่ยวกับการเป็นโปรแกรมเมอร์และเอฟเฟกต์ Dunning-Kruger:
วิธีฮาร์ดคอร์ในการเป็นโปรแกรมเมอร์ใน 9 เดือน (ไม่เหมาะสำหรับทุกคน):
รายชื่อโครงการที่คุณสามารถดำเนินการได้อย่างอิสระระหว่างการศึกษา:
แรงจูงใจเพิ่มเติมเพียงเล็กน้อย:
ที่มา: will.com