-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.POSTED!not-for
-mail
From: "J.F." <j...@p...onet.pl>
Newsgroups: pl.misc.elektronika
Subject: Re: Nauka programowania od czego zacząć?
Date: Sun, 18 Sep 2011 14:22:36 +0200
Organization: http://onet.pl
Lines: 123
Message-ID: <qd0twfdsydvt.1o3o1lghe952q$.dlg@40tude.net>
References: <5...@n...onet.pl>
<4e74c0d1$0$2441$65785112@news.neostrada.pl>
NNTP-Posting-Host: h82-143-187-50-static.e-wro.net.pl
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-2"
Content-Transfer-Encoding: 8bit
X-Trace: news.onet.pl 1316348546 8905 82.143.187.50 (18 Sep 2011 12:22:26 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Sun, 18 Sep 2011 12:22:26 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.15.1pl
Xref: news-archive.icm.edu.pl pl.misc.elektronika:617650
[ ukryj nagłówki ]Dnia Sat, 17 Sep 2011 17:46:27 +0200, Luke napisał(a):
> 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.
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"
> 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ć,
eee - a co w tym trudnego ? Rzeklbym ze niemal takie same sa.
> Odpowiednio wczesne uczenie alokacji pamięci
Przeciez w obu jest ?
> i uważania na indeksowanie zmiennych (aby program nie wywalał
> się z niewiadomego powodu)
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.
>, 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.
C tez nie bylo obiektowe.
> 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.
no nie wiem czy jest jeszcze miejsce na "czyste C", czy trzeba jednak
myslec od poczatku obiektowo.
> 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.
Ale to mozna w metodach i wlasciwosciach omowic :-)
> 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)
Hm, jest straszliwie rozbudowany pod tym wzgledem, a podstawy sa w zasadzie
wszedzie takie same.
No i C++ jest passe, teraz piszemy w C# :-)
> 4. Potem można robić GUI i nauczyć się odniesienia obiektowości do
> elementów tegoż GUI.
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" :-)
> 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.
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 :-)
> 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).
No coz, jest to nieco inny sposob myslenia od poczatku.
Jak widac - swiat poszedl jednak w obiekty.
J.
Następne wpisy z tego wątku
- 18.09.11 12:23 Jacek
- 18.09.11 12:40 RoMan Mandziejewicz
- 18.09.11 13:04 Jerzy Dombczak
- 18.09.11 13:22 Jarosław Sokołowski
- 18.09.11 13:29 Marcin Wasilewski
- 18.09.11 13:51 Jacek
- 18.09.11 13:55 RoMan Mandziejewicz
- 18.09.11 14:09 J.F.
- 18.09.11 14:18 Jacek
- 18.09.11 14:30 Jarosław Sokołowski
- 18.09.11 14:31 Michoo
- 18.09.11 14:35 Jarosław Sokołowski
- 18.09.11 14:44 RoMan Mandziejewicz
- 18.09.11 15:07 Pszemol
- 18.09.11 15:17 Luke
Najnowsze wątki z tej grupy
- Ściąganie hasła frezem
- Koszyk okrągły, walec 3x AA, na duże paluszki R6
- Brak bolca ochronnego ładowarki oznacza pożar
- AMS spalony szybkim zasilaczem USB
- stalowe bezpieczniki
- Wyświtlacz ramki cyfrowej
- bateria na żądanie
- pradnica krokowa
- Nieustający podziw...
- Coś dusi.
- akumulator napięcie 12.0v
- Podłączenie DMA 8257 do 8085
- pozew za naprawę sprzętu na youtube
- gasik
- Zbieranie danych przez www
Najnowsze wątki
- 2025-02-01 Śmierć mózgu a narządy do pobrania
- 2025-01-31 A niektórym to naprawdę zależy na ekologi w miastach LPG POWRACA ;-)
- 2025-01-31 Lublin => Programista Delphi <=
- 2025-01-31 Łódź => Programista NodeJS <=
- 2025-01-31 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-01-31 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=
- 2025-01-31 Warszawa => Data Engineer (Tech Leader) <=
- 2025-01-31 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-31 Gliwice => Business Development Manager - Network and Network Security
- 2025-01-31 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-31 Warszawa => Full Stack .Net Engineer <=
- 2025-01-31 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-31 Gdańsk => Programista Full Stack .Net <=