ฉันจะเชี่ยวชาญภาษาการเขียนโปรแกรมได้อย่างไร


103

ฉันรู้ว่าการเรียนรู้ภาษาคุณสามารถซื้อหนังสือทำตามตัวอย่างและลองทำแบบฝึกหัดก็ได้ แต่สิ่งที่ฉันกำลังมองหาจริงๆคือวิธีการหลักภาษาเมื่อคุณได้เรียนรู้มัน

ตอนนี้ฉันรู้แล้วว่าประสบการณ์เป็นปัจจัยสำคัญอย่างหนึ่ง แต่สิ่งที่เกี่ยวกับการเรียนรู้ภาษาภายในสิ่งที่เป็นโครงสร้างพื้นฐาน ฯลฯ

มีบทความออกมาบอกว่าอ่านหนังสือเล่มนี้อ่านหนังสือเล่มนั้นสร้างเกมนี้และเกมนั้น แต่สำหรับฉันแล้วนี่ไม่ได้หมายความว่าจะเชี่ยวชาญภาษา ฉันต้องการที่จะสามารถอ่านรหัสของคนอื่นและเข้าใจได้ไม่ว่ามันจะยากแค่ไหน เพื่อทำความเข้าใจว่าจะใช้ฟังก์ชั่นและเมื่ออื่น ฯลฯ

รายการสามารถไปบนและใน แต่ฉันเชื่อว่าฉันทำจุด :)

และในที่สุดใช้ภาษาใดก็ตามที่เป็นตัวอย่างถ้าจำเป็น แต่จะดีที่สุดถ้า C ถูกนำมาเป็นตัวอย่าง


11
ประสบการณ์คือสิ่งที่ทำให้คุณเดือดร้อนอย่างแท้จริง ทฤษฎีทั้งหมดที่คุณมีความเชี่ยวชาญนั้นไม่มีประโยชน์เว้นแต่คุณจะสามารถนำไปใช้ได้จริง
Simon Whitehead

2
ใช้คอมไพเลอร์สำหรับภาษานี้ จริงๆแล้วนั่นเป็นวิธีที่ฉันชอบในการลองใช้ภาษาใหม่ ๆ หากฟังดูง่ายและน่าเบื่อเกินไปให้ลองกำหนดความหมายของภาษาทางการแทนโดยใช้ K framework หรือสิ่งที่คล้ายกัน
SK-logic

6
"มนุษย์มันคือ dinossaur, car universe" มันไม่สำคัญว่าคุณเชี่ยวชาญภาษามากแค่ไหนหากรหัสไม่ดีและไม่สมเหตุสมผลก็ยังยากที่จะเข้าใจ
Renato Dinhani

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

2
รหัสและอ่านรหัส ใช้เคอร์เนลลินุกซ์ (การเขียนโปรแกรม C) แบบสุ่มและหาฟังก์ชันที่ใช้
Alex Hart

คำตอบ:


166

