ภาษาการเขียนโปรแกรมใดที่คุณควรเรียนรู้เป็นอันดับแรกในปี 2020 ʇdıɹɔsɐʌɐɾ: ɹǝʍsuɐ

เส้นทางสู่การเรียนรู้โปรแกรมของคนส่วนใหญ่เริ่มต้นด้วยการค้นหา Google ในช่วงดึกเพียงครั้งเดียว

โดยปกติจะมีลักษณะเช่น“ เรียนรู้ ______”

แต่พวกเขาตัดสินใจได้อย่างไรว่าจะค้นหาภาษาใด

“ พวกเขามักจะพูดเล่น ๆ เกี่ยวกับ Java ใน Silicon Valley ฉันเดาว่าฉันควรจะเรียนรู้สิ่งนั้น”

หรือ:

“ ฮัสเคลล์. ร้อนมากตอนนี้ Haskell”

หรือ:

“ โกเฟอร์ตัวนั้นช่างน่ารักเสียจริง”

แล้วก็มีพวกเราที่เหลือ เราอาจจะค้นหาสิ่งที่ต้องการ:

“ ภาษาโปรแกรมภาษาใดที่ฉันควรเรียนรู้ก่อน”

มีคำถามเพียงไม่กี่ข้อที่ถามบ่อยมากเพื่อให้ได้รับการรักษาแบบอินโฟกราฟิก แต่นี่คือหนึ่งในนั้น:

การตัดสินใจเลือกภาษาโปรแกรมแรกของคุณอาจเป็นกระบวนการที่สนุกเช่นหนึ่งใน“ คุณเป็นตัวละคร Quentin Tarantino ตัวไหน” แบบทดสอบบุคลิกภาพ

แต่ก่อนที่คุณจะหนีไปเรียนรู้ Ruby เพราะคุณชอบเล่นกับ Play-Doh ตั้งแต่ยังเป็นเด็กฉันขอเตือนคุณ: เงินเดิมพันค่อนข้างสูงที่นี่

คุณจะต้องใช้เวลาฝึกฝนหลายร้อยชั่วโมงกว่าจะสามารถใช้ภาษาโปรแกรมแรกได้จากระยะไกล

ดังนั้นคุณควรพิจารณาปัจจัยต่อไปนี้:

  • ตลาดงานสำหรับภาษา
  • โอกาสในระยะยาวสำหรับภาษา
  • การเรียนรู้ภาษานั้นง่ายเพียงใด
  • คุณสามารถสร้างโครงการอะไรได้ในขณะที่คุณเรียนรู้ (และแบ่งปันกับเพื่อน ๆ เพื่อให้คุณมีแรงบันดาลใจอยู่เสมอ)

ทุกปีจะมีภาษาการเขียนโปรแกรมใหม่ ๆ และเอกสารทางวิชาการใหม่ ๆ ด้วย และเว็บการ์ตูนใหม่.

อย่างจริงจัง. ตรวจสอบอัญมณีนี้จากเดือนที่แล้ว:

เมื่อพูดถึงการเลือกภาษาการเขียนโปรแกรมแรกไม่มีตัวเลือกให้ขาดแคลน เพื่อ จำกัด ขอบเขตให้แคบลงนี่คือการค้นหาโดยทั่วไปของ Google ที่เกี่ยวข้องกับการเขียนโปรแกรมการเรียนรู้ในช่วง 12 ปีที่ผ่านมา:

Java มีขึ้น ๆ ลง ๆ

Python ค่อยๆเพิ่มขึ้นจนกลายเป็นตัวเลือกที่ได้รับความนิยมมากที่สุด

แต่ซ่อนตัวอยู่ด้านล่างนี้คือเครื่องยนต์เล็ก ๆ ที่สามารถเลือกได้อย่างช้าๆได้รับความนิยมในช่วงไม่กี่ปีที่ผ่านมา และเครื่องยนต์นั้นคือ JavaScript

