Wybór języka programowania

Wybór języka programowania
PA
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:3
0

Dzień dobry,
Przeglądałem poprzednie tematy odnośnie wyboru języka programowania - lecz chciałbym założyć swój (aby wyczerpać wszelkie wątpliwości).
Od jakiegoś czasu interesuje się tematem szeroko pojętego programowania (czytam o różnych językach etc.). Chciałbym zacząć coś samemu działać, lecz ile języków, tyle opinii.
Zależy mi na nauce przez internet obecnie oraz tworzeniu własnych rzeczy w przyszłości (myślałem o zagłębieniu się w gry).

Stąd moje pytania:

  1. Jaki język programowania wybrać? Chciałbym coś w stronę gier (więc pewnie C++, lecz słyszałem że jest to język ciężki i samemu nie ma opcji zrobić jakieś fajnej gry), oraz w przyszłości być niezależną osobą w branży (pracować na swoim).

  2. Jaki kurs (płatny czy nie) warto wykupić alby się zagłębić w podstawy języka?

Z góry dziękuję!

AK
W twoim wyobrażeniu, Twój post różni się czymkolwiek o tych, które podobno przeglądałeś?
AK
2. Książkę za 50-90 zł
TS
Na studiach napisałem samemu grę w C++ i była fajna.
Mateusz Handzlik
Zainteresuj się Pascal na sklep Play. Jest tam tutoriale dużo i compilator. Ten Pascal to język algorytmów. A co z nim zrobisz zależy od ciebie.
DO
DO
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 3 lata
  • Postów:18
1
  1. C#, Unity3d i matematyka
  2. Jak podstawy to pewnie Microsoft ma dokumentacje aktualną
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:3 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
1
Patriotter napisał(a):

Zależy mi na nauce przez internet obecnie oraz tworzeniu własnych rzeczy w przyszłości (myślałem o zagłębieniu się w gry).

Dla pewności spytam. A przeczytałeś też że tworzenie gier to jedna z najgorzej płatnych dziedzin w IT?
Ale żeby nie było że sam offtop

  1. Jaki język programowania wybrać? Chciałbym coś w stronę gier (więc pewnie C++, lecz słyszałem że jest to język ciężki i samemu nie ma opcji zrobić jakieś fajnej gry), oraz w przyszłości być niezależną osobą w branży (pracować na swoim).

Niestety C# i Unity. Chyba że chcesz robić gry na Androida to Java, może Dart/Flutter też C# i Unity :(

  1. Jaki kurs (płatny czy nie) warto wykupić alby się zagłębić w podstawy języka?

Jak podstawy to kup sobie książkę. Ja się uczyłem z książek zanim te wszystkie video platformy do nauki stały się modne i naprawdę się da


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
edytowany 1x, ostatnio: KamilAdam
TR
Niedawno jak pisałem na forum o nauce javy przez zrobienie gry to polecali mi właśnie C# i Unity i po tych 3 tygodniach od tamtego momentu mogę powiedzieć, że wygląda to lepiej zarówno pod względem rynku pracy jak i samej pracy z językiem. Praca w gamedevie mobilnym też jest głównie w Unity dlatego jeżeli ktoś celuje w ten rynek to raczej C#, a nie java.
TS
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:394
1
KamilAdam napisał(a):
Patriotter napisał(a):

Zależy mi na nauce przez internet obecnie oraz tworzeniu własnych rzeczy w przyszłości (myślałem o zagłębieniu się w gry).

Dla pewności spytam. A przeczytałeś też że tworzenie gier to jedna z najgorzej płatnych dziedzin w IT?
Ale żeby nie było że sam offtop

Płaca jak płaca. Niektórzy wolą poświęcić dolary, żeby robić to, co lubią. Najgorsze to są warunki pracy (crunch time i inne atrakcje).

  1. Jaki język programowania wybrać? Chciałbym coś w stronę gier (więc pewnie C++, lecz słyszałem że jest to język ciężki i samemu nie ma opcji zrobić jakieś fajnej gry), oraz w przyszłości być niezależną osobą w branży (pracować na swoim).

Niestety C# i Unity. Chyba że chcesz robić gry na Androida to Java, może Dart/Flutter

Unity to raczej potrafi wypluć wypluć paczkę dla Androida. Nigdy się w to nie bawiłem, pewnie czasem to wymaga jakichś drobnych zmian w tym, co powstanie, ale raczej nie wymaga dogłębnej znajomości Javy.

  1. Jaki kurs (płatny czy nie) warto wykupić alby się zagłębić w podstawy języka?

Jak podstawy to kup sobie książkę. Ja się uczyłem z książek zanim te wszystkie video platformy do nauki stały się modne i naprawdę się da

Też się uczyłem z ksiązek, ale to nie znaczy, że to najlepszy sposób. Nie zachowujmy się jak dziadki ;)

