Programowanie krok po kroku
#1
Napisano 03 lutego 2007 - 01:08
#2
Napisano 03 lutego 2007 - 01:43
- Toszak lubi to
#3
Napisano 03 lutego 2007 - 02:38
#5
Napisano 03 lutego 2007 - 11:52
#6
Napisano 03 lutego 2007 - 11:59
#7
Napisano 03 lutego 2007 - 12:24
#8
Napisano 03 lutego 2007 - 12:59
Ja z kolei polecam zacząć zabawe w programowanie od normalniejszych niż C języków: do wyboru Python, Ruby, może Perl. Więcej frajdy i przydatniejsze w życiu niż C;)
imho to nie jest zbyt dobry pomysl, oby dwa jezyki sa w pelni obiektowymi, ludzie zaczynaja od takich jezykow a pozniej zdziwienie jak im sie powie ze cos jest przekazywane przez adres a nie przez wartosc, w ogole jak wytlumaczyc czlowiekowi cos takiego jak polimorfizm albo dziedziczenie gdy ktos nawet do konca nie wie co to funkcja, najpierw podstawy, a C jest do tego idealny, w pelni da sie zrozumiec czym jest typ podstawowy czym wlasny typ czym jest zmienna a czym jej adres, juz widzialem ludzi ktorzy bez podstaw w c pisali w c++ i mieszali c z c++ (brzydko mowiac obiekty z nieobiektami) a jak zapytalo sie ich czemu
cout << "foo" << endl;dziala skoro operator "<<" jest operatorem przesuniecia bitowego to bylo wielkie zdziwienie
a co do przydatnosci C to jest to jezyk w pelni funkcionalny i nie ma rzeczy ktorej bys w nim nie napisal, fakt ze przewaznie musisz posiwiecic na to duzo wiecej czasu
Perl tym bardziej jest kiepskim pomyslem gdyz jest to jezyk o calkiem innym zastosowaniu, chociaz na obecna chwile mozna w nim tez duzo (wszystko?) zrobic, ale to tak jak bys proponowal zaczynac programowanie od sed i awk, Perl jest raczej pod CGI (programowanie uslug sieciowych) i zabawa z tekstem (bardzo rozbudowane wyrazenia regularne)
a co do samego Pythona i Ruby, sa to jezyki skryptowe w pelni obiektowe, w stosunku do C roznia sie tym ze mozna w nich wiele rzeczy o wiele szybciej zrobic, ale przez to sa o wiele mniej wydajne, mozesz zaczac sie od nich uczyc programowania, i mozesz sie dzieki nim nauczyc wiec jezeli chcesz bawic sie programowaniem, tak o zeby sie troche pobawic to rzeczywiscie mozesz zaczac od pythona ale jezeli chcesz wiedziec tak doglebnie jak to wszystko dziala to zacznij od C,
#10
Napisano 03 lutego 2007 - 13:12
Z pełnym przekonaniem polecam Ci zacząć programowanie od języka Python. Jest to nowoczesny język programowania, wyrabia u programisty poprawne nawyki, a pisanie w nim to prawdziwa przyjemność. Jeśli nauczysz się programować w Pythonie, przejście na dowolny język programowania będzie dla Ciebie pestką - będzie wymagać tylko nauczenia się składni - literek i słówek - nowego języka. Ale pewnie już nie będziesz chciał przechodzić na inny język
ltj poleca Ci C. Dla wielu osób to rzeczywiście pierwszy język, od którego zaczynają przygodę z programowaniem. Ale to jest język i podejście mocno przestarzałe. Język powstał 35 lat temu, do konkretnego celu i dziś na poważnie korzystają z niego jedynie specjaliści do specyficznych zastosowań.
Pythona wybierają również wielkie firmy i organizację - zobacz ich listę i zastosowania na stronie http://www.python.org
Wiele osób uważa go dzisiaj za coś co jest modne, przeminie, a wszyscy i tak będą dalej programować w C. Bzdura. Programowanie idzie do przodu tak jak cały przemysł komputerowy i przyszłością są takie języki jak właśnie Python.
Wybierz Pythona jeśli poważnie myślisz o zabraniu się za programowanie. Nie będziesz żałować!
---- Dodano 03-02-2007 o godzinie 15:35 ----
Polecam taki artykuł:
Poznaj sztukę programowania w dziesięć lat
Jego autorem jest Peter Norvig, jeden z ważniejszych wymiataczy w firmie Google. Może jemu uwierzysz, jak jako pierwszy język programowania poleca Pythona.
Jeszcze kilka podobnych odwołań przychodzi mi na myśl:
- Artykuł Erica S. Raymonda Jak zostać hackerem
- Bruce Eckel, autor chyba najpopularniejszej książki o Javie, jako swój ulubiony język programowania uważa Pythona.
Zacznij od Pythona.
ltj nie wiem czmu straszysz programowaniem obiektowym. Oto przykład programu (jest to gra - platformówka) w języku proceduralnym (czyli starym, jak np. C)
1. wymaż w pamięci ekranu blok 160x160 pikseli zaczynający się od offsetu 0xFFA400
2. do współrzędnej X dodaj wartość deltaX
3. do współrzędnej Y dodaj wartość deltaY
4. przelicz nowe współrzędne na offset w pamięci ekranu
5. narysuj blok 160x160 pikseli od nowego offsetu w pamięci
A w języku obiektowym (jak np. Python) ten sam fragment programu wygląda tak:
1. Przesuń gracza
Stare języki - jak C, Pascal, C++ - wymagają od Ciebie takiego myślenia: "Jak to powiedzieć komputerowi żeby dobrze zrozumiał?". Nowoczesne języki pozwalają myśleć: "Co by tu dzisiaj fajnego zrobić?".
- marcelee, maniacco i Toszak lubią to
#11
Napisano 03 lutego 2007 - 13:52
Dzięki wielkie :) o coś takiego właśnie mi chodziło (chciałbym jeszcze spytać*)
1.do czego konkretnie jest ten język stworzony ?
2.czy moge na nim swobodnie pisać programy ?
3.Przy czym jest więcej zachodu i nauki ? C czy Python ?
a tak btw to nadal prosze o przysyłanie informacji na ten temat które mogłyby pomóc w tej sprawie
Dziękuje i pozdrawiam
#12
Napisano 03 lutego 2007 - 14:28
#13
Napisano 03 lutego 2007 - 14:58
ltj poleca Ci C. Dla wielu osób to rzeczywiście pierwszy język, od którego zaczynają przygodę z programowaniem. Ale to jest język i podejście mocno przestarzałe. Język powstał 35 lat temu, do konkretnego celu i dziś na poważnie korzystają z niego jedynie specjaliści do specyficznych zastosowań.
co nie zmienia faktu ze w Polsce i nie tylko programisci C sa bardziej poszukiwani niz programisci pythona, i nie mozna zapomniec tego ze C jest caly czas rozwijane
Wybierz Pythona jeśli poważnie myślisz o zabraniu się za programowanie. Nie będziesz żałować!
wlasnie jezeli ktos powaznie mysli o programowaniu to nie powinien zaczynac od pythona albo razem z pythonem poznac c/c++ gdyz w firmach to nie Ty wybierasz w czym piszesz tylko firma i potem jak taki programista ma zaczac posac w jakims jezku gdzie jest scisla kontorla typow i cos takiego jak rzutowanie niejawne prawie nie istnieje to traci tygodnie na to zeby zrozumiec co oznacza type missmatch, zreszta wystarczy jakiemus pythonowemu programiscie pokazac cos takiego:
char (*(*foo[3])())[2]i nawet po dokladnym zapoznaniu sie ze skladnia nie bedzie wiedzial o co chodzi, dlaego uwazam ze warto poznac C
Zacznij od Pythona.
w sumie to moze masz i racje poprostu tak sie sklada ze ja zaczynalem od paszczala i pythona a potem musialem poznac C i wiedza wywodzaca sie z pythona na wiele sie nie zdala
ltj nie wiem czmu straszysz programowaniem obiektowym. Oto przykład programu (jest to gra - platformówka) w języku proceduralnym (czyli starym, jak np. C)
1. wymaż w pamięci ekranu blok 160x160 pikseli zaczynający się od offsetu 0xFFA400
2. do współrzędnej X dodaj wartość deltaX
3. do współrzędnej Y dodaj wartość deltaY
4. przelicz nowe współrzędne na offset w pamięci ekranu
5. narysuj blok 160x160 pikseli od nowego offsetu w pamięci
A w języku obiektowym (jak np. Python) ten sam fragment programu wygląda tak:
1. Przesuń gracza
uzywanie gotowych obiektow to jedno ale prawdziwe oop zaczyna sie w momencie gdy trzeba je tworzyc, jak masz gotowy engine graficzny to zgodze sie ze czesto ma on juz gotowe klasy do takich rzeczy ale urzywajac czystego SDL'a (i jakies bindingi do pythona, o ile sa) na nic zda Ci sie "Przesuń gracza" poniewaz tam juz musisz wszystko z palca tworzyc, a co do samych engine'ow (frameworkow) to czesto jest to C opakowany w pythona, a jezeli chodzi o rozwiazania obecnie stosowane to popularne jest polaczenie C/C++ i Lua, takie polaczenie wystepuje w World of Warcraft, Painkiller, Halflife2 itp
Stare języki - jak C, Pascal, C++ - wymagają od Ciebie takiego myślenia: "Jak to powiedzieć komputerowi żeby dobrze zrozumiał?". Nowoczesne języki pozwalają myśleć: "Co by tu dzisiaj fajnego zrobić?".
masz racje, ale powiem to inaczej, jezyki wyzszego poziomu (jak to je brzydko okresliles nowe) daja Ci klocki do zabawy a w przypadku jezykow nizszego poziomu czesto musisz sam te klocki towrzyc, ale wtedy przynajmniej wiesz czemu dziala i masz radoche ze to Ty napisales
Toszak biorac pod uwage Twoje 3 pytania to
1) i C i Python do 'wszystkiego' sa to jezyki ogolnego zastosowania wiec mozesz w nich robic wszystko tylko ze nie wszytko oplaca sie robic w C tak jak i w pythonie, C jest szybszy wiec programy ktore wymagaja stabilnej i szybkiej pracy powinny byc pisane w C, w pythonie szybciej sie pisze (latwiej) wiec jak nie potrzebujesz zbytnio zoptymalizowanego programu to bierzesz pythona, a juz najlepiej polaczyc te 2 jezyki ale to juz inna historia
2) na obydwu mozesz swobodnie pisac, tak dlugo jak dlugo masz rece oczy kompilator (interpreter) i edytor tekstu
3) zdecydowanie wiecej przy C
tak patrzac ogolnie to jednak zacznij od pythona, ale tez nie zamykaj sie w nim, nie ma jedynego slusznego jezyka, wszystko zalezy od problemu ale do nauki to rzeczywiscie pyton bedzie lepszy
#14
Napisano 03 lutego 2007 - 15:08
Stare języki - jak C, Pascal, C++ - wymagają od Ciebie takiego myślenia: "Jak to powiedzieć komputerowi żeby dobrze zrozumiał?". Nowoczesne języki pozwalają myśleć: "Co by tu dzisiaj fajnego zrobić?".
Ale C++ jest nowoczesne:) Choć i tak nie polecam tego do nauki.
Co do podstaw o których pisze ltj to może w takim razie zaczniemy od assemblera? Naprawde na początku nie jest istotne rozróżnianie przekazywania przez wartość, adres czy nazwe. Ba, może to nigdy nie być potrzebne. C nie nadaje się do nauki, to przestarzały język o niszowym zastosowaniu i miernej funkcjonalności, jest poprostu zbyt low-level.
Jeśli chcesz nauczyć się programować to zacznij od języków które nie wchodzą programiście w drogę, do wyboru Python i Ruby, ja stawiam na ten drugi. Obydwa mają interaktywne konsole, pozwalają na pisanie zarówno strukturalnie, obiektowo jak i funkcyjnie. Mają także bardzo bogate biblioteki.
Jeszcze co do Perla, chyba nie piszesz tego serio że to język do CGI i przetwarzania tekstów? W takim razie C to język do pisania kontrolerów pralek a Java jest do gier na komórki?
#15
Napisano 03 lutego 2007 - 15:32
#16
Napisano 03 lutego 2007 - 15:37
#17
Napisano 03 lutego 2007 - 15:44
#18
Napisano 03 lutego 2007 - 15:45
Co do podstaw o których pisze ltj to może w takim razie zaczniemy od assemblera? Naprawde na początku nie jest istotne rozróżnianie przekazywania przez wartość, adres czy nazwe. Ba, może to nigdy nie być potrzebne. C nie nadaje się do nauki, to przestarzały język o niszowym zastosowaniu i miernej funkcjonalności, jest poprostu zbyt low-level.
[/QUOTE]
tak obrazac moje kochane C ... ale jakis pierwiastek prawdy w tym co piszesz jest, poprostu nie spojrzalem na sprawe obiektywnie a co do asma to to jest jezyk maszynowy wiec ciezko to odniesc do pozniejszej nauki
[QUOTE=TomekB;259884]
Jeszcze co do Perla, chyba nie piszesz tego serio że to język do CGI i przetwarzania tekstów? W takim razie C to język do pisania kontrolerów pralek a Java jest do gier na komórki?[/QUOTE]
[/QUOTE]
nie chodzi o to ze tylko do tego, ale ze glownie do tego, wiem ze w Perlu mozna napisac wszystko (Frozen Bubble ) ale sa pewnie dziedziny w ktorych jest bardzo popularny a sa takie w kotrych prawie nieuzywany
#19
Napisano 03 lutego 2007 - 15:53
#20
Napisano 03 lutego 2007 - 16:36
Myślę, że w Polsce ilość ofert dla programistów C i Pythona jest porównywalna, czyli znikoma. W porównaniu z ofertami Javy i .NETu są jak kropla w morzu. To się będzie zmieniać na korzyść Pythona i Rubiego.co nie zmienia faktu ze w Polsce i nie tylko programisci C sa bardziej poszukiwani niz programisci pythona, i nie mozna zapomniec tego ze C jest caly czas rozwijane
Ale w sumie to nie wiem, bo pracy tak naprawdę nie szukałem, tylko ona znalazła mnie.
Ok uściślijmy. Język programowania to narzędzie. Programowanie nie jest umiejętnością posługiwania się tym narzędziem. Bo w takim razie wystarczyłoby wkuć Kernighana&Ritchiego albo Stroustrupa i być programistą doskonałym. Programowanie to umiejęność przeniesienia rozwiązywanego problemu do przestrzeni maszyny. Można powiedzieć - a czemu nie - że jest sztuką. A przykłady, które podajesz, są jedynie detalami związanymi z konkretnym narzędziem. Uważam, że można być doskonałym programistą nie znając pojęcia wskażnika w ogóle, a tym bardziej nie rozumiejąc:wlasnie jezeli ktos powaznie mysli o programowaniu to nie powinien zaczynac od pythona albo razem z pythonem poznac c/c++ gdyz w firmach to nie Ty wybierasz w czym piszesz tylko firma
char (*(*foo[3])())[2]
Już teraz zazdroszczę tym przyszłym programistom, którzy będą zaczynać od Pythona, a najbardziej niskopoziomowym językiem w ich arsenale będzie C# albo Java.
Ja też przeszedłem drogę raczej "klasyczną" - od Commodore BASIC jakieś 15 lat temu, przez Pascala, C, C++, wreszcie Javę. Ale jakiś miesiąc temu zainteresowałem się Pythonem i teraz wszystko bym w nim najchętniej pisał.
tak patrzac ogolnie to jednak zacznij od pythona, ale tez nie zamykaj sie w nim, nie ma jedynego slusznego jezyka, wszystko zalezy od problemu ale do nauki to rzeczywiscie pyton bedzie lepszy
I za to wypiję
#21
Napisano 03 lutego 2007 - 16:55
#22
Napisano 03 lutego 2007 - 17:07
na informie na WATcie ucza nas C i Assemblera wiec cos w tym musi byc musze przebrnac przez te programowanie bo jakos mnie to nie kreci ciekawe czy na drugim roku tez mecza z programowania:P
PS. co wy widzicie w tym programowaniu takeigo fajnego?
Hehe nie zobaczysz nic fajnego dopóki nie spróbujesz Pythona (tak wiem jestem monotematyczny )
A poważnie, polecam Ci znaleźć (albo samemu rozpocząć) jakiś open-source'owy projekt, którego tematyka cię interesuje. Obojętnie jakich używają języków czy narzędzi - ważne żeby sam projekt był ciekawy. Wtedy aż będzie chciało się programować i iść do przodu. Polecam przeczytać artykuł "Poznaj programowanie w 10 lat" - link podałem parę postów wcześniej.
#23
Napisano 03 lutego 2007 - 18:13
tak obrazac moje kochane C ... ale jakis pierwiastek prawdy w tym co piszesz jest, poprostu nie spojrzalem na sprawe obiektywnie a co do asma to to jest jezyk maszynowy wiec ciezko to odniesc do pozniejszej nauki
No nie obrażam C:) Sam aktualnie tego używam (raczej C++) w połączeniu z MPI i 32 procesorami:D Zaś co do asm'a to żeby było związane z tematem forum to może asm na ppc? To musi być niezłe przeżycie, nigdy nie programowałem RISCów (a i inne na poziomie assemblera to też tylko szkolne zabawki), kiedyś trzeba będzie spróbować.
#24
Napisano 03 lutego 2007 - 19:04
#25
Napisano 03 lutego 2007 - 21:11
Język C jest ciągle używany np. w:W takim razie jeżeli C jest takie przestarzałe to po co jest ciągle rozwijane
- tworzeniu najniższych warstw systemów operacyjnych,
- tworzeniu sterowników urządzeń,
- programowaniu specyficznych, rzadkich urządzeń, mikrokontrolerów etc
Został on stworzony po to, żeby tego typu rzeczy nie trzeba było pisać w asemblerze. Ciągle trzeba jednak mieć solidną wiedzę o programowanym urządzeniu, a jedyną przewagą nad asemblerem jest składnia bardziej przypominająca rzeczywisty język.
Pewnie dlatego, że nauczyciele (czy ktokolwiek układa program nauczania) zatrzymali się w postępie 15 lat temu i błędnie uważają, że jest to język dobry na początek.i każą się tego uczyć w szkołach ??
Ok nie wiem czy to jest pytanie zaczepne czy podchwytliweRozumiem że na bardzo wysokim poziomie jest bardziej elastyczny, ale przecież większość programistów nie tworzy na ,,bardzo wysokim poziomie" . Więc dlaczego C jest bardziej popularny i uważany za lepszy język ??
Podsumujmy:
- większość programistów (i tak, mówię w skali świata) tworzy na "wysokim poziomie", tzn. wykorzystując programowanie obiektowe
- C jest bardziej popularny bo istnieje na rynku już 35 lat
- C nie jest uważany za lepszy język programowania - w rzeczywistości określenie lepszy/gorszy jest bardzo nieodpowiednie. Są zastosowania, w których C sprawdzi się lepiej od Pythona i takie, gdzie użycie C nie będzie miało sensu. I odwrotnie.
Jeszcze w kwestii popularności języka C - wielu programistów go zna, wielu od niego zaczynało. Napisać proste "Hello, world!" w C umie pewnie 99,87% programistów na świecie. Ale to jest trochę sztuczna popularność - bo zdecydowana większość z tych programistów nie korzysta z niego w poważnych zastosowaniach. No chyba że zajmują się rzeczami, które wymieniłem na początku...
- MacDada lubi to
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych