JavaRush /จาวาบล็อก /Random-TH /ภาษาเดียวที่จะปกครองพวกเขาทั้งหมด

ภาษาเดียวที่จะปกครองพวกเขาทั้งหมด

เผยแพร่ในกลุ่ม
มีภาษาที่อยู่ใต้โค้ดทุกชั้น ในภาษาการเขียนโปรแกรมใดๆ และเขารอที่จะถูกค้นพบ... การแปลและการดัดแปลงบทความโดย Eric Giroisจากชุมชนการเขียนโปรแกรม Better บน Medium ภาษาเดียวที่จะปกครองพวกเขาทั้งหมด - 1ตอนที่ฉันเขียนบทความนี้ จำนวนคำค้นหาในรูปแบบของ “ภาษาโปรแกรมอะไรที่ต้องเรียนรู้” เกิน 517 ล้าน (!) แต่ละหน้าจากรายการผลการค้นหาจะบอกถึงข้อดีของภาษาหนึ่งๆ เหนือหน้าอื่นๆ และใน 90% ของกรณี คุณจะได้รับการแนะนำสิ่งเดียวกัน เช่น Python, JavaSctipt (หรือบางอย่างจากการจัดอันดับที่เชื่อถือได้ 3 อันดับแรกของภาษาต่างๆ คะแนนปัจจุบันสำหรับเดือนกรกฎาคมอยู่ที่นี่ ;) ฉันขอกล้าและไม่เห็นด้วยอย่างเป็นทางการกับผลลัพธ์ทั้งหมด 517 ล้านรายการ และบอกว่าภาษาการเขียนโปรแกรมแรกที่คุณควรเรียนรู้คือตรรกะ แค่รู้วิธีเขียนโค้ดยังไม่พอ ตลาดเต็มไปด้วยผู้สำเร็จการศึกษาจากหลักสูตรต่างๆ มากมาย ซึ่งเป็นเหตุผลว่าทำไมตำแหน่ง Junior Developer จึงหมดสิ้นไป เพื่อให้ประสบความสำเร็จในความเป็นจริงเหล่านี้ คุณไม่เพียงแต่ต้องเขียนโค้ดเท่านั้น แต่ยังต้องมีความคิดเชิงตรรกะด้วย

บทเรียนวิทยาศาสตร์คอมพิวเตอร์ครั้งแรกของฉัน

ความคุ้นเคยครั้งแรกของฉันกับวิทยาการคอมพิวเตอร์เกิดขึ้นในชั้นเรียนวิชาเลือกในชั้นประถมศึกษาปีที่ 10 ฉันไปชั้นเรียนและรู้สึกมีความสุข มีกล่องไอศกรีมและน้ำเชื่อมจำนวนหนึ่งอยู่ในห้องเรียน เมื่อเรานั่งลง ครูประกาศว่า “วันนี้เราจะทำวันอาทิตย์ ( ของหวานที่ทำจากไอศกรีมและน้ำเชื่อม - บันทึกของบรรณาธิการ ) แต่มีเงื่อนไขข้อหนึ่ง: คุณต้องจดคำแนะนำในการเตรียมของหวานให้ชัดเจน แล้วฉันจะปฏิบัติตาม” “ ไม่มีคำถาม ” ฉันคิดว่า “ มันจะง่าย ” ในเวลาเพียงไม่กี่นาที ฉันจดคำแนะนำที่สมบูรณ์แบบ: ใส่ไอศกรีมราสเบอร์รี่สามลูกลงในถ้วย เทน้ำเชื่อมช็อคโกแลตสองช้อนโต๊ะลงในถ้วยนั้น เพิ่มวิปครีมลงในถ้วย เพิ่มโรยและเชอร์รี่ที่ด้านบนของวันอาทิตย์ จากนั้นฉันก็ ครูซึ่งทำหน้าที่เป็น “คอมพิวเตอร์” ปฏิบัติตาม คำแนะนำทุกประการ เธอแสดงได้มีฤทธิ์กัดกร่อนมากที่สุดเท่าที่ฉันเคยเห็นมา เธอเริ่ม "โจมตี" กล่องกระดาษแข็งที่ทำจากไอศกรีมอย่างโกรธเกรี้ยว แต่ฝาที่ทนทานยังคงไม่เป็นอันตราย “เอาล่ะ ถอดฝาออกก่อน” ฉันพูดโดยหวังว่าจะได้ของหวานเร็วๆ “คุณเขียนคำแนะนำไม่ถูกต้องให้ฉัน โชคไม่ดีที่ฉันไม่สามารถจัดวันอาทิตย์ถัดไปให้คุณได้!”

