[TUTORIAL]Jak zacząć programować ? Poradnik

Czak

Użytkownik
Dołączył
Grudzień 31, 2006
Posty
234
Postanowiłem napisać ten mini poradnik ponieważ na forum często pojawiają się pytania typu:
Jaki język programowania wybrać na początek ?,jaki kompilator ?,jaki kurs ?,książka ? itp.
Jest on przeznaczony dla osób,które chcą nauczyć się programować,ale mało o tym wiedzą i nie mają pojęcia jak się do tego zabrać.
Na wstępie chcę od razu uprzedzić,że jeżeli grasz w tibie to nie masz tutaj czego szukać,bo nie znajdziesz tu informacji "jak zchakować kąto na tibji"
<
.
No dobra...ale do rzeczy
smile.gif

Jeżeli to czytasz to pewnie chciałbyś/chciałabyś nauczyć się programować.
Wbrew pozorom nie jest to wcale takie trudne,to jakby "rozmowa z komputerem",ty wydajesz mu polecenia w języku zrozumiałym dla niego,czyli kodzie maszynowym (1001101...),on natomiast wykonuje je w miarę swoich możliwości.
Na szczęście jacyś mądrzy pionierzy informatyki pomyśleli o językach programowania,więc nie martw się..nie musisz pisać kodem binarnym.
Pozostaje jednak fakt,że komputer "zrozumie" jedynie polecenia wydane w postaci zer i jedynek.Jak więc przekształcić kod zapisany w języku programowania,bardziej zbliżonym do ludzkiej mowy niż do kodu binarnego ?
Do tego służą aplikacje "tłumaczące" kod w języku programowania wysokiego poziomu (jak np.C++) na język niższego poziomu (np.Asembler), a następnie na kod maszynowy "język komputera".
Jeżeli chcesz programować napewno nie musisz kupować książek i drogich kompilatorów.
W sieci jest już na ten temat bardzo dużo wiedzy,w tym poradniku postanowiłem właśnie zamieścić linki do kursów,programów i porad,które napewno będą pomocne początkującemu programiście.Napisałem tu także czego musisz nauczyć się na początku,jakie języki wybrać.

Tak powinna wyglądać twoja nauka
smile.gif

a)najpierw algorytmika
b)PHP lub Pascal
c)C++ lub Delphi
d)Asembler

PHP jest oparty o C,więc łatwiej będzie ci się nauczyć C++ gdy opanujesz PHP.
Delphi natomiast to Object Pascal więc jeżeli nauczysz się Pascala to Delphi będzie tylko kontynuacją.Ja,jednak uczyłem się najpierw Pascala.później przeszedłem do C++ więc pewnie możesz równie dobrze uczyć się PHP i przejść do Delphi
smile.gif

Chodzi tu głównie o opanowanie podstaw.C++ i Delphi to obecnie najpopularniejsze języki,więc myślę,że najbardziej się przydają.Asembler jest jęzkiem niskiego poziomu ale często się przydaje,odwołuję się bezpośrednio do procesora i podzespołów,jest więc przydatny,ale przez to bardzo trudny.Wymaga szczegółowej znajomości budowy procesora i pozostałych elementów komputera.Bardzo często są w nim tworzone robaki,wirusy.

Algorytmika
/
/
/
PHP Pascal
| |
| |
| |
C++ Delphi
/
/
/
/
/
Asembler/

1.Podstawa,bez tego nie ma co zaczynać z programowaniem-ALGORYTMIKA.
Przed rozpoczęciem nauki języków programowania musisz to koniecznie opanować.
Co to jest ? -http://pl.wikipedia.org/wiki/Algorytmika

Przydatne linki:

http://www.sciaga.pl/tekst/6780-7-algorytmika_wprowadzenie
http://www.marmagi.cad.pl/algoryt1.htm
http://www.programix.terramail.pl/algorytmika.htm

A oto program,który pomoże ci w budowaniu algorytmów:
Magiczne Bloczki
http://www.idg.pl/ftp/pc_12366/Magiczne.Bl...1.2.1.4.pl.html

2.PHP lub Pascal.

a)PHP

co to jest PHP ? sprawdź http://pl.wikipedia.org/wiki/PHP

