Nauka programowania od czego zacząć? - Page 12

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Polish to

Threaded View
Re: Nauka programowania od czego zacząć?


Quoted text here. Click to load it

Widać ciebie to nie dotyczy :-)


Re: Nauka programowania od czego zacząć?


Quoted text here. Click to load it
swoją
Quoted text here. Click to load it

Ja uczę wszystkiego :-) I nauka na ATmega16 - miganie ledami tylko to prawda
:-)
I ją to nawet bawi, na tablicy mi pisze kilka rozkazów po sobie sama z
siebie :-)


Re: Nauka programowania od czego zacząć?
W dniu 2011-09-16 09:08, Zbyszek pisze:
Quoted text here. Click to load it

Ostatnio w grupie programistów dyskutowaliśmy o tym i wniosek był taki,
że obecnie nie ma niczego co by się do tego nadawało.

Wnioski do jakiś doszliśmy były takie, że po pierwsze powinien to być
interpreter działający w immediate mode - czyli piszesz komendę,
naciskasz enter i ona się od razu wykonuje.

Do tego prosta składnia i wykrywanie błędów składniowych na etapie
wprowadzania kodu.

Ja zaczynałem naukę programowania mniej więcej w wieku 8 lat w Atari
BASIC. Język był o tyle dobry i intuicyjny, że nauczyłem się
programowania sam, mając tylko komputer i instrukcję do niego po
niemiecku (nie znając nikogo kto znał niemiecki) w której było trochę
prostych przykładów w BASICu.

Tak dla dziecka z obecnie dostępnych języków to można spróbować Logo,
albo emulator Atari i Atari BASIC :)


Re: Nauka programowania od czego zacząć?
W dniu 2011-09-16 21:06, Tomasz Pyra pisze:
Quoted text here. Click to load it

OIDP to też coś podobnego miała Amiga: Amos.
Można by spróbować na emulatorze lub kupić choćby poczciwą "pięćsetkę"
za grosze.

--
Pozdrawiam.

Adam.


Re: Nauka programowania od czego zacząć?
Hello Adam,


[...]

Quoted text here. Click to load it

Panowie, bądźcie poważni - gryzakiem mojego syna był co prawda
Spectrum ale programowania uczył się już na PeCecie i w Pascalu a
potem dość wcześnie w C. BASICa nogą nawet nie tknął. Mimo tego, że ja
pierwsze poważne pieniądze dostałem za program w BASICu właśnie.

Wy macie jakieś swoje miłe wspomnienia i wydaje się Wam, że po 20
latach nadal można zaczynać w tej dziedzinie jak Wy zaczynaliście...

--
Best regards,
 RoMan                            mailto:roman@pik-net.pl
We've slightly trimmed the long signature. Click to see the full one.
Re: Nauka programowania od czego zacząć?
W dniu 2011-09-16 23:12, RoMan Mandziejewicz pisze:
Quoted text here. Click to load it

Być może jeżeli ma się siły fachowe w postaci jakiś starszych braci czy
rodziców które środowisko przygotują, skonfigurują, napiszą "hello
world" i na każdym etapie pomogą, to to się nawet uda.

U mnie był taki problem, że sam nie wiedziałem nic i nie znałem nikogo
kto by wiedział cokolwiek, a jedynym źródłem wiedzy była instrukcja do
komputera napisana w języku w którym nie znałem ani słowa :)
I takie odkrycia jak to żeby na końcu linii naciskać return, to już
musiałem dojść do tego metodą prób i błędów.

Dlatego może nie wyobrażam sobie ośmiolatka zostawionego samego sobie
który organizuje sobie środowisko programistyczne i wszystko wymyśla,
ale faktycznie jeżeli jest w domu ktoś kumaty, to sytuacja jest zupełnie
inna.



Quoted text here. Click to load it

Zaczynać spokojnie można na 2-3 roku studiów.