กรอไปข้างหน้าเพื่อพยายาม # 2

เปิดกล่องไอศกรีมราสเบอร์รี่โดยถอดฝาออก วางไอศกรีมราสเบอร์รี่สามลูกลงในถ้วย เปิดน้ำเชื่อมช็อคโกแลตแล้วเติมสองช้อนโต๊ะลงในถ้วยนั้น เปิดวิปครีมแล้วเติมบางส่วนลงในถ้วย เพิ่มโรยหน้าและเชอร์รี่ลงไปด้านบน ของวันอาทิตย์ฉันมั่นใจว่าฉันได้ตอกย้ำสิ่งนี้ ครั้งหนึ่ง ครูเปิดฝาออก ตักไอศกรีมสามลูกใส่ในถ้วย ในที่สุดวันอาทิตย์ของฉันก็ใกล้จะพร้อมแล้ว! จากนั้นเธอก็เปิดน้ำเชื่อมช็อกโกแลตแล้วใส่สองช้อนโต๊ะลงในถ้วย แต่ไม่ใช่น้ำเชื่อมสองช้อน - แค่ช้อนโดยไม่มีมัน! คำแนะนำของฉันกลับไม่แม่นยำเพียงพออีกครั้ง เมื่อทุกอย่างจบลง ฉันได้รับไอศกรีมหนึ่งถ้วย ช้อนโลหะสองช้อน วิปครีมหนึ่งตัน และโรยหน้าประมาณ 300 สกู๊ป ดูเหมือนว่าในขณะนั้นทุกอย่างชัดเจนสำหรับฉัน: คอมพิวเตอร์เป็นเอนทิตีที่ถูกชี้นำโดยตรรกะที่บริสุทธิ์ เขาไม่เข้าใจบริบทและไม่ตั้งสมมติฐาน เขาปฏิบัติตามชุดคำสั่งที่เข้มงวดและปฏิบัติตามจดหมาย คำแนะนำขั้นสุดท้ายในการทำวันอาทิตย์นั้นยืดเยื้อมาก แต่ก็จำเป็น: ​​หากยังไม่ได้เปิด ให้เปิดบรรจุภัณฑ์ที่มีรายการต่อไปนี้ทั้งหมด: ไอศกรีมราสเบอร์รี่, น้ำเชื่อมช็อคโกแลต, ท็อปปิ้ง และวิปปิ้งครีม นำถ้วยจาก ชั้นวางและวางไว้ตรงหน้าคุณ ตักไอศกรีมแล้วตักไอศกรีมสามลูกใส่ถ้วยทีละครั้ง เมื่อทุกอย่างเสร็จแล้วให้วางช้อนลงบนโต๊ะ หยิบช้อนน้ำเชื่อมช็อกโกแลตมาถ้ายังไม่มี จากนั้นนำน้ำเชื่อมช็อกโกแลตหนึ่งช้อนเต็มแล้วเทลงในถ้วย ดำเนินการนี้สองครั้ง เมื่อเสร็จแล้ววางน้ำเชื่อมช็อกโกแลตไว้บนชั้นวาง พลิกขวดวิปครีมคว่ำลงแล้วกดปุ่มใกล้กับพวยขวดด้วยนิ้วของคุณเป็นเวลาสามวินาที จากนั้นจึงคืนขวดกลับสู่ตำแหน่งเดิม โรยโรย 40 เม็ดลงบนไอศกรีมและน้ำเชื่อมช็อกโกแลตในถ้วย จากนั้นนำสปริงเกอร์เชคเกอร์กลับตำแหน่งเดิม นำเชอร์รี่หนึ่งลูกออกจากขวดเชอร์รี่และวางไว้อย่างระมัดระวังบนวันอาทิตย์ แจกช้อนวันอาทิตย์และของหวานให้กับนักเรียน คำสั่งสุดท้ายในคำแนะนำมีความสำคัญมาก เพราะถ้าไม่มีคำสั่งนี้ ครูก็เริ่มทานอาหารวันอาทิตย์ด้วยตัวเอง นี่คือความเป็นจริงของการเขียนโปรแกรม - คุณต้องให้คำแนะนำที่แม่นยำที่สุดแก่คอมพิวเตอร์ โดยพื้นฐานแล้วภาษาการเขียนโปรแกรมทั้งหมดประกอบด้วยคำสั่ง

