Chciałbym zostać programistą - początki programowania.

0

Witam!

Zdaję sobie sprawę z tego, iż tematów takich jak ten na forum mogły być setki a w google mogą być ich dziesiątki tysięcy. Dodam również, że zapoznałem się z tematami przyklejonymi do działu Newbie. Zawsze najpierw czytam/szukam a dopiero na końcu pytam.

Teraz przyznaje się, że specjalnie dużo nie szukałem, aczkolwiek nie mam siły na to by samodzielnie rzucić się w ogrom tematu programowania. Informacji jest tak dużo, że w poszukiwaniu odpowiedzi na dane pytanie, wchodzi się na 10 różnych for, czyta się 100 postów tamtejszych użytkowników aż w końcu trafia się na ten 101 post, w którym jest zawarta odpowiedź na połowę pytania..

Ciężko jest mi cokolwiek napisać bo temat programowania jest przeogromny i zawiera mnóstwo zagadnień a ja prawdę mówiąc nie mam pojęcia o niczym. Chciałbym nauczyć się programowania i wiem, że musze obrać konkretny kierunek w swojej nauce. Wybrać do czego jest mi potrzebne programowanie a następnie wybrać do tego odpowiedni język, z czasem uczyć się kolejnych przydatnych języków.

Może podejdźmy do sprawy z innej perspektywy:

[A] Jakim samochodem chce Pan jeździć przez (załóżmy) następne 2 lata? Proszę sobie wybrać numerek od 1 do 10. (każdy numerek to inny samochód)
[B] No a czym one się różnią? Co posiada 1 a co 5? Na jakim terenie się bardziej sprawdzają? itd. Itd.
[A] No najpierw niech Pan wybierze a później się Pan sam przekona co sobie Pan wybrał.

No i jest duże prawdopodobieństwo na to, że Pan [B] przez następne 2 lata będzie jeździł samochodem, który w ogóle nie będzie mu się podobał. Podobnie jest z wyborem języka. Choć tutaj już co nieco wiem (między innymi dzięki temu tematowi za który bardzo dziękuje) ale to i tak niewiele.

Jak napisałem wcześniej należy obrać jakiś kierunek. Zainteresowało mnie tworzenie gier komputerowych ale jak się je tworzy to już nie bardzo wiem. Wszędzie można znaleźć jedynie ogólnikowe informacje typu silnik graficzny. No ale co silnik graficzny? No modelowanie, tekstury, programowanie, „taka sytuacja”… Są porozrzucane hasła C++, ale żeby C++ to najpierw C ale znowu ktoś inny mówi, że samym C nie warto sobie zawracać głowy, potem jakieś C#, Java, MySQL, .NET itd. Gdzieś tam jeszcze ludzie polecają uczyć się czegoś takiego jak Basic. No np. MySQL to niby jakaś tam baza danych, ale dokładniej co to? No to w odpowiedzi zarzućmy linkiem do Wikipedii niech się dowie co to.. No ale tam też jest wytłumaczone to wszystko nie tak jak osobie, która nic nie wie na dany temat tylko jak osobie która już jest w jakimś tam stopniu w temacie.

Wiem, że do gry 3D potrzebny jest cały zespół ludzi bo jest przy tym mnóstwo pracy. Jako jednostka nie jestem w stanie zrobić wszystkiego więc warto byłoby się w czymś wyspecjalizować i nabrać z czegoś doświadczenia. Często więc odsyła się na forach do tworzenia gier 2D bo można to niby samemu jakoś ogarnąć.

**Przechodząc do konkretów. **