ก่อนที่ฉันจะพูดถึงภาษาโปรแกรมเหล่านี้ให้ฉันชี้แจง:

  • ฉันไม่ได้เถียงว่าภาษาใดภาษาหนึ่งดีกว่าภาษาอื่น
  • ฉันยอมรับว่าในที่สุดนักพัฒนาควรจะเรียนรู้มากกว่าหนึ่งภาษา
  • ฉันเถียงว่าก่อนอื่นพวกเขาควรเรียนภาษาให้ดี และ - อย่างที่คุณคาดเดาได้จากข้อความกลับหัวในบรรทัดแรกของฉันภาษานั้นควรเป็น JavaScript

เริ่มต้นสิ่งต่างๆด้วยการสำรวจว่าปัจจุบันมีการสอนการเขียนโปรแกรมในโรงเรียนอย่างไร

วิทยาการคอมพิวเตอร์ 101

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

แน่นอนอย่างที่คุณอาจเคยได้ยินในตอนนี้:

“ การศึกษาด้านวิทยาการคอมพิวเตอร์ไม่สามารถทำให้ใครเป็นโปรแกรมเมอร์ผู้เชี่ยวชาญได้มากไปกว่าการเรียนพู่กันและสีสามารถทำให้ใครเป็นจิตรกรผู้เชี่ยวชาญได้” - เอริคเอส. เรย์มอนด์

ในปี 2559 มหาวิทยาลัยหลายแห่งยังคงปฏิบัติต่อการเขียนโปรแกรมเช่นเดียวกับวิทยาศาสตร์คอมพิวเตอร์และวิทยาศาสตร์คอมพิวเตอร์เหมือนกับคณิตศาสตร์

ด้วยเหตุนี้หลักสูตรการเขียนโปรแกรมเบื้องต้นจำนวนมากจึงมุ่งเน้นไปที่ภาษาระดับต่ำของนามธรรมเช่น C หรือภาษาที่เน้นทางคณิตศาสตร์เช่น MATLAB

และโดยทั่วไปแล้วเก้าอี้ของแผนกจะอยู่ในหลักสูตรโดยชี้ไปที่ลีดเดอร์บอร์ดภาษาการเขียนโปรแกรมประจำปีเช่น TIOBE Index หรืออันนี้จาก IEEE:

ลีดเดอร์บอร์ดเหล่านี้ส่วนใหญ่ดูเหมือนกับเมื่อ 10 ปีที่แล้ว

แต่การเปลี่ยนแปลงจะเกิดขึ้น แม้แต่ในแวดวงวิชาการ

ในปี 2014 Python ได้แซงหน้า Java ในฐานะภาษาการเรียนการสอนที่ได้รับความนิยมสูงสุดในโปรแกรมวิทยาการคอมพิวเตอร์ชั้นนำของสหรัฐอเมริกา

และยังมีการเปลี่ยนแปลงอีกอย่างที่ผูกพันกับ ... ในที่สุด ... ก็เกิดขึ้น

เพราะถ้าคุณดูภาษาที่พนักงานใช้จริงมันจะวาดภาพที่แตกต่างกันมาก:

มากกว่าครึ่งหนึ่งของนักพัฒนาทั้งหมดใช้ JavaScript การพัฒนาเว็บส่วนหน้ามีความสำคัญและมีความเกี่ยวข้องมากขึ้นสำหรับการพัฒนาส่วนหลัง และกำลังขยายตัวอย่างรวดเร็วในด้านต่างๆเช่นการพัฒนาเกมและ Internet of Things

ประกาศรับสมัครงานยังกล่าวถึง JavaScript มากกว่าภาษาโปรแกรมอื่น ๆ นอกเหนือจาก Java:

ไม่ใช่เรื่องบังเอิญที่เราสร้างหลักสูตรชุมชนโอเพ่นซอร์สเกี่ยวกับ JavaScript ในช่วงสองปีที่ผ่านมามีผู้ใช้ Free Code Camp มากกว่า 5,000 คนเพื่อรับงานนักพัฒนาซอฟต์แวร์ครั้งแรก

ฉันไม่สนับสนุน JavaScript เพราะฉันสอน ฉันสอน JavaScript เพราะเป็นเส้นทางที่แน่นอนที่สุดสำหรับงานนักพัฒนาซอฟต์แวร์รายแรก

แต่ JavaScript เหมาะกับคุณหรือไม่? ควรค่าแก่การเป็นภาษาโปรแกรมแรกของคุณหรือไม่? ลองสำรวจปัจจัยเหล่านั้นที่ฉันกล่าวถึงก่อนหน้านี้

