ฉันจะพัฒนาทักษะการเขียนโปรแกรมได้อย่างไร [ปิด]


76

นี่คือข้อมูลเล็กน้อยเกี่ยวกับฉันก่อนที่จะเริ่มด้วยคำถาม

ฉันเป็นวิทยาการคอมพิวเตอร์ระดับปริญญาตรี Java เป็นภาษาการเข้ารหัสหลักของฉัน

ปัญหาพื้นฐานในมหาวิทยาลัยของฉันคือมาตรฐานการสอน ไม่มีใครกังวลเกี่ยวกับการสอนความรู้การเขียนโค้ดให้นักเรียนมากกว่าแค่ความรู้เชิงทฤษฎี

ผลที่ได้คือเพื่อนร่วมวิทยาลัยส่วนใหญ่ของฉันไม่เข้าใจการเขียนโปรแกรมเลย

แม้ว่าฉันจะไม่สามารถออกมาจากสภาพแวดล้อมการเขียนโปรแกรมแบบดั้งเดิมซึ่ง จำกัด การเขียนโค้ดของฉันในระดับหนึ่ง

มีวิธีใดบ้างที่เป็นไปได้ที่ฉันสามารถพัฒนาและขยายทักษะการเขียนโปรแกรม / การเข้ารหัสของฉัน

นอกจากนี้คุณสามารถแนะนำแหล่งข้อมูลเดียวกันได้หรือไม่

แก้ไข : แหล่งข้อมูลแนะนำการพัฒนาทักษะการเขียนโปรแกรม


13
FYI: จากประสบการณ์ความรู้ทางทฤษฎีของฉันจะช่วยคุณในภายหลังอย่างแน่นอน
Gopi

6
คุณสามารถว่ายน้ำด้วยการอ่านหนังสือ "สอนตัวเองวิธีการว่ายน้ำในหนังสือ X วัน" ได้ไหม?
pramodc84

9
"การปฏิบัติโดยเจตนา" ทำสิ่งที่ยากกว่าระดับปัจจุบันเล็กน้อยแก้ปัญหาเรียนรู้จากมันทำซ้ำ

7
@ pramodc84 แต่แน่นอนว่าการอ่านหนังสือเกี่ยวกับการว่ายน้ำแล้วกระโดดลงไปในแม่น้ำจะช่วยได้มากกว่าการกระโดดลงแม่น้ำโดยตรงและพยายามเรียนว่ายน้ำ
Gopi

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

คำตอบ:


46

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

คุณอาจพบว่าหนังสือที่ใช้เพื่อการเข้ารหัสมีประโยชน์โดยเฉพาะ เช่น "Code Complete" พวกเขามีคำอธิบายของรหัสที่ดีซึ่งรวมกับความรู้พื้นฐานของคุณสามารถทำให้คุณเป็นโปรแกรมเมอร์ที่ดี


8
การอ่าน Code Complete นั้นดีมาก - นั่นคือหนังสือที่ฉันต้องการมากที่สุดที่ฉันได้อ่านเมื่อฉันออกจากวิทยาลัยในฐานะโปรแกรมเมอร์
glenatron

2
ตอนนี้หนังสือเล่มนั้นอยู่ในmust-readรายการของฉัน :) ขอบคุณ!
ykombinator

2
@ykombinator:(push 'code-complete must-read)
Giorgio

98

คำพูดที่ฉันชอบคือจากกูรู:

ฉันได้ยินฉันรู้ ฉันเห็นฉันจำได้ ฉันทำฉันเข้าใจ

ความรู้ทั้งหมดที่ฉันได้รับมาจากการใช้กลยุทธ์หนึ่งเดียว:

ใช้เส้นทางที่ท้าทายที่สุดเสมอ

คุณต้องการเรียนรู้ C # หรือไม่ รับงานเป็นนักพัฒนา C #

คุณต้องการเรียนรู้ภาษาอิตาลี? ไปที่นั่นด้วยพจนานุกรมภาษาอังกฤษ / อิตาลีและพูดภาษาอิตาลี

คุณต้องการเรียนรู้การเข้ารหัส? รหัส!


19
+1 สำหรับใช้เส้นทางที่ยากที่สุดเสมอ ในที่สุดพวกเขากลายเป็นเส้นทางที่ง่าย! คำตอบที่ดี.
Ryan Hayes

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

2
ฉันเปลี่ยนได้ยากที่สุดโดยการท้าทายที่สุด มันเป็นบวกมากขึ้น

2
การเขียนโปรแกรมที่ดีไม่ใช่กีฬาผู้ชม
ไม่ระบุตัวตน

4
@ เปียร์คุณต้องการเรียนรู้ 1) ละตินและ 2) Perl รหัส Perl ในภาษาละติน: csse.monash.edu.au/~damian/papers/HTML/Perligata.html

21

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


1
แน่นอน! นั่นเป็นจุดที่ดี อาจเป็นไปได้ว่าฉันไม่มีพี่เลี้ยง
ykombinator

4
เขียนโค้ดและโพสต์ด้วยคำถามเฉพาะบน StackOverflow.com และคุณจะได้รับมากมาย
JeffO

2
นี่คือเหตุผลที่ฉันพยายามอย่างต่อเนื่องที่จะตรวจสอบโค้ดในโครงการของเรา แต่ "ไม่มีเวลาสำหรับเรื่องนั้น"
MetalMikester

1
@MetalMikester - แต่ก็มีเวลาทำมากกว่าเสมอ
JeffO

1
@JeffO นั่นคือสิ่งที่เกิดขึ้นตอนนี้ :(
MetalMikester

10

นี่เป็นการนำเสนอแดนนอร์ทให้และ QCon ในวิธีการย้ายจากสามเณรโปรแกรมเมอร์ผู้เชี่ยวชาญที่เรียกเหลาเครื่องมือ ด้านล่างนี้เป็นข้อเสนอแนะที่สำคัญจากงานนำเสนอ:

  1. ฝึกพื้นฐาน: กะตะรหัสเพื่อความสนุกสนาน ...
  2. เรียนรู้จากผู้อื่น: อ่านหนังสือบล็อก ฯลฯ อ่านรหัสโปรแกรมเป็นคู่ ...
  3. ทำความเข้าใจกับแนวโน้ม: สิ่งที่เกิดขึ้นในอุตสาหกรรมในขณะนี้
  4. แบ่งปันความรู้: วิธีที่ดีที่สุดในการเรียนรู้บางอย่างคือการเข้าใจและสอน
  5. รักษากล่องเครื่องมือของคุณ: ใช้ "ไม่มีเวลา" และเครื่องมือใหม่
  6. เรียนรู้วิธีการเรียนรู้: เข้าใจวิธีการเรียนรู้การทำงาน

8

พยายามเขียนคอมไพเลอร์สำหรับภาษาง่ายๆตั้งแต่เริ่มต้น คุณจะพัฒนาทักษะของคุณได้ตลอดเวลา (ด้วยเทคนิคทางทฤษฎีที่ดีจากทฤษฎีภาษาที่เป็นทางการเป็นโบนัส) ฉันพยายามเขียน Excel แบบง่าย ๆ และมันก็เป็นแบบฝึกหัดที่ดีมาก

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

มีคำพูดดีๆจาก Nate Kirby:

"โปรแกรมเมอร์ไม่สนใจรายละเอียดนักออกแบบไม่ดีจะหลงทางในรายละเอียด"

ดังนั้นการสลับระหว่างสองระดับของสิ่งที่เป็นนามธรรมคือทักษะที่คุณควรมีความเชี่ยวชาญ

ความเร็วของจำนวนบรรทัดของโค้ดที่คุณสามารถเขียนได้ต่อชั่วโมงนั้นไม่ใช่สิ่งที่คุณควรตั้งไว้ ฉันชอบคำพูดของDavid Parnas :

"ฉันมักจะได้ยินนักพัฒนาอธิบายว่า` คนที่รู้จักวิธีสร้างระบบขนาดใหญ่อย่างรวดเร็ว ' ไม่มีเคล็ดลับในการสร้างระบบขนาดใหญ่ได้อย่างรวดเร็ว; ยิ่งคุณสร้างได้เร็วเท่าไหร่ก็ยิ่งมีขนาดใหญ่ขึ้นเท่านั้น! "


5

ฉันได้ติดตั้งเกมการพนันหรือเกมบาคาร่าในเกือบทุกภาษาที่ฉันได้เรียนรู้

ซอฟต์แวร์ประเภทนี้ครอบคลุม

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

ผู้เล่นแบล็คแจ็คและโป๊กเกอร์หลายคนก็ใช้งานได้

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


4
  • เลือกโครงการ opensource ที่ดีและอ่านรหัส
  • ใช้โครงการขนาดกลางสำหรับตัวคุณเองและเริ่มการเข้ารหัส
    • หากคุณสนใจในการพัฒนาเว็บไซต์ลองสร้างเว็บไซต์ที่มีอยู่ตั้งแต่เริ่มต้นด้วยเทคโนโลยีที่คุณโปรดปราน แล้วทวิตเตอร์ใน django ล่ะ?
    • หากคุณอยู่ในการพัฒนาแอปพลิเคชันเดสก์ท็อปให้เริ่มต้นด้วยแผ่นจดบันทึกและปรับให้เข้ากับมันเพื่อรองรับคุณสมบัติขั้นสูง

4

ลองคิดดูสินี่ .... Tiger Woods ไม่ได้เป็นนักกอล์ฟ "ที่ดีที่สุด" โดยการดูกอล์ฟหรืออ่านเกี่ยวกับมัน เขาได้รับวิธีการเช่นเดียวกับที่นักกีฬาคนอื่นทำโดยการศึกษาการฝึกฝนโดยการค้นหาว่าเขาสามารถปรับปรุงเกมของเขาและทำอะไรกับมันได้บ้าง

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


ใช่ Tiger Woods เป็นนักกอล์ฟที่ "ดีที่สุด" โดยมีคู่รักมากมาย :-) ดังนั้นเขาจึงไม่ใช่ตัวอย่างที่ดีจริงๆ
DL

4

ในกิจกรรมของมนุษย์อื่น ๆ วิธีที่ดีที่สุดในการปรับปรุงคือฝึกฝนความรู้ของคุณ แต่คุณต้องออกกำลังกายเพื่อสิ่งนั้น Dave Thomasหนึ่งในผู้แต่งหนังสือ The Pragmatic Programmer ได้แนะนำแนวคิดของCode Katasซึ่งคล้ายกับแนวคิด kata ในศิลปะการต่อสู้

คุณสามารถดูได้ที่: http://codekata.pragprog.com/


4

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

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

ดังนั้นการฝึกฝน กระโดดลงไปในน้ำ! ขอให้โชคดี :)


3

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

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


3

ฉันทามติทั่วไปคือ "เขียนรหัสเพิ่มเติม" ซึ่งฉันเห็นด้วยกับ แต่ฉันจะเพิ่มคำแนะนำที่คุณควรเขียนรหัสประเภทต่าง ๆ มากมาย Java นั้นดีพอ ๆ กับภาษา แต่คุณควรเขียนโค้ดทั้งบนและล่าง นอกเหนือจาก Java ฉันขอแนะนำให้ทำโครงการเล็ก ๆ น้อย ๆ ในภาษาระดับต่ำกว่า (C เป็นโครงการที่ดีสำหรับเรื่องนี้) ภาษาสคริปต์ (ฉันชอบ Perl แต่งูใหญ่เป็นตัวเลือกที่ดี) เป็นภาษาที่ใช้งานได้ ( lisp เป็นคำแนะนำทั่วไปที่นี่ แต่ OCaml และ Haskell ก็เป็นทางเลือกที่ดีเช่นกัน) และอย่างน้อยก็สบายใจกับการอ่านภาษาแอสเซมบลี

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

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

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


