Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

เชี่ยวชาญ Scala: เส้นทางสู่ Data Science ที่จ่ายสูงและการพัฒนาที่ขยายได้

คุณสนใจ Data Science และความสามารถในการขยายตัว (Scalability) ไหม? คุณต้องการเรียนภาษาโปรแกรมมิ่งที่ตลาดต้องการและได้ค่าตอบแทนสูงไหม? และสุดท้าย คุณคุ้นเคยกับ Java หรือยินดีเรียนภาษาที่คล้ายมากไหม? หากคุณตอบ "ใช่" ทั้งหมด คุณควรพิจารณา Scala อย่างจริงจัง ภาษาที่ใช้ในพื้นที่น่าตื่นเต้นอย่าง Data Science และมีความต้องการสูง

Scala คืออะไร?

Scala เป็นภาษาโปรแกรมมิ่งที่เผยแพร่สาธารณะในปี 2004 โดย Martin Odersky นักวิทยาการคอมพิวเตอร์ชาวเยอรมันและศาสตราจารย์ในสวิตเซอร์แลนด์ Scala พัฒนามาจาก Java อย่างมาก บางคนเชื่อว่า Scala เป็นเวอร์ชันที่ปรับปรุงแล้วของ Java Scala เป็นภาษาที่คอมไพล์ (compiled language) หมายถึงใช้คอมไพเลอร์ในการรันและสร้าง executable file มันใช้ Java Virtual Machine (JVM)

Scala เป็นภาษา object-functional มันรวมแนวคิดจาก 2 พาราดิมการเขียนโปรแกรม: object-oriented programming และ functional programming

ใน object-oriented programming โค้ดที่เกี่ยวข้องจะจัดระเบียบเป็นอ็อบเจกต์ เช่น ตัวแปรจะจับคู่กับเมธอดและคลาสที่เกี่ยวข้อง Functional programming พัฒนาจากการดำเนินการทางคณิตศาสตร์ และเน้น "อะไร" (what) มากกว่า "อย่างไร" (how) ในการทำงาน

Scala interoperable กับ Java ดังนั้นแม้คุณจะทำโปรเจกต์หลักใน Scala คุณก็สามารถเขียนโค้ด Java ได้ และในทางกลับกัน Scala บางครั้งถูกมองว่าเป็น "เวอร์ชันที่ปรับปรุงแล้ว" ของ Java

Scala ใช้ทำอะไร?

Scala กำลังได้รับความนิยมเพิ่มขึ้น นี่คือ 2 บริบทที่นักพัฒนาใช้ภาษานี้:

  • Data Science. Apache Spark, analytics engine โอเพนซอร์สสำหรับประมวลผลข้อมูลปริมาณมาก เป็นเฟรมเวิร์กที่เขียนใน Scala หมายความว่าการใช้ Spark กับ Scala ง่าย หากคุณต้องการเชี่ยวชาญ Spark คุณต้องรู้วิธีอ่าน source code ของมัน ซึ่งเป็น Scala Scala ยังมี data library ของตัวเองสำหรับ Data Science ในรายการ AI frameworks สำหรับ Scala คุณจะเห็นเครื่องมือสำหรับ NLP (natural language processing) ด้วย Scala และ numerical computing library ที่เขียนใน Scala คุณสามารถใช้ภาษานี้ทำงานกับ MLlib, machine learning library ของ Apache Spark
  • แทนที่ Java. เนื่องจาก Scala พัฒนามาจาก Java มันสามารถใช้สำหรับงานเขียนโปรแกรมหลายอย่างเดียวกับ Java เพิ่มเติมคือ คุณสามารถใช้ Java libraries (หรือชุดโค้ดสำเร็จรูป) เมื่อทำงานกับ Scala อย่างไรก็ตาม Scala ช่วยให้นักเขียนโปรแกรมเขียนโค้ดได้น้อยกว่า แต่ซับซ้อนกว่า Java ความกระชับนี้มักทำให้โค้ดอ่านง่ายและจัดระเบียบได้ดีกว่า
  • Scalability (ความสามารถในการขยายตัว). ชื่อ "Scala" อ้างอิงถึงความสามารถในการขยายตัวของภาษา และจำนวนการใช้งานมากมายที่มันรองรับ เมื่อคุณสร้างแอปพลิเคชัน คุณสามารถใช้ Scala เขียน backend code ของคุณ Twitter backend ต้นทางสร้างด้วย Ruby on Rails แต่เมื่อแพลตฟอร์มโตและต้องจัดการใช้งานมากขึ้น ส่วนใหญ่ของ backend code ถูกย้ายไปภาษาอื่นๆ เช่น Scala

