Jakie są najgorsze języki na początek nauki?

Odpowiedz Nowy wątek
2018-07-21 19:56
0

@jarekr000000 wstawił listę najgorszych frameworków do nauki Javy, zaznaczając, że sama Java jest dobrym językiem na początek. I zastrzegając, że można przecież trafić dużo, dużo gorzej.

TO mnie jednak ciekawi... Jakie są te złe języki na początek nauki programowania?

Spośród tych, na które ludzie rzeczywiście trafiają i od których niefortunnie zaczynają - tj. bez np brainfucka. Gdyż nie wyobrażam sobie, jak ktokolwiek w praktyce mógłby próbować od niego zaczynać.

edytowany 1x, ostatnio: kmph, 2018-07-21 19:57

Pozostało 580 znaków

2018-07-21 20:32
1

Wszyscy piszą o Javie, czasem coś o C#.

Ale. Mimo to może oprócz zalet, te dwa języki mają również wady?

Przede wszystkim to, że oba są bardzo nastawione na OOP. Tymczasem ogarnięcie OOP wymaga ogarniania paradygmatu proceduralnego / strukturalnego.

Nie za bardzo widzę, jak można bezboleśnie uczyć Javy czy C# od podstaw inaczej, niż ignorując obiektowość (przynajmniej przez pierwsze pół roku). A skoro tak, to czemu od razu nie zacząć od języka proceduralnego, zamiast pisać Pascalopodobny kod w Javie?

Ale może się mylę, może można od razu zaczynać od obiektowości.

Pół roku, na dowiedzenie się co znaczy class i object, to trochę długo, a na początek wystarczy - NanTl 2018-07-21 20:37

Pozostało 580 znaków

2018-07-21 20:36
2

PHP - język koszmarny, jeden wielki chaos, niespójny, taki pidżin (każda funkcja czy element składni wzięty bezładnie z innego języka).

Java - zbyt przeinżynierowany jak na język dla początkującego. Przez to nawet Hello World będziesz musiał pisać na klasach. Czyli to paradoks, bo będziesz musiał używać klas zanim się nauczyć obiektówki. Czyli będziesz pisać proceduralnie na klasach.

co do JavaScript to mam mieszane odczucia. Z jednej strony sam język nie jest przychylny dla początkującego (za dużo niespodzianek), z drugiej strony fakt, że można w tym pisać aplikacje czy stronę i od razu nimi się dzielić ze światem wrzucając do netu (i ktoś będzie mógł je zobaczyć bez ściągania żadnego exeka czy apki ze store'a) i że można łatwo animacje robić (więc dużo frajdy). I fakt, że teraz JS jest na fali (i masę bibliotek jest, narzędzi itp.).

Czyli niby sam JS pewnie nie jest najlepszy dla początkującego, bo może wprowadzić dużo zamieszania w głowie (np. w JS jest ileś sposobów na zdefiniowanie własnej funkcji i każdy sposób się różni czymś), ale z drugiej ekosystem jest silny (ale pewnie można tak o wielu językach powiedzieć).


((0b10*0b11*(0b10**0b101-0b10)**0b10+0b110)**0b10+(100-1)**0b10+0x10-1).toString(0b10**0b101+0b100);
@LukeJL: Niech pierwszy rzuci dyskiem ten, kto nigdy nie używał czegoś bez wiedzy jak to działa. Używając vectora w CPP wiedziałem jedynie, że ułatwi mi to robotę, a nie że są tam jakieś dynamic array + templaty. To też jest sposób nauki. - WeiXiao 2018-07-21 20:50
nie wiem odnośnie której to części mojej wypowiedzi, ale powiem tak - wg mnie na początku opłaca się z jednej strony czasem używać czegoś bez wiedzy jak działa, ale z drugiej strony warto (zarówno na początku jak i będąc zaawansowanym koderem) odkryć czasami koło i np. zbudować coś samemu, mimo, że coś takiego jest już w języku, albo mimo, że jest już biblioteka do tego (nie lubię tego zwrotu, bo w ten sposób nikt by niczego nigdy nie poznał dogłębnie. Dobrze, że takiemu Linusowi nikt nie powiedział "takie coś już istnieje", bo nie mielibyśmy teraz ani Linuksa ani Gita... - LukeJL 2018-07-22 11:11
@LukeJL: bo będziesz musiał używać klas zanim się nauczyć obiektówki. Mi nie chodzi o wynajdywanie koła na nowo, a po prostu jesteś na etapie X i chcesz zrobić Y, a najprostszym sposobem jest użycie rzeczy A, więc co, nie użyjesz jej "bo będziesz musiał jej użyć zanim opanujesz jej działanie"? To też jest sposób nauki. - WeiXiao 2018-07-22 11:15
no to oczywiście, że jeśli ktoś zaczyna w Javie i każą mu pisać na klasach, to musi pisać w klasach. Ale z drugiej strony potem ludzie mają skrzywione pojęcie obiektówki, bo za wcześnie używają artefaktów typowych dla OOP (klasy, metody, dziedziczenie, interfejsy itp.) nie wiedząc co one oznaczają i po co się to stosuje. Taki cargo cult. Podobnie jak ze wszystkim. Ludzie w DDD wchodzą i też bez zrozumienia, byleby tylko porobić jakieś encje, agregaty i repozytoria. Albo ludzie uczący się Reacta od razu wchodzą w Reduxa (bez zrozumienia jakie problemy on rozwiązuje). - LukeJL 2018-07-22 12:42

Pozostało 580 znaków

2018-07-21 20:38
0

a co sądzicie o VB ?? za bardzo nie znam... ale znam całkiem nieźle VBA pod Excela... to chyba podobne ciut ??

Pokaż pozostałe 12 komentarzy
@WeiXiao: a jeden uj tylko wie w czym ja teraz pracuje... ;) - hurgadion 2018-07-21 21:07
Kurde to mi pamięć chyba płata figle bo wydawało mi się że jak kiedyś pisałem skrypt do ekcela to pisałem w C# bo nie chciałem tykać VBA. Ale to dawno było i może rzeczywiście nieprawda :/ - loza_szydercow 2018-07-21 21:21
@loza_szydercow: jak się uprzesz... to wciśniesz nawet określony kod VBA do Arkusza używając tylko C#... tak mi się wydaje :) - hurgadion 2018-07-21 21:37
Jak się uprzesz to napiszesz program x86 używając tylko mov :) - loza_szydercow 2018-07-21 21:45
chyba się jednak skupię na Pythonie... i na robótkach ręcznych... ;) - hurgadion 2018-07-21 21:57

