Od laika do programisty..

0

Witam,
Na wstępie chciałbym się przywitać, gdyż jest to mój 1 post. Szukałem odpowiedniego forum, i jak widać znalazłem.
Mam 16 lat i jestem laikiem odn. programowania. Dużo czytałem na temat tego jak szybko nadgonić zaległości, gdyż w dziecinstwie byłem bardziej skłonny do grania w gry, a nie poznawania ich od wewnątrz. Jestem 3 miesiace po 16 urodzinach i aktualnie uczęszczam do liceum profil mat-inf. Jedyne czego uczymy sie na lekcjach informatyki z programowania to pascal i html, wczesniej jakis badziew z wordem robilismy.
Wiem, ze wielu z was zaczynało jako 9-10 latki a nawet wczesniej i teraz są naprawde dobrze obeznani w funkcjonowaniu systemu i przeróżnych jezykach programowania.
Aktualnie uczę się C++ mam książke grębosza (symfonia c++). I pytania jakie nasuwają mi się w miare przyswajania umiejętności (aktualnie c++ konsolowy.... :/) to to, czy ja mam szanse wybić się i w przyszłości dorównać wam, czyt. dobrym programistom.
Czy dobrze robie ucząc sie c++, jak tak, to czym zająć się póżniej; aktualnie mam plan po c++ zając sie WinAPI a potem assemblerem badz c#(lecz c# to podobna składnia do c++, więc pojdzie mi lżej)nastepnie java/javascript php itd.
Co do przyszłości to mam inne plany, bo jak wczesniej wspomniałem nie jestem obeznany lecz coś tam już wiem(...)Natomiast jeżeli dobrze rozplanowuje sobie czas i nauke to może zostane dobrym programistom w wieku 26 lat :/
Przygotowuje sie do zdania matury z matematyki na poziomie rozszerzonym i ewentualnie tej informatyki, słyszałem ze rozszerzona nie jest trudna (no ale jak dla mnie to i na chwile obecna jest trudna).
Dodam, ze nie mam problemu z wielogodzinnym spędzaniem czasu przy komputerze, bo wczesniej interesowałem sie sony vegasem i coś tam w photoshopie umie zrobic.

Dziękuję za rady i wyrozumiałość
kial123 (czyt. laik od tyłu)
:)

0

Za późno zacząłeś nie ma sensu się uczyć.
Teraz przeczytaj to co napisałem i odpowiedz sobie na pytanie czy mi wierzysz? Odpowiedź na to pytanie będzie odpowiedzią na twoje.

0

Wszystko jak zwykle ZALEŻY. Sam musisz określić co chcesz robić. Jeśli chcesz np. iść w stronę aplikacji webowych, to assemblera, a nawet c++ możesz sobie spokojnie odpuścić i iść od razu w stronę C#. Jeśli programowanie gier, to pewnie posiedzisz w c++ dłużej. Im szybciej się określisz tym lepiej dla Ciebie, bo bycie dobrym od wszystkie w rzeczywistosci rzadko działa :)

Pozdrawiam,

0
kial123 napisał(a)

Wiem, ze wielu z was zaczynało jako 9-10 latki a nawet wczesniej i teraz są naprawde dobrze obeznani w funkcjonowaniu systemu i przeróżnych jezykach programowania.

A to dobre, w wieku 9-10 lat to większość z nas latała za piłką, bo wtedy komputer był dobrem luksusowym.

Nie wiem kto Ci takich durnot nagadał, ale żeby zostać w miarę ogarniętym programistą wystarczy około 2 lat doświadczenia niekomercyjnego, tzn. nauka jakiegoś języka + biblioteki. Później idziesz do pracy i tak na prawdę wtedy widzisz ilu rzeczy jeszcze nie wiesz / nie umiesz, zwłaszcza w początkowych etapach pracy nadrabiasz to czego nie wiesz i bardzo szybko rośnie Ci ta umiejętność, nazwana pięknie "programowaniem" :) Nic nie zastąpi doświadczenia komercyjnego, jak by nie patrzeć :)

0

do uuu: jak nie ma sensu jak ma.. Ja również odkryłem w sobie chęć programowania w wieku 16 lat.. zacząłem od Pascala(zaledwie podstawy gdyż pisało mi się w nim dziwnie) przeszedłem do c++... dziś mam 17 lat i mogę powiedzieć że jestem nico na większym poziomie niż podstawowy ale nadal mniejszy niż zaawansowany ;D jeśli wiecie o co mi chodzi ;d napisałem już programik do wysyłania e-maili do adresów zawartych w pliku txt ;D lizłem o Qt oraz Perl;D i dzisiaj moge powiedzieć że po roku nauki jestem znacznie na wyższym poziomie niż moi rówieśnicy z szkoły(TECHNIKUM INFORMATYCZNE).. Więc polecam zacząć od C++.. jeśli Ci się spodoba możesz posiedzieć w nim nieco dłużej jeśli nie szukaj dalej.. ;D nigdy nie jest za późno jeśli ma się silną wole i czas !

0

silna wole raczej mam,
bo zazdrosc mnie zzera jak ktos zna php, xhtml, html + css, javascripta, java, pythona, delhi, c++, c#, assemblera, winApi, directX zna sie na debugowaniu deasemblacji i tworzy cheaty do kazdej gry w pare godzin badz nawet minut....
no ale to sa lata praktyki, tylko mnie zastanawia jak to wszystko pojąc mając np. 16 lat a wczesniej zaczynajac przygode z programowaniem w wieku 10 lat.

0
kial123 napisał(a)

silna wole raczej mam,
bo zazdrosc mnie zzera jak ktos zna php, xhtml, html + css, javascripta, java, pythona, delhi, c++, c#, assemblera, winApi, directX zna sie na debugowaniu deasemblacji i tworzy cheaty do kazdej gry w pare godzin badz nawet minut....
no ale to sa lata praktyki, tylko mnie zastanawia jak to wszystko pojąc mając np. 16 lat a wczesniej zaczynajac przygode z programowaniem w wieku 10 lat.

Nikt nie zaczyna w wieku 10 lat programować, nie wiem kto Ci takich pierdół nagadał. Ludzi znających te wszystkie języki w stopniu zaawansowanym można policzyć zapewne na palcach jednej ręki.

0

ten ktos to na pewno osoba znajaca sie na rzeczy, pomagał przy stworzeniu najlepszego jak projekcie z ktorymi najwieksze korporacje uporałyby sie pare miesiecy, warto dodać ze robił to z drugim programistą....
No ale nic, ja zabieram sie do nauki :)
Dziekuje za wszystko

0

A ja się zastanawiam czy uuu to nie przypadkiem nnn do góry nogami. :D

Co do tematu. Ja zacząłem mając 14,5 chyba lat od Pascala, również tylko podstawy. Potem przeszedłem na C++, potem C#. Napisałem dużo badziewstw, trochę się nauczyłem wielu rzeczy, a aktualnie też mam 16 lat i widzę siebie jako programistę w przyszłości z dużym potencjałem. Moim zdaniem 14-17 to najlepszy wiek na zaczęcie przygody z programowaniem, można i wcześniej, ale rzadko ktoś odkrywa to wcześniej lub zachęca się do tego. Jeśli nadal będziesz się uczył intensywnie, trenił i jeszcze raz trenił to za 2 lata czy nawet następny rok będziesz już w miarę dobrze programował. Wiadomo nie nauczysz się wszystkiego z książek i neta, jest jeszcze praca, ale na nią przyjdzie czas. To co będziesz umiał co powinieneś bez umiejętności, które nabyjesz w pracy w zupełności ci starczy do podjęcia studiów i potem znalezienia dobrej pracy. Nie masz się czym przejmować tylko ćwicz. Mnie się np. ostatnio odechciewa, ale nie na zawsze tylko chwilowo nie mam weny ani pomysłów co by tu zkodzić.

0

Bywa i tak że weny zabraknie ;D wtedy jakaś gierka aż zatęsknisz za kodzeniem po nocach;D

0

lepsza ksiazka "od zera do gier kodera" Xion'a, czy Grębosza "symfonia c++"
? :)

0

Jeśli masz zamiar kupić którąś z tych książek to polecam symfonie(nową wersje), jeśli natomiast chcesz się uczyć z pdf to na pewno nie z symfoni gdyż w pdf znalazłem tylko starsze wydanie(stary standard).. osobiście polecam C++ dla każdego:)

0

Ja też zaczynałem w wieku 16 lat(Od 1 klasy technikum inf) znaczy już w gim coś tam robiliśmy na html ale właśnie na początku średniej powiedziałem sobie to jest to co chcę robić i tak się zaczęło;p

Przechodziłem przez pascala,ruby,scale,c++ teraz siedzę w c# i już chyba na dobre w tym zostanę.

Zdarzały się chwilę zwątpienia i dalej się zdarzają jednak to nie powód by zostawiać to;d
Dziś mam 17 lat za sobą ani jednego skończonego większego projektu.

Nic tylko życzyć ci powodzenia!

(serio mace rozsz. chcesz zdawać? Ja też nad tym myślę ale jestem w TI i maca tu jest na poziomie I kl. gim :D)

0
kial123 napisał(a)

lepsza ksiazka "od zera do gier kodera" Xion'a, czy Grębosza "symfonia c++"
? :)

Jeśli mowa o PDFach na necie, to jedna i druga jest przestarzała i uczy złych nawyków. Jeśli mowa o wersji papierowej, to zdecydowanie Symfonia C++ Standard się nada :)

bez rozszerzonej matmy nie dostaniesz się na studia z informatyki!

Większej głupoty nie czytałem :) Fizyka rozszerzona + Informatyka rozszerzona i spokojnie się dostanie na PW, przy samej fizyce rozszerzonej dostanie się na troche gorsze uczelnie (typu WAT np.). Problem natomiast może być z utrzymaniem się na pierwszym roku, z analizą matematyczną, algebrą czy dyskretną, nie mając dobrych podstaw z matematyki.

0

Tak, zdaje rozszerzona bo docelowo chce isc na budownictwo na politechnike, ale zobaczymy jak mi pojdzie programowanie.
aktualnie ucze sie z pdfu "C++ dla każdego" po namowie jednego z uczestników tej dyskusji.
Co do postu wyżej, jeżeli masz majce podstawową w technikum to jest dokładnie odwrotnie co ja mam. Mam matematyke rozszerzoną a informatyke kulejącą, tak, ze babka nie umie nawet programowac w c++ ani w niczym innym. Sama sie chwaliła ze zna Delphi i pascala, jednakze nie chce nas nauczyc Delphi tylko naucza tego pascala, który do niczego sie nie przyda.
W sumie to nie wiem po co ta fizyka na studia informatyczne i to w dodatku rozszerzona, bardziej bym był skłonny powiedzieć, ze wymagana jest matematyka, nie mając o tym pojęcia :)

0
kial123 napisał(a)

Czy dobrze robie ucząc sie c++
Oczywiście...

kial123 napisał(a)

aktualnie mam plan po c++ zając sie WinAPI
Nie ma co się dziś tego uczyć... staroć, poza tym lepiej się uczyć czegoś, co nie jest uzależnione od jednej platformy.

kial123 napisał(a)

a potem assemblerem badz c#
To masz dylemat jak między lotem w kosmos, a budowaniem zamków z piasku

kial123 napisał(a)

(lecz c# to podobna składnia do c++, więc pojdzie mi lżej)
Jedyna co C# ma wspólnego C++ to literka C w nazwie.

kial123 napisał(a)

nastepnie java/javascript php
Nie wiem po co się chcesz tego tak wszystkiego uczyć... dodam tylko, że Java nie ma nic wspólnego z js i php, więc ich bym nawet w jednym zdaniu obok siebie nie umieszczał...

0

LOL napisałeś dobrym ort!. Jedynym dobrym programistą na tym forum jest misiek reszta to leszcze ale on ma teraz wolne bo są święta więc na forum jest tylko demonical który trolluje ROTFL

A tak na serio to jak umiesz angielski to skończ tutorial na necie i kup c++ programming language stroustrupa.

0

C# ma składnię nieco podobną do C++ i to jest wielki błąd. Jakikolwiek język ze składnią wzorowaną na C/ C++ przeobraża się z czasem w potworka - najlepszym przykładem jest C++ właśnie, ze swoją mega nieczytelną i skomplikowaną składnią. Składnia Javy jest z zamierzenia podobna do C/ C++, Gosling zrobił to dlatego, żeby przyciągnąć programistów C/ C++. Gdyby nie to to zrobiłby coś na wzór Scali, pytany o to, w którym języku by programował zamiast Javy, odpowiedział szybko i bez wahania: Scala - http://www.adam-bien.com/roller/abien/entry/java_net_javaone_which_programming . Podobnie twórca Groovy powiedział, że gdyby znał Scalę wcześniej to by w ogóle tego języka nie stworzył. Twórca C# (Anders Hejlsberg, ten sam co stworzył Delphi i pewnie dlatego C# celuje w programistów o takim samym IQ jak programiści Delphi) popełnił karygodny błąd i oparł jego składnię o składnię Javy. Potem zaczął dokładać coraz to nowsze słowa kluczowe i próbował wprowadzić do języka jakieś ludzkie konstrukcje, niestety nawet gdy się dorobi do małego Fiata cztery turbosprężarki to nadal nie będzie to Porsche. W przypadku Javy dokładanie nowych ficzerów jest sporo wolniejsze i fanatycznie wymuszana jest wsteczna kompatybilność (niestety), ale bardziej przemyślane.

Ogólnie polecam Scalę (niektórzy powiedzą, że jestem fanatykiem, natomiast ja sam twierdzę, że Scala ma wiele mankamentów, wiele z nich dziedziczy po JVM/ Javie i w ogóle planuję stworzenie własnego języka i maszyny :) ). Można sobie spojrzeć na listę życzeń do Javy: http://wikis.sun.com/display/ProjectCoin/2009ProposalsTOC - programiści Scali nie mają takich durnych problemów, bo język Scala nie był wzorowany na składni C++ i dzięki temu że od początku łączy paradygmaty imperatywne i funkcjonalne, jest bardzo skalowalny.

Pominąłem w swoim zestawieniu języki dynamicznie typowane (jako że ze statycznie typowane łatwiej wytestować, programy wykonują się szybciej, a Scala, jako sztandarowy przykład zwięzłego obiektowego języka statycznie typowanego, jest porównywalnie zwięzła do np takiego Pythona) oraz języki czysto funkcyjne (jeszcze ich do końca nie opanowałem, tzn Haskella przynajmniej).

0

Scala ? Zabawka na zimowe wieczory. A i tak jak już tracić czas to wolę Haskella. Ja zacząłem programować w wieku 19 lat idąc na studia i całe szczęście - od razu nauczyli mnie dobrych nawyków programowania i odpowiedniego podejścia. Nie ma to jak mimuw ;)

0

Ja natomiast zasugeruję naukę algorytmiki, Cormena polecę, ale nie na początek, na rozgrzewkę przeczytałbym sobie "Rzecz o istocie informatyki" dla przyjemnego poglądu na temat, potem może Niklaus Wirth Algorytmy + Struktury Danych = Programy , co do konkretnych języków jeden Ci powie C/C++ to podstawa, inny że biznes opiera się na Java/.NET głównie, a jeszcze inny poleci pythona, bo przyjemny i ogromne możliwości, natomiast algorytmika wszędzie jest ta sama.

0

Skoro mowa o algorytmice, to Cormen to właśnie początek, a potem niebieskie książeczki + pdfy z zagraniczych konkursów.

0

Również polecam naukę algorytmiki, ponieważ to nigdy nie wyjdzie z mody, jak niektóre języki programowania.
Literaturę do nauki pisałem już nieraz i nie chce mi się znowu powtarzać.
Jeśli chodzi o rozpoczęcie nauki informatyki w liceum/technikum, to zobacz sobie profil tego gościa na topcoder: http://community.topcoder.com/tc?module=MemberProfile&cr=7442498&tab=alg przy czym oprócz wysokiego miejsca w topcoder jest również mistrzem świata w programowaniu zespołowym i był 3 w konkursie google code jam. Przy czym czytałem wywiad z nim i w liceum startował w olimpiadzie informatycznej, lecz nie udało mu się dojść do finału, lecz nie poddawał się. Do tego na początku studiów jest nie potrafił zbytnio programować obiektowo (a takie programy pisze się na topcoder), więc jego pierwszy program na tym konkursie był prawie całkowicie w C. Jak można zobaczyć dzięki determinacji już na drugim roku udało mu się osiągnąć czerwony kolor (co oznacza, że masz > 2200 pkt.), a na czwartym był w czołówce (do tego na tym roku zdobył mistrzostwo świata). Obecnie jest doktorantem na UW (lecz spokojnie mógłby się dostać do jakiejś jednej z najlepszych firm na świecie, ale nie wszyscy lecą tylko na kasę, której w firmach oczywiście można zarobić więcej), więc jak sam mówił w wywiadzie, najważniejsze jest, aby się nie poddawać i nawet jeśli ktoś zaczyna się uczyć informatyki dopiero na początku studiów, to jeśli będzie się wystarczająco dużo uczył, to może dogonić nawet najlepszych.

0

SPOJ + jakaś książka do algorytmiki wymieniona w poprzednich postach. Sam język jest tylko narzędziem. Istotniejsze jest nauczyć się myśleć "torem" programisty i zmienić swoje postrzeganie świata. Reszta będzie kwestią treningu.

0

Składnia wzorowana na C ma szereg wad. Np typ poprzedzający nazwę zmiennej/ funkcji/ etc Taka składnia z góry wyklucza inferencję typu. Const correctness w C++ jest skopane do bólu, chcąc wymusić dobre const correctness w programie trzeba klepać w kółko słówko "const" nieraz wielokrotnie w jednej linii (nota bene: w Javie w const-correctnes jest ograniczone/ niepełne). Nie chce mi się przypominać dziwactw C++, odrobina z nich jest na: http://www.horstmann.com/cpp/pitfalls.html

Scala zabawka? Bezproblemowa integracja z pierdyliardem frameworków Javowych i gotowy stos do robienia rozproszonych webowych aplikacji biznesowych (typesafe.com) to cechy zabawki? Bezproblemowo można mieć kod Scalowy i Javowy w jedym projekcie. Haskell jest dla ludzi z fiołem na punkcie matematyki, w zasadzie ten język wygląda tak jakby chciał maksymalnie przypominać składnię typowo matematyczną. Kompilator kompiluje do kodu natywnego, więc o sensownej integracji z Javą czy .NETem można zapomnieć.

Algorytmów natomiast nikt się za nas nie nauczy. Moja sytuacja była taka:

  • w liceum algorytmów nie znałem prawie żadnych, gdy wziąłem Cormena do ręki w 3. klasie liceum to go od razu rzuciłem w kąt, bo to była dla mnie czarna magia wtedy, a czasu do OI miałem mało (wiem, głupie myślenie, ale wolałem skupić się na rozwiązywaniu zadań swoimi metodami, przez co wymyśliłem samodzielnie algorytm Dijkstry),
  • na studiach olewałem wykłady począwszy od ok połowy pierwszego semestru, oczywiście nie wszystkie, ale (prawie na pewno) większość opuściłem,
    A mimo tego uważam, że z algorytmów jestem dobry, przynajmniej tutaj na forum nie ma zbyt wielu takich orłów jak ja :D albo siedzą cicho. Spokojnie można się nauczyć algorytmiki z Cormena, Wikipedii, PDFów z opisami algorytmów, omówień zadań z konkursów itp Umiejętność czytania PDFów z pracami naukowymi jest tu najbardziej niezbędna, gdyż książki do algorytmiki zawierają tylko oklepane algorytmy, co zresztą chyba normalne, bo zbiór wszystkich egzotycznych algorytmów miałby rozmiar wielkiej biblioteki, a nie jednej książki.
    Jeśli w liceum nie ogarnie się Cormena (czy tam ogólnie podstaw algorytmiki) to nie ma co liczyć na miejsca w topcoderze w kategorii algorytmika będąc na studiach. Nie da się tak szybko nadrobić materiału. ASD jest na drugim roku, pierwszy rok jest zawalony przez matmę, więc na szlifowanie algorytmiki jest mało czasu. Trzeba po prostu wziąć Cormena do ręki już na początku liceum i czytać go od czasu do czasu, aż do skutku.
    Nie polecam do nauki serwisów w których wysyła się kod, np spoj.pl czy podobne (oczywiście w konkursach wysyłanie kodu jest obowiązkowe). Za dużo jest problemów z wczytywaniem i wypisywaniem danych, poza tym zwykle zbiór dozwolonych języków programowania jest bardzo mały. Polecam serwisy typu projecteuler.net
0

to żeby znaleŹć złoty środek na rozwój w młodym wieku to co proponujecie

  1. dołączenie do jakiegoś projektu w języku w którym się rozwijamy
  2. pisanie własnych projektów, uczenie się nowych języków, robienie zleceń
  3. algorytmika, wzorce, uczenie się pod konkursy
0

Zakładanie projektów przez grupę niedoświadczonych programistów to wg mnie zły pomysł. Nawzajem będą się uczyć złych nawyków i nikt do nich krytycznie nie podejdzie.
Zlecenia robione przez nowicjusza? Pełno takich na zlecenia.przez.net Zlecenia nieudane, dużo czasu, nerwów i pieniędzy stracone nie tylko przez zleceniodawcę, ale i niedoświadczonego zleceniobiorcę.

Myślę, że na początku najlepiej pisać własne projekty, czytać blogi o metodykach programowania, wzorcach itp Musowe jest wg mnie nauczenie się (przynajmniej po łebkach) jakiegoś języka funkcyjnego (no ja wiadomo, że Scalę polecę) - funkcyjność wchodzi do mainstreamu powoli, najnowszy .NET ma już elementy funkcyjności, Java 8 też będzie mieć, C++11 także coś tam ma (tyle, że mało ludzkie, tak jak cały język C++).

0

@niesmieszny_czlowiek, przerób sobie chociaż łatwe zadania na spoju. Trochę średnich. Ze 2-3 trudne.
Jak będziesz po tym etapie, zaproponowałabym ci wymyślanie sobie prostych programów do zrealizowania (ale raczej samemu niż z innymi uczącymi się, z powodów, które podał wyżej Wibowit). Prostych w stylu: kalkulator, tetris, organizer (aby w trayu siedział).

A potem to już będziesz na pewnie na studiach ;)

0
Wibowit napisał(a)

Twórca C# (Anders Hejlsberg, ten sam co stworzył Delphi i pewnie dlatego C# celuje w programistów o takim samym IQ jak programiści Delphi) popełnił karygodny błąd i oparł jego składnię o składnię Javy.

Wynika z tego, że wystarczy mieć IQ programisty Delphi aby opanować składnię Javy. Nawet się zgodzę.

0
Wibowit napisał(a)

Zakładanie projektów przez grupę niedoświadczonych programistów to wg mnie zły pomysł. Nawzajem będą się uczyć złych nawyków i nikt do nich krytycznie nie podejdzie.

Nie do końca. Załóżmy studenci, którzy chcą się rozwijać w programowaniu mogą założyć swój zespół, w którym będą razem tworzyć nowe rzeczy. Nie mówię tu o takich, co dopiero zaczynają przygodę z programowaniem, ale o takich, którzy np. zaczęli programować w liceum i dalej ich to kręci. Poprzez tworzenie nowych rzeczy człowiek się uczy, a co za tym idzie eliminuje błędy, które popełnił. Dojdzie do momentu, w którym zauważy, że "O, to można zrobić prościej" i to poprawi. Wiadomo, jak w team'ie jest jeden bardziej doświadczony człowiek, to jest prościej, ale tu chodzi o to, żeby samemu się rozwinąć. Książki, internet i wymiana wiedzy między sobą niesie więcej zalet, niż nie pisanie niczego tylko myślenie, że się umie.

0

Tyle, że dla wielu prościej to znaczy: postawić static przed każdą metodą. Polecam zrobienie wstępnej wersji projektu, wrzucenie do sieci i wystawienie do oceny np na forum 4p :]

1 użytkowników online, w tym zalogowanych: 0, gości: 1