Przymierzam się do nauki C++, podobno w jakimś tam stopniu jest potrzebny do tworzenia gier ale nie tylko bo znajduje zastosowanie w innych dziedzinach więc wydaje się to dobry wybór. Nie skupiajmy się aż tak bardzo na tym tworzeniu gier, to jednej z pomysłów, być może za jakiś czas okaże się że jednak tworzenie jakiś aplikacji bardziej mi się spodoba. Tak czy inaczej wszystko sprowadza się do programowania i dlatego uważam, że najtrafniej byłoby zacząć naukę od C++. Zorganizowałem sobie książkę „Symfonia C++” bo dosyć głośno o niej i podobno jest przydatna dla takich ludzi jak ja. W samej książce już na samym początku autor wspomina o tym, że jest to książka dla ludzi początkujących, którzy mieli styczność z językiem C lub Basic jak i dla tych bardziej obeznanych w temacie. To już mnie trochę przyhamowało czy faktycznie powinienem zacząć od C++ a nie od C czy Basic? Bo niby dla początkujących no ale mimo wszystko autor zakłada, że czytelnik miał już styczność z jakimś językiem a ja żadnej styczności z programowaniem nie miałem (no może po za tworzeniem jakiś stronek www ale to mało ważne).

Dobra, mam książkę ale w czymś trzeba pisać, prawda? Pobrałem sobie darmowego VS2012 Ultimate, odpalam, New Project i kilka opcji do wyboru a tak naprawdę nie wiem czym się poszczególne projekty różnią… Nie mam pojęcia jakie narzędzia mam do dyspozycji i gdzie szukać wskazanych w książce np. najprostsze „Hello World” napisałem według instrukcji a nie wiem jak to uruchomić by to okienko się pojawiło.. Po raz kolejny wybrałem się po pomoc do wujka google no ale tam jak już pisałem na wstępie masa propozycji różnych programów i nie wiadomo co wybrać. Może wy mi polecicie jakieś książki najlepiej jakieś PDF’y i programy do pisania na start?

Jak widzicie te podstawowe kroki w konkretnym kierunku już wykonałem ale to jakoś nie trzyma się kupy. Mam 22 lata a nie 14 i nie mam czasu na uczenie się wszystkiego co ktoś gdzieś tam zaproponuje. Gdybym miał te 14 lat to ogarnąłbym sobie co to jest ten Basic, pouczył się tego trochę potem C potem C++ i tak dalej. W obecnej sytuacji nie wiem czy to ma sens i czy nie stracę cennego czasu zamiast przejść od razu do np. C++ dzięki któremu poznam rzeczy z C bez wcześniejszego tracenia czasu na samo C.

Myślałem nad tym by iść na PW i tam w wolnym czasie uczyć się programowania jednak ze względów finansowych będę miał taką możliwość najwcześniej za 2 lata. Wiadomo, że ten czas trzeba jakoś spożytkować i dlatego postanowiłem się uczyć samemu ale pozostaje pytanie. Czy warto po tych dwóch latach iść na studia mimo wszystko czy to już za późno i dać sobie spokój i nadal uczyć się samodzielnie?

Sporo tego napisałem, choć i tak streściłem wszystko jak tylko się dało. Staram się was jakoś zaznajomić z moją sytuacją aby uniknąć nietrafnych odpowiedzi.

Kilka próśb na koniec:

Poradźcie mi z czego korzystać, jakie dalsze kroki podjąć, co jest warte uwagi itp.
Nie piszcie postów, w których jedynie się wymądrzacie lub dogryzacie mi czy innym użytkownikom.
Jak już pisałem jestem absolutnie zielony w tym wszystkim, starajcie się nie używać zbyt wielu skrótów. Niektóre rzeczy mogą być się dla was oczywiste dla mnie niekoniecznie :)

Pozdrawiam, Pirex

2

Początek początku jest prosty - odpalasz kurs C++/otwierasz książkę do C++. Odpalasz VS lub Code Blocksa i jedziesz po kolei.
Nikt Ci więcej nie podpowie, tak wygląda szukanie w google, a z czasem nauczysz się wyłapywać tylko te istotne informacje.

1

Mam książkę do C++ odpalam VS wpisuje przykład z książki do VS..

#include <iostream.h>
main()
{
	count << "Siemanko" ;
} 

.. i nie działa. Autor książki leci dalej a ja stoję w miejscu na takim banale. Jaki nowy dokument/projekt powinienem zakładać do pisania C++ w VS2012 Ultimate? Próbowałem kilku i wszędzie error...