W wieku 8 lat raczej nie chodzi o przygotowanie do "dziedziny", a po
prostu zabawę.

Zresztą dzisiejszy BASIC to nie jest to co Atari BASIC.
Dlatego proponowałbym Logo, które z racji interaktywności i ogólnej
atrakcyjności może być na początek całkiem fajny.

Re: Nauka programowania od czego zacząć?
Dziś, po przeczytaniu artykułu w Focusie znalazłem:
http://scratch.mit.edu /
Od dwóch godzin sie tym bawię - rewelka.
Trochę brakuje mi funkcji i obiektowości (w sensie tworzenia własnych i
dziedziczenia klas), ale za to są zdarzenia.
Na pewno dobre jako wstęp dla dzieciaka do programowania.

Re: Nauka programowania od czego zacząć?

Quoted text here. Click to load it
na
Quoted text here. Click to load it

Każdy odpowie inaczej, ja też dorzucę swoje trzy grosze.

Nie wiem czy 8 lat to nie jest za wcześnie. Ja zacząłem programować
gdzieś tak w wieku 10-11 lat. Zaczynałem od BASIC-a na Spectrum i Atari.
Przy czym BASIC na spectrum był teoretyczny (programy pisałem na kartce)
ze względu na brak dostępu do sprzętu.

Następnie po kilku latach po przesiadce na peceta był Pascal. To
wymagało całkowitego przeprogramowania myślenia na strukturalne
konstruowanie algorytmów, zdziwienie że nie ma numerowanych linii i da
się bez goto. W zasadzie w tym wieku (miałem z 15 lat) można się szybko
przestawić i BASIC mi krzywdy nie zrobił, a dodatkowo znam zalety
programowania strukturalnego.

Natomiast uważam za swój największy błąd zajmowanie się Pascalem zamiast
C. Po przyjęciu nawyków pascalowych przejście do C jest niesamowicie
trudne i w zasadzie nigdy mi się w pełni nie udało tego zrobić, bo C
zająłem się już znacznie później. Odpowiednio wczesne uczenie alokacji
pamięci i uważania na indeksowanie zmiennych (aby program nie wywalał
się z niewiadomego powodu), odpowiednio wczesne zwracanie uwagi na pewne
galimatiasy konstrukcyjne pozwoliłoby mi na kodowanie w C "bez
zastanowienia", jednak tego etapu nigdy nie osiągnąłem, gdyż C uczyłem
się w wieku, kiedy umysł nie chłonie wszystkiego i wiele rzeczy się
momentalnie zapomina, a potem godzinę szuka błędu typu wyjście za
tablicę o jeden rekord. Dlatego byłem zmuszony po wejściu windowsa
przejść na Delphi zamiast jakiegoś C++ i to wspominam ze smutkiem. Tutaj
nauczyłem się dopiero myślenia obiektowego (bo Delphi jest obiektowe, a
Pascal nie był) na tyle, na ile musiałem. Potem miałem okres skutecznego
programowania w czystym C, ale to wymagało częstego sięgania do książek,
gdyż zapominałem pewne sprawy bardzo szybko.

Co ja mogę doradzić?

1. Zacznij od nauki Logo. Niech córka spróbuje pisać proste programy
sterujące żółwiem, potem może wprowadzać bardziej skomplikowane
elementy, pętle, instrukcje warunkowe (rysowanie jakichś wielkich
ażurowych wzorków). Trzeba zachęcić do zabawy w eksperymentowanie - co
będzie gdy zmienię tę linię w taki sposób i dlaczego?

2. Przejdźcie potem na czyste C i realizujcie np. książkę "Algorytmy" z
Helionu. Niech to będzie czyste C, nieobiektowe, z samym stdin i stdout.
Tak, żeby wiedzieć co to są pętle for, do-while, repeat-until, co to
jest funkcja, jak grupować kawałki kodu w funkcje, i tak dalej. Do tego
np. rekurencja.