การเรียนรู้ Scala

Scala เป็นหนึ่งในภาษาโปรแกรมมิ่งที่คุ้มค่าที่สุดในการเรียนรู้ ตาม Stack Overflow 2020 Developer Survey Scala จัดอันดับเทคโนโลยีที่จ่ายเงินเดือนสูงสุดอันดับ 2 โดยเงินเดือนเฉลี่ย $76,000 ต่อปี (อันดับ 1 คือ Perl) Glassdoor แสดงเงินเดือนเฉลี่ยต่อปีสำหรับ Scala senior software engineer ที่ $134,386

ณ ขณะเขียน มี job postings บน LinkedIn เกิน 11,000 รายการที่กล่าวถึง Scala รวมถึงตำแหน่งเช่น software engineer, Scala developer, big data engineer with Spark and Scala, และ junior data engineer (Python, Spark, Scala, และ AWS)

ใช้เวลานานแค่ไหนในการเรียน Scala?

เวลาในการเรียน Scala ขึ้นอยู่กับว่าคุณรู้ Java อยู่แล้วหรือไม่ หากคุณรู้ Java จะใช้เวลาประมาณ 1 เดือนในการเข้าใจ Scala หากคุณไม่คุ้นเคยกับ Java จะใช้เวลาประมาณ 2-3 เดือนในการเรียน

Scala มี learning curve ชัน ตามบางนักพัฒนาซอฟต์แวร์ มีหลายวิธีในการทำสิ่งหนึ่งใน Scala และเป็นภาษาที่ส่งเสริม expression และ flexibility นี่อาจดีหากคุณเป็นโปรแกรมเมอร์มีประสบการณ์ และโดยเฉพาะหากคุณคุ้นเคยกับ Java บ้าง แต่หากคุณเพิ่งเริ่มต้นการเขียนโปรแกรม การทำงานกับภาษาที่มีหลายวิธีทำสิ่งเดียวกันอาจยาก

โชคดีที่มีทรัพยากร (เช่นที่เราเน้นด้านล่าง) ช่วยคุณในการเดินทางสู่การเป็น Scala software engineer หากคุณตื่นเต้นกับความสามารถของ Scala และต้องการเรียนรู้เพิ่มเติม อ่านต่อไป!

วิธีเรียน Scala: ขั้นตอนละเอียด

นี่คือขั้นตอนภาพใหญ่ที่คุณควรทำตามเมื่อเริ่มเรียน Scala:

  1. เข้าใจ 2 พาราดิมการเขียนโปรแกรมที่ Scala พัฒนามา. Scala รวม functional programming และ object-oriented programming ไว้ด้วยกัน มันเป็นแนวคิดที่ดีที่จะเข้าใจแก่นของทั้งสองก่อนเรียน Scala
  2. ลอง syntax ของ Scala. ก่อนที่จะติดตั้งทุกอย่างที่ต้องสำหรับ Scala บนคอมพิวเตอร์ ทดลอง syntax ของ Scala ใน browser โดยใช้เครื่องมือนี้จากหน้าเอกสาร Scala
  3. ค้นหาขั้นตอนการตั้งค่า Scala. กับภาษาบางอย่างอย่าง Python การติดตั้งทุกอย่างเพื่อเริ่มเขียนโค้ดค่อนข้างง่าย ไม่ใช่กับ Scala คุณต้องมี Java ติดตั้งบนคอมพิวเตอร์ก่อน แล้วค่อยติดตั้ง SBT (Scala Build Tool)
  4. ติดตั้ง IDE หรือเตรียมใช้ command line เพื่อเขียน Scala. คุณสามารถดาวน์โหลด IDE (Integrated Development Environment) ที่มี Scala plug-ins เช่น IntelliJ จาก JetBrains หรือ Eclipse หรือใช้ command line เขียนโปรแกรมได้ ตามที่ getting started guide แนะนำ
  5. ใช้ประโยชน์จากทรัพยากรที่แตกต่างกัน. เมื่อคุณตั้งค่าสภาพแวดล้อมเขียนโปรแกรม Scala เรียบร้อยแล้ว ใช้ทรัพยากรอย่าง 'getting started' ในเอกสาร Scala และทรัพยากรด้านล่างเพื่อเริ่มเขียนโปรแกรมใน Scala

คอร์สและการฝึกอบรม Scala ที่ดีที่สุด

คอร์สเป็นวิธียอดเยี่ยมในการขยายความรู้ Scala นี่คือตัวเลือกชั้นนำของเราสำหรับคอร์ส Scala ที่ดีที่สุด:

Udemy: Scala & Functional Programming for Beginners | Rock the JVM

ราคา: $29.99

มองหาคอร์สที่เหมาะกับผู้เริ่มต้นเพื่อเริ่มต้นการเดินทาง Scala? ไม่ต้องมองที่อื่น นี่คือตัวเลือกจาก Udemy เหมาะสำหรับนักศึกษาที่มีประสบการณ์เขียนโปรแกรมบ้าง (ความรู้ Java จะช่วยมาก) คอร์สครอบคลุมวิธีเขียนแอปพลิเคชัน Scala ตั้งแต่ศูนย์ คุณจะใช้เครื่องมือทรงพลังเช่น Apache Spark และเรียนรู้วิธีคิดเกี่ยวกับโค้ดโดยใช้ functional programming paradigm

เนื้อหาคอร์สรวม 15.5 ชั่วโมงวิดีโอ บวก 3 downloadable resources และใบรับรองการสำเร็จหลักสูตร

Udemy: Scala Applied, Part 1

ราคา: $19.99

คอร์สนี้เป็นการแนะนำการเขียนโปรแกรมในภาษา Scala รวมถึง core syntax และแนวคิด คุณจะเรียนพื้นฐาน เช่น เริ่มใช้ functional programming paradigm, สร้างอ็อบเจกต์ คลาส และ instances (องค์ประกอบของ object-oriented programming) และใช้ REPL (Scala Interactive Shell)

เนื้อหาคอร์สรวม 5.5 ชั่วโมงวิดีโอ หลังจบ จะได้รับใบรับรองและพร้อมสำหรับ part 2 ของซีรีส์คอร์สนี้

LinkedIn: Scala Essential Training

ราคา: $39.99 ฟรีกับ LinkedIn Premium ($29.99/เดือน)

ในคอร์สนี้ คุณจะเรียนรู้ว่าโค้ด Scala interoperable กับ Java แต่ก็มีคุณสมบัติเฉพาะตัว เช่น functional programming components และ advanced type system คุณจะเรียนรู้การอ่านไฟล์ผ่าน console, ใช้ pattern matching, และจัดการ exceptions (หรือการ crash ของโปรแกรม) ใช้เวลา 3 ชั่วโมงในการจบคอร์ส และจะได้รับใบรับรองการสำเร็จหลักสูตร

หนังสือ Scala

หากคุณชอบเรียนผ่านหนังสือ มีตัวเลือกยอดเยี่ยมสำหรับเรียน Scala นี่คือบางเล่ม:

Programming in Scala: A Comprehensive Step-by-Step Guide, Martin Odersky, Lex Spoon, Bill Venners

ร่วมเขียนโดย Martin Odersky ผู้สร้าง Scala นี่คือคู่มือที่สมบูรณ์ที่สุดสำหรับภาษาโปรแกรมมิ่ง คุณจะเรียนรู้ว่า Scala รวม functional และ object-oriented programming อย่างไร ให้นักพัฒนาทำงานได้มีประสิทธิภาพมากขึ้น และสร้างโปรเจกต์ที่ scale ได้ บทต่างๆ สร้างต่อกัน ทำให้คุณได้แนะนำแนวคิดใหม่ๆ อย่างต่อเนื่องโดยไม่หลงทาง หัวข้อที่ครอบคลุมรวมถึง named และ default parameters, structural subtyping, และ package objects

Learning Scala: Practical Functional Programming for the JVM, Jason Swartz

เพื่อใช้ประโยชน์สูงสุดจากหนังสือเล่มนี้ คุณควรมีประสบการณ์เขียนโปรแกรมบ้าง มันรวม syntax diagrams, ตัวอย่าง และ exercises เพื่อช่วยเข้าใจพื้นฐาน Scala คุณจะเรียนรู้เกี่ยวกับชนิดข้อมูลของ Scala และวิธีใช้ values และ variables การสร้างคลาสและเขียน higher-order functions เป็นแนวคิดสำคัญอื่นๆ ที่สอนในข้อความนี้

Hands-on Scala Programming: Learn Scala in a Practical, Project-Based Way, Haoyi Li

พร้อมดำดิ่งสู่ Scala แล้ว? ลองโปรเจกต์ในหนังสือนี้ คุณสามารถสร้าง production applications เช่น interactive websites, parallel web crawlers, และ distributed systems คุณจะฝึกปฏิบัติการ file system operations และทำงานกับ JSON ระหว่างทักษะอื่นๆ โปรแกรมเมอร์ที่มีประสบการณ์ในภาษาอื่นจะได้ประโยชน์มากที่สุดจากหนังสือนี้

ทรัพยากร Scala ออนไลน์

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

YouTube Video: Goto 2017 – Demystifying Scala by Kelley Robinson

Kelley Robinson, engineering team lead ที่ Sharethrough เมื่อการบ่นี้ถูกให้ มอบการแนะนำ Scala ที่ยอดเยี่ยม เธออภิปรายประโยชน์ของการใช้ Scala และประวัติศาสตร์เบื้องหลังภาษา เธอยังให้ตัวอย่าง syntax ของ Scala เพื่อคุณเห็นลักษณะการทำงานจริง

นอกจากพูดถึงวิธีที่ Scala ช่วยทีมวิศวกรรม Robinson ยังระบุข้อเสียที่เป็นไปได้ของ Scala เช่น flexibility ของมัน ในขณะที่ flexibility เป็นทรัพย์สิน การมีหลายวิธีทำสิ่งเดียวกันหมายความว่าทีมวิศวกรรมต้องทำงานร่วมกันเพื่อพัฒนา best practices สำหรับโปรเจกต์ของพวกเขา

เอกสาร Scala (Scala Documentation)

หนึ่งในทรัพยากรที่ดีที่สุดสำหรับเรียนเทคโนโลยีใหม่คือเอกสารของมัน ในเอกสาร Scala คุณจะพบ 'getting started' guide, a tour of Scala, และหนังสือออนไลน์ที่แนะนำ Scala มี style guide สำหรับเขียน Scala, cheat sheet สำหรับ syntax Scala, และรายการคอร์สออนไลน์ที่พร้อมผ่าน Scala Center คุณยังสามารถเข้าร่วมชุมชน Scala ได้

Scala Exercises

Scala Exercises เป็นโปรเจกต์โอเพนซอร์สที่คุณสามารถลองทรัพยากรหลากหลายสำหรับเรียนและใช้ Scala หนึ่งในทรัพยากรคือ Scala Tutorial ซึ่งเป็นประสบการณ์การเรียนรู้ interactive ใน tutorial นี้ คุณจะได้รับแนวทางผ่านหัวข้อเช่น primitive expressions, method calls, values, และ types

คุณควรเรียน Scala หรือไม่?

Scala เป็นภาษาโปรแกรมมิ่งที่พัฒนามาจาก Java มันผสมผสาน 2 พาราดิมการเขียนโปรแกรม: functional programming และ object-oriented programming ภาษานี้ใช้ในพื้นที่เช่น machine learning และในสภาพแวดล้อม back end เมื่อความสามารถในการจัดการปริมาณ input มากเป็นสิ่งสำคัญ หากคุณสนใจ Data Science และโดยเฉพาะหากต้องการใช้เครื่องมืออย่าง Apache Spark การเรียน Scala แนะนำอย่างยิ่ง

Scala อาจยากต่อการเรียน โดยเฉพาะโดยไม่มีความรู้ Java หรือภาษาที่คล้ายกันอย่าง C ก่อนหน้า อย่างไรก็ตาม หากคุณยินดี投入ความพยายามและความอดทนในการเรียน Scala คุณจะได้รับรางวัลแน่นอน การรู้ Scala วางคุณในตำแหน่งได้เปรียบ หากคุณเป็น data scientist หรือสร้างสภาพแวดล้อม back end ที่ขยายได้สูง มีความต้องการสำหรับ Scala software engineers และเงินเดือนสำหรับวิศวกรที่รู้ Scala สูงกว่าภาษาส่วนใหญ่

ขอให้โชคดีกับการเดินทาง Scala ของคุณ!