LA
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 3 lata
  • Postów:24
2

Popieram 2 ostatnie zdania @KamilAdam. Jak zależy ci na jakości i wydajności @Patriotter, to staraj się omijać tych wszystkich Hindusów co ledwo nauczyli się wyświetlać hello world na ekranie, a już poradniki robią jak napisać własnego Windows'a... Z tego co wiem Unity ma całkiem fajną dokumentację: https://docs.unity3d.com/Manual/index.html
Albo UE4: https://docs.unrealengine.com/en-US/index.html
W UE4 całkiem fajnie się pracuje z c++, nie jest tak trudno jak niektórzy mówią. (Nie wiem jak jest w Unity, ale na pewno UE4 wymaga więcej poświęcenia czasu na naukę :) )
Ostatecznie zastanów się na jaką platformę docelowo chcesz robić gry. UE4 jest bardziej nastawiony na PC i konsole, ale Unity chyba też sobie poradzi.

PA
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:3
0

Dziękuję wszystkim za odpowiedzi! Pozwolicie, że odniosę się do Waszych zdań:
@DiabolicalOnion mówiąc "matematyka" miałeś na myśli obliczenia matematyczne, czy może coś z rodzaju logiki w programowaniu?

@KamilAdam tak słyszałem, lecz obecnie jestem po prosto zafascynowany tym tematem, nie patrze na pieniądze bo daaaleka droga do tego, abym cokolwiek umiał. Lecz jak pisze, chce się ukierunkować już jakoś (a że temat produkcji gier mnie interesuje, to pomyślałem - czemu nie).
A dlaczego Java tak odpada w kwesti robienia gier? Tylko C# i Unity?
I ostatnie: czy możesz polecisz jakąś książke o programowaniu?

@tsz mógłbyś rozwinąć "crunch time i inne atrakcje"? Jestem ciekawy tego.
Właśnie jest sporo kursów na internecie, lecz szukam czegoś (właśnie płatnego lub nie), co wprowadzi mnie w totalne podstawy..zdaje sobie sprawę, jak zaawansowany jest to temat.

@whzgod co oznacza, że ma fajną "dokumentacje"? Rozumiem, że Unity i UE4 to środowiska/silniki gier, lecz pisane były na podstawie innych jeżyków (np. C++) - przez co ułatwiają sprawę?
Jak to jest że UE4 współpracuje z C++? Czy może również współpracować z np. Javą?

Przeglądając oferty pracy (tak na oko w moim mieście Krakowie) dla szeroko pojętych programistów - to Java czy właśnie JavaScript/C# królują. A sam C++ jest gdzieś daleko w tyle..wyczytałem, że to na C++ bazują największe światowe gry, a nie na C#/Javie - ile w tym prawdy?

Na koniec wybaczcie mój długi wywód oraz pewnie banalne dla Was pytania - lecz jestem totalnie zielony.

TR
  • Rejestracja:ponad 5 lat
  • Ostatnio:ponad 3 lata
  • Postów:97
4

Popieram poprzedników i dopowiem swoje:
Przestań czytać o językach i o tym jaki język wybrać bo marnujesz czas bo na początek jak zaczniesz to tak naprawdę nie ma większego znaczenia dopóki ogarniasz podstawy podstaw, a w tym czasie możesz się zastanowić co i czy Ci się to podoba. Sam się uczę i zacząłem od C++, potem miesiąc javy, a potem właśnie C# i Unity i tak naprawdę to w podstawach niewiele się zmienia i dużo się nie musisz uczyć żeby ogarnąć podstawy drugiego języka.
Wybierz język i się ucz.

TS
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:394
2

Crunch time to jak się zapieprza 80 godzin tygodniowo, bo gra musi wyjść (w tej branży gra musi wyjść dopóki jest hype). Czytałem ze dwa razy historie jak kogoś trzeba było odwieźć z pracy w kaftanie, w obu przypadach to był gamedev. Zwróć uwagę, że to się tyczy raczej gier AAA. Inaczej jest jak się pracuje przy kolejnym Call of Duty, inaczej jak się robi jakieś takie fajne gierki typu Superhot (polska gra swoją drogą), a inaczej jak się robi jakieś Farmville. Generalnie praca przy dużych grach jest niewdzięczna. Znam kilka osób, które stamtąd odeszły i wszystkie są zadowolone ze swoich decyzji. Znam też ludzi, którzy pracują przy gra indie i tam zwykle jest całkiem spoko.

Gry klasy AAA muszą też być super-zoptymalizowane. Dlatego tam się używa C++. Obecnie świat gier indie jest tak bogaty, że te powstają w najróżniejszych językach, bo nie ma takiego parcia na wydajność. Dlatego też sam C++ jest obecnie niszowy, bo zwykle nie potrzeba aż tak szybkiego kodu.

PA
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:3
0

Hm dobrze, rozumiem.

A to nie jest tak, że - lepiej przejść właśnie przez podstawy dane języka (dajmy na to C++) niezwiązane z tworzeniem gier, a dopiero później jakkolwiek przymierzać się do zrobienia gry?

Czyli chyba najlepszą opcją będzie poświęcenie czasu w miarę każdemu językowi, który człowieka ciekawi i dopiero wtedy decyzja, w który zagłębić się bardziej..

TR
Zależy co chcesz robić i jaką drogą pójść. Jeżeli robić gry po godzinach w ramach hobby to tak, ale jeżeli chcesz znaleźć pracę w gamedevie to właściwie musisz dobrze znać jedno z dwóch. C# lub C++
LA
  • Rejestracja:prawie 5 lat
  • Ostatnio:prawie 3 lata
  • Postów:24
0

W UE4 głównie pisze się w c++, ewentualnie jakieś drobne skrypty w pythonie/Blueprint'ach. (Częściej te drugie)

NI
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:15
1

Jeśli miałbym polecić coś do gier na start to na pewno byłby to...

  • Godot. Open-sourcowy silnik służący do tworzenia gier. Wieloplatformowy, piszesz jeden kod i masz grę na przeglądarkę, androida i inne SO. Bardzo przyjemny na start. Jego składnia wyglądem przypomina składnie Pythona. W Godot używamy gdscript. Całkiem ok na start. (Ma też swoje minusy takie jak np. wydajność)
  • **Unity **. Społeczność zgromadzona wokół tego silnika jest po prostu ogromna. Wieloplatformowy. Piszesz w nim w C#. Dużo poradników, jesteś w stanie stworzyć samemu całkiem ciekawy projekt. Możesz używać wersji darmowej lub płatnej. Płatna pozwala na ciemny motyw.
  • **Unreal **. Dość potężny silnik, masa opcji i możliwości. Mnie przytłoczył, nie zmienia to faktu że jest dobry. To między innymi na nim powstał Fortnite

Wszystko zależy od efektu który chcesz osiągnąć. Czy bardziej wolisz nauczyć się np. C# podczas programowania, czy też może chcesz poznać coś nietuzinkowego. Komercyjnie, według mnie, wygrywa Unity.

W C++ możesz napisać własny silnik. Sprawdza się również, gdy chcesz bawić się w tworzenie gier już na nieco wyższym poziomie.

edytowany 1x, ostatnio: NIEPROGRAMISTA_
Narta
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:10
2

Hej, jestem nowa na forum i nie do końca wiem, czy to legalne i zgodne savoir-vivrem, ale napisałam na temat wyboru języka post na blogu, więc go wkleję: https://jakzostacprogramista.pl/krok-1-wybor-technologii-i-jezyka-programowania/
Jakby co, nie bijcie.


Zobacz pozostałe 20 komentarzy
nalik
Jak ich utwierdzisz w przekonaniu, że to za trudne, to na pewno nawet się tym nie zainteresują. Tymczasem nawet dziecko mając książką i/lub tutora jest w stanie ogarnąć podstawy takiego Arduino.
KA
@Narta: a ja twierdzę, że po prostu już takich blogów więcej nie potrzeba. Wszystko już zostało powiedziane. No ale taki content najprościej stworzyć. A Twój wpis jest zwyczajnie poniżej średniej i wytknalem błędy, i nie tylko ja np. odnośnie mobilek. Zamiast się oburzać to się otwórz na krytykę. Nofluffjobs przynajmniej bazuje na danych z polskiego rynku i realnych ofert a nie ankieta SO, gdzie według niej najlepiej jakbym postawił na język Rust. W końcu wszyscy kochają ten język. Statystyki bazujące na ofertach dużo więcej mówią niż trendy z kosmosu.
Narta
@nalik: ok, arduino tak, ale w embedded potrzebujesz też często wiedzy z elektroniki, teorii sygnałów... sama to przerabiałam jak weszłam w tą działkę i choć jestem po elektrotechnice i elektronikę miałam na studiach, to łatwe to nie było. Ludzie, którzy mnie czytają, dość poważnie traktują to co piszę i nie chciałabym mieć na sumieniu osoby, która np. po psychologii postanowiła wejść w embedded i miesiąc później rezygnuje całkiem z programowania, bo uznaje, że nie ogarnie.
Narta
@karsa: a gdzie ja się oburzam? Jestem bardzo otwarta na krytykę, jak się dogrzebałeś do komentarza na temat mobilek, to chyba to widzisz. Twoje komentarze też czytam uważnie i biorę pod uwagę, ale nie zamierzam zamykać bloga, bo Ci się nie podoba. A jeśli mój wpis jest poniżej średniej to podrzuć jakiś lepszy - jestem autentycznie ciekawa.
KA
Fine for me.
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)