3. Jak czyste C opanujecie dość dobrze, lecimy C++ (uważam i będę
uważał, że od tego języka trzeba się zacząć uczyć programowania
obiektowego). Też na stdin/stdout. Realizujemy myślenie obiektowe, czyli
konstruowanie obiektów, dziedziczenie.

4. Potem można robić GUI i nauczyć się odniesienia obiektowości do
elementów tegoż GUI.

Jeśli córka to zrealizuje (ale to kwestia lat), to nie będzie miała
żadnego problemu z przejściem na dowolny język programowania, bo
elementy, schematy i konstrukcje są w zasadzie identyczne, a zmienia się
tylko składnia i detale. Natomiast to, że opanuje C/C++ z dobrym
zrozumieniem granicy między nimi będzie zaletą i atutem, bo wszystkie
nowsze języki są łatwiejsze i myśleć tam trzeba mniej. Jak na studiach
każą jej przeliczyć 1500 wyników badań w taki sam sposób, to napisze
sobie stronę kodu w R albo Octave i zrobi obliczenia w 15 minut idąc
potem do koleżanki, a inni studenci będą 5 nocy obklikiwać je w mozolnie
zrobionych arkuszach. Jak trzeba będzie przekonwertować 1500 zdjęć, to
napisze sobie skrypt shellowy do imagemagicka, zamiast się zastanawiać
nad makrami albo ręcznie przerabiać każde. Do takich przykładowych
ułatwień życia ma służyć szaremu człowiekowi umiejętność programowania.

Nigdy też nie podzielałem i nie podzielam opinii, że należy się uczyć
programowania od programowania obiektowego, co spotyka się w niektórych
książkach. Znam osoby, które tak zrobiły i mają wielkie problemy z
zakodowaniem pewnych rzeczy (generalnie wszystko robiłyby obiektowo).



Luke


Re: Nauka programowania od czego zacząć?


Quoted text here. Click to load it

Za to BASCOM robi krzywdę młodym z podstawówek :-)
Po kilku latach z BASCOMEM nie będą już nigdy rozumieli tych wszystkich
bitów w rejestrach :-)



Re: Nauka programowania od czego zacząć?

Quoted text here. Click to load it

    Nie no pewnie, BASCOM jest super tak gdzieś od 3 do 5 roku życia. Tylko
trzeba pilnować, żeby dziecko zaprogramowało atmegę przed zjedzeniem.


Re: Nauka programowania od czego zacząć?

Quoted text here. Click to load it

zanim jeszcze pojawilo sie delphi@windows, to istnialo srodowisko
turob-pascal, ktore udostepnialo od ktorejs tam wersji obiektowosc.
obiektowy turbo pascal byl swietnym narzedziem edukacyjnym (oop,
alokacje na stosie/stercie, kontrola zakresu tablic, itp.) z przyjemna
biblioteka TUI (turbovision). a jak ktos potrzebowal na niskim
poziomie dlubac, to assembler tez dalo sie wciagnac do dzialania.



Re: Nauka programowania od czego zacząć?
Dnia 2011-09-17 22:36, Użytkownik Paweł napisał:

Quoted text here. Click to load it

Zgadzam się z tym, ale w tamtych czasach jedyna sensowna książka (taka
żółta z BUM o tym, jeszcze gdzieś ją mam) była zbyt mało przystępna i
nie mogłem przekroczyć pewnej granicy. A nie miałem znajomych
progrmaujących. Chciałem robić programy w Turbo Vision, ale poddałem się
po pewnym czasie. Dziś Turbo Vision jest o ile gdzieś widziałem darmowe,
ale chyba juĹź lepiej w curses.

Piszę ponadto o czasach, kiedy netu w Polsce nie było. Dziś bym
googlował, pytał i dał radę.

L.


Re: Nauka programowania od czego zacząć?
Dnia Sat, 17 Sep 2011 17:46:27 +0200, Luke napisał(a):
Quoted text here. Click to load it