ฉันต้องตอบว่า "ถูกทุกข้อ" ผู้คนแย้งว่าการเขียนรหัสเป็นศิลปะงานฝีมือวินัยทางวิศวกรรมหรือสาขาคณิตศาสตร์และฉันคิดว่ามันยุติธรรมที่จะบอกว่ามันเป็นของแต่ละคน ด้วยเหตุนี้ยิ่งคุณใช้ทักษะมากเท่าไหร่ภาษาก็ยิ่งดีเท่านั้น นี่คือรายการบางส่วน:

  • ใช้ภาษาทั้งวันทุกวัน โดยปกติแล้วนี่หมายถึงการทำงานเต็มเวลาในภาษา

  • อ่านทั้งหมดที่คุณสามารถเกี่ยวกับภาษา โดยเฉพาะ "แนวปฏิบัติที่ดีที่สุด" และสำนวน

  • เข้าร่วมกลุ่มผู้ใช้เพื่อพูดคุยกับผู้อื่นเกี่ยวกับภาษาและสิ่งที่พวกเขาทำกับมัน

  • ทำงานกับรหัสของคนอื่น! ไม่มีวิธีที่เร็วกว่าในการเรียนรู้สิ่งที่ไม่ควรทำในภาษามากกว่าจะต้องทำความสะอาดหลังจากคนที่ทำสิ่งที่น่ากลัว

  • สนับสนุนรหัสที่คุณเขียน - ข้อผิดพลาดทุกอย่างจะกลายเป็นการตัดสินใจที่เลวร้ายที่สุดของคุณ!

  • เรียนวิทยาศาสตร์คอมพิวเตอร์และภาษาโดยทั่วไป

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

  • เรียนรู้การใช้เฟรมเวิร์กและ API ที่มีให้สำหรับภาษานั้น

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

  • อ่านประวัติความเป็นมาของภาษาเพื่อเรียนรู้ว่าทำไมมันถึงได้เป็นแบบนั้น

  • เข้าร่วมการประชุมเพื่อฟังผู้เขียนภาษาพูดหรือฟังสิ่งที่ผู้นำอุตสาหกรรมกำลังทำกับภาษา

  • เข้าชั้นเรียนภาษา

  • สอนภาษาให้ผู้อื่น (ขอบคุณBryan Oakley )

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


76
+5 สำหรับการสนับสนุนโค้ดที่คุณเขียน - ข้อผิดพลาดทุกอย่างจะช่วยให้คุณตัดสินใจได้ง่ายขึ้น!
Jennifer S

8
+1 สำหรับประโยคสุดท้ายเท่านั้น:Every technique you use to learn brings and additional perspective to your understanding.
Izkata

1
@Izkata: OMG ฉันเขียนมันเหรอ? จริงๆแล้วฉันเป็นเจ้าของภาษาอังกฤษ! ฉันแก้ไขมันแล้ว ขอบคุณ!
GlenPeterson

2
@GlenPeterson ... จริง ๆ แล้วฉันเพิ่งคัดลอกวางโดยไม่สนใจว่าประโยคนั้น "ปิด" +1 นั้นมีไว้เพื่อจุดประสงค์ที่อยู่เบื้องหลัง = P
Izkata

13
+1 สำหรับ"เรียนรู้ภาษาที่แตกต่างกันมากคำชมเชยที่ดีต่อ C จะเป็นภาษาที่ใช้งานได้เช่น Lisp ซึ่งจะเปลี่ยนวิธีที่คุณคิดเกี่ยวกับภาษากระบวนการของคุณออกมาข้างใน" - นี่อาจเป็นสิ่งสำคัญที่สุด มันช่วยให้คุณเรียนรู้วิธีการเรียนรู้เกี่ยวกับการเขียนโปรแกรม (เช่นสิ่งที่จะมองหาในสถานการณ์อะไร)
naught101

53

10,000 ชั่วโมงของการฝึกฝนคือสิ่งที่ต้องทำ

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

ประเด็นสำคัญจากด้านบน:

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

1
นั่นคือสิ่งที่ฉันจะโพสต์! ฉันยังไม่ได้ใช้เวลามากพอกับ P.SE
Martijn Pieters

@MartijnPieters: :-D
vartec

8
ชื่อหนังสือที่ยอดเยี่ยม! ฉันไม่สามารถรอภาคต่อของ "สอนตัวเองให้เก่งใน 20 ปี!"
GlenPeterson

16
อย่างไรก็ตามคุณต้องแน่ใจว่าคุณไม่ได้ทำซ้ำ 10 ชั่วโมง 1,000 ครั้ง ...
Izkata

ไม่มีความเชี่ยวชาญด้านเทคนิคจำนวนมากที่จะช่วยให้ใครบางคนรู้ว่าจะทำอย่างไรโดยอัตโนมัติหรือสร้างโปรแกรมสำหรับ นี่ก็เหมือนกับการพูด - ไปที่ยิมและออกกำลังกายพื้นฐานทุกอย่างในบาสเก็ตบอลเป็นเวลาสิบปีเป็นเวลา 1 ชั่วโมงต่อวัน เกย์! คุณเป็นนักบาสเก็ตบอล (ปรมาจารย์) ... ไม่มันเป็นมากกว่าทักษะด้านเทคนิค ดังนั้นฉันไม่คิดว่านี่เป็นคำตอบของคำถามคือจะเป็นอาจารย์ได้อย่างไร นี่อาจเป็นส่วนหนึ่งของการแก้ปัญหา แต่ไม่ใช่ยาวิเศษสำหรับความเชี่ยวชาญ ฉันรู้ - ฉันไม่ใช่ผู้เชี่ยวชาญ!
oemb1905

36

อย่าคิดว่าตัวคุณเองเป็นผู้ชำนาญภาษาทั้งตัวจนกว่าคุณจะได้ใช้ภาษาที่ดีกว่านั้น ซึ่งหมายความว่าหากต้องการเรียนรู้วิธีการใช้ภาษาใดภาษาหนึ่งจากข้างล่างให้รับหนังสือที่สอนแนวคิดเกี่ยวกับภาษาของคอมไพเลอร์ / ล่าม ตัวอย่างเช่น:

  • C: หนังสือ LCC Compiler

  • C ++: การออกแบบและวิวัฒนาการของ C ++ (จากนั้นไปสร้างคอมไพเลอร์ C ++ ของคุณเองหรืออย่างน้อยก็เข้าใจการใช้งานโดยใช้โค้ดคอมไพเลอร์ GNU C ++)

  • Java: รับ "Inside JVM" และรับซอร์สโค้ด javac รหัส. java "ของ C ยังมีประโยชน์เช่นกัน

  • Python: การใช้ CPython

  • ObjectiveC: วัสดุเกือบทั้งหมดจาก Apple เกี่ยวกับ internals ของ ObjC runtime env และซอร์สโค้ดคอมไพเลอร์จะช่วยคุณได้

  • Lisp: SICP Book (สอน Scheme ให้คุณและผู้แปลพื้นฐานสำหรับการออกเสียงเหมือนภาษา): Lisp in Small Pieces (หนังสือดีอีกเล่ม)


1
นี่คือสิ่งที่ฉันเรียกว่าคำตอบ ฉันได้ตอบรับแล้ว แต่นี่น่าจะสมควรได้รับ "คำตอบที่ดีที่สุด" ถ้าก่อนหน้านี้เล็กน้อย
cprogcr

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

ฮิฮิฉันเรียนรู้จากพวกเขา ดีใจที่ได้ช่วย :-)
Aniket Inge

เนื่องจากคุณพูดถึง C เป็นตัวอย่างให้ฉันให้ชื่อหนังสืออีกสองเล่มแก่คุณเป็นของขวัญซึ่งฉันเคยเป็นปรมาจารย์ C เหมือนหลังมือของฉัน): 1. OOC.PDF (ออนไลน์ฟรี) และ 2 Minix Book (แม้ว่าหนังสือของผู้พัฒนาระบบปฏิบัติการนี่คือสิ่งที่ Linus Torvalds อ่านก่อนใช้งาน Linux)
Aniket Inge

1
ใช่โดย Andrew Tenenbaum นั่นคือหนังสือ ทุกฉบับเหมาะที่จะอ่าน มันไม่ได้บอกคุณว่า "C" ทำงานอย่างไร แต่เมื่อคุณเห็นว่าการใช้ไลบรารี่ C ในการทำงานกับระบบปฏิบัติการที่คุณสร้างขึ้นคุณจะเริ่มเข้าใจ C มากขึ้น! อาจจะมากพอที่จะช่วยให้คุณสามารถปรับเปลี่ยนได้ (และนั่นคือสิ่งที่มาใน OOC).
Aniket Inge

12

ลองใช้ภาษาเพื่อหาสิ่งที่ไม่ได้ตั้งใจใช้ เขียนไดรเวอร์อุปกรณ์ใน Python หรือไลบรารีการจัดการเมทริกซ์ใน COBOL ฉันคิดว่าวิธีที่ดีที่สุดวิธีหนึ่งในการฝึกฝนภาษาคือการผลักมันพยายามทำให้จุดแข็งของมันเอาชนะจุดอ่อนของมัน


1
เมื่อฉันอยู่ในวิทยาลัยฉันจะตัดสินใจว่าฉันจะ "เข้าใจ" ภาษาเมื่อฉันเขียน Pong ในนั้น สิ่งนี้ทำงานได้ค่อนข้างดีจนกระทั่งฉันเรียนรู้ MIPS ฉันยังมีฝันร้าย
Roddy แห่ง Peas แช่แข็ง

เว็บไซต์ใน C สามารถทำได้หรือไม่
BigSack

10

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


2
The true goal is to master your conceptual understanding of a language or languages.เผง นั่นคือสิ่งที่ฉันหมายถึงจริงๆ
cprogcr

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

SK-logic: ภาษาการเขียนโปรแกรมเปลี่ยนแปลงและทำไลบรารีและสภาพแวดล้อม ดังนั้นวิธีที่คุณทำงานกับการเปลี่ยนแปลงภาษาก็เช่นกัน ตัวอย่างเช่น jQuery เปลี่ยนวิธีที่เราทำงานกับ Javascript
orlp

อาจเป็นเรื่องจริงที่ไม่มีใครสามารถเชี่ยวชาญภาษาอย่าง C ++ ได้ แต่สำหรับคนที่มีแนวคิดเรียบง่ายอย่าง Scheme ก็น่าจะเป็นไปได้ - @ SK-logic กล่าวว่ามันเป็นโปรแกรมจริงๆไม่ว่าจะเป็นภาษาอะไร แอปพลิเคชั่นไม่มีที่สิ้นสุด
leftaroundabout

1
@ nightcracker ภาษาไม่ "วิวัฒนาการ" C99 จะเป็น C99 เสมอและจะไม่มีวันเปลี่ยนแปลง C ++ 11 จะยังคงเป็น C ++ 11 เสมอแม้ว่าจะถูกแทนที่ด้วยภาษารุ่นต่อไป สภาพแวดล้อมนั้น "พัฒนา" ใช่ แต่ jQuery ไม่ได้แนะนำเทคนิคใหม่ใด ๆ ที่ไม่เคยมีมาก่อนในชุมชนภาษาอื่น ๆ พวกเขายังใหม่ต่อชุมชน Javascript ที่แคบเท่านั้น
SK-logic

5

คุณรู้คำตอบสำหรับเรื่องนี้แล้ว

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

มันลงมาเพื่อการทำงานหนักและความมุ่งมั่นและสำหรับทุกสิ่งที่คุณอาจไม่เคยได้รับ

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

ไม่มีสัญลักษณ์เวทมนต์ ...


2

เริ่มต้นด้วยการอ่านและการทำความเข้าใจสิ่งที่เป็นSDLC (aka, วงจรชีวิตการพัฒนาซอฟแวร์) มันเป็นกระบวนการที่วนซ้ำซึ่งเกี่ยวข้องกับการพัฒนาตนเองการเรียนรู้**practicing, practicing...**

ป้อนคำอธิบายรูปภาพที่นี่

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

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


1
ขอบคุณ ฉันเลือกตอบแล้วตามเวลาที่ฉันอ่าน แต่จะรับคำแนะนำของคุณอย่างแน่นอน
cprogcr

ไม่แน่ใจว่าทำไมถึงลงคะแนนโปรดแจ้งให้เราทราบว่าต้องปรับปรุงอะไรบ้าง
EL Yusubov

