ฉันควรเรียนรู้ภาษาการเขียนโปรแกรมอะไรบ้างเพื่อเป็นนักพัฒนา Ubuntu [ปิด]


22

แม้ว่าฉันจะใช้NetBeansเพียงครั้งเดียวสำหรับโครงการฉันต้องเรียนภาษาอะไรเพื่อที่จะเป็นนักพัฒนา Ubuntu ที่มีคุณสมบัติครบถ้วน

โครงการของฉันใน NetBeans (Java เท่านั้น) คือการออกแบบเครื่องคิดเลข (ค่อนข้างง่าย) ยิ่งไปกว่านั้นเราจะเรียนรู้การสร้างโปรแกรมดูรูปภาพเบราว์เซอร์และอื่น ๆ ได้อย่างไร?

นอกจากนี้ภาษาที่ดีที่สุดสำหรับบางแอปพลิเคชันคืออะไร


3
มันค่อนข้างเป็นอัตนัย ... ตัวอย่าง: perl สามารถใช้แทน python และอีกด้านหนึ่งได้ แต่คุณจะพบผู้ใช้ perl / python ที่ดูถูก python / perl โดยไม่มีเหตุผลอื่นนอกจากการขาดหรือบังคับให้เยื้อง;)
Rinzwind

หากคุณสามารถเจาะจงมากขึ้นเกี่ยวกับสิ่งที่คุณต้องการเขียนเราอาจตอบได้ดีกว่า แต่ต้องทุบตี ... คุณมีแนวโน้มที่จะได้รับความคิดเห็นต่าง ๆ มากมายและคุณอาจถามคำถามนี้ในUbuntu Forums: การพัฒนาและการเขียนโปรแกรม
Warren Hill

คำตอบ:


31

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

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


5
เรียบง่าย แต่แม่นยำ;) ไม่ว่าจะใช้ภาษาอะไรก็ตามเพื่อให้งานได้ผลอย่างมีประสิทธิภาพสูงสุด
Rinzwind

3
เนื่องจาก OP กล่าวว่าเขามีประสบการณ์เกี่ยวกับ Java มันคุ้มค่าที่จะพูดถึงว่า Java ทำงานได้ดีบน Ubuntu เช่นกัน คุณไม่จำเป็นต้องคอมไพล์ซ้ำอีก (เมื่อย้ายจากระบบปฏิบัติการอื่น)
BlueRaja - Danny Pflughoeft

@ BlueRaja-DannyPflughoeft นอกเสียจากคุณกำลังพัฒนาแอปพลิเคชันที่ต้องใช้การเรียกระบบในระดับต่ำ บ่อยครั้งที่คุณจะเห็นแอปพลิเคชันที่ให้บริการไลบรารีเฉพาะแพลตฟอร์มสำหรับคุณสมบัติเหล่านี้ แต่โดยทั่วไปแล้วคุณพูดถูก
Dennis Eichhorn

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

7

หากคุณมีความประสงค์ในการเขียนโปรแกรมสำหรับอูบุนตูที่สามารถทำงานบนอุปกรณ์หลายรูปแบบและปัจจัย (สก์ท็อป, โทรศัพท์, แท็บเล็ตทีวี ... ) ผมอยากแนะนำให้ไปเรียนรู้QMLและJavaScript เป็นหลัก:

  • ใช้QMLเพื่อเขียนแอพ Ubuntu ที่บรรจบกันซึ่งวิ่งข้ามปัจจัยฟอร์มและอุปกรณ์
  • ใช้JavaScriptเพื่อเสริม QML เมื่อเขียนแอพ Ubuntu และเพื่อเขียน webapps ของ Ubuntu

คุณช่วยให้รายละเอียดเพิ่มเติมหน่อยได้ไหมว่าเพราะเหตุใดทั้งสองนี้จึงเหมาะสม
don.joey

เสร็จแล้วฉันหวังว่าจะให้คำแนะนำที่ชัดเจน :)
David Planella

5

คุณควรเรียนรู้:

  • JavaScript: เป็นกรอบงานส่วนใหญ่ของ UI / env เป็น / จะขึ้นอยู่กับ JavaScript; คุณจะต้องการมันอย่างไรก็ตามบางวันหรืออื่น ๆ

จากนั้นทุกส่วนที่เหลือคุณจะต้องมีอย่างอื่น:

  • c ++ / C
    • ข้อดี: เร็วอย่างน่าอัศจรรย์เข้าถึงคุณลักษณะระดับต่ำ
    • ข้อเสีย: มีเวลามากมายในการเรียนรู้วิธีการเขียนสิ่งที่มีเสถียรภาพและชุมชนที่น่ากลัว
  • ทับทิม:
    • ข้อดี: ง่ายต่อการเรียนรู้ที่ชื่นชอบการเขียนชุมชนที่ยอดเยี่ยม
    • ข้อเสีย: อาจช้าสำหรับงานบางอย่าง (จริง ๆ )
  • งูหลาม:
    • ข้อดี: แพคเกจจำนวนมากอยู่ในหลามชุมชนที่ดีรวดเร็ว ฯลฯ
    • ข้อเสีย: หลาม 3 (เพียงแค่ kindin ')

แต่ยังมีภาษาอื่นอีกหลายภาษาเช่น Java เป็นต้นอย่างไรก็ตามภาษาที่กล่าวถึงข้างต้นอาจจะง่ายกว่าสำหรับการเริ่มต้นยกเว้น C / C ++ แต่สิ่งที่ควรค่าแก่การเรียนรู้คือคุณสามารถใช้กับภาษาอื่น ๆ ได้ (เช่นขยาย หลาม, ทับทิม, ฯลฯ )


1

งานเขียนโปรแกรมประกอบด้วยทั้งรหัสจริงและแบบจำลองจิตด้านล่าง

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

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

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

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

สำหรับตัวอย่างของรายการค่อนข้างค่อยๆให้มองที่ผลงานของฉันไปที่โครงการ Beignet ความรู้เกี่ยวกับภาษาการเขียนโปรแกรม (C / C ++ ในตัวอย่างนั้น) ไม่ได้เป็นปัจจัย จำกัด ที่นี่


0

คุณควรเรียนรู้ ... ทุกคน! หรือมากกว่าMeta -learn ทุกภาษา เมื่อคุณรู้จักสองหรือสามภาษาคุณสามารถเรียนรู้ภาษาใหม่ใด ๆ ที่คล้ายกับภาษาเหล่านี้ได้อย่างรวดเร็ว หากคุณรู้จักภาษามากพอคุณ "รู้จริง" รู้จักพวกเขาทั้งหมดและที่สำคัญกว่านั้นคือคุณเข้าใจสิ่งที่เป็นส่วนหนึ่งของภาษาและสิ่งที่เกี่ยวข้องกับการเขียนโปรแกรมโดยไม่ขึ้นกับภาษา ในที่สุดภาษาเฉพาะไม่เกี่ยวข้อง

ดังนั้นคุณอาจต้องการเรียนรู้ Java, C, Scheme, OCaml, Assembly (อย่างน้อยสองสถาปัตยกรรม), Forth และ Prolog เล็กน้อยไม่จำเป็นต้องเป็นไปตามลำดับนั้น ภาษาที่สองจะยากที่สุดเพราะคุณจะต้องเรียนรู้แนวคิดใหม่และลืมแนวคิดที่คุณเรียนรู้ด้วยภาษาแรก แต่กลับกลายเป็นว่าผิด หลังจากนั้นมันง่ายและง่ายขึ้นเท่านั้น

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


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