Tôi nên học ngôn ngữ lập trình nào để trở thành nhà phát triển Ubuntu? [đóng cửa]


22

Mặc dù tôi đã sử dụng NetBeans một lần cho một dự án, tôi cần học ngôn ngữ nào để trở thành nhà phát triển Ubuntu chính thức?

Dự án của tôi trong NetBeans (chỉ dành cho Java) là thiết kế một máy tính (tương đối dễ dàng). Hơn nữa, làm thế nào để chúng ta học cách làm cho người xem hình ảnh, trình duyệt, vv?

Ngoài ra, ngôn ngữ tốt nhất cho các ứng dụng nhất định là gì?


3
Nó khá chủ quan ... Ví dụ: perl có thể thay thế cho python và ngược lại, nhưng bạn sẽ thấy người dùng perl / python coi thường python / perl mà không có lý do nào khác ngoài việc thiếu hoặc buộc thụt lề;)
Rinzwind

Nếu bạn có thể cụ thể hơn về những gì bạn muốn viết, chúng tôi có thể trả lời tốt hơn nhưng bash thì ..., bạn có thể nhận được nhiều ý kiến ​​khác nhau và bạn có thể hỏi điều này tốt hơn trong Diễn đàn Ubuntu: Phát triển và lập trình
Warren Hill

Câu trả lời:


31

Câu trả lời là đơn giản và không thực sự hữu ích. Bất cứ ngôn ngữ nào là cần thiết. Ubuntu là một tấn phần mềm, một số được viết bằng C, một số C ++, một số bằng Python, Perl, bash ... và các phần mềm khác. Bạn chắc chắn nên học kịch bản với bash và bạn nên chọn một ngôn ngữ như Perl hoặc Python, có thể là ngôn ngữ sau. Hơn nữa, học C cũ lỗi thời không bao giờ làm tổn thương bất cứ ai - bạn tìm hiểu thêm về cách các chương trình hoạt động, thư viện là gì, rất nhiều công cụ trên các công cụ khác.

Mặt khác - trước tiên hãy tìm một nhiệm vụ, một phân khúc thích hợp, một cái gì đó cần phải được thực hiện hoặc một cái gì đó còn thiếu hoặc một cái gì đó chỉ hấp dẫn và bạn muốn làm việc với nó. Và sau đó tìm ra ngôn ngữ nào sẽ tốt cho mục đích đó.


5
Đơn giản nhưng chính xác;) Dù sử dụng ngôn ngữ nào để hoàn thành công việc một cách hiệu quả nhất.
Rinzwind

3
Vì OP đề cập rằng anh ta có kinh nghiệm về Java, nên cũng đáng để đề cập rằng Java cũng chạy tốt trên Ubuntu. Bạn thậm chí không cần phải biên dịch lại (khi chuyển từ hệ điều hành khác)
BlueRaja - Danny Pflughoeft 18/07/13

@ BlueRaja-DannyPflughoeft Trừ khi bạn đang phát triển một ứng dụng yêu cầu các cuộc gọi hệ thống cấp thấp. Thường thì bạn sẽ thấy các ứng dụng cung cấp các thư viện cụ thể cho các tính năng này. Nhưng nói chung là có, bạn đúng.
Dennis Eichhorn

Tất nhiên, bất cứ điều gì có thể được biên dịch cho một kiến ​​trúc cpu nhất định đều có thể thực hiện công việc. Có nhiều khía cạnh quan trọng hơn để xem xét khi ai đó muốn phát triển cho một nền tảng cụ thể. Giống như người đó phải bắt đầu bao nhiêu thời gian, anh ta muốn làm việc với quản lý bộ nhớ, anh ta có muốn làm các chương trình đa nền tảng không, anh ta muốn làm loại chương trình nào, anh ta có biết làm việc theo nhóm không , Anh ta có muốn tạo ra các máy tính phục vụ bánh mì thịt xông khói trong khi mát xa cho người dùng hoặc hệ thống điều hòa không khí di động không, bầu trời là giới hạn mà một số người nói, v.v ...
userDepth

7

Nếu bạn đang có ý định viết các ứng dụng cho Ubuntu có thể chạy trên nhiều thiết bị và các yếu tố hình thức (máy tính để bàn, điện thoại, máy tính bảng, TV ...), tôi khuyên bạn nên tìm hiểu QMLJavaScript . Bản chất:

  • Sử dụng QML để viết các ứng dụng Ubuntu hội tụ chạy trên các yếu tố hình thức và thiết bị
  • Sử dụng JavaScript để bổ sung QML khi viết ứng dụng Ubuntu và viết ứng dụng web Ubuntu

Bạn có thể cho biết thêm một chút chi tiết về lý do tại sao hai cái này phù hợp?
don.joey

Xong, tôi hy vọng điều đó cung cấp hướng dẫn rõ ràng :)
David Planella

5

Ban nên học:

  • JavaScript: như hầu hết các khung UI / env. đang / sẽ dựa trên JavaScript; bạn sẽ cần nó dù sao một ngày nào đó hoặc khác.