2

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

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

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


2

คำแนะนำของฉัน

  • ค้นหาโครงการสัตว์เลี้ยงและเขียนเป็นภาษาอื่น (lyke python / c #) ไปยังคนที่คุณรู้จัก สิ่งนี้จะสอนคุณมากกว่าที่คุณจะจินตนาการได้ ดูโปรเจ็กต์อื่นที่คล้ายกันและพยายามทำให้ฟีเจอร์เสมอกัน คุณสามารถทำสิ่งนี้ได้ช้าและมีเป้าหมายที่พอประมาณเพิ่มระดับความยากของคุณด้วยฟีเจอร์ใหม่ ๆ สิ่งนี้จะกลายเป็นงานแสดงของคุณเมื่อคุณไปสัมภาษณ์งาน
  • ค้นหาการใช้งานในโครงการของคุณสำหรับเทคโนโลยีที่เกี่ยวข้องเช่นบริการเว็บ javascript, ajax, geocoding และโดยทั่วไปสิ่งใดก็ตามที่กำลังเป็นที่นิยมในโลกของซอฟต์แวร์
  • เล่นกับระบบปฏิบัติการอื่น ๆ เช่น Linux / freebsd ยิ่งคุณได้รับระบบที่แตกต่างกันมากเท่าไหร่คุณก็ยิ่งเข้าใจความคิดและเหตุผลว่าทำไมพวกเขาถึงทำสิ่งต่าง ๆ ในแบบที่พวกเขาทำ
  • เมื่อคุณทำส่วนต่าง ๆ ของรหัสของคุณกลับไปที่มันและพยายามที่จะปรับปรุงมันอย่างต่อเนื่อง ค้นหาความไม่มีประสิทธิภาพเพิ่มความคิดเห็นเพิ่มเติมเมื่อจำเป็นพยายามที่จะทำให้สมบูรณ์แบบ
  • ขุดไปรอบ ๆ ที่ c2.com มีวิธีการเข้ารหัสที่ดีมากมาย เรียนรู้สิ่งเหล่านี้และลองนำไปใช้ในโครงการของคุณเอง
  • อ่านหนังสืออย่างโปรแกรมเมอร์เชิงปฏิบัติและรหัสที่สมบูรณ์พวกเขาจะให้ความรู้เกี่ยวกับการเขียนโปรแกรมการต่อสู้ที่แข็ง
  • สิ่งนี้อาจฟังดูไม่เกี่ยวข้อง แต่หางานอดิเรกทางเทคนิคอื่นถ้าคุณไม่มีรถแข่ง RC เล่นเครื่องดนตรีหรือเรียนรู้ภาษาต่างประเทศ สมองของคุณมีการใช้งานที่ดีขึ้นและคุณจำเป็นต้องผ่อนคลายเป็นครั้งคราวเนื่องจากการเขียนโปรแกรมสามารถทำได้มากเกินไป

2

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


1

"การปฏิบัติ" นั่นคือถ้อยคำที่เบื่อหู

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


1

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

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

โอ้และถ้าคุณไม่แน่ใจว่า NP-complete หมายถึงอะไรหรือถ้าสัญลักษณ์ใหญ่ -O ทำให้คุณกลัวคุณก็ควรใช้ทฤษฎีการคำนวณและคลาสอัลกอริทึม


1

ฉันจะบอกว่าคุณควรอ่านข้อมูลเกี่ยวกับรูปแบบการออกแบบเช่น Builder, Factory, Composite และในที่สุดผู้สังเกตการณ์ Mediator และ Flyweight รูปแบบการออกแบบไม่ใช่จุดจบของทั้งหมดสำหรับโซลูชันการเข้ารหัส แต่แสดงให้เห็นถึงวิธีการใช้แนวคิดเชิงทฤษฎีของการเขียนโปรแกรมเชิงวัตถุ


1

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

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

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