PHP jest wykonywany po stronie serwera,więc musisz zaopatrzyć się w serwer,oczywiście tylko program
smile.gif
:

Krasnal serv http://www.idg.pl/ftp/pc_11283.html

Do php nie potrzebujesz kompilatora,wystarczy notatnik z windowsa ,swój projekt musisz zapisać z rozszerzeniem .php i wrzucić na serwer.

oto dobre kursy PHP:

http://www.leon.w-wa.pl/texts/kurs/
http://webmade.org/kursy-online/kurs-php.php

b)Pascal
Jest to jeden z najprostszych języków programowania.
Szczegółowe informacje możesz uzyskać tutaj http://pl.wikipedia.org/wiki/Pascal_%28j%C...rogramowania%29

Do Pascala będzie potrzebny kompilator.Masz do wyboru:
Turbo Pascal 7.0
http://turbopascal.skryptoteka.pl/download/TurboPascal.rar
Dev-Pascal http://www.bloodshed.net/dev/devpas192.exe
Free Pascal 2.04 ftp://ftp.no.freepascal.org/pub/fpc/dist/....i386-win32.exe

Oto najlepsze kursy Pascala:

http://www.pascal.eu.org/index2.htm
http://turbopascal.skryptoteka.pl/index-noflash.html
http://binboy.sphere.pl/index.php?show=serwis&d=xhpascal

3.Delphi lub C++

a)Delphi
co to jest ? http://pl.wikipedia.org/wiki/Delphi

Tu możesz ściągnąć kompilator

http://www.haker.com.pl/forum/viewtopic.ph...f9745683#153286


kursy:
http://www.hotscripts.pl/pobierz-1217.html
http://swiatinformatyki.ovh.org/delphi.php
http://skrypty.webpc.pl/pobierz158.html
http://www.cvonline.pl/content/index.php?i...256e8547f9fc050

<
C++

co to jest ? http://pl.wikipedia.org/wiki/C++
tu możesz również zasięgnąć ciekawych informacji:

http://www.haker.com.pl/forum/viewtopic.php?t=15640

Kompilatory:
http://sourceforge.net/project/downloading..._mirror=ovh-Dev C++
http://www.haker.com.pl/forum/viewtopic.php?t=21476 BCB


Kursy:
http://www.edu.godula.com/?zo=cpp_00
http://skrypty.webpc.pl/pobierz98.html
http://www.guidecpp.x12.pl/?cat=1&pag=0
http://cpw.net.pl/get.php?id=44
http://www.hotscripts.pl/pobierz-11.html
http://darkcult.gamedev.pl/index.html
http://www.slo1.slupsk.pl/gim/servis/kursy/kurs-cpp.zip


Symfonia C++ http://rs43.rapidshare.com/files/12053133/Symfonia_Cpp.rar

4.Asembler.
Tu już "wyższa szkoła programowania".Asemblera dopiero się uczę i nie mogę za wiele o nim napisać
<
.


co to jest ? http://pl.wikipedia.org/wiki/Asembler

Tutaj jest link do tematu "ASM jak zacząć"

http://www.haker.com.pl/forum/viewtopic.php?t=14414

Tu masz informacje o tym co będzie potrzebne do programowania w ASM

http://www.i-lo.tarnow.pl/edu/inf/prg/win32asm/

Poniżej są kursy i dodatkowe informacje.

http://rudy.mif.pg.gda.pl/~bogdro/
http://www.i-lo.tarnow.pl/edu/inf/prg/win32asm/
http://www.shitsoft.net/programowanie/asm/index2.htm
http://www.cpw.net.pl/asembler.php?p=kurs&id=14
http://www.movsd.com/




________________________________________________________________________________
______
Napisałem ten poradnik głównie w oparciu o swoje doświadczenie,nie jestem nieomylny.
Nie opisałem tu języków,o których nic nie wiem np.Perl,Python..
Mam nadzieję,że temat będzie rozwijany,szczególnie o inne języki,dodatkowe kursy,kompilatory.Będę wdzięczny użytkownikom,którzy dopiszą coś sensownego i będe rozdawał pkt.Pomógł.
Mój poradnik zawiera tylko mój wstęp i linki do wiedzy podstawowej z wybranych języków programowania i algorytmiki zawartych w sieci a także ich opisy.
 

