Wpis z mikrobloga

#programowanie #naukaprogramowania #informatyka

Chciałbyś zacząć przygodę z programowanie, ale nie wiesz jaki język programowania wybrać? Ten wpisy jest dla Ciebie.

Nie słuchajcie ludzi, którzy mówią, że język X jest lepszy. To nie jest i nie może być prawdą. Języki zwykle mają bardzo konkretne zastosowania i w nich są niezastąpione. Fakt, że C++ jest szybszy nie ma znaczenia, jeżeli chcemy napisać stronę internetową.

Moim zdaniem dla początkujący programistów przy wyborze języka programowania mają znacznie: trudność, ilość ofert pracy, zastosowania, jak ciężko jest stworzyć praktyczny projekt(wpisy do CV, własna zabawa). Poniżej analizuję kilka popularny języków ze względu na te parametry:

Java:

+ Dużo ofert pracy - ulubiony język korporacji.

+ Dużo różnych zastosowań: webdev, android, aplikacje pc.

+/- Średnio przyjazny dla początkujących: język jest prosty, ale napisanie pierwszego programu wymaga znajomości wielu jego elementów.

- Java jest znana ze swojej rozwlekłości, stworzenie praktycznego projektu do CV wymaga istotnie więcej pracy niż w PHP, Python, Ruby.

Python:

- Mało ofert pracy, ale to się powoli zmienia.

+/- Bardzo dużo zastosowań: wedev, skrypty systemowe, OpenOffice, Gimp, Blender, komercyjnie liczy się tylko webdev.

+ Bardzo przyjazny dla początkujących: proste rzeczy są proste, trudne są średnio trudne.

+ Napisanie użytecznego programu wymaga istotnie mniej kodu niż w: Java czy C++.

JavaScript:

+ Dużo ofert pracy.

- Zastosowania komercyjne ograniczają się do webdev.

+ Bardzo przyjazny dla początkujących.

+ Pisania własnych projektów np widgetów jest proste.

- JS jest językiem specyficznym, przestawienie się z JS na Java/Python/C++/C# wymaga zmiany sposobu myślenia.

C++:

+ Dużo ofert pracy.

+/- Wiele zastosowań, ale zwykle wymagają dużej wiedzy z specyficznej dziedziny.

- Bardzo nie przyjazny dla początkujących - Język jest trudny. Program się często nie kompiluje i kompilator nie potrafi

wskazać dlaczego, wycieki pamięci. Łatwo się zniechęcić.

- Stworzenie praktycznego projektu wymaga bardzo dużo pracy i nauczenie się dodatkowych bibliotek.

C#:

+ Dużo ofert pracy.

- Zastosowania ograniczone do aplikacji dla Windows.

+/- Średnio przyjazny dla początkujących - patrz java.

+ Stworzenie praktycznego programu jest proste.

PHP:

+/- Dużo ofert pracy, z powoli malejącą tendencją. PHP jest systematycznie wypierane przez Python i Ruby.

- Tylko webdev.

+ Bardzo przyjazny dla początkujących.

+ Praktyczne projekty są proste.

- PHP jest specyficznym językiem, trochę uczącym złych praktyk, przestawienie się na inny może wymagać wysiłku.

- PHP jest pogardzane przez programistów innych języków, musicie się liczyć z szykanami :)

Podsumowując: najbezpieczniejszymi wyborami są Java i C#. Najprostszymi Python i JavaScript. Nie zaczynajcie nauki od C++.
  • 43
  • Odpowiedz
@notauser: Moim zdaniem kluczowe jest, aby osoba która zaczyna programować pisała w języku kompilowanym, statycznie typowanym. Łatwo się potem przestawić na coś innego, np. Python/JS. W drugą stronę - niekoniecznie. Tak naprawdę aby zyskać trochę "programistycznej świadomości" trzeba ugryźć wielu różnych koncepcyjnie języków (np. Java + Python + C + Haskell = całkiem dobre combo), ale to oczywiście nie na samym początku :)
  • Odpowiedz
@superbybak: Tak im więcej języku się znam tym lepiej. Kiedyś też uważałem że dobrze jest zacząć od statycznych typów, ale poznałem kilku bardzo dobrych programistów których pierwszym językiem był JavaScript, więc może to nie ma znaczenia?
  • Odpowiedz
@notauser:

C#:


- Zastosowania ograniczone do aplikacji dla Windows.

Yyyyy ? Przecież można w C# pisać apki na Androida i iOS (xamarin chociażby) ( ͡° ͜ʖ ͡°) poza tym jest też Mono (no i ostatnio uwolniony .NET) więc i na Linucha można....

JavaScript:


- Zastosowania komercyjne ograniczają się do webdev.

Node-webkit i masz aplikację desktopową

Sporo niby wiesz i rady są ok, ale nie do końca wszystko
  • Odpowiedz
@StronaGlowna: To że coś można nie oznacza, że należy, lub że robi się to komercyjnie na skalę masową. W Pythonie też można tworzyć aplikację na androida ale stanowczo nie polecam.
  • Odpowiedz
To że coś można nie oznacza, że należy, lub że robi się to komercyjnie na skalę masową.


@notauser: No to piszesz o możliwościach, czy tylko swoją subiektywną ocenę tego? Nie mów ludziom co należy, a co nie bo nie jesteś od tego żeby za kogoś decydować - po to jest rozumiem Twój wpis żeby POKAZAĆ DROGĘ i POMÓC W WYBORZE, a nie narzucać - prawda? Jak ktoś chciałby pisać na Androida
  • Odpowiedz
@notauser: Trochę C# został niedoceniony. Mnie boli fakt, że mało książek jest takich, by pokazało język i jednocześnie "jak programować dobrze". Zazwyczaj omawianie składni kończy się po omówieniu składni ale nie można tego traktować jako naukę programowania. @aseeon: polecił mi taką książkę właśnie do C#.

A kto poleci mi dobrą książkę do nauki programowania?
  • Odpowiedz
Python


@notauser: To po kolei:

- Mało ofert pracy, ale to się powoli zmienia.


Tych ofert jest tylko mało porównując do języków które wymieniłeś, a nie mało w ogóle - także trochę wprowadzasz ludzi w błąd.

+/- Bardzo dużo zastosowań: wedev, skrypty systemowe, OpenOffice, Gimp, Blender, komercyjnie liczy się tylko webdev.


No a tutaj niestety wychodzi, że Pythona znasz tylko ze (słabego) słyszenia. Szczególnie ta ostatnia część "komercyjnie liczy się tylko
  • Odpowiedz
@aseeon: Zawodowo programuję w: C++ i Java(gry na androida) i Python(django, wx(którego bardzo nie polecam), twisted(które nie jest dla amatorów)) oraz Javascript(jquery).
  • Odpowiedz
@notauser: > Nie zaczynajcie nauki od C++.

Jeżeli mamy więcej czasu na naukę języka, C++ jest dobrym wyborem ze względu na uczenie dobrych praktyk i znajomości działania bardziej "nisko poziomowego". W C++ trzeba uważać na takie rzeczy jak zarządzanie pamięcią, co daje nam pojęcie o tym skąd bierze się wiele błędów. Poza tym nowy standard C++ wiele zmienił w posługiwaniu się tym językiem.
  • Odpowiedz