Programowanie dla laika - jak zacząć

Gdzie tam! Co powoduje, że łatwiej/lepiej zacząć w Javie? Lisp jak najbardziej się nadaje.

Odwrotna notacja polska nie jest intuicyjna ?


Wracając do tematu jaki język programowania jest najlepszy? Wszystkie są najlepsze, tylko każdy do czego innego.


Wyobrażacie sobie sytuacje?

Puka laseczka (taka na oko 23 lata/190 wzrostu, 92/58/90) do waszych drzwi, otwierasz bo myślisz “może to jedna z tych sytuacji co inscenizowała je Belladonna”, a tu zaraz po otwarciu drzwi pytanie na twarz:

“Dzień dobry, czy zastanawiał się Pan jaki język programowania jest najlepszy? W Biblii możemy znaleźć wyjaśnienie wszystkiego, co ma związek z programowaniem.”

Nie, nie nadaje się dla początkujących. Po pierwsze trudniej go się nauczyć, widocznie programowanie funkcyjne jest mniej intuicyjne niż się to niektórym wydaje. Po drugie, skoro i tak najczęściej używa się języków niefunkcyjnych, a łatwiej znaleźć zarówno pracę jak i otwarty projekt w Javie i językach o składni podobnej do C to dla początkującego Lisp nie jest dobrym rozwiązaniem.

Nie jest intuicyjna (intuicja to nieuświadomiona suma dotychczasowych doświadczeń). Dziecko od początku w szkole uczy się wykonywać działania mieszając po kolei argumenty i operatory. Gdyby zaczęto uczyć od dziecka używając notacji polskiej to może byłaby intuicyjna.

PS. Podobnie niektórzy twierdzą, że rekurencja jest intuicyjna. Ale praktyka pokazuje, że młodzi adepci bez problemu rozumieją iterację, ale rekurencji muszą długo się uczyć. Po opanowaniu jej dopiero uważają, że jest intuicyjna. :wink:

Co do odwrotnej notacji polskiej, to kiedyś żyło więcej języków z tym wynalazkiem. Z tego, co wiem, to choćby taki algol to miał. Jednak stwierdzono, że normalne wzory matematyczne są dużo prostsze.

Twój wniosek - używajmy iteracyj? Nie! Powinno nauczyć się ich rekurencji. I zrozumienie nie jest wcale trudne - ergo, powołując się na analogię, warto uczyć się języków funkcyjnych.

Natomiast osoba, która zaczyna programować, i tak nie dostanie od razu pracy, więc ten twój argument nie ma sensu.

Wcale nie przeczę. Warto uczyć i rekurencji i języków funkcyjnych. Jednak nie laika, tak samo jak laik nie od razu zrozumie rekurencję. Nauka języka funkcyjnego zwiększa horyzonty programisty, przydaje się nawet programującym w Java 8. Tyle, że zazwyczaj sam język funkcyjny też nie da jeść.

Jak zacznie od uczenia się języka, którego nigdy nie wykorzysta w pracy to tym trudniej będzie mu znaleźć pracę. Ten argument nie jest najważnejszy bo wyobrażam sobie, że ktoś wybitnie uzdolniony nauczy się np. Lisp jako pierwszego języka, a później douczy innego imperatywnego w celu znalezienia pracy. Jednak taki sposób jest znacznie trudniejszy.

Wy chyba mylicie prostotę nauczenia się/zrozumienia, a łatwość wykorzystania. Odwołując się do życia rzeczywistego, to nikt nie rozumie absolutu, a wielie osób się na niego/do niego odwołuje. Tak samo jest z rekurencją. Zrozumienie samozawierania jest niemożliwe do pojęcia, ale często jest prostsze w implekmentacji od iteracji.

OT: Żeby zrozumieć rekurencję trzeba zrozumieć rekurencję.


Konia z rzędem temu, który ze 100% pewnością powie, że za 5 lat najlepiej zarabiającymi będą programiści piszący w języku …

Jeśli ktoś zna przynajmniej jeden język z danej grupy to bez większych problemów przerzuci się na inny język należący do tej samej grupy.

Bry,

Ostatecznie wybrałem Javę. Bardziej celuję w rynek mobilny, a raczej w Androida.

 

Tak się tylko mówi, ale znajomość języka to nawet nie połowa sukcesu. Z samym językiem napiszesz Hello World albo posortujesz tablicę. Żeby realnie przydać się w projekcie, musisz dobrze obczajać popularne biblioteki, frameworki, IDE, ORM-y, serwery aplikacji, narzędzia do zarządzania projektem, testowania, automatyzacji, continuous integration i wiele innych. Flaszka dla tego, kto w miesiąc między zmianą pracy dogłębnie pozna ekosystem innego języka teoretycznie z “tej samej grupy”.

Spójrz na temat i jeszcze raz się zastanów - laik, dopiero co sortujący tablice szybko się przerzuci między T-SQL a bazami Oracle.

1.HTML nie jest językiem programowania, tylko językiem znaczników.

2.Nauka HTML do popularnych języków programowania ma się nijak, chyba że nauka JS(DOM, JSON, etc.)

Od najmłodszej generacji do najnowszej:

  1. Język maszynowy,

  2. Asembler,

  3. ANSI C, Ada, Icon,…

  4. C++, Go, Rust…

  5. Java, C#,…,Python, Julia…

  6. PL/SQL, Haskell, Ocaml, Prolog,…

 

Im wyższa generacja tym mniej klepania kodu(więcej abstrakcji, bezpieczeństwo) ale programy mogą działać wolniej…

 

Algorytm QuickSort w Haskellu :

import Data.List
qsort [] = []
qsort (x:xs) = qsort ys ++ x : qsort zs where (ys, zs) = partition (< x) xs 

http://rosettacode.org/wiki/Sorting_algorithms/Quicksort

 

QuickSort w VBA :

Public Sub QuickSort(vArray As Variant, inLow As Long, inHi As Long)

  Dim pivot As Variant
  Dim tmpSwap As Variant
  Dim tmpLow As Long
  Dim tmpHi As Long

  tmpLow = inLow
  tmpHi = inHi

  pivot = vArray((inLow + inHi) \ 2)

  While (tmpLow <= tmpHi)

     While (vArray(tmpLow) < pivot And tmpLow < inHi)
        tmpLow = tmpLow + 1
     Wend

     While (pivot < vArray(tmpHi) And tmpHi > inLow)
        tmpHi = tmpHi - 1
     Wend

     If (tmpLow <= tmpHi) Then
        tmpSwap = vArray(tmpLow)
        vArray(tmpLow) = vArray(tmpHi)
        vArray(tmpHi) = tmpSwap
        tmpLow = tmpLow + 1
        tmpHi = tmpHi - 1
     End If

  Wend

  If (inLow < tmpHi) Then QuickSort vArray, inLow, tmpHi
  If (tmpLow < inHi) Then QuickSort vArray, tmpLow, inHi

End Sub

Ja zaczynałem nauke programowania na codeacademy.com. Uwazam, ze ich kursy sa na dobrym poziomie, a wiekszosc z nich naprawde swietnie wprowada w dany temat do poziomow poczatkujacy/sredniozaawansowany (zaleznie jaki kurs przerabiamy). Jak juz poznalem skladnie i to, co mozna dzieki niej robic, to zaczalem sam tworzyc jakies bzdetyne projekty. Byly to idiotycznie rzeczy - ktorych nigdy w zyciu nikomu bym tego nie pokazał. Chodzilo tylko o to, za masz pomysl zeby cos zrobic … robisz to :slight_smile: Jak wyjdzie i dziala to frajda jest jak ■■■■■■■.

 

W PHP nie chcialem sie pakowac - wybralem Ruby on Rails.

 

Z codeacademy znam troche basic front-end (html,css3, podstawy JS, podstawy Jquery)  i w pelni  przerobone kursy ruby + rails - kilkukrotnie (dla utrwalenia!) :slight_smile:

 

W wakacja ide na boot-camp Ruby on Rails! http://www.szkolenierails.pl/ Z racji, ze jestem zarejestrowany jako bezrobotny to calosc kasy da mi urzad pracy (“Bon szkoleniowy”). Jeszcze mi zostanie na polowe kosztow na dojazdy do Warszawy. Szczerze? Mam spore nadzieje po tym kursie bo tematyka wydaje sie bys swietnie dobrana. A prowadzacy, Michał Makaruk, to postac znana na polskej scenie RoR, zas jego kursy ciesza sie renoma w małym półswiatku RoR.

Kto wie, moze we wrzesniu zaczne prace jako junior RoR developer? :slight_smile:

 

Myslicie, ze to odpowiednia droga zeby wejsc w branze IT, tak by moc zaczac cokolwiek komercyjnie programowac - bo po tem jest juz z gorki.

Bry,

Już niepotrzebnie produkujecie w temacie. Ostateczny wybór padł na Javę.

Może komuś innemu się przyda

 

Znacie jakieś dobre strony co mają poradniki od początkującego lub filmy? (Language Polish is required)

Sorry, I don’t understand English.

Co do poradników, to swego czasu przyjemnie mi się czytało Od Zera Do Game Codera.