Co dalej z moim programowaniem?

Odpowiedz Nowy wątek
2011-08-01 18:37
0

Witam! Zacząłem od Pascala, tylko podstawy poznałem, dalej poznałem i programowałem (programuję) ~1,5 roku (?). Swój poziom oceniam na średnio-zaawansowany. Umiem programować obiektowo i wiem, że jeszcze w czyichś kodach lub na stronach, niektórych rzeczy nie wiem. Następnie zacząłem uczyć się C# pod .NET 4.0. Programuję w nim już z 3 miesiące, ale nie sprawia on problemu, bo znam C++ i cały czas pogłębiam wiedzę o C#. Umiem pisać jako takie aplikacje w WinForms i XNA. Pytanie teraz takie: co dalej, uczyć się bardziej zaawansowanych rzeczy C++/C#, może jakiś nowy język, np. Python? Może zacząć pisać większe projekty, by mieć potem co zaprezentować itd. Mam 16 lat, przede mną liceum 3 letnie i studia inż + mgr, dalej chyba sobie odpuszczę, no ale zobaczymy dużo czasu mam. Ogólnie chciałbym iść w stronę GameDev i pisania aplikacji Desktopowych, ewentualnie Web i Mobile. Nie jestem jakoś wybitnie dobry z programowania, ale staram się umieć jak najwięcej. A więc proszę o rady dot. dalszej nauki programowania ww. języków (lub nowych) i tworzenia portfolio. Dodam, że wybrałem klasę mat-fiz-inf, nie oczekuję też, że nauczą mnie tam nie wiadomo czego. Studia - oczywiście informatyka, konkretny kierunek jeszcze dokładnie nie wiem. Z góry dziękuję.

PS: Nie wiem czy wątek powinien być w tym dziale (Społeczność) czy "Inne". W razie co, proszę o przeniesienie.


<error>There was an error during loading user signature. Please try to reboot the Universe and check again.</error>

Pozostało 580 znaków

2011-08-01 19:09
0

Ten wątek powinien być w koszu. Coraz więcej młodych programistów ma dylematy w swoim życiu, ale prawda jest taka, że nikt nie wskaże Ci tej właściwej drogi, bo zarówno każda może być dobra jak i zła. Kwestia zależna wyłącznie od twego gustu. Dlatego weź nie męcz tym ludzi i zacznij robić to co Ciebie interesuje, pociąga, rajcuje.

edytowany 1x, ostatnio: absent, 2011-08-01 19:10
Ale warto zapytać innych, nie? Skoro są tu doświadczeni forumowicze, to liczę na pomoc nie w wybraniu drogi (ją sobie sam wybiorę), a pomoc w sposobie nauki... Wątki typu "Przeczytałem symfonię, co dalej" też powinny być w koszu? Jeżeli mamy forum, to użytkownicy mogą dawać rad młodszym, którzy nie wiedzą co dalej i przez to może się wyczerpać ich zapał... - xeo545x39 2011-08-01 19:21
Zatem kieruj się głosem tego, kto najbardziej krzyczy. - absent 2011-08-01 19:29

Pozostało 580 znaków

2011-08-01 19:28
0
xeo545x39 napisał(a)

Swój poziom oceniam na średnio-zaawansowany.

Na jakiej podstawie? Jakim projektem możesz się pochwalić?

Studia - oczywiście informatyka, konkretny kierunek jeszcze dokładnie nie wiem. Z góry dziękuję.

Informatyka to kierunek studiów. Chodziło Ci chyba o konkretną specjalność.

PS: Nie wiem czy wątek powinien być w tym dziale (Społeczność) czy "Inne". W razie co, proszę o przeniesienie.

Raczej w Off-topic. Inne to dział na inne języki programowania.

Ta, dzięki za poprawienie błędu ;p - xeo545x39 2011-08-01 20:39
Informatyka to styl życia :D - kamdz 2011-08-02 01:01
To też. :P - somekind 2011-08-02 01:25
I zboczenie. ;) - O_o 2011-08-02 07:09

Pozostało 580 znaków

2011-08-01 19:39
0

Zanim się zabierzesz za kolejny język programowania to może napisz jakiś jeden czy dwa większe projekty - zajmie Ci to z rok czasu, ale wtedy będziesz mógł powiedzieć i sobie uświadomić co umiesz, a czego nie. Nauczenie się języka to jest chwila, nabranie umiejętności - lata.


Super rada. Oniemiałem, hehe. - absent 2011-08-01 19:44
Rada dobra. Zamiast uczyć się wszystkich języków programowania, to opanować jeden, a dobrze. - allocer 2011-08-01 19:48
Imho jeden język to zdecydowanie za mało. Nie pozwala spojrzeć szerzej na programowanie. - byku_guzio 2011-08-01 19:55

Pozostało 580 znaków

2011-08-01 20:43
0

@somekind Twierdzę tak tylko na podstawie moich umiejętności, projektów większych nie mam, tylko setki jakichś podstawowych programików, czasem potrzebnych, niektore pisane dla jaj. Teraz nie dawno zacząłem pisać projekt w XNA, ma to być gra, co z tego będzie zobaczy za kilka miesięcy wstępnie, a za kilka lat moooże coś wyjdzie z tego rozwiniętego.

@byku_guzio Prawda, że lepiej umieć 3 języki na zaawansowanym poziomie (przynajmniej 1, a 2 na średnim) niż znać samą składnie i podstawy składnię 15... Ja raczej idę w kierunku kilku wyuczonych - jeden, dwa wiodące (chyba to będzie C++ i C#) i kilka z podstawami.


<error>There was an error during loading user signature. Please try to reboot the Universe and check again.</error>

Pozostało 580 znaków

2011-08-01 21:14
0

Mało osób się wypowiedziało a sądziłem, że polecą różne standardowe rady typu: nie licz na szkołę i uczelnię. One nic Cię nie nauczą etc.
Jednak jak rozumiem kończysz gimnazjum a od 1.5 roku programujesz, więc chyba nie trzeba Ci tego mówić i masz po prostu ochotę sam się tego nauczyć.

Ja jednak chciałbym powiedzieć, a raczej dać taką radę by unikać sformułowań na jakim to etapie jesteś i jak dobrze znasz jakiś język. Tego się nie da określić. Przykładowo teraz myślisz, że jesteś na średnio-zaawansowanym poziomie, lecz za rok zrozumiesz, jak wiele nie wiedziałeś i głupio będzie sobie przypominać jak to się myślało, że się wiele wie :)
Zresztą zauważyłem, że bardziej doświadczeni programiści (i nie tylko programiści) bardzo często nie wymieniają co potrafią, lecz to co jeszcze chcą się nauczyć i to czego nie wiedzą (a wiedza o tym, że to coś istnieje). Masło maślane? Niekoniecznie, ponieważ im dalej w las tym więcej rzeczy odkryjesz o których dziś np pojęcia nie masz, że istnieją etc. I to jest całkiem normalne.
Dlatego też określanie "na jakim poziomie jestem" jest bez sensu i nie jest miarodajne w żadnym stopniu.

Poza tym napisałeś, że programujesz od 1.5 roku. Uwierz, że przez ten czas mało prawdopodobne byś chociaż miał średnią wiedzę. Przez ten czas powinieneś jedynie już zrozumieć na czym polega programowanie i, że język programowania to tylko narzędzie. Z tego też powodu ilość języków jakie znasz nie jest bardzo istotna, bo jak sam zauważyłeś po nauczeniu się C++, nauka C# wchodzi bardzo prosto. Najtrudniejszy zawsze jest pierwszy język potem leci z górki. Niemniej walenie wszystkich języków jak leci i ich nauka nie jest chyba najrozsądniejszym rozwiązaniem, ponieważ w rzeczywistości będziesz miał bogatą wiedzę na temat języków (a w rzeczywistości pozapominasz o tych nauczonych się w pierwszej kolejności) i będziesz bez projektów, które jakoś by tam mogły poprzeć Twe umiejętności.
Według mnie warto się nauczyć: C/C++, C#, Java. Osobiście nie żałuję znajomości Pascala i Delphi, a także Visual Basica, ponieważ są to dość różne języki o odmiennej składni niż te C-podobne a to daje też pewne poszerzenie horyzontów i łatwość zrozumienia innych języków, które mają pewne "dziwactwa" (w sumie każdy język jakieś ma)

Napisałeś też, że interesujesz się gamedevem, czyli na Twoim miejscu poznałbym też DirectX etc. Tak naprawdę to rób projekty. Wal ich jak najwięcej bo to one dają ogromne umiejętności. Jeden zrobiony projekt jest więcej wart niż 10 przerobionych artów. (Podczas pisania projektu przecież i tak niejednokrotnie trzeba sięgnąć po książkę i coś sobie przypomnieć etc.)

Przed przystąpieniem do projektu warto też przeczytać to: http://www.programuj.com/artykuly/rozne/projekty.php
Bardzo dobrze napisany art. Jeśli nie masz czasu na książkę o inżynierii oprogramowania to ten art będzie takim wstępem z mocnym wejściem :)

Projekty też możesz zacząć pisać w językach których kompletnie jeszcze nie znasz. Wiadomo, nie jakieś ogromne projekty w takim przypadku, ale takie rzucenie się na głęboką wodę daje pewien obraz tego jak sobie radzimy w sytuacjach typowo analitycznych - Masz problem i go rozwiązujesz. nie ważny jest język lecz metoda / algorytm.

Pokaż pozostałe 12 komentarzy
Kompleksy trzeba leczyć docinkami bo sami nic nie potrafią. Taka jest smutna rzeczywistość. Najmniej groźny jest ten kto dużo szczeka dlatego ja cenię sobie osoby, które powiedzą coś raz i to coś jest bardzo cenne. Takie rady dają np MSM, Cepa, Bswierczewski. Oni nie mają w głowie bzdur i typowego biadolenia w kółko o jednym i tym samym tylko wypowiedzą się i już. A niektórzy tutaj są tacy, co próbują sobie podnieść morale i własne ego poprzez próbę zmniejszenia kogoś innego :) - polaczek17 2011-08-02 16:22
Wow, znowu żeś eposem przypierdzielił że się aż czytać nie chce :> Othello: Ja tam kiedyś napisałem program który podzielił przez zero, czy to świadczy że każdy mój program będzie miał ten błąd? ... - O_o 2011-08-02 18:18
Tak tak polaczku, na pewno jesteś "ponad to" i dlatego wylewasz swoje żale, jaki to jesteś nieszczęśliwy i sponiewierany przez niektórych i jak niektórzy starają się ciebie "zmniejszyć". Powtórka z rozrywki? - othello 2011-08-02 18:40
To, że pisze o tym nie oznacza, że to są żale. Bo ja mam litościwy uśmiech na twarzy i patrzę na Twój nick z politowaniem. Bardziej współczuje Tobie niż czuję się "sponiewierany". Mogę jedynie współczuć Twojej ignorancji i poziomowi. Tyle w temacie :) - polaczek17 2011-08-02 18:42
Yaaawwnn, nudzice. Zbierzcie sobie wszystkie Wasze wypowiedzi z tych kłótni i wysyłajcie je Sobie jakimś randomem, wyjdzie na to samo. - O_o 2011-08-02 18:52

Pozostało 580 znaków

2011-08-01 21:27
0

Dzięki polaczek za w miarę jasne opisanie sprawy. Postaram się dokończyć projekt super gry i zacznę pisać następny. Co do średnio-zaawansowanego poziomu, może jednak trochę mniejszy, ale jak wynika z książek są rozdziały "programowanie zaawansowane w C++" i są tam w miarę proste rzeczy, to tez dlatego śmiem tak twierdzić. Visual Basic dla mnie to w ogóle co innego niż C++/C#/Java, całkiem inna składnia. A co do pisania projektów w nieznanych językach (tzn. składnię to trzeba umieć, żeby pisać ;P) to chyba nieporęczne, lepiej jak już się bliżej pozna język i wtedy wg mnie.


<error>There was an error during loading user signature. Please try to reboot the Universe and check again.</error>

Pozostało 580 znaków

2011-08-01 21:50
0

Książki, nieważne czy zaawansowane czy podstawowe to nadal tylko książki i teoria przelana na papier w postaci paru przykładów. Prawdziwe zaawansowanie polega na tym, że nieważne jaki język wybierzesz to jesteś w stanie wykonać powierzone zadanie. Oczywiście trochę przesadzam bo pisząc to można sobie pomyśleć: "No to napisz to i to w assemblerze, albo innym dość trudnym języku". Mam tu bardziej na myśli fakt, że jeśli znasz składnię C++ i umiesz programować ( a nie tylko znasz język programowania ) to nie masz żadnych trudności w napisaniu tego i tamtego w C#, Javie czy czystym C.
Składnię można poznać też podczas pisania projektu. Przecież jeśli uczyłeś się C++ a potem skoczyłeś na C# to wiedziałeś już, że istnieje coś takiego jak pętla, klasa, polimorfizm, hermetyzacja danych etc. W tym momencie nie potrzebna jest od razu znajomość składni. Masz zadanie i je wykonujesz algorytmicznie a składnia to tylko formalny zapis tego algorytmu. Składni nauczysz się praktycznie po tygodniu jeśli już potrafisz programować. Dłużej może zająć nieco tylko nauka składni języka dość odmiennego, albo z haczykami. W tym przypadku czas nauki zależy od ilości tych haczyków.
No i ostatecznie skoczenie na projekt pisany w języku, którego praktycznie się nie zna nie musi być nieporęczne. Można odczuć pewien dyskomfort, ale jeśli lubisz wyzwania to z pewnością jest to jedna z tych rzeczy, które są pozytywne w procesie nauki danego języka jak i całego programowania. Dlaczego?

  • Ponieważ jeśli nie znasz języka dobrze, a chcesz napisać projekt w nim, to za wszelką cenę próbujesz nie popełnić błędu. Twój kod staje się bardzo staranny i ostrożnie pisany. Każda linijka kodu jest delikatnie wstawiana i analizowana czy faktycznie tak można / tak powinno być.

Przyrównam tą sytuację do pływania:
-Załóżmy, że umiesz pływać: (czyli umiesz programować)
-Jeśli umiesz pływać w Warcie to umiesz też pływać w Wiśle. (jeśli umiesz programować to język nie ma znaczenia)
-Rzucenie na głęboką wodę, więc polega na tym, że poznajemy jeziorko i każdy element, który się w nim znajduje. mimo, że umiemy pływać i dobrze sobie radzimy to dodatkowo uczymy się co w tej wodzie się znajduje etc. (uczymy się nowego języka mimo, że piszemy w nim cały czas jakiś projekt)

Ale jeśli nie jesteś w stanie tego zrobić i nie poradziłbyś sobie z pewnym problemami stawianymi przed Tobą codziennie - problemami codziennymi nie zaawansowanymi bądź trudnymi. Bo wiadomo, że jeden język jest bardziej przyjazny w pewnych zadaniach niż inny - (i z którymi sobie radzisz w swoim ulubionym języku) to najpewniej nie umiesz jeszcze programować, a jedynie znasz język programowania lub kilka. Sama zasada jednak programowania nie ma nic wspólnego ze znajomością języków programowania.

Znów to porównam powiedzmy do kierowcy. Mamy kierowcę jeżdżącego tylko samochodami Audi. Kierowca ten nie potrafi jednak prowadzić żadnego innego samochodu. Czy można nazwać go kierowcą? Nie. Jest on bardzo niepewny tak naprawdę.
Prawdziwy kierowca natomiast potrafi jeździć samochodami jakimikolwiek, a sama nauka polega tylko na "doszlifowaniu" pewnych zachowań i wyczucia.

Pokaż pozostałe 7 komentarzy
Brzmi interesujaco. - O_o 2011-08-02 19:08
Aaa i bym zapomniał :) Podobno oparty na faktach :) - polaczek17 2011-08-02 19:16
Ten film w stosunku do książki jest mizerny, da się to oglądać, ale bez żadnych rewelacji. - absent 2011-08-02 21:04
Masz na myśli książkę "Carandiru, das Gefaengnissmassaker in Sao Paulo" czy książkę: "Skazani na Shawshank: Cztery pory roku"? Bo o tej drugiej słyszałem a o tej pierwszej nie :) - polaczek17 2011-08-02 21:23
"Skazani na Shawshank: Cztery pory roku" - absent 2011-08-02 21:32

Pozostało 580 znaków

2011-08-01 22:12
0

W każdym razie dzięki wszystkim za rozjaśnienie, postaram się właśnie zrobić tak, żeby być w miarę uniwersalnym i umieć pisać rozwiązania niezależnie od języka + moje projekty.


<error>There was an error during loading user signature. Please try to reboot the Universe and check again.</error>
Pokaż pozostałe 8 komentarzy
hmm ciekawe czy by się dało napisać jakiś prosty translator ograniczony C->BF - krwq 2011-08-01 22:30
Wystarczy nająć te dzieci neo z YT, one go znają na pamięć. (rodzimy język) - xeo545x39 2011-08-01 22:31
mi się zdarzyło napisać program liczący średnią dwóch cyfr oraz sprawdzający która liczba jest większa (kilka lat temu - zadania ze spoja) - krwq 2011-08-01 22:32
W moim wypadku, ja bym powiedział "udało" ;p - xeo545x39 2011-08-01 22:34
Dobra nie zniechęcajmy @MSM: [[-]>] - krwq 2011-08-01 22:34

Pozostało 580 znaków

2011-08-02 00:27
0
  1. Przez 1,5 roku to raptem "liznąłeś" programowania. Zapewne potrafisz napisać w pełni funkcjonalny kod: kalkulator, jakiś prosty edytor tekstu, jakąś grę czy inny program na podstawie ksiązki, dostępnych w necie materiałów czy nawet przy użyciu własnej głowy. Ale to dopiero zalążek, bo średnio-zaawansowany programista: czy to .NET czy c++ powinien znać podstawowe technologie związane z wybranym językiem: WPF, WCF, Linq, QT, Boost itp. Dopiero wtedy jesteś w stanie pisać dość elastycznie i sprawnie programy nieco bardziej praktyczne i większe.
  2. Zamiast uczyć się języków programowania - przyłóż się do matematycznej strony informatyki. Algorytmika, logika, kryptografia - wbrew pozorom są bardzo przydatne programiście (szczególnie desktop'owcowi). Zanim skończysz studia zapewne na rynku zmieni się układ sił - wejdą nowe technologie, obecne zmienią swój kształt. Nauka języków programowania przy znajomości chociaż jednego jest banalna, a kwestie logiki aplikacji już do tak prostych nie należą.
  3. Jeżeli już chcesz brnąć w GameDev to zamiast XNA poleciłbym Ci Unity3d - bardzo ciekawy Framework oferujący możliwość programowania zarówno aplikacji .exe jak i urządzenia mobilne, albo jako WebPlayer. Ogólnie coraz więcej widać projektów w tej technologii, i wydaje mi się że za kilka lat może być Boom na takie przeglądarkowe gry 3d, z możliwością one-click wykonania buildu na urządzenia mobilne.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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