2

ไม่มีประสบการณ์มาทดแทน ในการที่จะเชี่ยวชาญบางสิ่งคุณต้องทำ / ใช้มันอย่างมากสำหรับสิ่งต่าง ๆ

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

ฉันต้องการที่จะสามารถอ่านรหัสของคนอื่นและเข้าใจได้ไม่ว่ามันจะยากแค่ไหน

นั่นคือสิ่งที่คุณสามารถทำได้ทันทีเมื่อคุณเข้าใจไวยากรณ์พื้นฐาน เพียงใช้รหัสและใช้เวลาในการแก้ไขรายละเอียด เงยหน้าขึ้นมองสิ่งที่คุณไม่เข้าใจหรือถามคำถามที่เฉพาะเจาะจงในสถานที่เช่นกองมากเกิน


2

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

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

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


1

ฉันขอคำแนะนำสองสามข้อได้ไหม

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

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


0

ภาษาการเขียนโปรแกรมสะท้อนความคิดที่อยู่เบื้องหลังกระบวนทัศน์การเขียนโปรแกรมที่ได้รับการพัฒนามุ่งเป้าไปที่การพัฒนาซอฟต์แวร์เพื่อการใช้งานทั่วไปหรือเพื่อการพัฒนาซอฟต์แวร์ที่มีวัตถุประสงค์พิเศษ ตัวอย่างเช่นภาษาโปรแกรมเช่น Java หมายถึงกระบวนทัศน์โปรแกรมเชิงวัตถุ แต่ AspectJ (ส่วนขยายของ Java) ใช้สำหรับโปรแกรมตามการเขียนโปรแกรมแบบเชิงกว้าง

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

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

ฉันหวังว่านี่จะช่วยได้!


0

ฉันจะเพิ่มสองรายการลงในรายการของ Glen

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

0

เพื่อสร้างสิ่งที่ @TMN พูด ฉันประสบความสำเร็จอย่างมากในการเรียนรู้ภาษาโดยการเขียนโปรแกรมเดียวกันในภาษาอื่น

ตัวอย่างเช่นการเขียนโปรแกรมที่อ่านในไฟล์ CSV แยกวิเคราะห์ข้อความแล้วเขียนกลับเป็น CSV ที่สองพร้อมคอลัมน์ในลำดับย้อนกลับ

แบบนี้,

column1, COLUMN2, คอลัมน์ 3

ไปยัง

คอลัมน์ 3, COLUMN2, COLUMN1

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

นอกจากนี้ฉันคิดว่าสิ่งที่ @GlenPeterson พูดถึง

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

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

ภาษาที่ยอดเยี่ยมในการเล่นกับ


0

คุณไม่สามารถเรียนรู้ภาษาจากหนังสือ สิ่งที่คุณต้องการคือการฝึกฝนและฝึกฝน อย่าคิดว่าคุณสามารถเรียนรู้ภาษาจากหนังสือเล่มนั้นหรือจากแหล่งใดแหล่งหนึ่งเพียงแค่คิดว่าภาษาการเขียนโปรแกรมเหมือนกับภาษามนุษย์คุณไม่สามารถเรียนรู้ภาษาอังกฤษหรือภาษาฝรั่งเศสเพียงแค่อ่านหนังสือเล่มใดเล่มหนึ่ง ชีวิตประจำวัน โค้ดตั้งแต่เริ่มต้นขยายฟังก์ชันการทำงานพยายามสร้างบางสิ่งที่จะทำให้คุณพึงพอใจเล็กน้อยและหากคุณคิดว่าการเรียนรู้ภาษาเป็นภาษาที่รู้ทั้งภาษาและใช้องค์ประกอบของภาษาโปรแกรมแต่ละตัวในการเขียนโปรแกรมเชิงปฏิบัติ .. YOU ไม่สามารถ หรือแม้ว่าคุณจะใช้เวลา 10-15 ปีก็ตาม

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