proxima

Były Moderator
Dołączył
Marzec 9, 2007
Posty
651
Czak, dobra robota. Może co niektórzy skorzystają - oby!!
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
1.
C++ i Delphi to obecnie najpopularniejsze języki[/b]
Bzdura, Java + PHP już od dawna rządzą rynkiem:
http://www.tiobe.com/tpci.htm
http://wlodarek.com/komercha/ranking/

2. Racja, dość fajny text, podoba mi sie jakoś =]

3.
Będę wdzięczny użytkownikom,którzy dopiszą coś sensownego[/b]
To ja dopiszę o Perlu, to język o tyle fajny, iż można w nim pisac rzeczy na strony internetowe (CGI ) a można programować coś dla jednego komputera (jak programy w C czy Pascalu).
Jest bardzo dużo modułów, za darmo, bardzo ułatwiają życie (tutaj zobacz ).
Przykładowo kod skryptu, który ściąga stronę www i zapisuje na dysk ma jakieś 5 linijek. Ile by to było w C?
Perl jest językiem skryptowym, normalnie wykonuje się dzięki interpreterowi, ale można go też skompilować (komenda perlcc na linuxie a pod win, tez sa ale nie pamiętam jakie).

Teraz techniczne rzeczy:
Aby mieć perla trzeba się wyposażyć w interpreter, pod linuxem zazwyczaj już jest, pod windowsem najprościej ściągnąć krasnala (i ma sie przy okazji PHP =] ).
Do pisania kodu to wystarczy notatnik, ale wygodniejszy jest PSPad, darmowy edytorek o dość dużych możliwościach. Pod linuxem najwygodniej w konsoli (mcedit, joe, vi) - któryś na pewno będzie już domyślnie.

W Perlu można pisać obiektowo, można też w stylu C. Język ten nie narzuca sttylu w jakim pisze się kod, mało tego, potrafi przymknąć oko na małe błędy (ale lepiej pisać od razu poprawnie).

Perl ma ostatnio dwóch konkurentów, Rubby i Pythona. Oba jezyki sa dobre (ponoć), Rubby'ego nie znam, za to kod w Pythonie jest strasznie sztywniacki. Ktoś może napisać czy w Pythonie, Rubby można wykorzystywać moduły Perla?

Nadchodzi nowa wersja Perla, na nowej maszynie wirtualnej (na której bedzie mozna urucmomic tez kilka-kilkanascie innych językow), zmienione zostanie też podejście do obiektowości, na takie bardziej ludzie (ciężkie jest programowanie obiektowe w Perlu puki co).

tu jest moje intro o Perlu:
http://torus.uck.pk.edu.pl/~fg016/texty/Perl.html

4.
Co do algorytmiki to książki:
"Algorytmy i struktury danych" Cormen
"Perełki oprogramowania"
A jeżeli ktoś bedzie sie uczyl C++ to jest biblioteka (STL) gdzie jest już większosc algorytmów. Warto sie jej jak najszybciej nauczyc by nie tracic zcasu =]
W Javie, C# też już są 'domyślnie' biblioteki z algorytmami, tam to jest na innej zasadzie niż STL w C++, ale wynik taki sam.
 

B33RK4

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
598
Zapomniałeś jeszcze o C#, który robi coraz większą furrorę i programowanie w BATCHU które jest czasem przydatne.
 

Czak

Użytkownik
Dołączył
Grudzień 31, 2006
Posty
234
O batchu było już coś niecoś na forum

http://www.haker.com.pl/forum/viewtopic.php?t=15213

a co do C#...to nigdy w nim nie pisałem to co ja mogę napisać
<


Tak jak napisałem pod poradnikiem:
...
Nie opisałem tu języków,o których nic nie wiem np.Perl,Python..
Mam nadzieję,że temat będzie rozwijany,szczególnie o inne języki,dodatkowe kursy,kompilatory.Będę wdzięczny użytkownikom,którzy dopiszą coś sensownego i będe rozdawał pkt.Pomógł. ....
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
...to jeszcze o Javie dopisze :whoeva:
Java to nowy język stworzony przez Sun'a. Jest w pełni obiektowy, tzn trzeba się posługiwać klasami zamiast struktur, czy funkcji. Wydaje się to pewnym ograniczeniem i chyba jest, zwłaszcza dla małych programów i/lub dla ludzi, którzy dopiero się uczą programować.