Panowie (i Panie ?) - ale w Basicu tez da się w miare elegancko i
strukturalnie.

Problemy sa dwa:
a) poczatkujacy programisci maja tendencje do "glupich skokow". Cos pisza,
skacza na koniec, wracaja w srodek, kontynuuja. Byc moze przyczynia sie do
tego wlasnie numeracja linii i "spektrumowski edytor".
Kto ma male dziecko - do sprawdzenia, jak to bedzie w Basicu z etykietami i
zwyklym edytorem.

b) tej struktury nie widac .. chyba ze ktos ladne wciecia robi - na
spectrum sie chyba nie dalo.

Pascal tez nie jest bez winy, i tylko smiac sie mozna jak niektorzy
kombinuja zeby np znalezc pierwszy niezerowy element w tablicy (hi hi -
dwuwymiarowej) byleby tylko goto nie uzyc. Tylko smiech trafia w pustke
bo "goto sie nie uzywa i juz"

Quoted text here. Click to load it

eee - a co w tym trudnego ? Rzeklbym ze niemal takie same sa.

Quoted text here. Click to load it

Przeciez w obu jest ?

Quoted text here. Click to load it

Ale przeciez to to samo.
Moze troche niechlujnie pisales - ale klient nie placi za program
ktory zamiast robic co ma robic wywala sie z bledem "indeks przekroczony w
linii 1534".
Wiec albo programista jest pewny ze dany algorytm nie przekroczy zakresu,
albo wstawia jawny kod sprawdzajacy i podejmujacy sensowna akcje.
I automatyczne sprawdzanie indeksow sie wtedy wylacza, bo to generuje
nieefektywny kod :-)

Przyznaje ze C mialo sporo miejsc w ktorych latwo bylo sie pomylic.
ANSI C znacznie to poprawilo, a dobry kompilator generowal dodatkowe
ostrzezenia i 99% pomylek eliminowal.

Quoted text here. Click to load it

C tez nie bylo obiektowe.

Quoted text here. Click to load it

no nie wiem czy jest jeszcze miejsce na "czyste C", czy trzeba jednak
myslec od poczatku obiektowo.

Quoted text here. Click to load it

Ale to mozna w metodach i wlasciwosciach omowic :-)

Quoted text here. Click to load it

Hm, jest straszliwie rozbudowany pod tym wzgledem, a podstawy sa w zasadzie
wszedzie takie same.
No i C++ jest passe, teraz piszemy w C# :-)

Quoted text here. Click to load it

Bez GUI trudno dzis cokolwiek zrobic i zadowalajacy efekt uzyskac.

I tu jest wlasnie ta roznica miedzy LOGO a C/Basic/Pascal na konsoli.
Dziecku powiesz "narysuj kwadrat", to pomysli i narysuje.

A powiesz "oblicz silnie" .. "tatusiu, a co to jest silnia" :-)

Quoted text here. Click to load it

Oj, zeby sie nie okazalo odwrotnie. Koledzy w godzine policza to w excelu,
a corka bedzie godzine szukala darmowego C, nie znajdzie, poszuka
alternatyw, sciagne Octave, poswieci pol nocy na czytanie dokumentacji, nie
bedzie zadowolona z mozliwosci ale zacznie cos robic .. a tu niespodzianka,
trzeba jeszcze sukac jakiegos narzedzia do importu, bo dane w plikach xml
:-)

Niestety - domorosly programista ma coraz trudniejsze zycie :-)

Quoted text here. Click to load it

No coz, jest to nieco inny sposob myslenia od poczatku.
Jak widac - swiat poszedl jednak w obiekty.

J.

Re: Nauka programowania od czego zacząć?
Hello J.F.,


[...]

Quoted text here. Click to load it


Dało się. Trzeba było używać Beta Basic 3.0 - wtedy się programowało
prawie bez numerów linii, z użyciem procedur i funkcji, wyborem
"czcionki" i obslugą "okienek" nawet. Wcięcia też chyba były -
musiałbym odkopać manuala a nie pamiętam, gdzie go zakopałem :(

[...]

--
Best regards,
 RoMan                            mailto:roman@pik-net.pl
We've slightly trimmed the long signature. Click to see the full one.
Re: Nauka programowania od czego zacząć?
Pytanie za 100 punktow !

Ile instrukcji JP (Jump)  bedzie mial sredniociezki skompilowany program
napisany w C++ ?


Przeciez Jump to nic innego jak Basic'owy GoTo  .

Re: Nauka programowania od czego zacząć?
Quoted text here. Click to load it

    Tak, ale w językach wyższego poziomu masz pętle for, while, do ...
while, if-y, switch-e,  natomiast w assemblerze tylko skoki warunkowe i
bezwarunkowe, więc ciężko coś innego stosować.


Re: Nauka programowania od czego zacząć?
Użytkownik "Marcin Wasilewski" napisał:

Quoted text here. Click to load it

Nieprawda. Kiedy (jeśli w ogóle) ostatnio widziałeś assembler? A jeśli
chodzi o te while, if-y, switch-e to widziałes może co z nich robi
kompilator i jak wyglądaja w działaniu (debuggerze)? Asembler 32 bitowy pod
Windows bardzo dużo potrafi i ma wiele cech HLa.

Remek


Re: Nauka programowania od czego zacząć?
Quoted text here. Click to load it



    Widzę głównie assembler i C, a ty się sieroto naucz czytać ze
zrozumieniem, bo ci to średnio wychodzi. Co do drugiej części pytania tak
widziałem, zamienia je wszystkie na rozkazy skoków warunkowych i
bezwarunkowych. Natomiast assembler PECETA mnie nie interesuje bo jest tam
wiele lepszych języków programowania, od C++ poczynając, ostatnio gdy miałem
do czynienia z assemblerem peceta, to przypominało to architekturę
8-bitowego procesora i się zraziłem. Jak ktoś pisał kod pod MC68K, to się
później do badziewiastego intela nie przekona. Czy tam nadal wykonanie
jakichkolwiek obliczeń wymaga zapisania danych do akumulatora? Bo wiesz na
MC68K powstałym w latach 70-tych to operacje arytmetyczne nawet na
rejestrach adresowych można było wykonywać, a coś takiego jak akumulator
zwyczajnie nie istniało, bo nie było takiej potrzeby.


Re: Nauka programowania od czego zacząć?
Użytkownik "Marcin Wasilewski" napisał:

Quoted text here. Click to load it
architekturę
Quoted text here. Click to load it

Jeśli masz na temat asm wiedzę z przed potopu, to postaraj się poduczyć,
albo milcz i nie obrażaj innych. To, że się zraziłeś nie upoważnie Cię do
nazywania mnie epitetami. Po prostu niewiele wiesz o asm.

Remek


Re: Nauka programowania od czego zacząć?
Quoted text here. Click to load it


    To pokaż mi w tym assemblerze np. pętlę for?
Assembler to język symbolizujący mnemonikami instrukcje kodu maszynowego
wykonywane bezpośrednio przez procesor. Podstawową cechą assemblera jest
zasada, że 1 instrukcja assemblera = 1 kod maszynowy procesora. To, że
gdzieś wprowadzono jakieś kombajny i uproszczenia, pozwalające się mniej
napisać, to jeszcze nie znaczy, że to czysty assembler.

    Raczej to ty niewiele wiesz, co to assembler, dorwałeś się do jakiegoś
kombajna pod windows posiadającego tysiące udogodnień i wydaje Ci się, że to
assembler. Czysty assembler to zasada:

1 instrukcja = 1 kod maszynowy procesora.

Jeśli jest inaczej, to to nie jest assembler, a coś pośredniego pomiędzy
assemblerem a językami wyższego poziomu.


Site Timeline