เป็นทักษะที่จำเป็นสำหรับโปรแกรมที่ไม่มีเอกสาร API หรือไม่? [ปิด]


22

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

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


2
ฉันคิดว่าเขาถามเกี่ยวกับเอกสารอ้างอิง API โดยเฉพาะ

3
@bancer - คุณไม่สามารถใช้คลาส java ดั้งเดิมได้ ดูเหมือนคุณจะไม่ได้เตรียมการสอบ
Ramhound

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

11
@ Antonio2011a - การรู้จัก API ของภาษาที่คุณใช้นั้นไม่ใช่ "การท่องจำแบบไม่มีจุดหมาย" ยิ่งคุณรู้จัก API มากเท่าไหร่คุณก็ยิ่งสามารถเขียนโปรแกรมได้ดีเท่านั้นเพราะคุณจะเลือกคลาสและวิธีการที่เหมาะสมสำหรับโซลูชันของคุณ คุณไม่สามารถเลือกได้หากคุณไม่รู้ว่ามีอยู่จริง แน่นอนไม่มีใครรู้ทั้ง Java API; มันใหญ่เกินไป. แต่มันก็เป็นเรื่องดีเสมอที่จะรู้เท่าที่คุณสามารถจัดการได้
Dawood กล่าวว่าคืนสถานะโมนิก้า

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

คำตอบ:


39

ใน Real Life ™ฉันจะให้คะแนนความสามารถนี้ว่า "ดีที่มี" แต่ไม่จำเป็นเลย อย่างไรก็ตามในการตั้งค่ามหาวิทยาลัยมันแตกต่างกัน

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

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

หมายเหตุ:ฉันแก้ไขคำตอบนี้เพื่อตอบสนองต่อการแก้ไขคำถาม


2
จากการอ่านของฉันผู้ตรวจสอบกำลังดูความสามารถของเขาในการจดจำเอกสาร API เขารู้ว่าต้องทำอย่างไรจำไม่ได้ซินแท็กซ์
Paul

@ พอลฉันอ่านการแก้ไขและเปลี่ยนคำตอบของฉัน ฉันคิดว่า OP กำลังขอสิ่งที่แตกต่างอย่างสิ้นเชิง ขอบคุณ!
dasblinkenlight

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

@Paul: ถูกต้อง
bancer

21

มีผู้ชายคนหนึ่งที่มีข้อผิดพลาดเล็กน้อยในรหัสของเขาดังนั้นเขาจึงนำมันไป StackOverflow และขอความช่วยเหลือ StackOverflow: Java (ตัวเลขสร้างไม่มีซ้ำ) ฉันดูรหัสของเขาและชี้ให้เขาเห็นว่า HashSet ของเขาเต็มไปด้วยคุณค่าตลอดเวลา แต่มันก็ไม่เคยเคลียร์ ดังนั้นเขาถามฉันว่า: "คุณจะล้างมันได้อย่างไร" ฉันต้องยอมรับว่าฉันไม่ได้ภูมิใจอย่างยิ่งกับคำตอบที่ฉันให้

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

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

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


+1: มันยากที่จะเรียนรู้ API ทั้งหมดของไลบรารีขนาดใหญ่อย่างเช่น Java หนึ่งได้ยากเนื่องจากขนาดที่แท้จริง การทราบว่าความสามารถทั่วไปที่มีให้ในแพ็คเกจนั้นง่ายกว่า (เช่น javax.imageio ให้การจัดการภาพขั้นสูงไม่ใช่ที่ฉันเคยใช้) และสิ่งอำนวยความสะดวกหลักบางอย่างควรได้รับการเรียนรู้ โดยเฉพาะอย่างยิ่ง java.lang และ java.util จะถูกใช้ในแทบทุกโปรแกรม Java ที่เคยมีมา
Donal Fellows

9

เป็นทักษะที่จำเป็นสำหรับโปรแกรมที่ไม่มีเอกสาร API หรือไม่

ฉันจะไม่บอกว่ามันจำเป็นแต่มันคือ

ทักษะที่พึงประสงค์มาก

imNSho

ฉันใช้เวลาไม่กี่เดือนในการเขียนโค้ดร่วมกับคนที่รู้ API ดีกว่าฉันอย่างเห็นได้ชัด เขาเป็นคนที่สร้างสรรค์มากขึ้น - เพียงเพราะเขาสามารถข้ามเอกสาร API ตรวจสอบที่กวนใจฉัน


ที่นี่ฉันกำลังพูดถึงความคล่องแคล่ว เกี่ยวกับการไม่เพียง แต่มีความสามารถอย่างคล่องแคล่ว

คุณรู้หรือไม่ว่ามันจะต้องคล่องแคล่ว? เมื่อมีคนมองคุณมันจะปรากฏขึ้นราวกับว่าคุณพิมพ์รหัสในขณะที่ ...

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

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

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


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

