Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Co najlepsze do nauki programowania

15 Sep 2008 21:10 9879 48
  • #1
    User removed account
    User removed account  
  • #2
    Pi0trek121
    Level 23  
    Najprostszym jest pascal, mozesz go nabyc za darmo, a uczyć sie możesz z kursów internetowych.
  • #4
    mat_rosner
    Level 15  
    Turbo Pascal to jeden z lepszych kompilatorów do Pascala. Ja jak zaczynałem to od C++ ale to ciężki język jak na początek( pewnie temu że najlepszy) ale potem przerzuciłem się na Pascala i jego opanowałem bo jest w miarę prosty;) potem przeszedłem do Delphi i w tym na razie siedzę...to chyba najfajniejszy język bo piszesz kod tak jak w Pascalu a reszta to takie klocki Lego:p polecam

    Aha zapomniałem jeszcze dodać, ze najlepiej uczyć się z książek, zacząłem od Help "Delphi, podstawy programowania" polecam bo świetnie opisuje na przykładach podstawy języka a kosztuje ok 20zł przydatne są też "leksykony kieszonkowe (9zł) w których znajduje się większość funkcji, procedur itd:D

    Dodano po 8 [minuty]:

    tu masz już pobrany kompilator, uruchamiasz przez turbo Pascal->BIN->Turbo.exe albo TPX.exe

    Moderated By krzychoocpp:

    Załącznik dostępny publicznie w sieci usunąłem.

  • #5
    Dr.Vee
    VIP Meritorious for electroda.pl
    Osobiście uważam, że najlepszy do nauki jest język skryptowy (np. Python), ale u nas niedużo osób podziela taką opinię (głównie dlatego, że są definicje "nauki programowania").

    Tak więc jeśli chcesz uczyć się popularnego języka, to weź się za C++. Jest zgodny z C, ale mniej w nim niespodzianek mogących zaskoczyć początkującego programistę. W miarę rozwoju możesz zacząć uczyć się programowania obiektowego i w pełni wykorzystywać możliwości C++.

    Pozdrawiam,
    Dr.Vee
  • #6
    kpodsiadlo
    Level 10  
    Python jest bardzo prosty, jednocześnie daje dość duże możliwości, między innymi wkładania wstawek w C, w przeciwieństwie do Pascala obsługuje wyrażenia typu i++=1 itd. Jest na niego sporo bibliotek, a Linux i OSX zazwyczaj mają wbudowany interpreter.
    Jeżeli chodzi o C++ to jednym ze standardowych środowisk programowania jest opensource'owy GCC.
  • #7
    lord_dagoth
    Level 25  
    No dobra... to już jest baaaaardzo oklepany temat ;) Normalnie chyba powinienem sobie przygotować odpowiedź na tego typu tematy w notatniku i potem używać tylko strategii ctrl+c i ctrl+v.

    Standardowo, tak jak już setki razy mówiłem, najlepszy będzie język C++ (najbardziej uniwersalny, z największymi możliwościami, poprzez pisanie programów konsolowych, okienkowych, gier, programów do mikrokontrolerów, programów sieciowych). Bardzo polecam przystępnie napisany (i darmowy!) kurs ze strony www.gamedev.pl pt. "Od zera do gier kodera". Doskonale zastępuje on każdą książkę, ma ponad 400 stron z tego co pamiętam, ale w bardzo przystępny sposób wprowadza w arkana programowania, na bardzo bliskich nam przykładach (czyli grach komputerowych ;) ).

    A jeżeli uprzesz się na książkę, to 99zł na "Szkołę programowania język C++" Stephena Praty (Wyd. Helion) nie będzie zmarnowanym wydatkiem ;) . Polecam przeglądnięcie sobie spisu treści i przykładowego rozdziału. Każdy z nich, po gruntownym omówieniu tematu jest opatrzony podsumowaniem najważniejszych rzeczy, testem w postaci pytań teoretycznych oraz mnóstwem zadań programistycznych ;)
  • #8
    Dr.Vee
    VIP Meritorious for electroda.pl
    Zgadzam się, jeśli masz się w życiu nauczyć jednego języka programowania do wszystkiego, to niech to będzie C++ :)

    Ale prawda jest taka, że niektóre języki są lepsze do jednych zastosowań, ale gorsze do innych - dlatego najlepiej znać kilka różnych języków - czyli nie C, C++, Pascala, Delphi i Jave, tylko np. C++, pythona, lispa/haskella itd.

    Pozdrawiam,
    Dr.Vee
  • #9
    Fyszo
    Level 37  
    Ja proponuję na początek pascala z docelową przesiadką na C/C++.
    -Turbo pascal raczej na pewno będziesz miał w szkole na zajęciach.
    -Jest darmowy (obecnie).
    -IDE (środowisko) TP umożliwia późniejszą przesiadkę na Turbo C (również darmowe) które też prawdopodobnie będziecie mieli na zajęciach.
    -Pascal jest teraz bardziej używany jako język do wyjaśniania algorytmów - pseudokod.

    Docelowo oczywiście C++. Zostanie przy delphi również nie jest złym wyjściem. W praktyce programowanie to w większości i tak wywoływanie funkcji (systemowych oraz własnych) a tu język tak krytycznie nie gra roli - przykład - gry 3D w VisualBasic.
  • #10
    ciupu
    Level 11  
    Jak to w bywa na początku pewnie będziesz miał pascala/delphi, najczesciej sie tak robi aby łatwiej było zrozumieć algorytmy, pętle itp. Póżniej pewnie C/C++ ,java, c# ..

    Z ksiażek to do C++ polecam: "Symfonie C++" i "Pasje C++ " są łopatologiczne (szukaj nowego wydania), tak więc nie będziesz miał problemów, gdy poznasz język C/C++ z łatowścią opanujesz PHP.
    Co do języków skryptowych ... zainstaluj linuxa i "pobaw sie" w programowanie powłoki (http://cid-88af916507e2b381.spaces.live.com/blog/cns!88AF916507E2B381!414.entry)
    lub skrypty w Visual Basic dla WSH (Windows), następnie z wikibooks pobierz "zanurkuj w pythonie" i czytaj, koduj , baw się :)

    Powodzenia !
  • #11
    marek_Łódź
    Level 36  
    Fyszo wrote:
    Ja proponuję na początek pascala z docelową przesiadką na C/C++.
    -Turbo pascal raczej na pewno będziesz miał w szkole na zajęciach.
    -Jest darmowy (obecnie).
    -IDE (środowisko) TP umożliwia późniejszą przesiadkę na Turbo C (również darmowe) które też prawdopodobnie będziecie mieli na zajęciach.
    -Pascal jest teraz bardziej używany jako język do wyjaśniania algorytmów - pseudokod.

    Docelowo oczywiście C++. Zostanie przy delphi również nie jest złym wyjściem. W praktyce programowanie to w większości i tak wywoływanie funkcji (systemowych oraz własnych) a tu język tak krytycznie nie gra roli - przykład - gry 3D w VisualBasic.
    Popieram stwierdzenie, że jak już umiesz programować, to w tej grupie podstawowej język nie gra roli i można go sobie dobrać stosownie do potrzeb. Jeśli chodzi o początki, to polecałbym PASCAL ze względu na większą czytelność kodu (weźmy taki kompletnie nieczytelny zapis i++=1 w C ;) ). Najlepiej od razu w wersji obiektowej, takie jak Turbo Delphi albo Lazarus .

    Jeśli chcesz podejść do tego poważnie, to zamiast czytać podręczniki języka, czy helpy, należy zacząć od porządnych podręczników programowania, których jest wiele. Ja osobiście polecałbym Wirtha Wstęp do programowania systematycznego oraz Algorytmy+Struktury danych = Programy (oczywiście aktywnie). Klasyka, która się nie zestarzała przez kilkadziesiąt lat.

    No i fora dotyczace programowania, których jest wiele w sieci.

    Darmowe i w pełni komercyjne (z licencją komercyjną) narzędzia Borlanda - Turbo Delphi, Turbo CPP i Turbo C# - dostępne są w Codegear.com

    A swoją drogą, to który już z kolei watek dotyczący wyboru narzedzi :?:
  • #12
    maciek_slon
    Level 29  
    Darmowe i w pełni komercyjne są także narzędzia Microsoft VisualStudio Express ;-) Więc jeśli chodzi o środowisko - wybó jest OGROMNY.

    A jeśli chodzi o język - może warto pomyśleć nad ASM? Ja uważam że to całkiem niezły początek. Trudny, ale po opanowaniu ma się na prawdę dobrą bazę do nauki kolejnych...
  • #13
    lord_dagoth
    Level 25  
    marek_Łódź wrote:
    Jeśli chodzi o początki, to polecałbym PASCAL ze względu na większą czytelność kodu (weźmy taki kompletnie nieczytelny zapis i++=1 w C ;) ). Najlepiej od razu w wersji obiektowej, takie jak Turbo Delphi albo Lazarus .

    Hehe... akurat inkrementacja zmiennej dzięki użyciu ++ jest jak najbardziej logiczna i czytelna ;) Wystarczy tylko rzucić okiem na konstrukcję pętli for. W porównaniu do C++, PASCAL jest totalnie nieczytelny! Dobrze napisany kod w C++, z klamrami i wcięciami jest dużo lepszy od "begin" i "end". Do tego pliki nagłówkowe, które znacznie poprawiają czytelność kodu.

    Pomijając już fakt uniwersalności samego języka;) Jak się opanuje C++, to potem każdy innym język (Java, PHP, C# czy inne) to już jest kwestia jednego wieczora;)
  • #14
    bbxb
    Level 31  
    Pisz w kodzie maszynowym :)

    A tak poważnie to C++.
  • #15
    marek_Łódź
    Level 36  
    Jak zwykle każda taka dyskusja musi dojść do etapu wyższości świąt bożego narodzenia nad świętami wielkanocnymi, gdy prawda jest taka, ze wszystkie święta są podobne. Z pewnością C ma większe pole rażenia, stąd przewaga (liczbowa) jego zwolenników. Ja osobiście preferuję PASCALa (obiektowego), ale jak muszę to programuję w C albo asemblerze (w porywach w BASICu) i nie widzę w tym specjalnej różnicy (poza niedorobioną składnią niektórych z nich ;) ). Bo tak naprawdę to o sile języka decyduje kilka czynników,począwszy od zasięgu (C++ zdecydowanie wygrywa), przez środowisko, w którym programujemy, a na sile instrukcji i dostępnych funkcjach bibliotecznych kończąc.

    ps. kwestia gustu, ale dla mnie np. pętla zapisana słowami kluczowymi i wyraźnymi wyrażeniami jest czytelniejsza od zapisanej kilkoma średnikami, nawiasami klamrowymi i wyrażeniami mieszającymi operatory pre, post i sufixowe. Tego typu konstrukcje zostawały mi zawsze w niedorobionych makrogeneratorach i mam (może mylne) wrażenie, że komuś nie chciało się dopracować analizatora składni i pominął sobie co najmniej jedno przejście kompilatora, przerzucając na programistę część pracy (stąd między innymi pliki nagłówkowe). No ale to moje prywatne zdanie, przy którym nie będę sie upierał, bo tak, jak wielokrotnie już napisano C ma znacznie większą siłę przebicia od PASCALa i prędzej czy później programując z nim się spotkamy.

    A tak naprawdę, to mało ważne, w jakim języku mówimy. Ważne jest to, co mamy do powiedzenia.
  • #16
    sivex
    Level 27  
    Do programowania trzeba podejść jak do kobiety :)
    Nie zastanawiaj się jakiego języka się nauczyć żeby zagadać i wylądować z nią w łóżeczku.
    Naucz się sposobu w jakim możliwie najlepiej zdobywać kobiety i języka w jakim akurat ta mówi... :) :)

    Więc:
    1. skoro
    Quote:
    Witam,jestem na 1roku informatyki w technikum,za rok lub dwa będe miał programowanie,ale ja już od dawna chciałem się go nauczyć.

    ...dowiedz się jakie to będą języki właśnie ich się ucz.

    2. Czy język niemiecki jest gorszy czy lepszy od chińskiego? Liczy się tylko efekt wypowiedzianych słów. Pewnie wyznawanie miłości po czesku polki doprowadza do śmiechu, a czeszki są "w Niebo wzięte". Każdy chwali język, którego używa.

    3. Moim zdaniem każdy język jest dobry, chodzi tylko o umiejętnośc jego zastosowania. Ja kiedy mam zrobić na szybko programik np. do baz danych korzystam z VB. Kilka kontrolek i po zabiegu. Delphi nie znam ale też sądze że to dobry język. C i odmiany... Wiadomo, że najbardziej wszechstronny (urzywam do programowania mikrokontrolerów). Teraz muszę zrobić kopię danych pod samym BIOS więc wkułem Asemblera i jazda.
    4. A najważniejsze to mieć zapał do programowania i to nie słomiany. Bo wielu mówi co to nie zrobi a po kilku nie przespanych nocach nagle zostają tylko dane na dysku.

    pozdr.
  • #17
    Dr.Vee
    VIP Meritorious for electroda.pl
    marek_Łódź wrote:
    Jak zwykle każda taka dyskusja musi dojść do etapu wyższości świąt bożego narodzenia nad świętami wielkanocnymi, gdy prawda jest taka, ze wszystkie święta są podobne.

    Tu się zgadzam. Dodam jeszcze, że kolega chce się nauczyć programować, a nie pisać programy w jednym konkretnym języku. A my zamiast dyskutować o nauce programowania, dyskutujemy gorąco o wyborze języka :)

    Jak wiadomo, algorytmy + struktury danych = programy (i nawet Niklaus Wirth, twórca języka pascal, napisał książkę pod takim tytułem). Naucz się dwóch składowych, a programowanie pójdzie jak z płatka - niezależnie od języka.

    Pozdrawiam,
    Dr.Vee
  • #18
    lord_dagoth
    Level 25  
    Dr.Vee wrote:
    Jak wiadomo, algorytmy + struktury danych = programy (i nawet Niklaus Wirth, twórca języka pascal, napisał książkę pod takim tytułem). Naucz się dwóch składowych, a programowanie pójdzie jak z płatka - niezależnie od języka.

    Co prawda to prawda. Ale ja uważam, że skoro i tak jesteś w technikum o takim profilu (zapewne studia też będą związane z informatyką?) to warto przysiąść i poświęcić trochę więcej czasu na opanowanie C++. Chociażby z prostych powodów, jak to, że opanowanie innych języków będzie wtedy dziecinnie łatwe ;) Więc czas włożone w jego naukę na pewno się nie zmarnuje, nawet jakbyś nie używał w przyszłości tego języka. Na studiach pascala Cię nie uczą, tylko na starcie C++ ;)
  • #19
    marek_Łódź
    Level 36  
    Okazuje się, że FORTRAN też jeszcze funkcjonuje ;) . FORTRAN
    Oczywiście nikomu nie polecam, chociaż na ODRZE 1305 czy na PDP-11 było to jedno z głównych narzędzi, podobnie jak COBOL np. na S-36 czy AS-400
    Jak widać nie ma jednego narzędzia do wszystkiego i z pewnością wiedza o C++ będzie stosunkowo mało przydatna dla przyszłych programistów w COBOLU, czy RPG, jesli ten język jeszcze funkcjonuje (i nie chodzi o gry ;) ).
  • #20
    sof7
    Level 10  
    Jestem w drugiej klasie Technikum Informatycznego i doszedł mi przedmiot "Metodologia Programowania". Będziemy mieć go przez 3 lata. Notatka z lekcji organizacyjnej:

    2 Klasa:
    - 1 semestr: programowanie strukturalne (pdst.) Turbo Pascal/FreePascal,
    - 2 semestr: programowanie strukturalne (rozsz.) Turbo Pascal/FreePascal.
    3 Klasa:
    - 1 semestr: programowanie strukturalne (pdst.) C++ (DevCpp),
    - 2 semestr: przygotowanie do programowania obiektowego C++.
    4 Klasa:
    - 1 semestr: programowanie obiektowe,
    - 2 semestr: poznawanie innych środowisk (Delphi, WinApi, CBuilder)

    Na pierwszych zajęciach mieliśmy systemy liczbowe, logikę dwuwartościową oraz trochę o algorytmach.

    Tak to wygląda w mojej szkole.
  • #21
    jackpop
    Level 15  
    Hej. Właśnie kończę książkę o C (nie pierwsza już) i zastanawiam się co dalej. W sumie to nic nigdy nie napisałem większego w tym języku i zastanawiam się co mógłbym zrobić.

    Tzn nie wiem jak wykorzystać zdobytą wiedzę, jaki program napisać itp. Czy przy pomocy C mogę napisać jakiś program z GUI np dla Visty czy Linuksa? Czy wszystko to wymaga C++?
  • #22
    Dr.Vee
    VIP Meritorious for electroda.pl
    jackpop wrote:
    Hej. Właśnie kończę książkę o C (nie pierwsza już) i zastanawiam się co dalej. W sumie to nic nigdy nie napisałem większego w tym języku i zastanawiam się co mógłbym zrobić.

    Proponuję skończyć czytać książki, a zacząć pisać programy :) Jeśli nie "przerobisz" przykładów i zadań z tych książek, to za 3 miesiące i tak nic nie będziesz pamiętał.

    jackpop wrote:
    Tzn nie wiem jak wykorzystać zdobytą wiedzę, jaki program napisać itp. Czy przy pomocy C mogę napisać jakiś program z GUI np dla Visty czy Linuksa? Czy wszystko to wymaga C++?

    Oczywiście, że możesz. Tutaj nie język programowania się liczy, tylko biblioteki. Znajomość języka to początek, a do programowania GUI musisz choć trochę wiedzieć z czym to się wszystko je - czyli znać biblioteki i modele GUI które są w nich użyte.

    Jedną z takich bibliotek jest GTK+ (tutorial), działa pod windowsem i linuxem. Qt i wxwidgets to inne biblioteki, które domyślnie wymagają C++ (ale pewnie da się je zmusić do "działania" z samym C).

    Wszystkie powyższe biblioteki mają swoje windowsowe wersje, ale oczywiście możesz programować w windowsowym API - ale to już Ci ktoś inny może opisze ;)

    Pozdrawiam,
    Dr.Vee
  • #23
    lord_dagoth
    Level 25  
    Ja bym proponował nauke jakiegoś silnika 3d, np OGRE'a (no albo samego DirectX'a jak jesteś ambitny :P ) i zabranie się za pisanie prostej gry ;) Jeszcze możesz się zabrać za pisanie aplikacji sieciowych (na socketach).
  • #24
    Fyszo
    Level 37  
    Gui to i w pascalu można robić. A edukacyjność tego polega na tym że robisz od zera (fundamenty), a nie uzywasz gotowych. Np. pomyśl jakbys zrobił grę najprostrzą - klocki. To dużo uczy. Ja jak napisałem swoje pierwsze klocki (pascal+asembler) to sie dużo nauczyłem (więcej niz później na DirectX 7). Tak mnie to wciągneło, że 6 wersji tych klocków napisałem i kilka arcanoida, (w pascalu oczywiście) każdy inaczej robiony. Do obsługi Vesy (k. graficznej) też biblioteki trzeba było napisać, do xms (pamięć) również, do dźwięku obsługa SBlastera i DMA. Wszystko robione na piechotę bez driverów. To dopiero uczy, tylko teraz to się mija z celem.
    Ale próbuj robić najprostrzą gierke (na początek nawet samo menu). Poznaj troche grafiki.
  • #25
    lord_dagoth
    Level 25  
    Albo możesz się na razie nie uczyć niczego dalej, tylko trochę z teorii programowania gier i zrobić własną konsolową grę w windowsie. Ja jestem w trakcie wykańczania swojego projektu, naprawdę można osiągnąć super efekty (konsola windowsowa, ale planuje rozszerzyć swoją bibliotekę o obsługę konsoli linuksowej). I bardzo dużo Cię to nauczy, w szczególności algorytmiki.
  • #26
    jackpop
    Level 15  
    Dr.Vee dzięki za link do tutka. Przejrzałem i widzę czego muszę się jeszcze douczyć (wskaźniki, struktury...) i mogę zacząć studiować GTK.

    lord_dagoth: jestem ciekawy co to za gierka w konsoli. Jak możesz to zrób screena, żebym mógł zobaczyć możliwości gier w konsoli. Ogólnie jestem ciekawy jak zaprogramować konsolę by nie wyglądała ona tylko na zasadzie czarny tekst i białe napisy ale jak gierki pod DOSa. Do tego jakaś biblioteka czy coś?
  • #27
    Fyszo
    Level 37  
    Są bibliotegi graficzne. W dosie łatwo przestawia się tryb tekstowy na graficzny. Potem tylko przerzucanie danych na zakres adresów karty graficznej (bodaj $A000). Tryb 13h to tylko ten jeden obszar. Przy innych trzeba korzystać z tego obszaru jak z 'okienka' do większej pamięciv k. graficznej. Dane graficzne przechowuje sie w XMSie (pamięć rozszerzona ponad 1Mb wg konwencji dosa). Czy w konsoli pod windows miałoby wszystko działać? Większość tak. Ale takie szczegóły jak programowanie timerów (PIT) na płycie, lub grafika w trybach 12h (przez porty karty graficznej) - nie działają.
    Jeśli już robić coś pod windą to chyba nie ma co sie męczyć na konsoli tylko od razu czytać o DirectDraw (DX7) jako wstęp do DX 3D.
  • #28
    Dr.Vee
    VIP Meritorious for electroda.pl
    Co do programowania grafiki poprzez bezpośredni dostęp do pamięci karty to radzę sobie darować - program nieprzenośny, problem z prawami dostępu do pamięci i poza tym niewiele się pożytecznego nauczysz...

    Co do pisania przenośnych gier, to niskopoziomową i dość łatwą do opanowania biblioteką jest SDL (tutoriale).

    Pozdrawiam,
    Dr.Vee
  • #29
    lord_dagoth
    Level 25  
    Ale ja miałem na myśli grę na symbolach ASCII (tak jak stary, sławny ADOM ;) ). Poza tym, jak musisz się douczyć o strukturach i wskaźnikach... to może jeszcze przewertuj dokładniej te książki od cpp, bo to są podstawy podstaw