Główną zaletą tego języka jest to, iz jest w pełni przenośny, kod który napiszemy pod windowsem bez problemy uruchomimy na linuxie itp. Dzieje się tak daltego, iz kod nie jest kompilowany 'do końca ' tylko do formy posredniej, a taka posrednia forma (byte code) jest interpretowana przez maszynę wirtualna Javy (program do wykonywania takiego 'niedokompilowanego' kodu). Ceną jest duuuuużo nizsza szybkość wykonania i zuzywanie dużej ilości zasobów systemowych.

Pisać możemy w dowlnym edytorze a kompilować komendą javac, uruchamiac komenda java [nazwa pliku].
Możemy też ściągnąć środowisko programistyczne (IDE), np NetBeans albo Eclipse. można tam też pisac swoje wtyczki (jak do winampa =] )

Pisać można aplety dla stron www, można je łączyć (jakąś tam klasą) z JavaScript. Można też pisac dla urządzeń mobilnych (głownie komórki).

Rozszerzeniem Javy jest język Nince .

W Javie można łatwo pisac kod, szybko idzie i wogóle, poza tym bardzo latwo się tworzy GUI w NetBeansie (w Eclipsie ponoć też). Łatwo też pisać coś sieciowego, zreszta wszytkie chaty są w Javie pisane.

Posumowując, plusy:
łatwo się pisze
przenośna
łatwo znaleźć parce
minusy:
powolna, zasobo-żerna
skupiona w rękach jednej firmy
zalety pokazuje tylko dla duzych, trudnych projektow, dla małych jest nie najlepszym wyjściem
nie ma fajnych bibliotek

materiały:
http://java.sun.com/ - strona javy, ogólnie marna
książka "Thinking in Java"- marna, ale za dramo, legalnie w sieci można znalesc
generalnie dobrych materiałów do Javy jest jak na lekarstwo, kiedyś znalazlem jednak ksiazke Java zapiski programisty, dość ciekawa była.
 

Mo4x

Były Moderator
Dołączył
Grudzień 26, 2005
Posty
704
Język C# - wymowa: C i wymowa #.

Z powodu, że w tym poście więcej będzie linków, niż mojego pisania to jak ktoś jeszcze chciałby coś dodać o C# to niech śmiało pisze.

O samym języku...
Język mocno zorientowany obiektowo. Połączenie javy i c++. Mi jako programiście Delphi o wiele łatwiej było się go nauczyć niż C++. Bardzo dobry do pisania aplikacji klienckich pod Windows. Kod jest bardzo czytelny i przejrzysty.