2
  1. Bo książka ma więcej lat niż ty.
  2. Bo powinieneś dać Build a potem Run...
1

Źle przepisałeś przykład z książki (funkcja main nic nie zwraca i co to jest count?), zmień ją w ogóle na nowszą. A poza tym proponowałbym "Od zera do gier kodera" Xion'a.

0

Gdzie Ty znalazłeś taki przykład?

0

@Shalom

Dzięki, na przyszłość będę wiedział.

@_matej

Pobieram właśnie PDF Xion'a z jego własnej strony (chyba). Zobaczymy jak mi się to przyda. Dzięki.

@ta

Tak jak napisałem w pierwszym poście, "Symfonia C++" niby najnowsze wydanie, jak widać chyba nie :)

0

@Pirex najnowsze wydanie to "Symfonia C++ standard" i ona takich cudów nie ma...

2
Pirex napisał(a):

[A] Jakim samochodem chce Pan jeździć przez (załóżmy) następne 2 lata? Proszę sobie wybrać numerek od 1 do 10. (każdy numerek to inny samochód)
[B] No a czym one się różnią? Co posiada 1 a co 5? Na jakim terenie się bardziej sprawdzają? itd. Itd.
[A] No najpierw niech Pan wybierze a później się Pan sam przekona co sobie Pan wybrał.

Niech się Pan zapisze na naukę jazdy. Zobaczy Pan jak się jeździ, a potem będzie mógł Pan wsiąść do dowolnego auta osobowego i po krótkiej przymiarce będzie nim sprawnie jeździł. Widzisz analogię? Języki programowania, które są obecnie szeroko wykorzystywane są podobne do siebie. Nawet jak nie do końca składnią, to zasada tworzenia oprogramowania jest podobna. Obiektowość, zmienne, pętle, operatory.

Twoje podejście jest z góry nastawione na porażkę. Nauka programowania w tym wieku, tylko dlatego, że to trendy i że na tym można nieźle zarobić... to żeś się w porę obudził... Rynek pracy potrzebuje dobrych programistów, z pasją. Kiepscy programiści nikomu nie są potrzebni, bo w tej branży często trzeba być jednoosobową armią specjalistów i tworzyć wydajne, poprawne rozwiązania.

Nauka kilku języków i całej tej podstawowej otoczki tworzy programistę, który naprawdę zna się na rzeczy. Systemy liczbowe, standard IEEE754, algebra Boole'a, tablice Karnaugha. Nigdy nie wiadomo do czego Cię rzucą. Nawet jak będziesz za cienki do programowania gier, to możesz spróbować dostać pracę przy aplikacjach biznesowych, czy też przy oprogramowaniu dla banków. Albo przy administracji serwerami jakieś skrypty basha/perla/pythona.

0

"Darmowy Visual Studio 2012"? - no chyba na 30 dni ;P
http://allegro.pl/symfonia-c-standard-t-1-i-2-pakiet-grebosz-nowe-i3304643325.html
Kup sobie to ;) Powinno Cię zadowolić.

0

Symfonia C++ to jedna z lepszych publikacji, polecam. Programowanie polega na rozwiązywaniu problemów. Najpierw trzeba poznać polecenia jakie oferuje język programowania, a później stosować je do rozwiązywania problemów. Właściwie przed nauką programowania powinieneś poczytać co nieco na temat algorytmiki.

0

Oczywiscie, ze jest darmowy VS http://www.microsoft.com/visualstudio/plk#products/visual-studio-express-products

Co do literatury:
Prata, Grebosz i na koniec najlepsze i za darmo http://www.cplusplus.com/doc/tutorial/

@autor
Swoja droga, smieszny opis.

0

@Spine

Ciężko napawać optymizmem zabierając się za programowanie w wieku 22 lat. Boję się, że jest za późno mimo, że kocham pracę z komputerami. Już wiele lat temu myślałem o pracy jako grafik/programista ale przez to zawalałem szkołę i wszyscy dookoła wybijali mi pracę z komputerem z głowy uznając to za stratę czasu i drogę prowadzącą w życiowe niepowodzenie. W wieku 13 lat ukończyłem kurs HTML i zacząłem się interesować tworzeniem stron www lecz jak na tamte czasy nie bardzo miałem na to możliwości. Internet nie był tak powszechnie dostępny a off-line nie wiele mogłem zdziałać. W wieku 15 lat tworzyłem całkiem przyzwoite modele 3D zawierające elementy fizyki, dużo zabawy z tym było a gdy zdobyłem dostęp do internetu wróciłem do tworzenia stron www. Zacząłem bawić się z PHP i Photoshopem/Dreamweaverem upiększając swoje dzieła Flashem co dawało świetne rezultaty. Zaliczyłem kilka zleceń za drobną opłatą i zacząłem stawiać pierwsze kroki w ActionScript a zaraz potem musiałem wszystko rzucić dla szkoły średniej. Teraz zostałem ze skończonym ogólniakiem i maturą bez możliwości studiowania ani pracy (bo gdzie w Polsce znajdzie się pracę ze średnim bez doświadczenia w jakimkolwiek zawodzie?). Teraz już nie widzę przyszłości w robieniu stron, poza tym zbyt wiele zapomniałem. Chcę więc wrócić do pracy przy PC z troche innej strony. Osiągnąłem tyle w tak młodym wieku w ciągu 3 lat i tyle wiedzy zaprzepaściłem mogąc kontynuować to w ciągu następnych 6 lat. Cały pesymizm polega na tym, że wiem, że jest wiele osób które zaczynają programować od małego i dziś posiadają ogromną wiedzę w tym zakresie a ja zerową i nie wiem czy dam radę to jakoś nadgonić.

@n0name_l

No ten pierwszy post w temacie pisałem pod natłokiem wielu, wielu myśli a starałem się to jak najzwięźlej spisać przekazując jak najwięcej treści. Niezbyt się popisałem tym postem ale mam nadzieje, że mi to wybaczycie :D

@_matej

Przyznam, że czyta się bardzo przyjemnie i dziękuje za podsunięcie mi tego ("Od zera do kodera"). Mam nadzieję, że nie ma tam nic przestarzałego ;)

0

@Pirex
No niby nie - wiedza ta sama jednak niektóre konstrukcje mogą sie róznić ;)

Nie piszemy juz void main(){}
Zaglądaj tez tutaj: http://cpp0x.pl/kursy/ i tutaj: http://pl.cppreference.com/w/cpp ( nie koniecznie po polsku )

0

Rozumiem, że z dostępnej literatury najlepszym wyborem będą:

"Symfonia C++ Standard" Tom 1 i 2 J. Grębosza: http://allegro.pl/symfonia-c-standard-t-1-i-2-pakiet-grebosz-nowe-i3304643325.html
oraz
Język C++. Szkoła programowania. Wydanie VI Stephena Prata: http://allegro.pl/jezyk-c-szkola-programowania-wyd-6-vi-wys-0zl-i3315592494.html

Coś jeszcze jest niezbędne czy powyższe książki wystarczą?

1

Jeżeli zainteresowało cię tworzenie gier to olej Symfonie i C++, ściągnij sobie Unity i rób gry. Po pół roku będziesz wiedział czy interesuje cię programowanie, robienie grafiki, czy wymyślanie gier (game design). Jeżeli chodzi o ilość dostępnej pracy i najmniejszy próg wejścia to wygrywa grafika.

Pirex napisał(a):

nie wiem czy to ma sens i czy nie stracę cennego czasu zamiast przejść od razu do np. C++ dzięki któremu poznam rzeczy z C bez wcześniejszego tracenia czasu na samo C.

Nie przejmuj się tym. Na twoim poziomie tracisz czas tylko nic nie robiąc. Równie dobrze możesz zacząć od LISPa. Symfonia da ci 1% potrzebnej wiedzy. Zanim zaczniesz robić coś sensownego minie parę lat. Jak radzisz sobie z angielskim to możesz pooglądać wykłady o podstawach

