ฉันเคยอยู่ที่คุณอยู่และเกือบจะยอมแพ้สองสามครั้ง ในขณะที่ไม่เคยเป็นนักพัฒนา Scala ผู้เชี่ยวชาญ แต่ตอนนี้ฉันรู้สึกว่าฉันเข้าใจภาษาได้ดีพอที่จะทำให้ความสัมพันธ์ของฉันกับ Java แย่ลงอย่างมาก
สิ่งแรกที่ฉันทำคือใช้เวลาสองสามสัปดาห์ในการเล่นอ่านบล็อกต่าง ๆ และแนะนำภาษา นั่นเป็นความผิดพลาดฉันไม่ได้เรียนรู้ (หรืออย่างน้อยก็เข้าใจ) มากว่ามีประโยชน์และรู้สึกถึงส่วนลึกทั้งหมดของฉัน
สิ่งที่สองคือการใช้เวลาในการแก้ไขปัญหาที่เรียบง่ายทางเทคนิค แต่บังคับให้ฉันสำรวจแง่มุมที่เฉพาะเจาะจงของไวยากรณ์ Scala ด้วยตัวเอง:
แม้ว่าสิ่งนี้ไม่ได้ทำให้ฉันกลายเป็นผู้เชี่ยวชาญในชั่วข้ามคืน แต่มันทำให้ฉันมีความคุ้นเคยกับภาษามากพอที่จะไม่รู้สึกว่าเป็นไปไม่ได้อีกแล้ว
ด้วยความมั่นใจที่เพิ่มขึ้นในที่สุดฉันก็ทำในสิ่งที่ฉันควรเริ่มต้นด้วย: เขียนโปรแกรมใน Scalaโดย Martin Odersky และพยายามอ่านบททั้งหมดทุกสองสามวัน มันเป็นหนังสือที่เขียนได้ดีและมีเนื้อหาครอบคลุมและหากคุณมีพื้นฐานการเขียนโปรแกรมที่ดีแล้ว ไม่จำเป็นต้องทำให้คุณอ่านครั้งแรกเจ็บปวดเกินไป: ข้ามส่วนที่ทำเครื่องหมายว่าเป็นตัวเลือกตรวจสอบให้แน่ใจว่าคุณเข้าใจแนวความคิด แต่ไม่จมลงในรายละเอียด (โดยเฉพาะฉันรู้สึกว่าบทในคอลเลกชันนั้นเกิน ไขมันต่ำ) รู้ว่ามีแนวคิดและสถานที่ที่จะอ่านคำอธิบายที่ครอบคลุมเกี่ยวกับวิธีการทำงานเป็นความช่วยเหลืออย่างมาก
อีกทางเลือกหนึ่งในการอ่านหนังสือคือเข้าเรียนในชั้นเรียน Coursera ซึ่งมีเนื้อหาครอบคลุมน้อยกว่า แต่ครอบคลุมประเด็นสำคัญ ๆ ส่วนใหญ่และแบ่งออกเป็นหน่วยทางตรรกะที่จัดการและจัดการได้ ในทางกลับกันฉันไม่ทราบว่าเป็นไปได้หรือไม่ที่จะเข้าถึงบทเรียนเมื่อชั้นเรียนเสร็จสมบูรณ์และฉันก็พบว่าฉันมีส่วนร่วมน้อยกว่ามากในขณะที่ฟังคนอื่น (แม้แต่บางคนที่ฉลาดและรู้เท่ามาร์ติน เมื่ออ่านหนังสือ
ปัญหาอีกอย่างของ Scala ก็คือปริมาณของคำศัพท์ที่คุณต้องนำเข้า - โดยใช้พารามิเตอร์? สำหรับความเข้าใจ? ปิด? หากคุณรู้สึกว่าถูกครอบงำด้วยสิ่งนี้ฉันพบว่าการผสมผสานของคำศัพท์สกาล่าและการค้นหาสแต็คแบบล้นเป้าหมายช่วยฉันได้มาก (ขอคำตอบจาก Daniel Sobral และ Travis Brown) ในความเป็นจริงฉันไปจนถึงการสร้างดาดฟ้าAnkiด้วยอภิธานศัพท์และรู้สึกว่ามันเป็นความช่วยเหลือที่ยิ่งใหญ่
ในที่สุดนี้อาจเป็นที่ชัดเจน แต่รหัสรหัสรหัส ค้นหาโครงการด้านที่คุณสามารถทำงานได้แม้ว่าจะเป็นเรื่องเล็กน้อย สิ่งที่ฉันทำคือเขียนโปรแกรมสืบค้น Amazon ที่ง่ายมากที่จะส่งทวีตเมื่อใดก็ตามที่ผู้เขียนที่ฉันสนใจจะออกหนังสือเล่มใหม่ มันใช้เวลานานกว่าที่ควรจะเป็น แต่นี่เป็นเวลาที่ฉันหลงรักภาษา
หากคุณได้มาถึงตอนนี้คุณอาจไม่ต้องการความช่วยเหลือเพิ่มเติม แต่เป็นข้อเสนอแนะที่ดีเมื่อคุณเข้าใจภาษาแล้วก็ต้องเจาะลึกลงไปในแนวคิดพื้นฐาน คุณคุ้นเคยกับ OOP ลองอ่านการเขียนโปรแกรมฟังก์ชั่น - ฉันสามารถพูดได้อย่างแน่นอนว่ามันจะทำให้คุณทึ่ง ฟังก์ชั่นการเขียนโปรแกรมใน Scalaควรจะเปิดตัวเร็ว ๆ นี้ (ish) แต่รุ่นการเข้าถึงก่อนหน้านั้นยอดเยี่ยม คำตอบอีกข้อเสนอแนะการเขียนโปรแกรมฟังก์ชั่นสำหรับนักพัฒนา Javaซึ่งฉันไม่คุ้นเคยกับ แต่ฉันเชื่อว่าเป็นสิ่งที่ดี (เมื่อหนังสือ O'Reilly ไม่คุ้มค่าอย่างน้อย skimming?)
ฉันหวังว่าสิ่งนี้จะไม่ได้ยืดยาวและชัดเจนเกินไปและหวังว่าคุณจะได้รับสิ่งที่ดีที่สุด สกาล่ามีความผิดปกติ แต่เป็นภาษาที่ยอดเยี่ยมและจะนำสมองของคุณไปในทิศทางที่คุณไม่เคยรู้มาก่อน และฉันจะมองหา "การเรียนรู้ Haskell ของคุณรู้สึกท้อแท้" ในหนึ่งปี :)