เกณฑ์รายการ: สูง, ต่ำ, ปานกลาง
ในบรรดาโปรแกรมเมอร์ คุณมักจะได้ยินเกี่ยวกับ "เกณฑ์การเข้าสู่" ซึ่งเป็นแนวคิดที่สะท้อนถึงปริมาณความพยายามที่จำเป็นสำหรับ "รุ่นน้อง" แต่ละคนในการเรียนรู้ภาษาการเขียนโปรแกรมในระดับที่เพียงพอในการเขียนโปรแกรมจริงจังครั้งแรกและหางานทำ “เกณฑ์การเข้า” ประกอบด้วยความรู้:- คุณสมบัติของไวยากรณ์และความแตกต่างของภาษา
- ห้องสมุด;
- อัลกอริธึมและโครงสร้างข้อมูล
เว็บหรือไม่เว็บ?
เว็บ
โปรแกรมเมอร์เว็บสามารถแบ่งออกเป็น นัก พัฒนาFrontendและBackend มันคุ้มค่าที่จะเข้าใจว่าคำเหล่านี้หมายถึงอะไร นักพัฒนา "ส่วนหน้า" จัดการกับสิ่งที่เรียกว่าฝั่งไคลเอ็นต์ - สิ่งที่ผู้ใช้จะเห็น “แบ็กเอนด์” คือส่วนซอฟต์แวร์และฮาร์ดแวร์ของบริการ ซึ่งทำงานบนเซิร์ฟเวอร์ สำหรับ นักพัฒนา ส่วนหน้าที่กำลังตัดสินใจว่าจะเลือกภาษาการเขียนโปรแกรมใด สิ่งที่ต้องมีคือJavaScriptและเฟรมเวิร์ก: Angular JS, React และอื่นๆ ภาษา JS ไม่ได้รับความนิยมเท่ากับภาษาแม่ แต่ก็มีประโยชน์เช่นกัน: CoffeeScript, TypeScript นอกจากนี้ ยัง มี flash AS ก่อนที่จะมี JScript และ VBScript แต่มีเพียงไดโนเสาร์เท่านั้นที่จำได้ =) นอกจากนี้คุณต้องเข้าใจHTMLและCSSไม่ใช่เว็บ (องค์กร, เดสก์ท็อป, อุปกรณ์เคลื่อนที่)
ฉันจัดกลุ่มภาษาโปรแกรมเหล่านี้โดยเฉพาะเป็นหมวดหมู่ที่มีชื่อแปลกเช่นนี้ ส่วนใหญ่สามารถใช้เพื่อเขียนแอปพลิเคชันระดับองค์กร เดสก์ท็อป และแม้แต่แอปพลิเคชันมือถือ Pythonซึ่งเป็น OOLP ที่เข้าใจง่าย ได้รับความนิยมอย่างไม่น่าเชื่อเมื่อเร็ว ๆ นี้เนื่องจากการพัฒนาMachine Learning : ผู้ที่ใช้ Python กันอย่างแพร่หลาย ML เป็นสาขาที่ค่อนข้างใหม่ในด้านไอที และถึงแม้ผลแรกๆ จะได้รับแล้ว แต่ฉันก็ไม่รีบเร่งที่จะเจาะลึกในอุตสาหกรรมนี้เมื่อเลือกภาษาการเขียนโปรแกรม ก่อนอื่นคุณต้องเก่งคณิตมาก ประการที่สอง คลื่นความนิยมอาจไปในลักษณะเดียวกับ “บล็อกเชน” หรือ “นาโนเทคโนโลยี” นอกจากนี้ อย่างที่คุณจำได้ Python ยังใช้ในการพัฒนาเว็บอีกด้วย C++ : คลาสสิค ทุกอย่างถูกสร้างขึ้นบนพื้นฐานของ "ข้อดี" ภาษานี้เป็นต้นกำเนิดของ OOLP ยอดนิยมทั้งหมด และผู้เริ่มต้นควรให้ความสนใจกับภาษานี้อย่างแน่นอน แอปพลิเคชั่นยอดนิยมมากมายมีพื้นฐานมาจากมัน แต่ความเป็นไปได้สูงที่จะ "ยิงตัวเองตาย" และไวยากรณ์ที่เข้าใจยากจะลบล้างความเป็นไปได้ที่ผู้เริ่มต้นจะเชี่ยวชาญการเขียนโปรแกรมมาสโตดอนนี้ Kotlin - Java สำหรับฮิปสเตอร์ - การผสมผสานระหว่าง OOP และการเขียนโปรแกรมเชิงฟังก์ชันอย่างบ้าคลั่ง เมื่อเร็ว ๆ นี้ได้รับความนิยมเนื่องจากการที่นักพัฒนาที่มีประสบการณ์ซึ่งเปลี่ยนจาก Java เป็น Kotlin ช่วยเพิ่มประสิทธิภาพการทำงานของเขาได้อย่างมาก นักพัฒนาที่มีประสบการณ์จะคุ้นเคยกับภาษานี้อย่างรวดเร็ว อย่างไรก็ตาม เช่นเดียวกับ Scala แต่ Kotlin ได้รับความนิยมใน Android Javaเป็นเรื่องง่ายสำหรับผู้เริ่มต้นในการเรียนรู้ รวมถึงต้องขอบคุณJavaRush : ที่นี่ทำให้ฉันเข้าใจวิธีเลือกภาษาการเขียนโปรแกรม =) ไวยากรณ์ Java มีความชัดเจน มีความเป็นไปได้ที่จะ "ยิงตัวเองตาย" แต่ไม่สำคัญอ๊ะหรือป๊อป?
แนวทางขั้นตอน
แนวทางเชิงขั้นตอนเกี่ยวข้องกับการเขียนโปรแกรมที่ประกอบด้วยข้อความสั่งตามลำดับที่สามารถประกอบเป็นทั้งหมดเดียวเพื่อแก้ไขปัญหาเฉพาะช่วงได้อย่างมีประสิทธิภาพ ภาษาเหล่านี้ ได้แก่: C , PureBasicและPascal . สิ่งเดียวกันที่นำความสิ้นหวังมาสู่นักเรียนมัธยมปลายและนักเรียนรุ่นน้อง นอกจากนี้ยังมีGO ที่ค่อนข้าง ใหม่ อย่างไรก็ตาม ความคุ้นเคยกับภาษาขั้นตอนมีประโยชน์มากสำหรับนักพัฒนาที่มีศักยภาพ สำหรับฉัน การแช่ในภาษาขั้นตอนมีความเกี่ยวข้องกับระบบ Mathematica (Wolfram) และกิจกรรมการวิจัยของมหาวิทยาลัย ด้วยวิธีอัลกอริธึมที่ถูกต้องและขั้นตอนง่าย ๆ การเคลื่อนที่เชิงเส้นตรงจากจุดเริ่มต้นของโปรแกรมไปยังจุดสิ้นสุด ฉันจึงสามารถคำนวณค่าที่เกี่ยวข้องกับฟิสิกส์เชิงทฤษฎีสมัยใหม่ได้ ต้องขอบคุณภาษา "ต่อเนื่อง" เหล่านี้ที่คุณเริ่มเข้าใจว่าบางครั้งการเขียนโค้ดง่ายกว่าการนับด้วยตัวเอง การศึกษา PPP ให้การฝึกอบรมอัลกอริทึมที่ดี ซึ่งนายจ้างมักต้องการเห็นผู้สมัครงานเมื่อจ้างงาน รากฐานของทุกสิ่งและทุกคนในไอทีถูกสร้างขึ้นจากภาษาขั้นตอน ดังนั้นอย่าประมาทพวกเขา อย่างไรก็ตาม ผู้เริ่มต้นที่ตัดสินใจว่าจะเลือกภาษาการเขียนโปรแกรมใดในการเรียนรู้ มักจะคิดว่ามัลติเธรดเป็นสิทธิพิเศษของ OOP นี่เป็นสิ่งที่ผิด ภาษาโปรแกรมขั้นตอนยังช่วยให้คุณสามารถคำนวณแบบขนานได้แนวทางเชิงวัตถุ
ผู้ที่เริ่มต้นด้วยภาษาขั้นตอนมักมีความรู้ด้านคณิตศาสตร์อัลกอริทึมและโครงสร้างข้อมูลเป็นอย่างดี (เนื่องจากการเน้นความรู้ด้านเหล่านี้ในมหาวิทยาลัยเทคนิค) อย่างไรก็ตาม ในความเป็นจริงสมัยใหม่ โปรแกรมเมอร์ที่ประสบความสำเร็จมักจะเป็นคนที่เชี่ยวชาญวิธีการเขียนโปรแกรมอื่นเป็นอย่างดี - เชิงวัตถุ อุดมการณ์ OOP ทำให้สามารถสร้างระบบที่เป็นสากลได้อย่างแท้จริง ลักษณะเฉพาะของแนวทางนี้คือความคล้ายคลึงกับโลกแห่งความเป็นจริง:- วัตถุต่าง ๆ มีปฏิสัมพันธ์ซึ่งกันและกันและดำรงอยู่อย่างเป็นอิสระจากกัน
- วัตถุมีลำดับชั้นและสามารถนำไปใช้หรือเปลี่ยนแปลงพฤติกรรมของบรรพบุรุษได้
- คุณสามารถดำเนินการด้วยแนวคิดเชิงนามธรรมได้ แต่เฉพาะวัตถุที่มีอยู่จริงเท่านั้นที่สามารถโต้ตอบได้
ตัวอย่าง ภาษาเชิงขั้นตอนเป็นเครื่องมือในการแก้ปัญหาเฉพาะด้าน และหากงานของคุณมีการเปลี่ยนแปลง แม้แต่งานเล็กๆ น้อยๆ คุณมักจะต้องใช้เวลาและความพยายามในการเขียนอัลกอริธึมทั้งหมดใหม่ Представим программу, описывающую автосалон, который продает легковые и грузовые автомобor, How новые, так и подержанные. В proceduresном языке для каждого an object нужно описать функции, обрабатывающие ввод or вывод данных для нового легкового, нового грузового, б/у легкового и б/у грузового автомобилей. А что предлагает ООП? При an objectно-ориентированном подходе нужно просто описать базовый класс ТРАНСПОРТ, который будет хранить в себе характеристики, присущие и тому, и другому типу автомобилей:
И методы для ввода-вывода информации. Затем создадим an objectы, наследующие характеристики класса ТРАНСПОРТ: ЛЕГКОВУШКА и ГРУЗОВИК. Они содержат уточнённую информацию, присущую именно таким видам транспорта, а также методы ввода-вывода. Внезапно руководство салона решило расширить ассортимент и продавать еще и мотоциклы. Процедурный подход предложит переписать всю логику для новых и б/у мотоциклов с самого начала, в то время How ООП-язык позволит просто создать новый an object МОТОЦИКЛ, наследующий все характеристики суперкласса ТРАНСПОРТ и содержащий уточнения. А что будет, если добавлять разные транспортные средства? Процедурная реализация будет требовать больших трудозатрат, чем ООП. Причем чем больше ассортимент, тем меньше нужно будет делать манипуляций с an objectми. |
- ООП предполагает независимую разработку отдельных модулей, предоставляя программисту or команде выбирать способ и границы соприкосновений и обмена информацией.
- Разбиение на небольшие модули намного проще для восприятия, чем монолитные proceduresы. Благодаря этому сторонний разработчик быстро разберется в твоем codeе, а ты при необходимости войдешь в новый проект.
- Изменение одного an object может ниHow не отразиться на взаимодействии с другим, но способно повлиять на иерархию дочерних an objectов. Освоив такой подход, расширение и доработка программы становится тривиальной задачей.
-
Кроссплатформенность.
Java работает везде благодаря JVM —виртуальной машине Java. Один из главных плюсов этого языка — кроссплатформенность: не нужно думать о том, Howую библиотеку подключить, Howова архитектура у конкретного процессора. «Написано однажды —работает всегда».
-
Документация.
ฐานเอกสารที่กว้างที่สุด: เอกสารอย่างเป็นทางการของ Oracle, พอร์ทัลการฝึกอบรม, ชุมชนที่มีการพัฒนาอย่างต่อเนื่อง คำตอบสำหรับคำถามส่วนใหญ่ที่เกิดขึ้นระหว่างการพัฒนาสามารถพบได้ภายในไม่กี่นาที สิ่งสำคัญคือต้องเข้าใจว่าจะพิมพ์อะไรลงในเครื่องมือค้นหา =)
-
ความนิยม.
Java เป็นภาษาโปรแกรมที่ได้รับความนิยมมากที่สุดในโลก: นอกเหนือจากนักพัฒนา Android และเว็บที่กล่าวมาข้างต้นแล้ว นักพัฒนาระดับองค์กรเกือบทุกคนเขียนด้วย Java Enterpriseคือการพัฒนาภายในองค์กรที่จำเป็นสำหรับความต้องการขององค์กรขนาดใหญ่
ทุกปีผู้เกลียดชังทำนาย "ความตายของ Java" พวกเขาพูดว่า: " Oracle จะหยุดสนับสนุนและโดยทั่วไปแล้วคุณกำลังทำเรื่องไร้สาระ " นี่ผิด! Java เวอร์ชันใหม่สัญญาว่าจะออกทุกๆ หกเดือน นวัตกรรมและ คุณสมบัติที่สำคัญที่สุดของเวอร์ชันล่าสุดสามารถอ่านได้ที่นี่
สำหรับฉัน lambdas ใน Java 8 ถือเป็นการปฏิวัติและการค้นพบ ไม่ต้องพูดถึงเวอร์ชันใหม่! ตอนนี้ฉันกำลังทำโปรเจ็กต์ "ถอยหลังเข้าคลอง" ดังนั้นฉันจึงไม่ได้เจาะลึกเกี่ยวกับนวัตกรรม แต่ความจริงที่ว่า Java ยังคงอยู่นั้นเป็นความจริง
-
หุ่นยนต์
Android ครองตลาดโทรศัพท์มือถือมากกว่า 80% อย่างมั่นใจในช่วง 4 ปีที่ผ่านมา ทีวี เครื่องเล่นสื่อ และแม้แต่ระบบสื่อในรถยนต์ทำงานภายใต้ระบบปฏิบัติการนี้ และการพัฒนาระบบปฏิบัติการนี้ดำเนินการด้วยภาษาจาวาเป็นหลัก ลองจินตนาการถึงสิ่งที่มีแนวโน้มจะเปิดขึ้น เมื่อฉันได้งานเป็นนักพัฒนา Android ฉันเริ่มสนใจ: ผลิตภัณฑ์ที่ฉันกำลังพัฒนาราคาเท่าไหร่? ปรากฎว่าราคาต่อปีอยู่ที่ประมาณ 5 ดอลลาร์ มีคำถามที่สมเหตุสมผลเกิดขึ้น: เงินสำหรับสำนักงานนี้ เงินเดือน คุกกี้ โต๊ะเทนนิส หุ่นยนต์ และ "สิ่งดีๆ" อื่น ๆ มาจากไหน? มันเป็นเรื่องของปริมาณ: แอปพลิเคชันของเรามีผู้ใช้ 20 ล้านคน
-
เงินเดือน.
และสำหรับของหวาน เงินเดือนของนักพัฒนา Java นั้นสูงที่สุดในอุตสาหกรรม คุณจะได้เรียนการเขียนโปรแกรมเพื่อจุดประสงค์เฉพาะ: เพื่อให้ได้งานที่ดี
ความนิยมของภาษาโปรแกรม
เมื่อเลือกภาษาการเขียนโปรแกรม คุณต้องคำนึงถึงเป้าหมายสูงสุดของการเรียนรู้ นั่นคือการได้งานแรก เพื่อประเมินความนิยมของภาษาต่างๆ ฉันไปที่พอร์ทัล รับสมัครงานยอดนิยม และเริ่มดูจำนวนตำแหน่งงานว่างสำหรับคำขอต่างๆ ในมอสโก คุณสามารถดูผลลัพธ์ด้านล่างชวา: | 277 |
หลาม: | 227 |
PHP: | 188 |
ค#: | 147 |
ค++: | 131 |
ทับทิม: | 40 |
สกาลา: | 24 |
คอตลิน: | 20 |
ผลลัพธ์
สิ่งที่ผู้เริ่มต้นควรคำนึงถึงเมื่อเลือกภาษาการเขียนโปรแกรม:- ความนิยม (Java ครองตำแหน่งผู้นำอย่างต่อเนื่อง);
- เกณฑ์ขั้นต่ำ (สำหรับ Java - ค่าเฉลี่ย: ช่วงของความสามารถที่นายจ้างต้องการนั้นค่อนข้างกว้าง)
- วัสดุที่มีอยู่ (ไม่มีพอร์ทัลที่คล้ายกับ JavaRush ในภาษารัสเซียดังนั้นฝ่ามือไปเดาว่าใคร =));
- ขอบเขตการใช้งาน: ยิ่งอุตสาหกรรมต่างๆ สามารถใช้ภาษาการเขียนโปรแกรมได้มากเท่าใด ก็ยิ่งจำเป็นต้องมีผู้เชี่ยวชาญในตลาดมากขึ้นเท่านั้น ฉันพูดคุยเกี่ยวกับข้ามแพลตฟอร์มแล้ว แต่ฉันจะไม่เบื่อที่จะทำซ้ำ
GO TO FULL VERSION