W jakim języku programować?

0

Nie wiem jaki język wybrać. Tak wiem, że programista zna z reguły dużo języków i język to tylko narzędzie, aleeeeeeee.
Chciałbym wiedzieć jaki wybrać pierwszy.

Kompletnie nie jara mnie robienie stron internetowych i apek internetowych.
Ciekawi mnie robienie gier/wirusów/łamanie zabezpieczeń/robienie botów.
Przykładowo ostatnio widziałem cheata do dosyc starej gry metin2, dzięki któremu na czacie gry można było wysyłać obrazki z hiperłączem. Mimo, że gra nie pozwalała na takie coś i to mnie mega zaciekawiło. Takie wooow. Dostęp do czegoś czego gra nie pozwala.
Tak samo zaciekawiło mnie działanie botów do gta 5. Jakim cudem dzięki pewnemu czitowi można było nabić sobię wirtualną walutę na konto, skoro to wszystko jest CHYBA zapisane w bazie danych a do niej dostępu twórca czita raczej nie miał.

Zastanawiałem się nad c#/c++/pythonem.
C++ chyba odpada, bo jest mega ciężki i ma wysoki próg wejścia. Chociaż zawsze mnie jakoś do niego ciągneło.
Python? Ostatnio zaczął mnie interesować, ale czytałem, że "uuu samym pythonem to nic nie zrobisz"
C# nie wiem

Wiadomo praca pracą. Wypadałoby wybrać coś na co jest popyt. Z drugiej strony dobry programista tak czy siak znajdzie pracę.

1

Nie wiem, rzuć monetą czy coś, wszystkie z wymienionych języków są dobre i dobrze się w nich pisze.

Ciężko się coś komuś proponuje, bo co kto przyjdzie to da ci inną radę, do każdej się nie zastosujesz, każdy mówi ze swojej perspektywy.
A na końcu i tak wybierzesz co będzie ci się podobać.

Przeczytanie książki do podstaw 100-300 str. żeby zaznajomić się z językiem to różnie może 1-2 dni na przeczytanie.
Czekanie na odpowiedź na forum więcej czasu zabierze.

Każdy średnio od 25-100 stron przeczyta na godzinę, zależnie od trudności materiału.

Często tu ludzie na forum piszą czego to się nie będą uczyć, pamiętam jeden wątek, gdzie ktoś chyba miesiąc czy dwa dyskutował, który język lepiej zacząć, a w tym czasie to dawno by nawet kilka tutoriali skończył.

Ja sam jak byłem w podstawówce to tutorial do C przerobiłem, wtedy to było moje oczko w głowie, teraz może bym od pythona zaczął, nie wiem, ale pamiętam, że przez wiele lat miałem taką pustkę w głowie nie wiedząc jak wiele rzeczy działa w środku, potem jakoś się wypełniły te obrazy w wyobraźni :>

Od tego jest wyobraźnia i intuicja, żeby samemu wybierać drogę i potem najwyżej ją zmieniać w czasie jak stan wiedzy będzie się zmieniał.

2

Może pytanie nie jest właściwe ?
Zamiast pytać w jakim języku lepiej zadać sobie pytanie co Cie interesuje czym chcesz się zajmować, co robić ?
Tylko że na filozoficzne pytania nie wiem co odpowiedzieć , sam codziennie próbuje sobie na nie odpowiadać :)

2

Najlepiej C. C++ jest to rozszerzony C i zbyt zagmatwany na początek. Język C udostępnia mechanizmy takie jak sławne wskaźniki czy też operatory bitowe, które mogą stanowić trudność w nauce, jednak przecież wcale nie musisz ich od razu używać, da się pisać programy bez nich (oczywiście z nimi jest lepiej). Do dużych projektów rozważ Javę, lecz to tylko do dużych projektów, nie na początek, i warto znać najpierw C. Osobiście w wieku 9 - 11 lat próbowałem różnych języków, jednak uważam, że to były dwa lata opóźnienia w rozwoju stracone na naukę podstaw nie-C.

0

Patrząc na to jak wygląda rynek to TypeScript/JavaScript, C#, Java lub Python 😅

1

Trudno byłoby pogodzić twoje zainteresowania z rynkiem pracy. Rzeczy, które wymieniasz, raczej wymagają dobrego ogarnięcia programowania niskopoziomowego, więc programowanie w C, zrozumienie assemblera, posługiwanie się debuggerem. To są rzeczy na które jest stosunkowo mały popyt i przypuszczam, że raczej nie są to stanowiska juniorskie. Z resztą nie są to łatwe rzeczy, chyba lepiej najpierw trochę zrozumieć programowanie w ogóle, bo bez tego to trochę jak chodzenie po omacku.

Trudno powiedzieć, jaki język jest dobry na początek, ludzie chwalą sobie pythona, ale osobiście go nie lubię, chyba już prędzej wziąłbym javascript (swoją drogą to był jeden z moich pierwszych języków) i gdzieś tam pewnie się przyda, jeśli interesuje Cię malware. Javascript ma tę zaletę, że można zrobić stosunkowo dużo łatwo obserwowalnych rzeczy, stosunkowo szybko. To pomaga w nauce (choć pewne inne jego cechy zdecydowanie nie pomagają, ale nie można mieć wszystkiego).

Jeśli chodzi o pracę, powiem C#, choć moja styczność z tym językiem była znikoma, ale Java to zło, choć pracy jest sporo. Na JVMa jest Scala, ale to chyba nie jest dobry język na początek (jak większość najciekawszych języków: Lisp, Haskell, Rust).

5

Jak nie wiesz jaki język wybrać to oczywistym wyborem jest oczywiście C#. Tam nie miejsca na wybory i zastanawianie się. M$ powie ci co jest dobre a co jest złe i nie musisz w ogólę myśleć

3

Żarty żartami, ale to co napisał @KamilAdam na początku sprawdziło się w moim przypadku. Pracując w C# nie zastanawiałem się który framework czy adnotację wykorzystać, większość firm klepie CRUDy z ASP.NET, EF i Dapperem. Na początek fajnie, jednak z czasem trudniej znaleźć coś ciekawego do roboty. Gdybym dziś miał wybrać coś innego, rozdzieliłbym to pod kątem kasy oraz rozrywki intelektualnej. Dla $$$ byłby to Python, Golang albo TypeScript. Gdybym miał wybierać rozrywkę intelektualną i pasję, byłby to F#, Scala albo Erlang

0
Trolek Amatorek napisał(a):

Tak samo zaciekawiło mnie działanie botów do gta 5. Jakim cudem dzięki pewnemu czitowi można było nabić sobię wirtualną walutę na konto, skoro to wszystko jest CHYBA zapisane w bazie danych a do niej dostępu twórca czita raczej nie miał.>

Jeżeli w grze istnieją jakieś gry losowe lub zakłady na pieniądze, albo jakiś inny element, w którym można zyskać lub stracić zależnie od przypadku, i jednocześnie gra przewiduje możliwość zapisania stanu gry, to sposób jest prosty. Nie znam w ogóle GTA5 (coś tam słyszałem, parę filmików na YT widziałem), ale niegdyś grałem w Leisure Suit Larry. W tej grze jest kasyno, na którym się wygrywa lub przegrywa. Należy wejść do kasyna, podejść do gry i zapisać stan gry. Następnie zagrać w grę. Jeżeli się wygra, to znowu zapisać stan gry. Natomiast, jak się przegra, to odtworzyć ostatnio zapisany stan gry. Ten sposób postępowania zapewne da się zautomatyzować śledząc to, co pojawia się na ekranie. Dzięki temu można nabić wirtualnej kasy ile się chce.

Trolek Amatorek napisał(a):

Zastanawiałem się nad c#/c++/pythonem.
C++ chyba odpada, bo jest mega ciężki i ma wysoki próg wejścia. Chociaż zawsze mnie jakoś do niego ciągneło.
Python? Ostatnio zaczął mnie interesować, ale czytałem, że "uuu samym pythonem to nic nie zrobisz"
C# nie wiem

Napisałeś rodzaj aplikacji, ale nie napisałeś, jaki OS. Jeżeli jesteś zwolennikiem WOCA, to C++ i do tego Qt lub wxWidgets. Jeżeli WORA/WORE, to C#, Java, Python. Jeżeli wieloplatformowość nie ma znaczenia i jesteś "przywiazany" do jednego OS, to nie ma znaczenia, czy to będzie C++, czy C#, jednak C++ jest trudniejszy. Język czysty C jest dobry do mikrokontrolerów i systemów wbudowanych, do komputera to tak sobie, a C++ jest kompatybilny z C.

Wiadomo praca pracą. Wypadałoby wybrać coś na co jest popyt. Z drugiej strony dobry programista tak czy siak znajdzie pracę.

Na tym forum było już dużo tematów o wyborze języka pod kątem pracy w przyszłości i każdy taki temat kończył się stwierdzeniem w rodzaju "wybierz taką technologię, jaką lubisz".

48

Cheaty do metina to głównie C++ i Asm. Nazywa się to reverse engineering i jest ciężkim kawałkiem chleba. Jeśli jesteś zielony w programowanie to zacząłbym od pythona dla poznania podstaw fachu. Potem sukcesywnie wrócił do C++. Będzie zdecydowanie łatwiej.

Zaczynanie od C++ na początku to jak nauka jazdy zaczynając od ciężarówki :P

0
SkrzydlatyWąż napisał(a):

Dla $$$ byłby to Python, Golang albo TypeScript. Gdybym miał wybierać rozrywkę intelektualną i pasję, byłby to F#, Scala albo Erlang

Dla $$$, to najbliżej zainteresowań opa to jest Rust. Jest trochę ofert, a stawki całkiem fajne. Tylko, że podobnie jak w/w języki dla pasji, raczej nie należą do łatwych, wymagają pewnego zrozumienia programowania, trzeba trochę rozumieć co się robi. W językach niskiego poziomu łatwiej jest zrobić coś na czuja i metodą prób i błędów dojść do rozwiązania. Za to Rust wspiera programowanie niskopoziomowe, co jest kompatybilne z zainteresowaniami RE. Z drugiej strony, niskopoziomowe zagadnienia związane z JVM/CLR też pewnie by się przydały, bo teraz duża część oprogramowania chodzi na tych VMkach.

1

@KamilAdam: a zebys wiedzial ze w C# jest prosciej, na Programistoku pare lat temu Konrad Kokosa pokazywal parametry konfiguracyjne VM w C# bylo ich kilka na krzyz (chyba ze wykazuje sie ignorancja bo C# to nie moj swiat, spedzilem duzo czasu robiac gre w XNA, ale MS go ubil, wiec sie obrazilem na nich :P ).

Sprawdzilem wlasnie Jave 1.8 jest ich ponad 800 , komenda listujaca jakby ktos chcial: "java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version"

Ja ze swojej strony po raz kolejny polece YAMLa i Opsowa strone kariery.

0

Ostatnio na topie jest RNA - całkiem przyzwoity (4 słowa, kilka zależności, ekspresyjność ograniczona praktycznie tylko środowiskiem) - tylko to strasznie mutowalny język praktycznie bez zabezpieczeń i błędy sypią się często. Myślę że z uwagi na ograniczenia w fizyce i śmierć prawa Moore'a to jest przyszłość. Dla ułatwienia możesz zacząć od DNA - ewolucyjna zmiana z tego pierwszego ale wprowadza redundancję dla zmniejszenia błędów przez co jest trochę bardziej zamknięta na zmiany. Ale jako wprowadzenie - czemu nie?

Ostatnio wprowadzili też chyba wsparcie w postaci AI dla powyższych języków (jakby Copilot) więc jak widać narzędzia ewoluują bardzo szybko w odpowiedzi na zapotrzebowanie rynku :)

0
KamilAdam napisał(a):

Jak nie wiesz jaki język wybrać to oczywistym wyborem jest oczywiście C#. Tam nie miejsca na wybory i zastanawianie się. M$ powie ci co jest dobre a co jest złe i nie musisz w ogólę myśleć

xDDD
W sumie ruscy też dokonują projekcji problemów swojego kraju (rasizm, alkoholizm, rozwiązłość, bieda) i oskarżają o nie drugą stronę.

SkrzydlatyWąż napisał(a):

Żarty żartami, ale to co napisał @KamilAdam na początku sprawdziło się w moim przypadku. Pracując w C# nie zastanawiałem się który framework czy adnotację wykorzystać, większość firm klepie CRUDy z ASP.NET, EF i Dapperem.

Większość firm, do których się rekrutujesz. Ponieważ ciągle rekrutujesz się do tego samego rodzaju firm, to ciągle trafiasz na takie same oferty.
To trochę tak, jakby przy każdej zmianie samochodu kupować renault i twierdzić, że wszystkie samochody mają wadliwą elektrykę. ;)

Na początek fajnie, jednak z czasem trudniej znaleźć coś ciekawego do roboty.

No mnie z czasem coraz łatwiej. Ja nawet nie wiem do czego EF miałbym użyć, przecież to jest do jakichś starożytnych baz danych, które wyśmiewano już 40 lat temu.

Gdybym dziś miał wybrać coś innego, rozdzieliłbym to pod kątem kasy oraz rozrywki intelektualnej. Dla $$$ byłby to Python, Golang albo TypeScript. Gdybym miał wybierać rozrywkę intelektualną i pasję, byłby to F#, Scala albo Erlang

Mnie się wydaje, że kasa jednak w mniejszym stopniu od technologii zależy.

1

Sprawdzilem wlasnie Jave 1.8 jest ich ponad 800 , komenda listujaca jakby ktos chcial: "java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version"

Dlaczego uważasz konfigurowalność za wadę?

0

@Manna5: przeczytaj dokladnie moj post, gdzie napisalem ze to wada? Napisalem ze ogarniecie 800+ parametrow jest trudniejsze niz kilku.

6
Manna5 napisał(a):

Sprawdzilem wlasnie Jave 1.8 jest ich ponad 800 , komenda listujaca jakby ktos chcial: "java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version"

Dlaczego uważasz konfigurowalność za wadę?

Konfigurowalność może być bardzo dużą wadą.
Wyobraź sobie, że wsiadasz do auta i zanim pojedziesz musisz wybrać:

  • kąt wyprzedzenia zapłonu,
  • parametry mieszanki,
  • stopień kompresji,
  • ustawić przepływ cieczy chłodzącej,
  • ustawić wentylator
    itd.

oczywiście gdybyć mógł zawsze to wszystko wybierać to na wyścigach w górach latem twoje auto pojedzie lepiej od tego, które tego nie umożliwia (powiedzmy, że to raczej w czasach przed komputerami). ale przez pozostałą część roku będzie jeździć gorzej, albo nawet zatrzesz silnik, bo Twój wujek z nudów wyłączy Ci podczas jazdy chłodzenie.

0
loza_prowizoryczna napisał(a):

Ostatnio na topie jest RNA - całkiem przyzwoity (4 słowa, kilka zależności, ekspresyjność ograniczona praktycznie tylko środowiskiem) - tylko to strasznie mutowalny

RNA na topie to było ze 3 miliardy lat temu. Świat idzie do przodu. Poza tym taki kod, który jednocześnie jest procesorem to niezły kibel przy debugu.

0
jarekr000000 napisał(a):
loza_prowizoryczna napisał(a):

Ostatnio na topie jest RNA - całkiem przyzwoity (4 słowa, kilka zależności, ekspresyjność ograniczona praktycznie tylko środowiskiem) - tylko to strasznie mutowalny

RNA na topie to było ze 3 miliardy lat temu. Świat idzie do przodu.

Architektura von Neumanna jest skończona, naprawdę. Najwyższy czas powrócić do natury.

Poza tym taki kod, który jednocześnie jest procesorem to niezły kibel przy debugu.

Co do RNA to zgoda. Ale przy DNA już masz rozdział na pamięć i egzekutywę - o czym wspomniałem, na razie ciężko wdrożyć na tym RAD co jest dużym -- ale może kiedyś?

1 użytkowników online, w tym zalogowanych: 0, gości: 1