Java มักพบในสถาบันการศึกษา อะไรคือเหตุผลเบื้องหลัง
real
โลกนั้นไม่ได้เป็นประโยชน์ต่อนักเรียนหรือ บริษัท ที่ต้องการจ้างนักเรียน
Java มักพบในสถาบันการศึกษา อะไรคือเหตุผลเบื้องหลัง
real
โลกนั้นไม่ได้เป็นประโยชน์ต่อนักเรียนหรือ บริษัท ที่ต้องการจ้างนักเรียน
คำตอบ:
ไม่กี่มหาวิทยาลัยมีใครสักคนที่เป็นที่รู้จักกันพอว่าการตัดสินใจหลายคน (ส่วนใหญ่ถ้าไม่) หมุนรอบของบุคคลนั้นชอบคนไม่ชอบความคิดเห็นรสชาติ ฯลฯ เพียงตัวอย่างเช่น Texas A & M มี Bjarne Stroustrup กับเจ้าหน้าที่; อาจเป็นเรื่องแปลกใจสำหรับผู้ที่หลักสูตรของพวกเขามีแนวโน้มที่จะเน้นภาษา C ++
มหาวิทยาลัยส่วนใหญ่นั้นแตกต่างกันเล็กน้อย ประการแรกการตัดสินใจมักทำเพื่อประโยชน์ของคณะมากกว่านักศึกษา เกณฑ์ที่ใหญ่ที่สุดเดียวในหลาย ๆ กรณีคือ "ภาษาใดต้องใช้ความพยายามน้อยที่สุดในส่วนของเรา" พวกเขาส่วนใหญ่ยังระมัดระวังในความเกียจคร้านด้วย - พวกเขาต้องการไม่เพียง แต่ภาษาที่มีแนวคิดขั้นสูงที่น้อยที่สุดในการเรียนรู้ แต่ยังเป็นภาษาที่ช้าที่สุดในการคิดค้นปรับปรุงหรือโอบกอดสิ่งใหม่
ประการที่สองการตัดสินใจส่วนใหญ่ทำโดยคณะกรรมการ นี่หมายถึงการตัดสินใจขั้นสุดท้ายไม่ค่อยมีใครต้องการจริงๆ - เป็นเพียงสิ่งที่สมาชิกน้อยที่สุดของคณะกรรมการ (โดยเฉพาะผู้ที่มีอิทธิพลมากที่สุด) พบว่าไม่เหมาะสม มันเหมือนกับการเลือกไอศครีมรสชาติ คนหนึ่งชอบสตรอเบอร์รี่จริง ๆ แต่อีกคนแพ้สตรอเบอร์รี่ อีกคนชอบช็อคโกแลตจริงๆ แต่บางคนก็ทนไม่ได้ อีกคนคิดว่าเหล้ารัมลูกเกดนั้นดี แต่อีกสองคนกังวลว่าการพูดถึง "เหล้ารัม" จะถูกตีความว่าเป็นการส่งเสริมการดื่มแอลกอฮอล์ - ดังนั้นพวกเขาจึงลงเอยด้วยวานิลลาแม้ว่ามันจะไม่ใช่สิ่งที่ทุกคนต้องการ
ในที่สุดแม้ว่ามันจะทำงานตรงข้ามกับเกณฑ์สองประการก่อนหน้านี้ส่วนใหญ่แต่ก็มักจะต้องการ (หรืออย่างน้อยต้องการ) เพื่อที่จะตอบสนองต่อความต้องการของอุตสาหกรรม
Java เป็นจุดตัดของทั้งสามสิ่งนี้:
โปรดทราบว่าฉันไม่ได้พูดจริง ๆ (ตัวอย่าง) ว่าไม่มีอะไรให้รู้เกี่ยวกับ Java มากกว่าความคิดพื้นฐานที่สุดของ OOP คืออะไร - เฉพาะที่นั่นคือทั้งหมดที่จำเป็นในการทำสิ่งที่ผ่านไปสำหรับงานสอนที่ยอมรับได้
ฉันเรียนวิชาวิทยาการคอมพิวเตอร์ในช่วงต้นทศวรรษที่แล้วก่อนที่ Java จะออกมา วิธีการตามมาโดยอาจารย์ของเรามีดังต่อไปนี้
ปีแรก: หลักสูตรเบื้องต้นเกี่ยวกับการเขียนโปรแกรมและอัลกอริธึมใน Pascal ทำไมปาสกาล? เพราะมันเป็นภาษาที่สะอาดออกแบบมาเพื่อสอนแนวคิดของการเขียนโปรแกรมโดยไม่มีสิ่งอำนวยความสะดวกสำหรับการแฮ็ค แน่นอนว่านักเรียนของเรารู้ว่าภาษาที่ได้รับความนิยมมากที่สุดในเวลานั้นคือ C และมีภาษาใหม่ที่มีความนิยมเพิ่มขึ้น: C ++ ดังนั้นเราจึงได้อ่านและพูดคุยเกี่ยวกับภาษาเหล่านี้ตลอดเวลาและทำโครงการเล็ก ๆ โดยใช้พวกเขาด้วยตัวเราเอง ดังนั้นความคิดคือ: ในชั้นเรียนเราทำทฤษฎีที่จริงจัง (Pascal) ในขณะที่อยู่ที่บ้านเราเรียนรู้วิธีแฮ็ค (C) :-)
ในช่วงปีที่สองเรามีหลักสูตรระบบปฏิบัติการที่เราถูกขอให้ทำแบบฝึกหัดใน C และชุดประกอบ อาจารย์ไม่ได้ให้หลักสูตรที่สมบูรณ์กับ C (เพียงไม่กี่บทเรียน) เพราะ (1) เรามีหลักสูตรเกี่ยวกับการเขียนโปรแกรมในช่วงปีแรกและ (2) เขากล่าวว่านักวิทยาศาสตร์คอมพิวเตอร์ทุกคนที่รู้แนวคิดของการเขียนโปรแกรมควร สามารถอ่านหนังสือและเรียนรู้ภาษาการเขียนโปรแกรมใหม่ได้ หลักสูตรดำเนินไปอย่างราบรื่นและเราทุกคนพบว่าเป็นเรื่องปกติที่ C และแอสเซมบลีเป็นหัวข้อปฏิบัติที่คุณเรียนรู้ด้วยตนเองหรืออภิปรายในทางเดินกับนักเรียนคนอื่น ๆ แต่ก็ไม่คุ้มกับการเรียน
ในช่วงปีที่สามเรามีหลักสูตรเกี่ยวกับภาษาการเขียนโปรแกรมซึ่งเราศึกษากระบวนทัศน์ที่แตกต่างกันของภาษาการเขียนโปรแกรม (จำเป็น, การทำงาน, เชิงตรรกะ, เชิงวัตถุ) เราเรียนรู้แนวคิดทั่วไปและเทคนิคการใช้งานและภาษาการเขียนโปรแกรมหลัก ๆ C, Modula2, Simula, Lisp, C ++, Prolog) สิ่งที่อาจารย์ของเราบอกกับเราในตอนเริ่มต้นของหลักสูตรคือคุณไม่ควรประเมินหลักสูตรนี้ด้วยการคิดว่าภาษาโปรแกรมที่คุณรู้จักในตอนท้ายของหลักสูตรมีจำนวนเท่าใด แต่จะเกี่ยวกับแนวคิดทั่วไปทั้งหมดที่คุณได้เรียนรู้มา เกี่ยวข้องกันสิ่งที่ดีสำหรับวิธีใช้ในภาษาใด จากนั้นการเรียนรู้ภาษาที่เฉพาะเจาะจงเป็นเพียงเรื่องของการอ่านหนังสือดูรหัสที่มีอยู่พยายามที่จะใช้มันในโครงการที่เฉพาะเจาะจงและอื่น ๆ
ฉันพบว่าวิธีนี้เหมาะสมและมีประสิทธิภาพมาก ฉันไม่คิดว่ามหาวิทยาลัยควรตั้งเป้าหมายในการเตรียมโปรแกรมเมอร์ที่ดี แต่ควรให้ความรู้ที่ดีซึ่งจะช่วยให้เข้าใจการเขียนโปรแกรมและภาษาโปรแกรม การเป็นโปรแกรมเมอร์ที่ดีจะกลายเป็นผลข้างเคียงของสิ่งนั้น ตอนนี้ฉันกำลังพิจารณาที่จะสมัครงานที่จำเป็นต้องใช้ Ada และฉันก็ไม่กลัวด้วยแม้ว่าฉันจะไม่เคยเขียนโปรแกรมจริงจังใน Ada มาก่อนก็ตาม
กลับไปที่คำถามของการสอน Java ฉันคิดว่า Java มักจะใช้สำหรับการสอนเพราะเป็นกลางและอนุญาตให้อธิบายหลักการของการเขียนโปรแกรมโดยใช้ภาษาที่ใกล้เคียงกับโลกของอุตสาหกรรม
โดยส่วนตัวแล้วฉันยังคงใช้ภาษาปาสคาลหรือภาษาที่คล้ายกันสำหรับหลักสูตรแรกเพราะนั่นจะทำให้ฉันสามารถแยกแยะความแตกต่างระหว่างโครงสร้างการควบคุมและโครงสร้างข้อมูลซึ่งในภาษาจาวา / ภาษาเชิงวัตถุนั้นมีการบูรณาการอย่างแน่นหนา ดังนั้นในความคิดของฉันปาสกาลจะอนุญาตให้มีการแนะนำแนวคิดพื้นฐานของการเขียนโปรแกรมทีละน้อย
นอกจากนี้นักวิทยาศาสตร์คอมพิวเตอร์ (และโปรแกรมเมอร์ที่ดี) ควรรู้เกี่ยวกับกลไกพื้นฐาน / โครงสร้างรันไทม์เช่นสแต็กฮีปการส่งพารามิเตอร์การจัดสรรหน่วยความจำพอยน์เตอร์หรือวิธีการใช้ประเภทข้อมูลนามธรรมโดยไม่ต้องใช้เครื่องมือในตัว ภาษา (รายการชุดและอื่น ๆ ) Java ใช้เวลาส่วนใหญ่นี้ไปจากโปรแกรมเมอร์ (ดีแน่นอน) แต่ผู้เริ่มต้นควรเรียนรู้เกี่ยวกับสิ่งเหล่านี้ บางทีหลังจากหลักสูตรการเขียนโปรแกรมครั้งแรกใน Java หนึ่งควรใช้หลักสูตรทั่วไปเพิ่มเติมเกี่ยวกับแนวคิดการเขียนโปรแกรมภาษา
นี่เป็นเพียงประสบการณ์และความคิดเห็นของฉัน
ฉันอยู่ที่โรงเรียนเมื่อจาวาออกมา และมหาวิทยาลัยของฉันเกือบจะเปลี่ยนข้ามคืน ผู้คนมีไหวพริบที่จาวาในสถาบันการศึกษา ฉันเป็นจูเนียร์เมื่อมันออกมาและเมื่อถึงปีอาวุโสสถาบันการศึกษาเกือบทั้งหมดก็เคลื่อนไหวอย่างรวดเร็วเพื่อเปลี่ยนหลักสูตรของพวกเขา ไม่เพียงแค่ที่มหาวิทยาลัยของฉัน แต่ทุกที่ มันเร็วมาก ๆ หลักสูตรแนะนำที่สองของเราคือ Pascal และเปลี่ยนเป็น Java ได้อย่างรวดเร็วภายในเวลาไม่ถึงปี ทำไมพวกเขาถึงแปลงเร็วขนาดนี้? เหตุผลใหญ่สองประการ
นักวิชาการคนหนึ่งต้องการสอนทฤษฎีและอัลกอริธึม ภาษาที่อำนวยความสะดวกให้คุณเรียนรู้อัลกอริธึมที่ไม่ต้องการประสบการณ์มากมายในการทำงานดีที่สุด: Scheme, Python, Java, Smalltalk และอื่น ๆ อีกมากมายภาษาที่ได้รับจะทำให้คุณเสียสมาธิมากขึ้นจากการเรียนรู้อัลกอริธึมที่แท้จริง ในเวลานั้นภาษาสคริปต์เป็นพลเมืองชั้นสองที่นายจ้างหน้าบึ้งเพราะราคาถูกหรือรวดเร็วและสกปรก นักวิชาการมองว่าพวกเขาเป็นแมวเลียนแบบมากกว่า แต่สิ่งที่นายจ้างต้องการก็มีอิทธิพลกับนักวิชาการด้วยเช่นกัน
นั่นนำเราไปสู่เหตุผลต่อไป นายจ้างต้องการประสบการณ์ทางภาษาที่แน่นอนและในเวลานั้นคือ C / C ++ แต่ C / C ++ ต้องอาศัยประสบการณ์มากมายในการเรียนรู้และมีมุมกรณีมากมายและถ้า ands หรือ buts ที่เบี่ยงเบนความสนใจ เราเรียนรู้หลักสูตรใน C / C ++ แต่ไม่ได้อยู่ในระดับที่ต่ำกว่า ในเวลาที่นายจ้างโกรธโปรแกรม CS เพราะนักเรียนไม่ได้เป็นปรมาจารย์ C / C ++
Java ถูกกวาดผ่านอุตสาหกรรมเกือบเร็วเท่ากับนักวิชาการ ดังนั้นในที่สุดสถาบันการศึกษาก็ได้สิ่งที่พวกเขาต้องการ ภาษาระดับสูงที่ง่ายต่อการเรียนรู้และนายจ้างต้องการภาษา มันสมบูรณ์แบบเกินไป ฉันมีเพื่อนกลับไปที่สถาบันการศึกษาอาจจะ 3 ปีหลังจากที่ฉันจากไปและเขาบอกว่าคุณสามารถหาหนังสือ Java ได้ในทุกวิชา CS นั่นคือความรวดเร็วของ Java ที่เข้าครอบงำสถาบันการศึกษา
โดยส่วนตัวฉันคิดว่า Java ไม่ได้โง่ CS ฉันคิดว่ามันเป็นเรื่องดีเพราะนักเรียนสามารถเรียน CS มีส่วนร่วมใน Open Source และหางานทำแม้ในขณะที่อยู่ในโรงเรียน ฉันยังเชื่อว่าคุณควรศึกษาภาษามากมายในฐานะนักเรียน CS และนั่นไม่ควรเป็นแค่ Java แต่ถ้าพวกเขาทั้งหมดใช้ python Joel ก็จะเกลียดหลามด้วยเช่นกัน
มีเหตุผลสองสามข้อที่รวมถึง:
โปรดทราบว่ามีโรงเรียนหลายแห่งที่สอน C # ด้วยเหตุผลหลาย ๆ ประการ มีสาเหตุอีกหลายประการบางคนก็เจาะจงไปที่โรงเรียนเฉพาะแห่งมากขึ้น ในสาระสำคัญ Java ได้กลายเป็นวัตถุที่มุ่งเน้น "พื้นฐาน" ของปีกลาย
*
ไวยากรณ์ แต่มันจะยากมากที่จะใช้โดยไม่ต้องมีความเข้าใจพื้นฐานของตัวชี้
ฉันต้องการโพสต์โจ Spolsky สิทธิภัยของ Java โรงเรียน ฉันคิดว่าBerin Loristchนั้นถูกต้องเกี่ยวกับการทำให้หลักสูตรง่ายขึ้นและมันก็สามารถนำไปใช้กับโลกแห่งความเป็นจริงได้
ฉันเคยได้ยินสิ่งต่อไปนี้พูดหลายครั้ง: "ปริญญาวิทยาการคอมพิวเตอร์ไม่ได้เป็นระดับที่จะเรียนรู้การเขียนโปรแกรมก็คือการเรียนรู้ทฤษฎี" ภาษาไม่จำเป็นต้องมีความหมาย (แม้ว่าจะไม่เป็นทาง) ตราบใดที่มีการเรียนรู้ทฤษฎี Java เป็นภาษาที่ใช้ง่ายในการรับและใช้เวลามากขึ้นในการเรียนรู้ทฤษฎีเบื้องหลังทุกสิ่ง นี่คือหนึ่งในเหตุผลที่ MIT ใช้ Scheme (ดังนั้นฉันจึงเคยได้ยิน)
คำตอบหลายข้อที่ให้ไว้ข้างต้นนั้นเป็นคำตอบที่ดี
Java เป็นภาษาที่มีหลายแพลตฟอร์ม นักเรียนคนหนึ่งสามารถใช้ Mac ของเขาพีซีอีกเครื่องและบัญชี Unix ของนักเรียนอีกคน รหัสเดียวกันจะทำในสิ่งเดียวกัน ลองคิดดูสิว่ามันจะง่ายสำหรับทั้งครูและแผนกไอทีของโรงเรียน
นี่คือความสำคัญที่แท้จริงของ Java เมื่อมันออกมา เรื่องตลกคือ "รหัสครั้งเดียวตรวจแก้จุดบกพร่องทุกที่" แต่มันเอาฮาร์ดแวร์และระบบปฏิบัติการออกจากสมการจริงๆ
ฉันได้ยินอาจารย์บอกว่าพวกเขาใช้ java เพื่อสอนเพราะ:
โดยส่วนตัวฉันดีใจที่ฉันรับ CS ที่ Berkeley เมื่อพวกเขาใช้ Scheme เพื่อสอน แม้ว่าฉันจะไม่ได้ตระหนักถึงความงดงามของภาษามันจริงจนกระทั่งอีกไม่กี่ปีต่อมา
พื้นหลังเล็กน้อย
ฉันเข้าเรียนวิชา Java ที่โรงเรียนของเราเท่านั้น นี่เป็นช่วงปลายยุค 90 ถึงต้นปี 2000 Java เติบโตขึ้น แต่ก็ไม่ได้ถูกถอดออก มาจากการพัฒนาจำนวนมากใน C ฉันรู้สึกหงุดหงิดเล็กน้อยกับรหัสต้นแบบทั้งหมดที่จำเป็นต้องใช้ Java และทำงาน ฉันไม่สามารถมุ่งเน้นงานของฉัน ฉันไม่สามารถเปิดไฟล์ด้วย "open" ฉันต้องกำหนดชั้นเรียนจากนั้นก็นำเข้า ฯลฯ ฯลฯ
ฉันเป็นวิศวกรรมคอมพิวเตอร์ดังนั้นฉันจึงทำการเขียนโปรแกรมประกอบก่อนจากนั้นจึงเลือก C และ C ++, Scheme และหลักสูตร Java หนึ่งหลักสูตร ส่วนใหญ่เป็นโปรแกรมของโรงเรียนที่มุ่งเน้น C คลาสอัลกอริทึมได้รับการสอนโดยใช้ C
เมื่อฉันเข้าสู่อุตสาหกรรม Java เป็นผู้เล่นที่โดดเด่นอย่างชัดเจน บางทีมันอาจเป็นผู้เล่นเพียงคนเดียวในระหว่างการแปลงจากระบบ COBOL แบ็คเอนด์ไปเป็นแอปพลิเคชันธุรกิจเว็บ Java Java สร้างความก้าวหน้าครั้งใหญ่ในโลกธุรกิจในช่วงต้นปี 2000
ในเวลาเดียวกันฉันไม่รู้จัก Java Framework ทั้งหมด แต่ฉันรู้วิธีโค้ดและปรับให้เข้ากับสภาพแวดล้อม Java หากฉันเข้ารับการฝึกอบรมเกี่ยวกับมาตรฐานการเขียนโค้ด Java ที่ดีฉันอาจจะเริ่มต้นด้วยรูปแบบ Java ที่ดีขึ้นหรือมีความรู้เกี่ยวกับระบบนิเวศของ Java
เมื่อมองย้อนกลับไปฉันไม่คิดว่ามันสำคัญ
เพื่อตอบคำถามของคุณ: ทำไมเราจึงเรียน Java ที่มหาวิทยาลัย?
ควรสอน Java แต่ไม่ได้ใช้ในทุกหลักสูตร:
คุณควรเรียนรู้ Java ในวิทยาลัย เป็นที่นิยมในโลกธุรกิจ คุณควรเรียนรู้ Java และอาจ C # ฉันจะไม่แน่นอนจะไม่สอน Java เป็นหลักสูตรการเขียนโปรแกรมเบื้องต้น และ Java ไม่ควรเป็นภาษาหลักที่ใช้ในทุกหลักสูตร
ในการวิจารณ์ Java:
Java ได้รับการวิจารณ์จำนวนมากและมีเสมอ ฉันอ่านนิตยสาร Java ที่พูดถึง Java ด้วยเครื่องหมายคำถาม "Java พร้อมสำหรับองค์กรหรือไม่" แพลตฟอร์ม Java ยังคงเป็นแพลตฟอร์มที่ใช้กันอย่างแพร่หลาย แต่สำหรับงานเขียนโปรแกรมทั่วไปส่วนใหญ่ Java ทำงานได้ดี และไม่มีปัญหาสำคัญกับการใช้ Java มันจะไม่ทำร้ายความสามารถของคุณ อาจถ้าคุณพึ่งห้องสมุด Java โดยไม่ต้องเรียนรู้สิ่งที่เกิดขึ้นภายใต้ แต่ Java ไม่ได้ทำให้สมองเสียหาย แต่อย่างใด (นักพัฒนาบางคนเชื่อเรื่องนี้จริง)
นอกจากนี้ทำไมนักพัฒนาซอฟต์แวร์จึงไม่โจมตี C หรือ C ++ หรืออย่างน้อย C ++ กระบวนทัศน์การเขียนโปรแกรมที่จำเป็นจะคล้ายกันมาก และฉันไม่เคยคิดจะเขียน webapp ใน C ++ แต่ฉันอาจใช้ Java
นี่คือวิธีที่ฉันจะติดตั้งหลักสูตร:
ภาษาที่ฉันระบุไว้ในหลักสูตรของฉันค่อนข้างธรรมดา โรงเรียนจำนวนมากกำลังสอนหลายภาษาโดยไม่มีปัญหา ในอุตสาหกรรมคุณจะต้องใช้ภาษาการเขียนโปรแกรมที่แตกต่างกันมากมาย คุณจะใช้ภาษาที่คุณไม่เคยได้ยินมาก่อน
หัวข้อของ Java ในโรงเรียนไม่เป็นปัญหาเว้นแต่พวกเขาต้องการปกป้องคุณจาก Java อย่างสมบูรณ์หรือพวกเขาต้องการสอนเฉพาะ Java เท่านั้น ในทั้งสองกรณีโรงเรียนจะไม่เป็นธรรม
(ขออภัย Ruby lang)
ขออภัยคำตอบที่น่าเบื่อยาวเท่านั้น:
(1) คุณหมายถึง:
"ทำไมเราถึงเรียน Java ที่มหาวิทยาลัยเป็นภาษาโปรแกรมแรก
(2) หรือคุณหมายถึง:
"ทำไมเราถึงเรียน Java ที่มหาวิทยาลัยด้วยซ้ำถึงแม้ว่าเราจะเรียนภาษาโปรแกรมอื่น ๆ ต่อหน้า Java"
ฟังดูเหมือนคุณหมายถึงทั้งสองคำถามจริงๆ
ในกรณีของ (1):
ฉันไม่คิดว่า Java (หรือ. NET C # และ Visual Basic) ควรสอนเป็นภาษาโปรแกรมแรก Structured & Pascal แบบแยกส่วนควรเป็นอันดับแรกแม้ว่าจะเป็นแบบเก่าและล้าสมัยก็ตาม
หลายคนคิดว่าเราควรสอนคนที่เขียนโปรแกรมเชิงวัตถุหรือการเขียนโปรแกรมฟังก์ชั่นในระดับกลางเพียงเพราะ "hype" หรือ "แนวโน้ม"
ฉันเรียนรู้ Structured Pascal เป็น "การเขียนโปรแกรมเชิงวัตถุ" รุ่นเล็ก ๆ ไม่ใช่สิ่งที่คล้ายกัน ฉันเห็นโปรแกรมที่มีโครงสร้างเป็นวัตถุชิ้นเล็ก ๆ
หลังจากนั้นฉันแนะนำให้ใช้ภาษาที่ใช้งานได้และ Object Pascal ต่อไป
และต่อมา C, C ++, C #, VB.Net, Java
เหตุผลหลักที่ฉันไม่ชอบ Java หรือ C # เป็นภาษาการเขียนโปรแกรมแรกเพราะพวกเขามี "พอยน์เตอร์", "พอยน์เตอร์ไปยังวัตถุ" และ "วัตถุ" ตัวเอง ("อ้างอิง") แนวคิด
ฉันเชื่อว่านักเรียนควรมีจิตใจความแตกต่าง & ความคล้ายคลึงกันในแนวคิดเหล่านั้น การเปรียบเทียบวัตถุ Strings ใน Java เป็นตัวอย่างที่ดีของคี่ชื่อ:
String A = "Mars";
String A = "Venus";
// pointer comparison or object comparison ???
if (A == B)
{
DoSomething();
}
ในกรณีของ (2):
ฉันคิดว่า Java หรือ C # ควรสอนในโรงเรียนเพราะมีคุณลักษณะที่ดีที่ได้รับการอัปเดตหลายอย่างและในเวลาเดียวกันพวกเขาก็ใช้งานได้จริง
คุณควรเรียนรู้ Java ในวิทยาลัย เป็นที่นิยมในโลกธุรกิจ คุณควรเรียนรู้ Java และอาจ C # ฉันจะไม่แน่นอนจะไม่สอน Java เป็นหลักสูตรการเขียนโปรแกรมเบื้องต้น และ Java ไม่ควรเป็นภาษาหลักที่ใช้ในทุกหลักสูตร
ฉันไม่เห็นด้วยมากกว่านี้ Java เป็นภาษาที่วิทยาลัยของฉันที่คุณต้องใช้เพื่อเข้าร่วมโปรแกรม CS&E ที่โรงเรียนของฉัน Java สอนง่ายมาก เพราะคุณสามารถ จำกัด ตัวเองกับแนวคิดบางอย่างที่ "ไม่ใช่โปรแกรมเมอร์" สามารถเรียนรู้
ฉันยังไม่สามารถบอกได้ว่าคุณต้องการหรือไม่จะสอน Java เป็นหลักสูตรการเขียนโปรแกรมเบื้องต้น โดยทั่วไปคุณบอกว่าคุณจะไม่สอนอย่างแน่นอนใช่ไหม?
เหตุผลง่าย ๆ ได้รับการอธิบายแล้ว Java ไม่มีค่าธรรมเนียมใบอนุญาต คุณสามารถสอนได้โดยใช้เครื่องมือแก้ไขทดสอบพื้นฐาน มันใช้ด้วยเหตุผลที่ผิดอย่างแน่นอน
ฉันไม่เห็นด้วยกับคำตอบก่อนหน้านี้ที่ Java ไม่ได้ทำให้นักเรียนผ่านมัน "โง่" มันแสดงให้เห็นจริงๆเมื่อพวกเขามีปัญหากับแนวคิดง่ายๆเช่นอาร์เรย์และรายการใน C ++
สวิทช์จากCเพื่อJavaที่เกิดขึ้นในเวลาที่ผิด
ประมาณปี 2000 ฉันอยู่ในชั้น C สุดท้ายที่มหาวิทยาลัยของฉัน
C ++ มีคุณสมบัติมากเกินไปที่จะไม่ทำให้มือใหม่สับสน (และมันยังคงทำและวางแผนที่จะเพิ่มบางส่วน)
.NET นั้นยังไม่โตพอและมีราคาแพงกว่าทุกวันนี้
Objective C เก่าและการใช้งานของ Apple กำลังบินอยู่ใต้เรดาร์ ( ไม่มี iPhoneอยู่รอบ ๆ )
ฉันรู้สึกถูกบังคับให้เพิ่มคำตอบที่นี่เนื่องจากฉันไม่เห็นคำตอบใด ๆ เหล่านี้ซึ่งครอบคลุมมุมมองของฉัน
ฉันเป็นโปรแกรมเมอร์มือสมัครเล่น ฉันล่วงหน้าก่อนถึงโค้งเมื่อพูดถึง 'คอมพิวเตอร์' และ 'การเขียนโปรแกรม' ฉันสำเร็จการศึกษาระดับปริญญาตรี - ปริญญาตรี - ในปี 2550 และปริญญาโทอีกประมาณสองปีต่อมา - 2552 ฉันทำงานกับภาษามากมายรวมถึงการประกอบ, QuickBASIC, C, C ++, Java, PHP, Perl, Python, สคริปต์ BASH, Javascript, COBOL ฯลฯ .
IMHO ภาษาที่ใช้ในการสอนการเขียนโปรแกรมให้กับนักเรียนเป็นตัวบ่งชี้เวลาที่เราอยู่ในปัจจุบันตัวอย่างเช่นในช่วงปี 1980 สภามีภาษาระดับต่ำในขณะที่ C ถือเป็นภาษาระดับสูง
ในช่วงปี 1990, C ++, Java, Perl และภาษาดังกล่าวได้รับความสำคัญเป็นหลักเนื่องจากระดับที่สูงกว่า C และเป็นหลักการของการพัฒนาอย่างรวดเร็ว ดังนั้นพวกเขาจึงหยุดสอนที่ประชุมแก่นักเรียน CS และสอน C เป็นวิธีการแสดงอัลกอริทึม ช้าที่มีการเปลี่ยนแปลงในช่วงทศวรรษที่ผ่านมาซึ่ง C ถือเป็นภาษาระดับต่ำเกินไปที่จะจับสาระสำคัญของอัลกอริทึมได้อย่างมีประสิทธิภาพและไม่มีความรู้ 'ระบบ' มากเกินไป นี่เป็นสิ่งสำคัญอย่างยิ่งเนื่องจากหลักสูตร CS ควรมุ่งเน้นไปที่ 'เชิงทฤษฎี' มากกว่าภาคปฏิบัติและทุกครั้งที่มีคนต้องการเขียนอัลกอริทึมถ้าเขา / เธอจมอยู่กับการจัดสรรหน่วยความจำและเลขคณิตตัวชี้คุณจะไม่ได้รับ ทุกแห่ง
แม้วันนี้ถ้าคุณอยู่ในโปรแกรม Masters CS คุณจะต้องทำตามข้อกำหนด 'ระบบ' บางอย่าง (อย่างน้อยที่สุดในสหรัฐอเมริกาและสิ่งนี้ไม่ควรแตกต่างกันมากสำหรับมหาวิทยาลัยในสหรัฐอเมริกา) ซึ่งต้องการให้นักเรียนสามารถใช้โปรแกรมระดับระบบและ ในบางกรณีลึกเท่าระดับแฮ็คเคอร์เนลที่จะผ่านข้อกำหนด ดังนั้นแม้ว่า C ไม่ใช่ภาษา defacto ที่ได้รับการสอนในโรงเรียน แต่ก็มีความเกี่ยวข้องถ้าคุณต้องการที่จะชำนาญในการพูด Systems หรือคอมพิวเตอร์ประสิทธิภาพสูงหรือ niches ดังกล่าว
ฉันอยากจะพูดถึงประเด็นอื่นคือ C ต้องการวินัยจำนวนมากเพื่อให้ได้สิ่งที่ถูกต้องในขณะที่ภาษาเช่น Java นั้นค่อนข้างผ่อนคลายเกี่ยวกับข้อ จำกัด ดังกล่าว สิ่งนี้ทำให้การดำเนินการหลักสูตรง่ายขึ้นโดยไม่ต้องใช้ RA / TAs ในการเปิดตัว GDB เพื่อดีบักโปรแกรมของนักเรียน :)
ฉันคิดว่าส่วนใหญ่ของมันคือสิ่งที่ถูกนำมาใช้ในอุตสาหกรรม
โปรแกรม CS ของฉันมีคณะกรรมการที่ปรึกษาอุตสาหกรรมซึ่งประกอบด้วยพนักงานระดับสูงจาก บริษัท เทคโนโลยีและการบินในท้องถิ่นและพวกเขามีส่วนร่วมอย่างมากในหลักสูตร ชั้นเรียน CS CS ลดลง Pascal ในความโปรดปรานของ C ปีที่ฉันเริ่มต้น (1986) ส่วนใหญ่เป็นไปตามคำสั่งของ IAB ในทำนองเดียวกันมีแรงผลักดันในการสอน Ada ในหลักสูตรระดับสูงกว่าเนื่องจาก บริษัท การบินและอวกาศในท้องถิ่นต้องใช้มันสำหรับงาน DoD
ตอนนี้ Java แพร่หลายแพร่หลายโดยเฉพาะตอนนี้ที่อุปกรณ์ Android กำลังจะปิดตัวลง มันดูดจากมุมมองเกี่ยวกับการสอน แต่หลังจากนั้น C ก็เช่นกัน
เพราะพวกเขาหวังว่านักเรียนน้อยจะล้มเหลวในหลักสูตรซึ่งเป็นความล้มเหลวในตัวเอง IMHO อาจเป็นหนึ่งในเหตุผลที่เกือบจะไม่มีใครรับปริญญาของมหาวิทยาลัยอย่างจริงจังอีกอย่างน้อยก็ที่นี่
Java เป็นภาษาที่เรียบง่ายเกินไปและไม่ได้สอนว่าพีซีมีกระบวนทัศน์ทรัพยากรที่ จำกัด ในขณะเดียวกันก็บังคับให้ "ไม่มีสิ่งใดที่ไม่สามารถแก้ไขได้ด้วยเลเยอร์การคิดที่เป็นนามธรรม"
ใช่มันเป็นสิ่งที่ดีสำหรับแนวคิด OOP และปัญหาของเล่น แต่มันสอนให้เข้าใกล้ปัญหาจากมุมที่ผิด ใช้โครงสร้างที่เรียบร้อยที่นี่สกรูส่วนที่เหลือ
แต่สถาบันการศึกษามีชื่อเสียงในด้านความฝันเกี่ยวกับ AI, OWL และเทคโนโลยีของเล่นอื่น ๆ ในขณะที่พวกเขาทำการค้นคว้าสิ่งต่าง ๆ บางครั้งบางคนก็มีบางสิ่งที่น่าอัศจรรย์เช่นกัน แต่ถ้าคุณต้องการเป็นนักพัฒนาที่ดีคุณต้องเรียนรู้ด้วยตนเอง