Sau đó, cho tất cả phần còn lại, bạn sẽ cần một cái gì đó khác:

  • C ++ / C
    • ưu điểm: nhanh đáng kinh ngạc, truy cập vào các tính năng cấp thấp
    • Nhược điểm: có nhiều thời gian để học cách viết một cái gì đó ổn định, cộng đồng khủng khiếp
  • Ruby:
    • ưu điểm: dễ học, thực sự thích viết, cộng đồng tuyệt vời
    • Nhược điểm: có thể chậm đối với một số nhiệm vụ (thực sự)
  • Con trăn:
    • ưu điểm: rất nhiều gói trong python, cộng đồng tuyệt vời, nhanh chóng, v.v.
    • Nhược điểm: python 3 (just kindin ')

Nhưng vẫn còn nhiều ngôn ngữ khác như Java, v.v., tuy nhiên, các ngôn ngữ được đề cập ở trên có thể dễ dàng hơn để bắt đầu, ngoại trừ C / C ++ nhưng đáng để học vì bạn sẽ có thể sử dụng nó với nhiều ngôn ngữ khác (ví dụ: mở rộng trăn, hồng ngọc, v.v.)


1

Công việc lập trình bao gồm cả mã thực tế và mô hình tinh thần bên dưới nó.

Dạy cho mình một ngôn ngữ lập trình thật dễ dàng miễn là bạn có các khái niệm cơ bản về cách máy tính hoạt động, tuy nhiên để đóng góp hữu ích cho một dự án, bạn cũng cần hiểu thiết kế đằng sau nó.

Do đó, đề xuất của tôi là tham gia một dự án mà bạn quan tâm và sử dụng thường xuyên, sau đó bắt đầu với công việc đảm bảo chất lượng:

  • nếu có một báo cáo lỗi hơi mơ hồ, hãy thử sao chép vấn đề và cải thiện mô tả. Điểm thưởng cho một bài kiểm tra tự động.
  • nếu có một lỗi cũ không được chú ý trong một thời gian, hãy thử xem liệu nó có còn tồn tại không và cập nhật báo cáo lỗi
  • nếu có lỗi testsuite, hãy cố gắng tìm hiểu những gì đang xảy ra để làm cho thử nghiệm này thất bại

Điều này sẽ cho phép bạn tìm hiểu về phần khó, khái niệm của dự án trên đường cong học tập có thể quản lý, trong khi vẫn giữ được sự quan tâm của bạn (vì đó là dự án bạn quan tâm) và cho phép bạn truy cập vào cộng đồng xung quanh dự án. Ngôn ngữ lập trình thực tế (bất cứ thứ gì được sử dụng trong dự án) là thứ bạn có thể chọn khi đang di chuyển.

Để biết ví dụ về một mục nhập dần dần, hãy xem những đóng góp của tôi cho dự án Beignet . Kiến thức về ngôn ngữ lập trình (C / C ++ trong trường hợp đó) chắc chắn không phải là yếu tố hạn chế ở đây.


0

Bạn nên học ... tất cả chúng! Hay đúng hơn là meta - học tất cả các ngôn ngữ. Khi bạn biết hai hoặc ba ngôn ngữ, bạn có thể nhanh chóng học bất kỳ ngôn ngữ mới nào tương tự với các ngôn ngữ này. Nếu bạn biết đủ ngôn ngữ, bạn "hầu như" sẽ biết tất cả, và quan trọng hơn, bạn hiểu rằng đó là một phần của ngôn ngữ và là ngôn ngữ liên quan đến lập trình độc lập với ngôn ngữ. Cuối cùng, các ngôn ngữ cụ thể là không liên quan.

Vì vậy, bạn có thể muốn học Java, C, Scheme, OCaml, hội (ít nhất là hai kiến ​​trúc), Forth và một chút Prolog, không nhất thiết phải theo thứ tự đó. Ngôn ngữ thứ hai sẽ là ngôn ngữ khó nhất, bởi vì bạn sẽ phải vừa học các khái niệm mới, vừa quên các khái niệm mà bạn đã học với ngôn ngữ thứ nhất nhưng hóa ra là sai. Sau đó là dễ dàng và chỉ trở nên dễ dàng hơn.

Sau đó, khi xử lý một nhiệm vụ phát triển cụ thể, hãy sử dụng ngôn ngữ phù hợp nhất dựa trên tính khả dụng và hỗ trợ của trình biên dịch và thư viện, kiến ​​thức về đồng nghiệp, các ràng buộc chính sách từ quản lý, v.v. Linh hoạt của tâm trí là chìa khóa. Biết nhiều ngôn ngữ cho phép sự linh hoạt này.


Tất cả bọn họ? Có thật không? Hãy xem tại đây cho một số chương trình "HelloWorld" cổ điển. Hầu hết các lập trình viên chỉ biết một vài ngôn ngữ. Nó chỉ quan trọng để biết những người bạn cần.
Warren Hill
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.