ปัจจัย # 1: ตลาดงาน

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

ดังที่ฉันได้กล่าวไว้ก่อนหน้านี้ Java ถูกกล่าวถึงในประกาศรับสมัครงานมากกว่าภาษาโปรแกรมอื่น ๆ JavaScript เป็นวินาทีที่ใกล้

แต่นี่คือสิ่งที่เกี่ยวกับ JavaScript: แม้ว่าจะมีมาประมาณ 20 ปีแล้ว แต่ก็เพิ่งกลายเป็นเครื่องมือที่จริงจังที่ บริษัท ต่างๆเช่น Netflix, Walmart และ PayPal สามารถสร้างแอปพลิเคชันทั้งหมดได้

เป็นผลให้ บริษัท จำนวนมากจ้างนักพัฒนา JavaScript แต่มีไม่มากนักในตลาดงาน

มีนักพัฒนา Java 2.7 คนที่แข่งขันกันสำหรับตำแหน่ง Java ที่เปิดอยู่ทั้งหมด การแข่งขันสำหรับงาน PHP และ iOS ก็ดุเดือดเช่นเดียวกัน

แต่สำหรับทุกตำแหน่ง JavaScript ที่เปิดอยู่มีนักพัฒนา JavaScript เพียง 0.6 รายเท่านั้น เป็นตลาดผู้ขายสำหรับนักพัฒนาที่มีทักษะ JavaScript

ปัจจัย # 2: โอกาสในระยะยาว

โปรเจ็กต์ JavaScript โดยเฉลี่ยได้รับคำร้องขอดึงเป็นสองเท่าของโปรเจ็กต์ Java, Python หรือ Ruby โดยเฉลี่ย และยิ่งไปกว่านั้น JavaScript ยังเติบโตเร็วกว่าภาษายอดนิยมอื่น ๆ

ระบบนิเวศของ JavaScript ยังได้รับประโยชน์จากการลงทุนเงินจำนวนมากและความสามารถด้านวิศวกรรมจาก บริษัท ต่างๆเช่น Google, Microsoft, Facebook และ Netflix

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

ความร่วมมือระหว่าง บริษัท ประเภทนี้หาได้ยากกว่าด้วย Java Oracle ซึ่งเป็นเจ้าของ Java อย่างมีประสิทธิภาพผ่านการเข้าซื้อกิจการ Sun Microsystems มักจะฟ้องร้อง บริษัท ที่พยายามขยายกิจการ

ปัจจัย # 3: ความยากในการเรียนรู้

โปรแกรมเมอร์ส่วนใหญ่ยอมรับว่าภาษาสคริปต์ระดับสูงนั้นค่อนข้างง่ายต่อการเรียนรู้ JavaScript จัดอยู่ในหมวดหมู่นี้พร้อมกับ Python และ Ruby

แม้ว่ามหาวิทยาลัยต่างๆยังคงสอนภาษาเช่น Java และ C ++ เป็นภาษาแรก แต่ก็ยากที่จะเรียนรู้

ปัจจัย # 4: โครงการที่คุณสามารถสร้างได้

นี่คือสิ่งที่จาวาสคริปต์เปล่งประกาย JavaScript ทำงานบนอุปกรณ์ใดก็ได้ที่มีเบราว์เซอร์ในเบราว์เซอร์ คุณสามารถสร้างอะไรก็ได้โดยใช้ JavaScript และแชร์ได้ทุกที่

เนื่องจากความแพร่หลายของ JavaScript Jeff Atwood ผู้ร่วมก่อตั้ง Stack Overflow จึงได้ประกาศเกียรติคุณกฎหมายที่มีชื่อเสียงในขณะนี้ของเขา:

“ แอปพลิเคชันใด ๆ ที่สามารถเขียนด้วย JavaScript จะถูกเขียนด้วย JavaScript ในที่สุด”

และทุกๆเดือนที่ผ่านไปกฎของ Atwood ก็มีความเข้มแข็ง

Java เคยสัญญาว่าจะทำงานทุกที่เช่นกัน คุณอาจจำ Java Applets Oracle ฆ่าพวกเขาอย่างเป็นทางการเมื่อต้นปีนี้