อาชีพในการพัฒนาซอฟต์แวร์

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

วิธีพัฒนาการคิดเชิงตรรกะ

ตรรกะและการคิดเชิงวิพากษ์สามารถและควรได้รับการพัฒนา ฉันแนะนำให้คุณใส่ใจกับสิ่งต่อไปนี้:

1. ศึกษาประสิทธิภาพของอัลกอริทึมในสภาพแวดล้อมรันไทม์

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

2. เรียนรู้โครงสร้างข้อมูล

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

3. อ่าน/ดู/ฟัง

เพื่อทำความเข้าใจพื้นฐาน อ่านหนังสือเกี่ยวกับแนวคิดการออกแบบ แนวทางปฏิบัติที่ดีที่สุด และสไตล์การเขียนโค้ด ผู้ที่กำลังเรียนรู้การเขียนโปรแกรมควรอ่าน:
  • “เทคนิคการออกแบบเชิงวัตถุ รูปแบบการออกแบบ” (E. Gamma R. Helm R. Johnson J. Vlissides)
  • “การปรับโครงสร้างใหม่ การปรับปรุงโค้ดที่มีอยู่” (M. Fowler)
  • “รหัสที่สมบูรณ์แบบ” (เอส. แมคคอนเนลล์)
  • “รหัสที่สะอาด” (บี. มาร์ติน)
  • “โปรแกรมเมอร์เชิงปฏิบัติ” (อี. ฮันท์)
  • “อัลกอริทึม: การสร้างและการวิเคราะห์” (T. Cormen, C. Leiserson, R. Rivest และ K. Stein)

4. ฝึกฝน!

คุณไม่สามารถเป็นนักเล่นเชลโลที่ดีได้หากไม่ฝึกฝนเป็นเวลาหลายร้อยชั่วโมง การฝึกฝนทุกวันเป็นกุญแจสู่ความสำเร็จในการเขียนโปรแกรม ปัจจุบันมีแพลตฟอร์มออนไลน์มากมายที่คุณสามารถหางานหลายพันรายการที่ต้องมีความเข้าใจเกี่ยวกับโครงสร้างข้อมูลและอัลกอริธึม (HackerRank, LeetCode, CodeWars และอื่นๆ)
ปัญหาการเขียนโปรแกรม Java ตั้งแต่แบบง่ายไปจนถึงซับซ้อน มีอยู่ใน JavaRush ในหลักสูตรมีมากกว่า 1,200 รายการ และยังมีมินิโปรเจ็กต์และเกม ภารกิจ ด้วย
สำหรับฉัน วิธีที่มีประสิทธิภาพที่สุดในการทำงานกับแพลตฟอร์มดังกล่าวคือการคิดถึงแนวทางแก้ไขปัญหาที่ไม่เหมือนใคร และโพสต์วิธีแก้ปัญหาของคุณบน Github จากนั้นดูวิธีแก้ปัญหายอดนิยมสำหรับปัญหาที่คล้ายกันและวิเคราะห์แนวทางของโปรแกรมเมอร์คนอื่นๆ สิ่งนี้นำเราไปสู่เคล็ดลับสุดท้ายของเรา:

5.วิเคราะห์โค้ดของผู้อื่น

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

บทสรุป

คำแนะนำส่วนตัว: อย่าละอายใจกับสิ่งที่คุณ (ยัง) ไม่รู้ ตามที่ระบุไว้ข้างต้น อุตสาหกรรมนี้มีขนาดใหญ่ จำนวนภาษาที่น่าทึ่ง และมีข้อมูลมากมาย ต้องใช้เวลาและความพยายามอย่างมากในการสร้างแนวคิดทั่วไปเกี่ยวกับการเขียนโปรแกรมเป็นอย่างน้อยเพื่อให้ได้ประสบการณ์และมากกว่านั้นหลายเท่าในการเป็นมืออาชีพอย่างแท้จริง สำเร็จเมื่อไหร่จะแจ้งให้ทราบครับ :)
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION