Moja przyszłość-programista


(Loker 13) #1

witam , wprzyszłości chce zostać programistą z umysłem podobnym do forumowiczów z db .

Od czego powinienem zacząć ?moze jakies kursy??

Z góry thx


(inż. Piniol) #2

Jak już to programistą :wink:

Kursy kursami, ale w jakim języku chcesz programować :stuck_out_tongue: A poza kursami to przydają się książki, w których w fachowy sposób jest wszystko opisane ;] A poza tym to ćwiczyć, ćwiczyć i jeszcze raz ćwiczyć ;] Bez praktyki się nie obejdzie ;] I generalnie nie zakuwaj wszystkiego na pamięć tylko próbuj zrozumieć, w programowaniu bez tego się nie obejdzie.

Polecam jakąś lekturę dotyczącą algorytmów i struktur danych, będzie o wiele łatwiej ;]


(Loker 13) #3

ale chyba najpierw powinienem zaliczyc podstawy a nie algorytmy....?

Język : c++

Może próbować z tym kursem http://stud.wsi.edu.pl/~sistudem/Podstawy/CPPindex.html ?


(inż. Piniol) #4

Algorytmika to podstawy programowania :wink:

Oczywiście najpierw poznać podstawy danego języka, mówiłem przyszłościowo :wink:

Tak jak mówiłem kursy są OK, są darmowe itp., ale według mnie nie są w stanie zastąpić książki :slight_smile: niestety nie należą one do najtańszych, ale od czego jest allegro, świstakk itp. :wink:


(Loker 13) #5

aha poszukam w google na temat algorytmów i struktur danych


(Cosik Ktosik) #6

Moim zdaniem nie trzeba zaczynać od struktur danych. To jest temat dość skomplikowany (kolejki, listy, drzewa, grafy). One tylko zniechęcą do dalszych prac. Nie zabierałbym się też na początku za C++, zwykły C tu wystarczy. Skończyłem dwa kierunki związanymi z technikami programowania, teraz pracuję na uczelni. Zauważyłem, że studenci studiów uzupełniających, którzy nie uczyli się podstawowych języków (C lub nawet Pascal) mają dość duże problemy z przejściem na inny język. C++ to wyższy poziom abstrakcji. Łatwiej jest do niego przejść z C niż na odwrót.

Co do struktur danych, to nie trzeba uczyć się ich na początku. Ucząc się podstaw programowania wg jakiegoś kursu, sam je zaczniesz stosować i często nie będziesz świadomy, że to np drzewo.

Dodatkowym powodem, dla którego mówię o C, jest to, że programista nie jest człowiekiem, który włada tylko jednym językiem programowania. On musi w dość szybki sposób nabyć umiejętność programowania w innych językach programowania. Firmy dość często budują własne kompilatory, niejako tworząc nowy język programowania (np. dla zapewnienia bezpieczeństwa). Znając C z łatwością przejdziesz na PASCALa. Znając C, C++ okaże się dodatkiem do tego pierwszego. Potem łatwo przejść na C#, a z nich na Javę.

Ja proponuję zabawę, zabawę w C. Dziecko też się najlepiej uczy przez zabawę. Pierwszy program, który zadziała sprawia dużo radości, a złożone pojęcia mogą tylko zniechęcić.


(system) #7

Siema. Moim zdaniem nie powinieneś zaczynać od C++. Wiesz.... Ja też chciałem od niego zacząć, ale gdy (nie oszukujmy się) pierwszy raz zobaczyłem składnię, odechciało mi się. Jeśli nigdy w życiu nie miałeś styczności z programowaniem, to polecam zacząć od czegoś uświadamiającego czym w ogóle jest programowanie. Ja zacząłem od Pythona. :smiley: On doskonale uświadamia czym jest deklaracja zmiennej, wyprowadzenie tekstu na ekran itd. No i jest o wiele prostszy od cpp. Oczywiście Python to tak na początek, jeśli w życiu masz zamiar pisać aplikacje pod system, a nie pod strony internetowe, to jest to język "nie bardzo" :slight_smile: Sam zobaczysz jak wyinterpretujesz ( czy jakoś tak xD) swojego pierwszego Hello Worlda. Nie mówię że skompilujesz, ponieważ jest to język interpretowany :slight_smile: No i sam porównaj

Python (Hello World):

print "Hello World";

Chyba tak to było. A w cpp

#include 


using namespace std;


int main()

{


            cout << "Hello World" << endl;

            getchar();


}

I nie żebym cię straszył, ale taka jest rzeczywistość :slight_smile: Jednak potem będziesz czuł niesmak, i będziesz chciał nauczyć się czegoś "lepszego" Tu polecam Pascala. Nie jest za trudny, i dobry na początek :slight_smile: Składnia też prosta. No i ja zrobiłem tak samo. Też po Pythonie wziąłem się za Pascala :slight_smile: Następnie wziąłem się za C++, ale ostro. Kupiłem Symfonię C++ Standard, poczytałem "Od zera do gier kodera" i jakoś to poszło :slight_smile: Na dzień dzisiejszy uważam, że cpp znam w dobrym stopniu :slight_smile: Jeśli jednak od razu chcesz zaczynać od cpp, to pamiętaj takie motto:

_ Jeśli wskoczysz w głęboką wodę, to pamiętaj, nie próbuj uciekać _

A tak ode mnie, to cpp jest wspaniałym narzędziem do programowania OO :slight_smile:


(klopas) #8