@ReiMiyasaka ดีถ้าคุณข้ามการสอบ verbose คุณอาจสังเกตเห็นว่า: "ดังนั้นคำถามของฉันคือ: เป็นสิ่งสำคัญหรือไม่ที่จะสามารถเขียนโค้ดได้อย่างไม่มีที่ติหากไม่มีเอกสาร API ฉันควรพัฒนาทักษะนี้จริงหรือไม่ และในสภาพแวดล้อมการทำงาน? " . ผมมุ่งเน้นในส่วนของคำถามนี้เพราะคุณจะเห็นประสบการณ์ล่าสุดของฉันทำให้ฉันรู้สึกอึดอัดมากเกี่ยวกับความคิดที่ว่ามันก็สามารถบินโดยมีคำตอบประถมมันไม่จำเป็นต้องใช้ ยุติธรรมเพียงพอหรือไม่
gnat

2
+1 สำหรับครอบคลุมค่าใช้จ่ายของการสลับบริบทเป็นเอกสารอ้างอิง การค้นหาทุกขั้นตอนทำให้ช้าลงเพื่อรวบรวมข้อมูล
ไวแอตต์บาร์เน็ตต์

8

ไม่ฉันจะตายโดยที่ไม่สามารถค้นหาเอกสาร API ได้ ครั้งเดียวที่ฉันไม่มีมันคือตอนที่ฉันพยายามแก้ไขจุดบกพร่องบางอย่างที่ฉันไม่สามารถเข้าถึงเอกสารได้ จากนั้นฉันก็ "reverse engineer" ชิ้นส่วน api และ cut-n-paste ตามต้องการ

สิ่งสำคัญคือต้องมีความคิดที่ดีเกี่ยวกับ API ที่เกี่ยวกับและส่วนใดที่ดีที่สุดในการใช้ แต่การรู้ชื่อเมธอดชื่อตัวแปร ... ไม่จำเป็นจริงๆ


3

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

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

ที่ SFU Computing Science การสอบแบบปิดหนังสือประกอบด้วยคะแนนระหว่าง 70% ถึง 100% ของคะแนนทั้งหมดของเรา ทฤษฎีคือการสอบทดสอบความเข้าใจของเนื้อหาหลักสูตรและการปรับตัวของคุณ ในความเป็นจริงการทดสอบทั้งหมดคือเส้นประสาทคุณภาพการนอนหลับ / ระยะเวลาของคุณสติปัญญาและเทคนิคการท่องจำของคุณ - ไม่จำเป็นต้องใช้ทั้งในเชิงวิชาการหรืองานทั่วไปในอุตสาหกรรมซอฟต์แวร์


2

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

สำหรับคำถามสุดท้ายของคุณ: คุณอาจได้รับทราบข้อมูลเฉพาะของบางคลาสที่ไม่มีเอกสาร API หากคุณรู้ก่อนเข้าสัมภาษณ์คุณจะได้รับการทดสอบหรือถ้างานนั้นเน้นมาก (เช่น: คุณจะทำเกลียวตลอดทั้งวัน) คุณอาจคาดหวังว่าจะต้องรู้รายละเอียดของชั้นเรียนที่เกี่ยวข้องอย่างสมเหตุสมผล


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


2

API เอกสาร! = ไวยากรณ์ภาษา

ฉันสามารถเข้าใจได้เมื่อมีคนไม่รู้ชื่อที่แน่นอนของคลาส Java และวิธีการของพวกเขา ฉันไม่รู้จักพวกเขาและฉันใช้รหัสใน Java ทุกวัน ฉันจะหลงทางโดยไม่ต้องใช้ docs หรือ IDE auto almight ที่สมบูรณ์ - โดยเฉพาะอย่างยิ่งเมื่อมันมาถึง Java API มาตรฐานซึ่งเป็นที่รู้จักกันดีสำหรับ verbosity ในชื่อตัวแปร / class / method

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

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


2
ฉันไม่คิดว่ามันคุ้มค่าที่จะจดจำไวยากรณ์ คุณสมบัติและรูปแบบและ gotchas ใช่ แต่ไวยากรณ์ไม่ใช่ ฉันทำงานกับหลายภาษาเพื่อให้มีความหมายและฉันคิดว่านั่นเป็นความจริงสำหรับนักพัฒนาส่วนใหญ่เช่นกัน
Rei Miyasaka

@ReiMiyasaka: ฉันไม่คิดว่าคุณควรจำรายละเอียดภาษาทั้งหมด แต่คุณควรรู้ไวยากรณ์พื้นฐานได้ตลอดเวลา คุณค้นหาเอกสารวิธีเขียนลูปในภาษาของคุณหรือไม่? หรือคุณเพียงแค่รหัสมัน
Goran Jovic

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