Python ประสบปัญหาเดียวกันมากมาย:

“ ฉันจะให้เกมนี้กับเพื่อนของฉันได้อย่างไร? ที่ดีไปกว่านั้นฉันจะใส่มันลงในโทรศัพท์เพื่อให้เด็ก ๆ ที่โรงเรียนดูได้โดยไม่ต้องติดตั้งหรือไม่ อืม” - เจมส์เฮกเลิกใช้ Python เป็นภาษาการสอน

ในทางตรงกันข้ามนี่คือแอพบางตัวที่สมาชิกในชุมชนโอเพ่นซอร์สของเราสร้างขึ้นในเบราว์เซอร์ของพวกเขาบน CodePen คุณสามารถคลิกผ่านและใช้สิ่งเหล่านี้ได้ในเบราว์เซอร์ของคุณ:

เรียนรู้ภาษาเดียวให้ดี จากนั้นเรียนรู้ข้อที่สอง

ถ้าคุณกระโดดจากภาษาหนึ่งไปยังอีกภาษาหนึ่งคุณจะไปไม่ไกล

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

จากตรงนั้นคุณสามารถแตกแขนงและกลายเป็นนักพัฒนาที่รอบรู้มากขึ้นด้วยการเรียนรู้ภาษามากมาย:

  • C เป็นวิธีที่ยอดเยี่ยมในการเรียนรู้ว่าคอมพิวเตอร์ทำงานอย่างไรในแง่ของการจัดการหน่วยความจำและมีประโยชน์ในการประมวลผลประสิทธิภาพสูง
  • C ++ เหมาะอย่างยิ่งสำหรับการพัฒนาเกม
  • Python นั้นยอดเยี่ยมสำหรับวิทยาศาสตร์และสถิติ
  • Java เป็นสิ่งสำคัญหากคุณต้องการทำงานใน บริษัท เทคโนโลยีขนาดใหญ่

แต่เรียนรู้ JavaScript ก่อน

ตกลงตอนนี้ฉันจะพยายามทำสิ่งที่เป็นไปไม่ได้ - ฉันจะพยายามคาดเดาการคัดค้านจากส่วนความคิดเห็น

ข้อโต้แย้ง # 1: แต่ JavaScript ไม่ช้าหรือ?

JavaScript คือ - เพื่อวัตถุประสงค์ในทางปฏิบัติส่วนใหญ่ - เร็วพอ ๆ กับภาษาที่มีประสิทธิภาพสูง

JavaScript (Node.js) เป็นลำดับขนาดที่เร็วกว่า Python, Ruby และ PHP

นอกจากนี้ยังเร็วพอ ๆ กับภาษาประสิทธิภาพสูงเช่น C ++, Java และ Go

นี่คือผลลัพธ์ของเกณฑ์มาตรฐานข้ามภาษาล่าสุดที่ครอบคลุมมากที่สุด:

ข้อโต้แย้ง # 2: แต่ JavaScript ไม่ได้พิมพ์แบบคงที่

เช่นเดียวกับ Python และ Ruby JavaScript ถูกพิมพ์แบบไดนามิกซึ่งสะดวก แต่คุณสามารถมีปัญหาได้ ที่นี่ฉันตั้งใจexampleArrayให้เป็นอาร์เรย์ ฉันตั้งค่าจากนั้นตรวจสอบความยาว - หมายถึงจำนวนองค์ประกอบที่มีอยู่

exampleArray = [1, 2] -> [1, 2] exampleArray.length -> 2

แต่แล้วฉันบังเอิญกำหนดให้เป็นสตริง

exampleArray = “text” -> “text” exampleArray.length -> 4

ข้อผิดพลาดประเภทนี้เกิดขึ้นตลอดเวลาในภาษาที่พิมพ์แบบไดนามิก นักพัฒนาส่วนใหญ่จะทำการตรวจสอบเพื่อป้องกันพวกเขาและเขียนการทดสอบตามนั้น

หากคุณต้องมีการพิมพ์แบบคงที่ในภาษาโปรแกรมแรกของคุณฉันขอแนะนำให้คุณเรียนรู้ JavaScript ก่อน จากนั้นคุณสามารถรับ TypeScript ได้อย่างรวดเร็ว