1

Równie dobrze mógłbym ściągnąć sobie UDK czy CryEngine i "bawić się" w robienie gier.

Też może być, chodzi o to żebyś poznał podstawy tego rzemiosła, bo "robienie gry" i "programowanie gier" bardzo się różni. Którą drogę byś nie wybrał to taki ogólny pogląd bardzo się przyda jak chcesz znaleźć robotę w gamedevie.

"Po pół roku będziesz wiedział".. ja nie mam pół roku. Ja już, w tym momencie muszę podjąć decyzje w jakim kierunku chcę dokładnie iść. Najlepszym rozwiązaniem wydaje się być programowanie dlatego na tym się skupiam.

Jak to nie masz pół roku? Nie spinaj się tak bo się szybko wypalisz, to jest maraton, a nie sprint. Nauka C++ to są 3 tygodnie, ważne co będziesz robił potem http://static.fjcdn.com/pictures/Learn+C+++in+21+days_7ee339_3181601.jpg ;)

7

Przeraża mnie, jak ogromna liczba ludzi nie potrafi się po prostu ogarnąć i zacząć robić to, co chcą robić. Po co jest ten topic? Weź po prostu idź i zacznij programować. Ponoć się spieszysz, więc - do dzieła! Sam widzisz, jaka masa języków i technologii czeka na poznanie. Idź i poznawaj! Nie ma znaczenia, od czego zaczniesz. Ja zaczynałam od Turbo Pascala. Do niczego mi się teraz już TP nie przyda, ale na nim ogarnęłam ogólne IO, zmienne, funkcje.

Polecałabym uczyć się programować, a nie uczyć się języków. Jeśli ktoś mówi, że uczył się czegoś bez sensu, bo wyszło z użycia i nic mu z tego, że się uczył, nie zostało - to coś diametralnie nie tak było z tą nauką. Tak mówić mogą chyba tylko osoby, które uczą się kodu na pamięć.

Wg mnie warto uczyć się nawet prologa. Warto mieć szerokie horyzonty tylko po to, by wiedzieć, które narzędzia dają jakie możliwości. Wybór jednego języka programowania, który się będzie szlifować do upadłego, to wg mnie coś w stylu mechanika, który ma tylko płaski śrubokręt. Jak podasz takiemu krzyżykowe śrubki, będzie je próbował tym płaskim śrubokrętem wykręcać - często z sukcesem, ale zawsze z niewspółmiernym wysiłkiem do efektu.

0

Nie wczytywałem się dokładnie w wątek, ale w każdym razie jeśli autor zamierza tworzyć aplikacje użytkowe (nie gry), to C++ jest złym pomysłem bo tego się już w C++ nie robi. Poza tym i tak aplikacje desktopowe to margines bo liczy się web i aplikacje mobilne.

Praca przy tworzeniu gier to całkiem inna para kaloszy - tutaj C++ ale o taką pracę niezbyt łatwo w Polsce. I musisz być naprawdę dobry.

1

Ostatnio zatrudnilismy goscia, z prywatnych rozmow mowi ze zaczal sie uczyc programowania 3 lata temu (jakies male projekciki w C++ itp), pol roku temu zainteresowal sie html/css/php/js i po tym pol roku pracuje teraz jako junior web developer (jego pierwsza praca w IT, wczesniej pracowal jako recepcjonista w hotelu). Da sie ? Da sie. (ma teraz 23 lata)

1

@aurel

Przeraża mnie, jak ogromna liczba ludzi musi wyjeżdżać za granicę by przeżyć, często pracując przy tym jak niewolnicy.
Przeraża mnie, iż mimo tylu wyjazdów nadal ogromna liczba ludzi (szczególnie młodych) nie może znaleźć JAKIEJKOLWIEK pracy, chociażby jako kasjer w supermarkecie.

