มันมีค่าอ่านข้อกำหนดภาษา? [ปิด]


18

ฉันสงสัยว่ามันคุ้มค่าที่จะอ่านข้อมูลจำเพาะภาษา / เอกสารมาตรฐาน (เช่นJava Language Specification ) ถ้าคุณจะไม่เขียนคอมไพเลอร์ / ล่ามสำหรับภาษาหรือสิ่งที่คล้ายกัน? ฉันเข้าใจว่าการอ่านหนังสือดังกล่าวไม่ควรเป็นภาษาแรกของใครก็ตาม แต่มันอาจเป็นวิธีที่ดีในการเรียนรู้รายละเอียดปลีกย่อยของมัน

คุณเคยใส่ใจและคนอื่น ๆ ควร?


4
ข้อกำหนดภาษาไม่ได้หมายถึงให้อ่านจากหน้าปกเพื่อครอบคลุมมันเป็นเพียงการอ้างอิง
Mahmoud Hossam

คำตอบ:


18

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

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

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


3
+1 สำหรับย่อหน้าสุดท้าย นั่นคือสิ่งที่โปรแกรมเมอร์ส่วนใหญ่ควรตระหนัก - พวกเขาต้องการเป็น John Skeet (ผู้รู้ทุกอย่างเกี่ยวกับ C # แต่ถัดจากสิ่งอื่นใด - ไม่เห็นเขาตอบคำถาม SQL เป็นต้น) หรือเป็นแค่ผู้ใช้ แต่ใช้เทคโนโลยีอื่น ๆ อีกมากมาย ซึ่งทำให้การฝึกปฏิบัติมากขึ้นและชีวิตน่าสนใจยิ่งขึ้น

2
@ ผู้พัฒนาศิลปะ: แต่ Jon Skeet เป็นพระเจ้า;)
Anto

1
@sbi: ฉันเห็นด้วยว่าภาษา (และความซับซ้อนของภาษา) อย่างชัดเจนเป็นปัจจัยสำคัญ ขนาดมาตรฐานไม่จำเป็นต้องมีความหมายมากนัก ตัวอย่างเช่นส่วนของมาตรฐาน C ++ ที่ครอบคลุมภาษาที่เหมาะสมนั้นมีความยาวเพียง 400 เพจเท่านั้นในขณะที่ข้อมูลจำเพาะภาษาจาวาคือ 500 ในขณะที่ฉันไม่คิดว่า Java นั้นเกือบจะ "ล้างข้อมูล" C ++ ที่อ้างสิทธิ์บางอย่าง แต่ฉันเชื่อว่ามันซับซ้อนกว่า C ++ 25% เช่นกัน
Jerry Coffin

3
@Developer ศิลปะ - บิตรุนแรงเกี่ยวกับจอนสกีตเขามีป้ายสำหรับทุกสิ่ง (รวมถึง SQL!)
Shug

2
@dietbuddha: แน่นอนฉันไม่ได้หมายถึงการแก้ตัวความไม่รู้แต่ในความเป็นธรรมสำหรับคนส่วนใหญ่มันเป็นคำถามน้อยกว่าว่าพวกเขาควรเรียนรู้บางสิ่งบางอย่างมากกว่าสิ่งที่พวกเขาควรใช้เวลาในการเรียนรู้ ซึ่งจะเป็นประโยชน์ต่อโปรแกรมเมอร์ C ++ มากขึ้น: การเรียนรู้อัลกอริทึมใหม่หรือเรียนรู้กฎที่แน่นอนที่ใช้ในการเลือกฟังก์ชั่นโอเวอร์โหลดที่จะเรียกใช้ชุดพารามิเตอร์ที่กำหนด? โปรดจำไว้ว่าถ้าเขามีเหตุผลมากมายที่จะต้องดูแลซึ่งเรียกว่าเขาอาจใช้งานหนักเกินไป!
Jerry Coffin

12

ไม่เคย

หนึ่งไม่ควรอ่านข้อกำหนดภาษา

มันเสียเวลาทั้งหมด

โปรแกรมเมอร์ที่ยอดเยี่ยมสามารถพิมพ์รหัสสุ่มถามคำถามเกี่ยวกับ Stack Overflow และใช้ IDE เพื่อเขียนโค้ดที่ไม่ผิดพลาดบ่อยครั้งที่สุด

อย่าเสียเวลากับการเข้าใจภาษา เพียงค้นหา IDE ที่ยอดเยี่ยมด้วยการเติมข้อความอัตโนมัติที่ดี ถามคำถามมากมาย มันคือทั้งหมดที่ทุกคนต้องการ


3
ไม่เคย? แม้ว่าคุณจะเขียนล่าม / ผู้แปล
greyfade

1
คุณจับมัน! มันเป็นวิธีการทำงาน ;)
x4u

4
@greyfade: ไม่เคย อย่าเชื่อข้อเท็จจริง ติดกับสมมติฐาน
S.Lott

6
สิ่งที่ลึกซึ้งในนั้นคืออะไร?
Aditya P

2
ฉันไม่สามารถบอกได้ว่านี่เป็นถ้อยคำที่ถากถางหรือไม่ : P
greyfade

5

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

สำหรับนักพัฒนาที่มีประสบการณ์ Java Puzzlers นั้นดีมากในการฝึกฝนความเข้าใจของคุณเกี่ยวกับคดีมุมมืด


2

คำตอบทั่วไปคือ: ใช่มันมีค่า

หากคุณต้องการเขียนรหัสพกพาเป็นสิ่งจำเป็น

สำหรับบางภาษามันเป็นสิ่งที่หลีกเลี่ยงไม่ได้เช่น Ada หรือ Perl

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


2

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

เมื่อใดก็ตามที่ฉันเรียนรู้ภาษาใหม่สิ่งแรกที่ฉันมองหาคือสเป็ค

ฉันอ่านข้อกำหนดสำหรับ ANSI C, C ++, Java, Scheme, Python และ Javascript ฉันลืมรายละเอียดส่วนใหญ่ C, C ++ และ Java เพียงเพราะฉันไม่ได้ใช้ภาษาเหล่านั้นบ่อยครั้ง เมื่ออ่านรายละเอียดฉันเป็นโปรแกรมเมอร์ที่ดีกว่าเพราะฉันรู้วิธีใช้ภาษาให้ดีขึ้น


1

โดยทั่วไปแล้วจะมีประโยชน์ในการเข้าใจช่วงเวลาที่ยุ่งยากบางอย่างที่คุณเผชิญอยู่ในขณะนี้

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


นี่คือเหตุผลที่ฉันเก็บสำเนาของ ECMA-262 ไว้เป็นประโยชน์
greyfade

1

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


1

หากคุณเป็นโปรแกรมเมอร์หลักอย่างหนักในภาษานั้นและคุณต้องสามารถบีบทุก ๆ ความแตกต่างออกไปได้ใช่ มีผลตอบแทนที่ชัดเจนจากการลงทุนเวลาของคุณในกรณีนั้น

มิฉะนั้นจะไม่ หากคุณไม่ได้ใช้ความรู้มันจะไม่ติดกับคุณแน่นอน รายละเอียดภาษานั้นเกี่ยวกับสิ่งที่น่าเบื่อที่สุดเท่าที่จะอ่านได้


1

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

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


1

มันคุ้มค่าที่จะอ่าน บางภาษาเช่น C ++ และ Java และ Python มีความซับซ้อนมากพอโดยการอ่านข้อมูลจำเพาะภาษาคุณจะได้เรียนรู้มากมายเกี่ยวกับภาษาเหล่านั้น

ฉันเคยอ่านข้อกำหนดภาษา Scheme R5RS ในการนั่งรถบัสไปวิทยาลัยเพราะสั้นและกะทัดรัดและฉันได้เรียนรู้ไวยากรณ์ทั้งหมดและฟังก์ชั่นพื้นฐานทั้งหมดที่มี


0

ส่วนของ doc.python.org ที่ระบุว่า "การอ้างอิงภาษา" นั้นมีประโยชน์อย่างยิ่ง บท "data model" เป็นพิเศษ


0

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

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.