Pozostało 580 znaków

2018-07-21 20:42
0

czyli JS nie jest dobry ale nie jest tez zly

tak to już jest z tym JSem ;) - LukeJL 2018-07-21 21:13

Pozostało 580 znaków

2018-07-21 21:04
1

Java - zbyt przeinżynierowany jak na język dla początkującego. Przez to nawet Hello World będziesz musiał pisać na klasach. Czyli to paradoks, bo będziesz musiał używać klas zanim się nauczyć obiektówki. Czyli będziesz pisać proceduralnie na klasach.

Ja (w gimnazjum jeszcze) po zrobieniu MessageBoxa (alerta) w JavaScripcie zająłem się robieniem MessageBoxa w czystym asemblerze za pomocą kursu Iczeliona: http://win32assembly.programminghorizon.com/tutorials.html
Było cholernie ciężko bo nie rozumiałem nic, nawet brak obiektówki w asemblerze nie pomógł. Ale przebrnąłem przez parę kursów i byłem mistrzem asemblera x86 :]

Mój pierwszy styk z Javą na studiach był dość nieprzyjemny, bo dość długo nie mogłem zrozumieć dlaczego nie mogę wywołać niestatycznej metody z maina i jakie mechanizmy za tym stoją. Komunikat błędu od kompilatora Javy nie był wystarczająco przejrzysty dla nowicjusza.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit, 2018-07-21 21:06

Pozostało 580 znaków

2018-07-21 22:05
2

Ja zaczynałem od Javy i jakbym miał wybierać jeszcze raz to bym poszedł tą samą drogą :) Było trudno, jak chłopaki wyżej pisali: tworzyłem strukturalne programy w metodzie main nie mając pojęcia jak stosować OOP. Potem zacząłem rozbijać te strukturalne potworki na mniejsze klasy i tak po sznureczku sobie szedłem. Teraz uważam, że moją 'specjalnością' jest między innymi czysty kod, OOP i wzorce projektowe.

Znam tylko Javę i trochę Pythona, ale jak widzę PHP to od razu mam ochotę spie***lać od komputera, takie to brzydkie rzygowiny bez składne.

ja do PHP nawet nie zaglądam... tylko Ciii... ;) - hurgadion 2018-07-21 22:06

Pozostało 580 znaków

2018-07-22 14:05
0

Sprostowania:
1) nieprawdą jest że Java wymaga OOP. Każdy programista "enterprise" mający doświadczenie z "bezstanowymi serwisami" i "utilsami" to wie [*].

Przykład:

class Ideone
{
    static { 
            System.out.println("Hello world!"); 
        }
 
        // nic nie robiący kod wymagany do załadowania w Ideone 
    public static void main (String[] args) throws java.lang.Exception  { }
}

https://ideone.com/XriiXp

Jeśli ktoś tęskni za 100% programowaniem proceduralnym na JVM to jest przecież Kotlin.
https://stonesoupprogramming.[...]n-and-procedural-programming/

2) Nie zgodzę się że ten język jest przeinżynierowany. Ktoś kto tak mówi nigdy chyba nie robił w C++/TMP.