Tak więc aby robić to co chce się robić, najpierw trzeba mieć za co i gdzie żyć :) Bo jako bezrobotna z pustym portfelem na pewno nie siądziesz do komputera by uczyć się programowania tylko będziesz biegała jak maratończyk po okolicy z teczką wypełnioną własnymi CV by znaleźć jakąkolwiek robotę. Mam nadzieję, że mniej więcej wyjaśniłem Ci dlaczego tak ogromna ilość ludzi po prostu nie może się ogarnąć i nie może zacząć robić tego co chcieliby robić.

Podzielam Twoje zdanie, że warto się uczyć czegokolwiek i zaczynać od czegokolwiek, ale kiedy pali Ci się grunt pod nogami, musisz podejmować szybkie i trafne decyzje bez rozczulania się nad rzeczami, których możesz nauczyć się przy okazji. Domyślasz się już po co jest ten topic? W swojej odpowiedzi pominęłaś to co napisałem powyżej. Człowiek który nie musi zmagać się z powyższymi trudnościami np. jest na utrzymaniu rodziców i ma sporo wolnego czasu może faktycznie zacząć od czegokolwiek. Mnie niestety w jakimś tam stopniu dotyka ta niekomfortowa sytuacja i dlatego właśnie stworzyłem ten topic by dowiedzieć się od was czego mam zacząć się uczyć by nie marnować czasu. (Wybrałem C++, zobaczymy co z tego wyniknie)

Wiadomo, że trzeba uczyć się programować a nie uczyć się języków ale co zaprogramujesz nie znając ani jednego języka? Mówimy tu a samym początku a nie o dalszej drodze. Mechanik bez żadnych narzędzi mimo wiedzy nic nie zdziała. Musi posiadać choćby ten jeden płaski śrubokręt by jakoś pracować. Oczywistą rzeczą jest, że potrzebnych jest mu kilka narzędzi do pracy ale to już jest właśnie ta dalsza droga a nie sam początek.

3

Szczerze mówiąc, jeśli chcesz jak najszybciej coś znaleźć na czym da się zarabiać, to chyba C++ to średni pomysł, jak już wspomniane, teraz większość rynku to web i mobile. Oczywiście nie twierdzę, że nie da tego osiągnąć, tylko raczej jednak będzie to dużo trudniejsze.

1

Zgadza się, najwięcej pracy jest teraz w aplikacjach webowych i biznesowych, a tego już w C++ się nie robi.

2

Rowniez php/webdev ma najprostszy prog wejscia

10

@Pirex: weź to C++ wyrzuć do kosza.
Jeśli ktoś każe Ci uczyć się programowania od C++ to albo nie wie na czym nauka polega, albo chce ograniczyć sobie konkurencję przez zniechęcanie kolejnych kandydatów (wiem, idiotyczna idea, ale inaczej nie potrafię wyjaśnić jak można proponować C++ w obecnych czasach do nauki).
Sam programuję w tym języku na codzień, ale tylko dlatego, że akurat mam taki projekt.

  • będąc programistą z talentem będziesz biegle programować w C++ po 2-5 latach
  • nie masz ponoć na to czasu
  • wąska dziedzina zastosowań (obecnie)
  • najtrudniejszy język programowania jaki znam, bynajmniej nie do nauki

Chcesz się szybko czegoś nauczyć w czym będziesz mógł dzisiaj pracować?

  • Java: nauczysz się szybko programować Swing (desktop), JSP / JSF (webdev), ew. w drugiej kolejności na mobile - jest praca
  • C#: nauczysz się szybko robić aplikacje desktop (na PC), potem weź się za webdev - jest praca
  • PHP: łatwo się nauczyć, dużo pracy, ale czy dobrze płatnej - to już sam sprawdź
  • Python: nauczysz się szybko pisać narzędzia - mało pracy
  • Free Pascal (Lazarus): łatwy język, łatwo zrobić aplikacje desktop, zero pracy

Jak nie zależy Ci na pracy to polecam Small Basic, Python, Lisp, Free Pascal.

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