W jakich językach programowania powinienem nauczyć się zostać programistą Ubuntu? [Zamknięte]

22

Chociaż raz użyłem NetBeans do projektu, jakich języków muszę się nauczyć, aby zostać pełnoprawnym programistą Ubuntu?

Moim projektem w NetBeans (tylko Java) było zaprojektowanie kalkulatora (stosunkowo łatwe). Co więcej, w jaki sposób uczymy się tworzyć przeglądarki, przeglądarki itp.?

Jaki byłby najlepszy język dla niektórych aplikacji?

fffdf
źródło
3
Jest to raczej subiektywne ... Przykład: perl może zastępować python i odwrotnie, ale znajdziesz użytkowników perl / python, którzy gardzą python / perl bez powodu innego niż brak lub wymuszenie wcięcia;)
Rinzwind
Jeśli możesz sprecyzować, co chcesz napisać, być może będziemy w stanie odpowiedzieć lepiej, ale bash wtedy ..., Prawdopodobnie otrzymasz wiele różnych opinii i lepiej zadać to pytanie na forach Ubuntu: Rozwój i programowanie
Warren Hill,

Odpowiedzi:

31

Odpowiedź jest prosta i niezbyt pomocna. Którykolwiek język jest potrzebny. Ubuntu to mnóstwo oprogramowania, niektóre napisane w C, niektóre C ++, niektóre w Python, Perl, bash ... i inne. Zdecydowanie powinieneś nauczyć się skryptowania za pomocą bash i powinieneś wybrać język taki jak Perl lub Python, prawdopodobnie ten drugi. Co więcej, nauka dobrego, staromodnego języka C nigdy nikomu nie zaszkodzi - dowiadujesz się więcej o tym, jak działają programy, czym są biblioteki, i wiele innych rzeczy.

W przeciwnym razie - najpierw znajdź zadanie, niszę, coś, nad czym trzeba pracować lub coś, czego brakuje lub coś, co jest po prostu fascynujące i chciałbyś nad tym popracować. A następnie dowiedz się, jaki język będzie odpowiedni do tego celu.

styczeń
źródło
5
Prosty, ale dokładny;) Bez względu na to, jakiego języka potrzebujesz, aby wykonać zadanie najbardziej efektywnie.
Rinzwind
3
Ponieważ OP wspomina, że ​​ma doświadczenie w Javie, warto wspomnieć, że Java działa również dobrze na Ubuntu. Nie trzeba nawet rekompilować (przy przenoszeniu z innego systemu operacyjnego)
BlueRaja - Danny Pflughoeft
@ BlueRaja-DannyPflughoeft Chyba że tworzysz aplikację, która wymaga wywołań systemowych niskiego poziomu. Często zobaczysz aplikacje zapewniające biblioteki specyficzne dla platformy dla tych funkcji. Ale generalnie tak, masz rację.
Dennis Eichhorn
ofc, że wszystko, co można skompilować dla określonej architektury procesora, może to zrobić. Są ważniejsze aspekty, które należy wziąć pod uwagę, gdy ktoś chce opracować dla określonej platformy. Podobnie jak ile czasu ta osoba musi zacząć, czy chce zajmować się zarządzaniem pamięcią, czy chce tworzyć programy wieloplatformowe, jakie rodzaje programów chce tworzyć, czy wie, aby pracować w zespole , Czy chce tworzyć komputery, które serwują kanapki z boczkiem podczas masowania użytkowników lub mobilny system klimatyzacji, niebo jest granicą, jak mówią, itd. ...
userDepth
7

Jeśli masz zamiar pisać aplikacje dla Ubuntu, które mogą działać na wielu urządzeniach i kształtach (komputer, telefon, tablet, telewizor ...), zalecam naukę QML i JavaScript . Głównie:

  • Używaj QML do pisania zbieżnych aplikacji Ubuntu, które działają na różnych kształtach i urządzeniach
  • Użyj JavaScript, aby uzupełnić QML podczas pisania aplikacji Ubuntu i pisania aplikacji internetowych Ubuntu
David Planella
źródło
Czy możesz podać trochę więcej szczegółów na temat tego, dlaczego te dwa są odpowiednie?
don.joey
Sporządzono, mam nadzieję, że zapewnia to jasne wskazówki :)
David Planella
5