O środowisku... (Visual C# 2005 EE)
Praca z tym środowiskiem to prawdziwa przyjemność. Bdb. rozbudowany Code Insight (chyba tak to się pisało), chodzi o wstawianie kodu. Aplikacje projektuje się bardzo szybko, nie traci się czasu na mało istotne rzeczy, większość jest generowana środowisko, a programista może się skupić na bardziej istotnych sprawach.

Kilka screenów:



Warto odwiedzić:
Wikipedia o języku C#
Kilka książek o programowaniu w C#
Chyba najlepszy kurs programowania w C#
C# - jak zacząć?
PC WORLD KOMPUTER - Cztery plusy (o C#)
Serwis 4programmers - C#
Kilka słów na temat C# - Wiktor Zychla
PC WORLD KOMPUTER - Szybko i bez błędów (C#)
CentrumXP - kurs programowania w C#
Binbot at Sphere - kurs c#
CentrumXP - Visual C# w praktyce
Mo4x devBlog - Visual C# .NET - przykłady aplikacji
Mo4x devBlog - Mój pierwszy kontakt z Javą i C#
C# Tutorial - in English
Wszystko i jeszcze więcej...
 

Czak

Użytkownik
Dołączył
Grudzień 31, 2006
Posty
234
RobertG i Mo4x dobra robota
smile.gif

dałem pomógł oczywiście.
Może ktoś jeszcze coś dorzuci o Python'ie ?
Bo ja tam prawie nic o nim nie wiem
<



P.S

Mo4x,myślisz,że przesiadka z C++ na C# będzie trudna i czy w ogóle jest sens się "przesiadać" ?? =]
 

Czak

Użytkownik
Dołączył
Grudzień 31, 2006
Posty
234
Originally posted by Error_PL+--><div class='quotetop'>CYTAT(Error_PL)</div>
<!--QuoteBegin-Czak
RobertG i Mo4x dobra robota
smile.gif

dałem pomógł oczywiście.
Może ktoś jeszcze coś dorzuci o Python'ie ?
Bo ja tam prawie nic o nim nie wiem
<
http://pl.wikipedia.org/wiki/Python Wszystko na temat pythona ^^[/b]
To już wrzuciłem w poprzednim poście
<


Wrzucę chociaż jakieś kursy:
1-[ENG]
2-[ENG]
3-[ENG]
4-wykład [PL]
5-Kurs [PL]
 

RobertG

Użytkownik
Dołączył
Styczeń 3, 2007
Posty
391
...to ja jeszcze JavaScript, i troszkę o MySQL dopowiem.

JavaScript (skrót JS) wbrew nazwie nie ma nic wspólnego z Javą, jest zupełnie innym językiem, w innym klimacie i w innych zastosowaniach.

jest to język sieciowy, tzn dla przeglądarek (w skrócie), podobny w zastosowaniu do PHP. Kod PHP jest tłumaczony przez serwer i potem serwer wysyła nam HTML (nie widzimy kodu źródłowego skryptu PHP), dzięki temu w skrypcie PHP'a można np zapisać hasła itp.
Inaczej jest z JS, kod wysyłany jest do przegladarki, a ona wykonuje go i zwraca nam jakieś wyniki (zazwyczaj jakiegoś HTML'a), możemy zatem zobaczyć źródło strony. Z tego powodu wzelkie 'panele logowania' w JS to skrajna głupota.

Po co zatem komu JS skoro jest PHP (z 100 razy większymi możliwościami)?
  • przykładem użycia JS sa fora, dodawanie emotek do posta jest zawzse w JS pisane, albo np. Interia ma mase kodu w JS.

    JS jest przez wielu ludzi nielubiany, gdyż wykorzystuje się go do robienia durnowatych ozdobników na stronę (zegar podążający za kursorem, wężyk z guzików itp). To jak z flashem, można zrobić coś swietnego, a można totalną wieś, zależy co kto umie.

    User może zmodyfikowac kod JS który dostał, nie można zatem ufać takim informacjom (trzeba je 'zwalidować' PHP'em, ehh nie umiem powiedziec jasno, chodzi o to, iż jeśli ktoś napisze w JS funkcje która sprawdza czy user zamiast wpisywać czysty text nie wpisuje kodu HTML'a albo kodu JS (dla XSS) no to user sobie to może obejść i nici z takiego zabezpieczenia)

    Kod JS jest widoczny dla kazdego, więc można plagiatować czyjąś pracę :-|

    linki:
    http://www.hotscripts.com/JavaScript/
    http://www.atom.protoss.pl/javascript/ - ta jest fajna
    http://pl.wikipedia.org/wiki/JavaScript - wikipedia o JS, trochę zagmatwane
    http://webmaster.helion.pl/kurshtml/skrypt/skrypt.htm - wieś o której mówiłem

    SQL
    W brew niekórym opiniom to też język programowania. SQL to język dla baz danych. Każdy programista musi go umieć starając się o pracę, hakerowi przyda się do SQLIniection. To język zupełnie inny, jakby nie do wykonywania czegoś ale do zapisu i modyfikowania danych. Jest kilak implementacji tego języka, najpolularniejsza jest MySQL , za darmo z krasnalem (i PHP i Perlem) jest. Pod linuxem nie instalowałem nigdy to nie wiem.
    Sam SQL nic nie potrafi zrobic ciekawego, każdy normalny język ma interfejs do komunikacji z nim i w ten sposób się z niego korzysta. Dzięki temu programista nie musi się martwic o to jak zapisywane są dane a praca idzie szybciej.
    SQL to podobnie jak Delphi języki trzeciej generacji, gdzie kilkoma linijkami kodu można zapisać to co w językach niższych (C, asm) zajeło by setki linijek.

    materiały:
    Podstawowy wykład z systemów baz danych - bardzo chaotyczna książka, ale przez to się fajnie czyta. Ok. 70 zł, w serii klasyka informatyki WNT.
    "PHP for developers guide", miałem kiedyś, po ang, dobra
    Warto sobie załatwić książkę pod ten język w którym się pisze, np PHP+MySQL jak ktoś pisze w PHP itp.

    a tak offtopowo: opłaca się skupić na Javie, C#, MySQL'u, PHP ew. C++ o w tym jest duzo pracy teraz. A np. w moim Perlu nie ma ;/
 

Mo4x

Były Moderator
Dołączył
Grudzień 26, 2005
Posty
704
Originally posted by Czak
Mo4x,myślisz,że przesiadka z C++ na C# będzie trudna i czy w ogóle jest sens się "przesiadać" ?? =]
Przesiadka z C++ na C# wcale nie bedzie trudna. Wręcz przeciwnie. Jeszcze łatwiej niż z Delphi. A co do sensu przesiadania się, poznać C# warto, ale nie w ten sposób, że zapominasz o C++ i interesuje Cię od wtedy tylko C#.
 

Czak

Użytkownik
Dołączył
Grudzień 31, 2006
Posty
234
RUBY

RUBY w Wikipedii:
http://pl.wikipedia.org/wiki/Ruby_%28j%C4%...rogramowania%29

Ruby bazuje na wielu językach, takich jak Perl, Smalltalk, Python, CLU, Eiffel czy LISP. Składnia jest zorientowana liniowo i oparta na składni CLU oraz, w mniejszym stopniu, Perla.


Ruby posiada:

* prostą składnię
* automatyczne odśmiecanie pamięci
* iteratory
* przeciążanie operatorów (ang. operator overloading)
* "normalne" i zaawansowane właściwości zorientowania obiektowego (klasa, metoda ...)
* obsługa wyjątków (ang. exception handling)
* wyrażenia regularne wbudowane w składnię
* liczby całkowite o dowolnych rozmiarach
* dodawanie metod do instancji klasy - możliwa jest zmiana lub dodanie metody do instancji danej klasy
* bloki i lambdy (closures) - wygodne przekazywanie funkcji jako parametrów
* moduły - rodzaj wielodziedziczenia pozwalający włączyć gotową implementację zbioru metod do danej klasy
* możliwość zmiany praktycznie wszystkiego - dodanie dodatkowych metod do klasy Array, czy zmiana sposobu drukowania liczb całkowitych są niezmiernie proste.

Podobnie jak w Perlu, programy napisane w Ruby są wyjątkowo małe - ten sam program, który w C czy Javie zajmie setki linijek, w Ruby czy Perlu zajmie zwykle kilkadziesiąt. Ruby jest prawdopodobnie jedynym językiem ogólnym, w którym programy są zazwyczaj mniejsze niż analogiczne programy w Perlu, zachowując przy tym czytelność. Zawdzięcza to głównie wszechobecnej obiektowej składni. Np. program, który liczy ilość różnych linijek bez względu na rozmiar liter, wygląda tak:

print STDIN.map{|s| s.downcase}.uniq.size, "n"

Programy pisane w Ruby charakteryzują się wysoką przenośnością pomiędzy platformami (istnieją implementacje na wiele maszyn Uniksowych, DOS, Windows, Mac OS X, BeOS itd.).

Ruby jest rozwijany jako otwarte oprogramowanie i dostępny na licencji GPL oraz na własnej licencji wymagającej zmiany nazw plików wykonywalnych w przypadku zamknięcia kodu.

---------------------------------------------------------------------------------------------------------

Nauka:

tutorial [ENG]
Programowanie,nauka "na żywo"
Ruby on rails [PL]
Ruby on rails 2[PL]
Ruby on rails-helion
Wprowadzenie do Ruby
E-book o Ruby [ENG]
 
Do góry Bottom