“ typescript มีเส้นโค้งการเรียนรู้ แต่ถ้าคุณรู้จัก JavaScript อยู่แล้วมันก็จะราบรื่น” - Alex Ewerlöfบน TypeScript

ข้อโต้แย้ง # 3: แต่ฉันต้องการสร้างแอปบนอุปกรณ์เคลื่อนที่จริงๆ

ฉันยังคงแนะนำให้เรียนรู้ JavaScript ก่อน

  1. JavaScript มีเครื่องมือหลายอย่างสำหรับการสร้างแอพมือถือแบบเนทีฟเช่น Angular Cordova และ React Native
  2. เพื่อให้แอปบนอุปกรณ์เคลื่อนที่ของคุณสามารถทำสิ่งที่น่าสนใจได้จริงอาจจำเป็นต้องมีส่วนหลังที่เหมาะสมซึ่งคุณจะต้องสร้างด้วยกรอบการพัฒนาเว็บที่เหมาะสมเช่น Node.js + Express.js

นอกจากนี้ควรชี้ให้เห็นว่าวันที่ดีที่สุดของการพัฒนาแอปบนอุปกรณ์เคลื่อนที่อาจอยู่เบื้องหลัง

สำหรับผู้เริ่มต้นเช่นเดียวกับผู้คนที่ใช้แอพมือถือเกือบครึ่งหนึ่งของงานนักพัฒนาทั้งหมดคือการพัฒนาเว็บ เปรียบเทียบสิ่งนี้กับงานเพียง 8% ที่เกี่ยวข้องกับการพัฒนาแอปบนอุปกรณ์เคลื่อนที่

วิสัยทัศน์ที่ยิ่งใหญ่ของ“ มีแอปสำหรับสิ่งนั้น” ยังไม่เกิดขึ้น แต่เจ้าของสมาร์ทโฟนส่วนใหญ่หยุดดาวน์โหลดแอพใหม่

แน่นอนพวกเขายังใช้แอพ ส่วนใหญ่เป็น Facebook, Google Maps และอื่น ๆ อีกจำนวนหนึ่ง ด้วยเหตุนี้ความต้องการส่วนใหญ่สำหรับนักพัฒนาแอปบนอุปกรณ์เคลื่อนที่จึงกระจุกตัวอยู่ที่นายจ้างรายใหญ่เพียงไม่กี่ราย

แนวโน้มสำหรับงานพัฒนาอุปกรณ์เคลื่อนที่เหล่านั้นยากที่จะคาดการณ์ หลาย ๆ ด้านในการพัฒนาดูแลรักษาและเผยแพร่แอปบนอุปกรณ์เคลื่อนที่ทำได้ง่ายขึ้นด้วย JavaScript ดังนั้น บริษัท ต่างๆเช่น Facebook และ Google จึงลงทุนอย่างมากในเครื่องมือที่ดีกว่าสำหรับการสร้างสิ่งเหล่านี้โดยใช้ JavaScript

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

และนั่นหมายถึง JavaScript

ข้อโต้แย้ง # 4: JavaScript เป็นภาษาของเล่นที่เขียนใน 10 วันไม่ใช่หรือ?

JavaScript มีประวัติแปลก ๆ

คุณจะไม่ต้องสงสัยเลยว่าคุณจะได้ยินคนพูดตลกด้วยค่าใช้จ่าย

คนชอบเกลียด C ++ ด้วย และเช่นเดียวกับ JavaScript C ++ ก็ประสบความสำเร็จแม้จะมีความเกลียดชังนี้และตอนนี้ก็มีอยู่ทั่วไปเช่นกัน

ดังนั้นหากใครเคยให้เวลากับคุณในการเรียนรู้ JavaScript แทนที่จะใช้ภาษาระดับสูงในสัปดาห์นี้เพียงจำคำพูดที่มีชื่อเสียงของคนที่สร้าง C ++:

“ ภาษาโปรแกรมมีเพียงสองประเภท: คนเหล่านั้นมักจะพูดถึงและไม่มีใครใช้” - Bjarne Stroustrup

ฉันเขียนเกี่ยวกับการเขียนโปรแกรมและเทคโนโลยีเท่านั้น หากคุณติดตามฉันบน Twitter ฉันจะไม่เสียเวลาเปล่า เหรอ?