3) Z C++ nigdy nie miałem problemów. Wcześniej było C, więc może to kwestia nastawienia. Najpierw było oczywiste że ze wskaźnikiem trzeba coś zrobić, potem przyszły smart pointery i już nie trzeba było się zastanawiać. W obecnej wersji (C++17/20) ten język robi się coraz bardziej przyjemny. Patrz lambdy, std::function, string_view...

Najgorsze języki
wg mnie do nauki programowania:

  • COBOL (bez OOP) - nie ma jednej rzeczy której ten język dobrze uczy
  • PHP - przez bałaganiarskość biblioteki standardowej
  • C - przez chorą składnię wskaźników do funkcji (w porównaniu choćby do Turbo Pascala z lat 90-tych) oraz obsługę łańcuchów tekstowych
  • JavaScript w wersji sprzed ECMAScript 6. Ogólnie to fajny język, ale dla mnie na dzień dzisiejszy trzeba naprawdę mieć poważny powód żeby stosować starszą wersję.

[*] "utilsy" to takie statyczne moduły proceduralne udające klasy.


Szacuje się, że w Polsce brakuje 50 tys. programistów
edytowany 1x, ostatnio: vpiotr, 2018-07-22 14:05
Ja zdecydowanie bardziej wolę C niż C++ jeśli ktoś by mnie pytał. - hauleth 2018-07-22 14:39
Nawet nie wiedziałem o takiej możliwości w javie. Dzięki :) - NeutrinoSpinZero 2018-07-22 14:47
Mam takie samo zdanie jak @hauleth, najpierw C, potem C++. C jest proste i minimalistyczne, C++ wymaga dużo więcej czasu i praktyki i coraz bardziej się rozrasta. Albo zacząć od czegoś zupełnie innego. - nalik 2018-07-22 14:48
Tez jestem zdania, ze C jest fajniejsze od C++. Na studiach prosciej bylo mi into C bez ++ :-) - Hispano-Suiza 2018-07-22 15:11

Pozostało 580 znaków

2018-07-22 15:05
Srebrny Wąż
0

Pewnie większość się nie zgodzi ale najgorszy i najbardziej irytujący język to Python... Co do PHP i JS(w nowej wersji) uważam że ich krytyka jest przesadzona... Założę się, że gdyby taki PHP pojawił się w dzisiejszych czasach i był mniej popularny to ludzie zachwycaliby się jego niesamowitymi możliwościami i pisali, na forach że łączy programowanie obiektowe i funkcyjne i w ogóle jest hot...

To jakie te niesamowite mozliwosci sa w php? Serio pytam. - Hispano-Suiza 2018-07-22 15:12

Pozostało 580 znaków

2018-07-22 15:26
0

Mimo, że smakowałem wiele języków, nadal wolę C++. Być może to jakieś zboczenie, bo rzeczywiście czasami są śmieszne sytuacje jak taka:

const double *(*(*pA)[3])(const double *, int) = &pB;

Lecz to już jest raczej przeszłość, takie babole są rzadkością. Z resztą coraz to nowsze wersje cpp mają przydatne dla programisty funkcjonalności i nie jest aż tak źle jak wszyscy mówią. Uważam, że c++ jest fajny na spróbowanie, bo później przesiadka na inne języki jest błahostką.


𝐼𝒻 𝓎𝑜𝓊 𝑒𝒶𝓉 𝒶𝓃𝒹 𝓈𝓁𝑒𝑒𝓅 𝑔𝑜𝑜𝒹, 𝑒𝓍𝑒𝓇𝒸𝒾𝓈𝑒 𝒶𝓃𝒹
𝒶𝓁𝓌𝒶𝓎𝓈 𝒹𝓇𝒾𝓃𝓀 𝓌𝒶𝓉𝑒𝓇, 𝓎𝑜𝓊 𝓌𝒾𝓁𝓁 𝒹𝒾𝑒 𝒶𝓃𝓎𝓌𝒶𝓎.
edytowany 1x, ostatnio: Sunnydev, 2018-07-22 15:27
typedef pomaga i nie gryzie - nalik 2018-07-22 15:30
Jak kolega @nalik powiedział: https://ideone.com/hQJNqQ - typedef pomaga i powoduje, że wszystko jest zdecydowanie czytelniejsze. - hauleth 2018-07-22 19:28

Pozostało 580 znaków

2018-07-22 15:49
MBWPL
0

Moja lista:

  1. C i C++ bo brzydkie funkcje i samemu trzeba większość pisać
  2. Kotlin bo wymaga znajomości Javy
  3. C# i Java bo obiektówka i długie nazwy metod i klas
  4. JavaScript bo wymaga zrozumienia GUI i zdarzeń
Jaki język w takim razie polecasz? Python? - Busted Mimikyu 2018-07-22 15:51
Logo i Scratch - Wibowit 2018-07-23 00:49

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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