Powinieneś się nauczyć:

  • JavaScript: jak większość frameworków UI / env. są / będą oparte na JavaScript; i tak będziesz go potrzebować pewnego dnia.

Następnie przez resztę będziesz potrzebować czegoś innego:

  • C ++ / C
    • zalety: niezwykle szybki, dostęp do funkcji niskiego poziomu
    • Wady: dużo czasu, aby nauczyć się pisać coś stabilnego, okropnej społeczności
  • Rubin:
    • zalety: łatwa do nauczenia się, naprawdę przyjemna do pisania, świetna społeczność
    • Wady: może być powolny dla niektórych zadań (naprawdę)
  • Pyton:
    • zalety: wiele pakietów jest w Pythonie, świetna społeczność, szybka itp.
    • Minusy: python 3 (po prostu kindin ')

Ale wciąż istnieje wiele innych języków, takich jak Java itp., Jednak wyżej wymienione mogą być łatwiejsze na początek, z wyjątkiem C / C ++, ale które warto się nauczyć, ponieważ będziesz mógł używać go w wielu innych językach (np. Rozszerz python, ruby ​​itp.)

avetis.kazarian
źródło
1

Programowanie składa się zarówno z samego kodu, jak i modelu mentalnego pod nim.

Nauczenie się języka programowania jest łatwe, o ile masz podstawowe pojęcia na temat działania komputerów, jednak aby wnieść użyteczny wkład w projekt, musisz także zrozumieć jego założenia.

W związku z tym proponuję dołączyć do projektu, w którym często interesujesz się osobiście i z którego korzystasz, a następnie zacząć od prac związanych z zapewnianiem jakości:

  • jeśli istnieje raport o błędach, który jest nieco niejasny, spróbuj powtórzyć problem i poprawić opis. Punkty bonusowe za automatyczny test.
  • jeśli jest stary błąd, który od jakiegoś czasu nie zwracał uwagi, spróbuj sprawdzić, czy nadal istnieje, i zaktualizuj raport o błędzie
  • jeśli występują awarie testsuite, spróbuj dowiedzieć się, co się dzieje, aby ten test się nie powiódł

Pozwoli ci to dowiedzieć się o trudnej, konceptualnej części projektu na zarządzalnej krzywej uczenia się, jednocześnie zachowując zainteresowanie (ponieważ jest to projekt, na którym ci zależy) i dając dostęp do społeczności wokół projektu. Rzeczywisty język programowania (w zależności od tego, który jest używany w projekcie) jest czymś, co można pobrać na bieżąco.

Jako przykład nieco stopniowego wejścia, spójrz na mój wkład w projekt Beignet . Znajomość języka programowania (w tym przypadku C / C ++) z pewnością nie jest tu czynnikiem ograniczającym.

Simon Richter
źródło
0

Powinieneś nauczyć się ... wszystkich! A raczej meta- naucz się wszystkich języków. Znając dwa lub trzy języki, możesz szybko nauczyć się każdego nowego języka, który jest podobny do tych. Jeśli znasz wystarczającą liczbę języków, „wirtualnie” znasz je wszystkie, a co ważniejsze, rozumiesz to, co jest częścią języka i to, co dotyczy programowania niezależnie od języka. Ostatecznie określone języki są nieistotne.

Możesz więc nauczyć się Java, C, schematu, OCaml, asemblera (przynajmniej dwóch architektur), Forth i trochę Prologu, niekoniecznie w tej kolejności. Drugi język będzie najtrudniejszy, ponieważ będziesz musiał nauczyć się nowych pojęć i zapomnieć o pojęciach, których nauczyłeś się w pierwszym języku, ale okazało się, że są one nieprawidłowe. Potem jest to łatwe i staje się łatwiejsze.

Następnie, mając do czynienia z konkretnym zadaniem programistycznym, używaj najlepiej dostosowanego języka opartego na dostępności i wsparciu kompilatorów i bibliotek, wiedzy o współpracownikach, ograniczeniach polityki kierownictwa i tak dalej. Kluczem jest elastyczność umysłu. Znajomość wielu języków zapewnia tę elastyczność.

Thomas Pornin
źródło
Wszyscy? Naprawdę? Zobacz tutaj klasyczny program „HelloWorld”. Większość programistów zna tylko kilka języków. Ważne jest, aby znać te, których potrzebujesz.
Warren Hill,