@ Antonio2011a: ฉันยอมรับว่าฉันทำเองโดยเฉพาะอย่างยิ่งเมื่อฉันใช้ภาษาทั่วไปน้อยกว่า แต่สำหรับนักเรียนหลายคนการเรียนรู้ภาษาเป็นภาษาโปรแกรมแรกที่เคยมีมา หากนักเรียนไม่ได้เรียนรู้ไวยากรณ์มันก็ไม่ได้พูดอะไรที่ดีเกี่ยวกับวิธีที่เขา / เธอเตรียมพร้อมสำหรับการสอบ
Goran Jovic

@Goran จริง ๆ แล้วฉันไม่จำเป็นต้องด้วยเหตุผลสองประการ: 1. การคอมไพล์พื้นหลังบอกฉันเมื่อฉันได้รับไวยากรณ์ผิดและ 2. ลูปเป็นไฟล์รอง (เกือบไม่มีอยู่) ในภาษาเช่น Haskell และ ML ภาษามีความหลากหลายมากกว่าที่คุณคิด แม้ว่าฉันจะใช้เวลาส่วนใหญ่ในการเขียนรหัส F # และจำ Haskell เพียงรางเดียว แต่ฉันยังสามารถเข้าใจรหัส Haskell ได้ดีจำได้เพื่อจดจำความแตกต่างทางความหมาย ในอีกด้านหนึ่งฉันยอมรับว่าการเรียนรู้ภาษาแรกจากภายในคือสิ่งที่สำคัญอย่างยิ่งและถูกทอดทิ้งบ่อยเกินไป
Rei Miyasaka

2

ใน Eclipse คุณสามารถเขียนobj.และกดเว้นวรรค ctrl + และมันจะพยายามทำให้สมบูรณ์อัตโนมัติโดยให้ตัวเลือกวิธีการทั้งหมดสำหรับวัตถุที่กำหนด หากนั่นทำให้ฉันล้มเหลวด้วยเหตุผลบางอย่างJava APIมีคำตอบที่เหลือ ฉันจะรู้สึกกดดันเมื่อนึกถึงวันหนึ่งเมื่อฉันไม่ใช้ Google ทำอะไร

โรงเรียนเป็นเรื่องที่แตกต่างอย่างสิ้นเชิงแม้ว่า


2

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

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

และเรียนรู้ API ด้วยใจเหม็น มีการเติมข้อความอัตโนมัติ / google / msdn / javadocs เพื่อค้นหา nooks และ crannies ทั้งหมดทำไมทุกคนต้องการเก็บทุกสิ่งไว้ในสมองตลอดเวลา ฟังก์ชั่นทั่วไปส่วนใหญ่ที่คุณจะเรียนรู้ในไม่กี่สัปดาห์ / เดือนทุกอย่างสามารถค้นหาได้ในเวลาไม่กี่วินาทีถ้าคุณรู้ไวยากรณ์โครงสร้างและแนวคิดทั่วไป

จากนั้นอีกครั้งบางคนยังคงเขียนโค้ดตัวแก้ไขข้อความและจดจำชื่อฟังก์ชันด้วยใจนั่นไม่ผิดเลย แต่ถ้าพวกเขาคลั่งคุณจะได้อาจารย์ของคุณ

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

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


1

ถ้าคุณเริ่มทำงานกับโปรเจคบางอย่างในเวลาไม่นานโดยใช้ api ไม่ช้าก็เร็วคุณจะได้เรียนรู้ว่า api นั้นดีมาก ฉันเชื่อว่านี่เป็นทักษะที่ไม่จำเป็นโดยสิ้นเชิงเนื่องจากฉันไม่รู้จักใครเลยที่ไม่เคยดูเอกสารใด ๆ เลย (msdn, man pages, ฯลฯ ... )

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


ไม่สอดคล้องกับประสบการณ์ของมหาวิทยาลัย หากมีสิ่งใดพวกเขามักจะหมกมุ่นอยู่กับทฤษฎีและขาดความสนใจในรายละเอียด หรือระดับลดลงไปหนึ่งในโรงเรียนอาชีวศึกษาหรือไม่
AProgrammer

ฉันไม่ได้พูดเกี่ยวกับมหาวิทยาลัยแห่งหนึ่งและนี่เป็นเพียงตัวอย่างของสิ่งที่คุณอาจเห็นที่ไหนสักแห่งในโลกในบางมหาวิทยาลัย อย่างที่คุณทราบพวกเขาไม่เหมือนกันทั้งหมด
Hayri Uğur Koltuk

2
มหาวิทยาลัยมีการจดจำและสำรอกอยู่เสมอ ฉันมีแคลคูลัสแบบ aced ถ้าฉันมีหนังสือ CRC ให้ใช้งานแทนที่จะต้องท่องจำตารางสำคัญ
Blrfl

1

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

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

แก้ไข: เห็นได้ชัดว่าสิ่งที่ครูขอให้คุณขึ้นอยู่กับเขาครูบางคนให้ความสำคัญกับทฤษฎีมากกว่าในขณะที่คนอื่นให้ความสำคัญกับการฝึกฝนและไม่สนใจว่าคุณจะไม่เข้าใจทุกสิ่ง

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