คำนำด่วน
เรียนรู้โดยการทำ: ความรู้และความรู้
มีความรู้และความรู้ที่แตกต่างกันมาก มันเป็นข้อผิดพลาดทั่วไปสำหรับผู้เรียนใหม่ที่จะคิดว่าเพราะพวกเขาสามารถ "เข้าใจ" โปรแกรมที่พวกเขาอ่านพวกเขาเข้าใจเหตุผลที่แท้จริงของโปรแกรมที่เขียนในแบบที่มันเป็น
และวิธีเดียวที่จะเข้าถึงส่วนที่สองคือฝึกฝน นั่งลงเปิดตัวแก้ไขข้อความบรรทัดคำสั่งและลงไปที่มัน
เป็นไปได้ว่า (และคาดว่า) ในขั้นนี้ความสามารถของคุณในการทำความเข้าใจว่าองค์ประกอบของซอฟต์แวร์ที่ซับซ้อนมีปฏิสัมพันธ์กับคนอื่นในจำนวนเท่าใด และมันก็เป็นสิ่งที่ดีเพราะมันบังคับให้คุณเริ่มต้นจากพื้นฐาน อย่ากระโดดปืนและก้าวไปตามจังหวะที่ถูกต้อง: เริ่มต้นด้วยแบบฝึกหัดเล็ก ๆ สำหรับงานเล็ก ๆ
บอกตามตรงฉันไม่เคยเชื่อเลยว่าการเริ่มเรียนรู้การเขียนโปรแกรมด้วย Java เป็นวิธีที่จะไป (ฉันเคยสอนการเขียนโปรแกรมเพื่อการใช้ชีวิตในมหาวิทยาลัย มันซับซ้อนเกินไปที่จะให้คุณเริ่มต้นและหนังสือ Java ส่วนใหญ่จะดูค่อนข้างน่ากลัว อย่างไรก็ตามอย่างแน่นอนสามารถทำได้ (อย่างน้อยสำหรับบางพื้นที่ของความรู้ระดับโลกที่เราคาดหวังจากโปรแกรมเมอร์) ตราบใดที่คุณ จำกัด ตัวเองในการเรียนรู้ทีละขั้นตอน
หนังสือ
ในขณะที่คุณตั้งค่าบน Java และถ้าคุณต้องการหนังสือ Java ที่เหมาะสมฉันแนะนำ:
- คิดใน Java มันโอเคแม้ว่าตอนนี้จะล้าสมัยไปแล้ว
- ชวากวดวิชา มันไม่ได้เป็นคู่หูที่ดีที่สุดของผู้เรียน แต่เป็นข้อมูลอ้างอิงที่ดีที่ควรคำนึงถึงเพราะครอบคลุมพื้นฐานทั้งหมดและให้ตัวอย่าง การเรียนรู้ Java Language Trailน่าจะอยู่ในรายการเรื่องรออ่านของคุณแม้ว่าฉันคิดว่ามันน่ากลัวสำหรับผู้เริ่มต้นที่สมบูรณ์เพราะมันแนะนำแนวคิดที่อาจจะเข้าใจยากในตอนแรก
- มีผลบังคับใช้ Java มันไม่ได้เป็นหนังสือที่ดีสำหรับการเรียนรู้ แต่ยังเป็นข้อมูลอ้างอิงที่ยอดเยี่ยมที่คุณควรมีไว้ใช้ในภายหลัง อย่าอ่านในการนั่งเพียงครั้งเดียว แต่เป็นชิ้นขนาดพอดีคำ
ฉันแค่พูดถึงสิ่งนี้เพราะฉันไม่รู้ว่าคุณใช้อะไรในชั้นเรียน มีหนังสือเล่มอื่นอีกมากมาย บางตัวก็ดี บางคนจะพิการนักเรียนเป็นเวลาหลายปี
กระบวนการเรียนของคุณ
เวิร์กโฟลว์พื้นฐาน
จากนี้ไปฉันขอแนะนำให้คุณทำตามกระบวนการ 2 ขั้นตอนนี้สำหรับแบบฝึกหัดและตัวอย่างโค้ดที่คุณเห็นในชั้นเรียน:
- อ่านและศึกษา
- อ่านแบบฝึกหัด
- ทำให้แน่ใจว่าคุณเข้าใจพวกเขา
- รหัส
- ปิดหนังสือ
- นั่งหน้าคอมพิวเตอร์ด้วยโปรแกรมแก้ไขรหัสและบรรทัดคำสั่ง
- พยายามเขียนโปรแกรมด้วยตัวเอง
ในกรณีที่ล้มเหลว
หากคุณล้มเหลวและรู้สึกว่าคุณจำเป็นต้องอ่านหนังสือความล้มเหลวของคุณน่าจะเป็น:
- (เป็นไปได้มากที่สุด) ที่คุณไม่เข้าใจวิธีแก้ปัญหา
- (มีโอกาสน้อยกว่า) ที่คุณลืมว่าโซลูชันมีลักษณะเป็นอย่างไร: ไวยากรณ์, การใช้ API, ...
สาเหตุแรกน่าจะเป็นสิ่งที่คุณเผชิญบ่อยที่สุด อันที่สองคือประวัติย่อ ทั้งสองได้รับการแก้ไขด้วยการฝึกซ้ำ
ทุกครั้งที่คุณล้มเหลวในการใช้หนึ่งในตัวอย่างต้นเหล่านี้ให้ดูที่หนังสืออีกครั้งแล้วปิดอีกครั้ง อย่าเขียนโค้ดในขณะที่ดูหนังสือ ฉันยังแนะนำให้คุณลบโซลูชันทั้งหมดและเริ่มต้นใหม่ การทำซ้ำเป็นส่วนที่น่ารำคาญ แต่สำคัญของกระบวนการเรียนรู้
อย่าใช้เวลานี้เบา ๆ ทุกครั้งที่คุณรู้สึกอยากบอกตัวเองว่า "ใช่โอเคฉันรู้เรื่องนี้" หรือ "ฉัน 90% อยู่ที่นั่นเกือบจะดีเท่าที่ทำได้" และต้องการข้ามไปยังส่วนอื่นต่อสู้กับสิ่งกระตุ้นและเริ่มต้นใหม่ มันยากมากที่จะมีความซื่อสัตย์ในการยอมรับกับตัวเองว่าคุณไม่เข้าใจแนวคิดทั้งหมด
ด้านหมายเหตุ:ฉันคิดว่ามันเป็นความเสียหายที่ยอดเยี่ยมที่โปรแกรมโรงเรียนส่วนใหญ่ตอนนี้พยายามที่จะ "เริ่มต้น" หลักสูตรการเขียนโปรแกรมโดยลดสิ่งต่าง ๆ ลงมากเกินไปและให้เครื่องมือที่สูงเกินไปสำหรับนักเรียน: เป้าหมายคือไม่ทำให้ชีวิตของคุณมีความสุข โดยสิ่งที่หัวใจในภายหลังในอาชีพของคุณจะเป็นไปโดยอัตโนมัติด้วยเครื่องมือของคุณและบางครั้งคุณก็แทบจำ เพื่อสอนบิตทั้งหมดที่ลอยไปรอบ ๆ
ในกรณีที่ประสบความสำเร็จ: ก้าวต่อไป!
หากคุณประสบความสำเร็จในการนำการออกกำลังกายไปใช้คุณไม่จำเป็นต้องกระโดดไปที่หน้าถัดไปโดยตรง ลองดูว่าคุณสามารถปรับปรุงอะไรได้บ้าง คุณสามารถเปลี่ยนเอาต์พุตที่ร้องขอได้หรือไม่? เพิ่มคุณสมบัติเล็ก ๆ ? ตัวเลือก? ลองทำตามที่คุณอยู่ในโซนที่สนุกที่คุณผ่านความยากลำบากหลักและข้อกำหนดเล็ก ๆ ที่บังคับด้วยตนเองเหล่านี้มีแนวโน้มที่จะทำให้วิญญาณของคุณขึ้นเล็กน้อย
อย่าไปไกลเกินไป: คุณไม่ได้ไปจากการพิมพ์ตัวอักษรและย้อนกลับไปที่ทำให้มันปรากฏบนเส้นทแยงมุมบนหน้าจอด้วยการไล่ระดับสี ทำตามขั้นตอนเล็ก ๆ การเรียนรู้เป็นกระบวนการที่ใช้เวลานานและซ้ำแล้วซ้ำอีกและคุณจำเป็นต้องเข้าถึงปัญหาด้วยการเพิ่มระดับของความยากลำบาก (ตัวอย่างเช่นดูว่าฉันมักจะคิดถึงการอธิบายการเรียกซ้ำ )
มันเป็นแค่การเรียนรู้ - การเปรียบเทียบ
ปัญหาของคุณไม่เกี่ยวข้องกับการเขียนโปรแกรมเลย มันเป็นปัญหาเดียวกันกับที่คนหลายพันคนพบเมื่อพวกเขาพยายามเรียนรู้คณิตศาสตร์
หากคุณให้ปัญหากับพวกเขาพวกเขาจะไม่เห็นวิธีการแก้ไขปัญหา อย่างไรก็ตามถ้าคุณเขียนวิธีแก้ปัญหาสำหรับพวกเขาส่วนใหญ่จะเข้าใจและคิดว่า "ยี้นั่นง่ายมาก!" แต่คุณจะให้ปัญหาที่คล้ายกันกับมาตรการและสมมติฐานที่แตกต่างกันและพวกเขาจะไม่สามารถแก้ไขได้: พวกเขาไม่เข้าใจตรรกะที่อยู่เบื้องหลังและพวกเขาจำเป็นต้องฝึกฝนเพื่อที่จะทำมันเอง
โปรดทราบว่านี่เป็นปัญหาที่พบได้บ่อยในวิชาคณิตศาสตร์ แต่ในความคิดของฉันคุณจะเห็นมันในหลาย ๆ สาขาที่มีตรรกะที่จำเป็นต้องใช้: การเรียนรู้ไวยากรณ์ภาษาไวยากรณ์ฟิสิกส์ ฯลฯ ... และมันไม่ได้ลงไปถึงความสามารถ "ธรรมชาติ" เพื่อทำความเข้าใจกับสิ่งเหล่านี้: มันลงมาสู่การฝึกฝน (ไม่ว่าจะเป็นในพื้นที่นั้นหรือในที่อื่น ๆ ที่ทำให้แต่ละคนเข้าใจแนวคิดในสาขานี้ได้ง่ายขึ้น)
ไม่มีเหตุผลที่คุณเรียนรู้ที่จะเขียนโค้ดไม่ได้ คุณแค่พยายามต่อไปจนกว่าจะถึง "อาอา!" / เดี๋ยวยูเรก้า จากนั้นไปยังปัญหาถัดไปที่ยากขึ้น
สิ่งเหล่านี้อาจช่วยได้เช่นกัน (ในภายหลัง):