gates22 , z tych przykładów można wywnioskować że C++ jest bardziej rozbudowany niż pascal :wink:

ja się powoli uczę C++ na książce "Od zera do gier kodera" :wink:


(system) #9

no wiesz, według mnie to C++ jest lepszy od Pascala :slight_smile: :wink: :lol: A jeśli chodzi o "Od zera...." to jest to świetny tutorial :slight_smile: Polecam :slight_smile:


(Loker 13) #10

Może zbierzmy to wszystko . czyli zacząc od C ? jaki polecacie kompilator?


(Cosik Ktosik) #11

Microsft visual studio i jego podelementy

inne darmowe: Code::Blocks Studio 8.02

Linux: midnight commander i gcc

Tu Masz ich dużo: http://dobreprogramy.pl/index.php?dz=1&t=134&filtr=1


(Fiołek) #12

Nie no, myślałem, że padnę... Pracuje na uczelni a takie bzdury gada...

Visual Studio to nie kompilator, to IDE. Kompilatorem można nazwać Visual C++(chociaż to też IDE, ale kompilator ma chyba taką samą nazwę).

Podobnie Code::Blocks, to tylko IDE!


(Cosik Ktosik) #13

Wątpię, aby autora postu obchodziło na dzień dzisiejszy: co to jest proces kompilacji, linkowania.

Dla mnie można (możesz) nawet rozpisać się dokładnie: analiza leksykalna, analiza syntaktyczna, analiza semantyczna i generowanie kodu. A można i polecić napisanie własnego całego zestawu (flex, bison, asembler i inne podobne).

Myślę, że mówiąc kompilator, autor miał na myśli środowisko programistyczne. W języku potocznym mówi się: Jakiego kompilatora używasz? Ja, Visuala albo deva cpp. Nazywa się to metaforą i prosiłbym o nie łapanie mnie za słowa, bo to jest oznaką braku kultury. Z Tobą mogę rozmawiać w języku fachowym, z programowiec , pozostanę przy języku potocznym (chyba, że on zechce inaczej).


(Fiołek) #14

Ale nie wprowadzajmy ludzi w błąd od samego początku. Źle się nauczy i będzie gadał, że kompiluje Dev-C++. Ja nie używam, nie używałem i przypuszczam, że używać nie będę używał takich stwierdzeń. Nie rozumiem programistów(znających się chociaż trochę), którzy tak mówią(piszą) do niedoświadczonych, którzy nie rozróżniają jeszcze kompilatora od IDE, gdyż wtedy uczy się ich złych "nawyków".


(Cosik Ktosik) #15

Tak, tylko z drugiej strony, czy wg Ciebie gcc to kompilator? Jak określić co w gcc jest kompilatorem? Nie da się go nazwać jednym słowem, więc określa się go kompilatorem.


(Fiołek) #16

Tu masz całkowitą racje. Trudno nie nazwać gcc kompilatorem, ale też trudno go kompilatorem nazwać. Tutaj potrzeba jest znać też kontekst zdania, czy się mówi o kompilatorze, czy o zbiorze kompilatorów.

Ale co ma piernik do wiatraka?


(Cosik Ktosik) #17

Że wszystko jest kwestią umowną, jeden powie tak, drugi inaczej. Najczęściej oboje będą mówić źle, tj z błędem (IDE integruje w sobie "kompilator", a "kompilator"=prawdziwy kompilator+linker, a niekiedy i translator). Ważne, żeby chociaż się rozumieli. Jeżeli powiemy odpowiemy koledze na pytanie o kompilator, mówiąc gcc, też odpowiemy źle. A jak powiemy prawdę to się gość zawczasu załamie, a on chce się tylko nauczyć programować.


(Lord218) #18

Wiesz co ja bym radził żebyś kupił sobie jakiś podręcznik do nauki programowania.

Ja tak zrobiłem i jestem zadowolony. W takich książkach masz dokładnie opisane jak zacząć (zainstalować środowisko programistyczne i w ogóle).

Polecałbym tę książkę: http://helion.pl/ksiazki/procpp.htm

Na początek, przynajmniej ja tak uważam ta książka będzie w sam raz.

Wiem, że to spory wydatek, ale to najlepszy sposób na naukę, uwierz mi.


(Cosik Ktosik) #19

Jeżeli chcesz się uczyć języka C zgodnego ze standardem ANSI (co też uczyni Twój kod przenośnym linux<->dos<->windows i nauczy bezbłędenego programowania w C) to godna jest polecenia książka Wydawnictwa WNT "Język Ansi C" Briana W. Kernigana i Dennisa M. Ritchie, którzy są poniekąd twórcami tego języka.

Przyznam jednak, że na początek nie jest on za prosta, ale kto ma ten język lepiej znać od nich samych.


(Gina Gina) #20

Przenośność C jest mitem - gdy nie dotyczy programów trywialnych, o ile jeszcze uda Ci się - z trudem przenosić coś w ramach jednej platformy sprzętowej - np Intel, to przeniesienie na inny sprzęt wymaga dłubania przy podstawie lub posiadania bibliotek z dedykacją dla systemów na których migrujesz. Dla przykladu radzę spróbować przewalić coś z DOS-a na Intelu do SUN Solaris na Sparc-u ;/ Przy czym im bliżej sprzętu programujesz, tym z przenośnością jest gorzej ;/

To nie jest pozycja dla początkujących i ma zupełnie inne zadanie do spełnienia a nie naukę podstaw języka C :wink: