Nauka programowania na własną rękę, od czego zacząć?


#1

jw
nie znam sie na programowaniu, myślałam by iść na informatykę na ZUT w Szczecinie ale słysze same słabe opinie wiec chyba wole skupić się na samodzielnej pracy.
Pytanie mam od czego najlepiej zacząć? Polecacie jakieś kursy do C# czy Javascript, czy to się całkowicie samemu uczy?
Z góry dziękuje za odpowiedź :smiley:


#2

Ja bym polecał zacząć od Pythona, prosty i bardzo elegancki język. Na początek znajdź sobie jakiś wideokurs (na jutubie jest tego pełno i za darmo). Jeżeli już trochę pojmiesz to proszę bardzo:


Rób po kolei te wyzwania programistyczne. Jeżeli się trochę otrzaskasz z kodem, to możesz zakupić sobie książkę do C#, albo jakiegokolwiek języka w jakim chcesz pracować (IMO jeżeli już umiesz programować, to nauka konkretnego języka nie stanowi problemu)

Jeżeli chodzi o studia, to myślę że warto. Ja poszedłem na nie aby poznać ludzi i poznałem :slight_smile: Ogólnie szukaj na uczelniach kół naukowych (grup .NET, czy czegoś w tym rodzaju).

Na koniec, link do mojego ulubionego devblogera Maćka Aniserowicza - poczytaj :slight_smile: To posty skierowane do początkujących programistów http://devstyle.pl/junior/
No i jeszcze jeden bloger, który jest mądrzejszy ode mnie: https://plotzwi.com/programowanie-jak-zaczac/

Powodzenia!


Bym chciał stworzyć taką grę co była by o podróżach w czasie nie wiem nic o programowaniu i szukam kogoś kto mi pomoże szukam dobrego programisty i grafika 3D
#3

Zależy w jakim kierunku chcesz iść, ale najlepiej po kolei ogarniać wszystko.
Sam zaczynałem od nauki cpp z podręcznika Stephena Praty i gorąco polecam.
Wszystko może się przydać kiedyś w przyszłości:
-JavaScript
-HTML,css,php
-c#,cpp
-Python
etc.

Nie wiem czy ZUT to szkoła średnia czy wyższa uczelnia, ale pamiętaj, że żaden nauczyciel ani wykładowca nie zastąpi ci wszystkich minut spędzonych na eksperymentowaniu przy kodzie i staraniu się zrozumieć programowania.

Spróbuj, sprawdź czy to lubisz.
Jeśli nie chcesz inwestować w książkę to dobrym pomysłem byłoby zacząć od kursu Pana Mirosława Zelenta który wszystko świetnie i rzetelnie tłumaczy od podstaw, jednakże jeśli będziesz chciała iść w to dalej to prędzej czy później i tak zakup książek będzie konieczny.

Książka Praty: http://www.empik.com/jezyk-c-szkola-programowania-prata-stephen,p1063143831,ksiazka-p
Kanał Mirosława Zelenta: https://www.youtube.com/user/MiroslawZelent/videos --> odcinek zerowy cpp: https://www.youtube.com/watch?v=ErOzmh3BiXU
Zelent w formie bloga/strony: http://miroslawzelent.pl/

Polecam poświęcić wolny czas (z rozsądkiem) w wakacje na rozwijanie swoich umiejętność. Na pewno nie pożałujesz :wink:
Pamiętaj, że początki nie zawsze są łatwe, ale kiedy już pojmiesz programowanie i jego logikę to będzie łatwiej z każdym kolejnym krokiem.

Zgadzam się z przedmówcą, chociaż sam nie jestem wielkim fanem Pythona, to jest on dobry do nauki dla początkujących :slight_smile:


#4

Dziękie wielkie :slight_smile: poszedłeś na ZUT czy gdzieś indziej? Zastanawiam się czy po prostu informatyka na ZUTie moze mieć słabe opinie a w innych miastach oferować lepsze warunki czy raczej w Polsce nie ma z czego wybierać


#5

Dzięki wielkie za wszystkie linki :slight_smile: mam pytanie czy nie lepiej zakupić jakiś kurs czy są jakieś opcje certyfikatu z programowania (niekiedy papierek się przydaje) oprócz darmowej i samodzielnej nauki


#6

Nie studiuję w ZUT, nie wiem jakie ma opinie. Nawet w trakcie studiów bardzo ważna jest samodzielna nauka.
To może wydać Ci się zabawne, ale decyzję na jakie studia pójdę zmieniłem na kilka dni przed maturą z matmy (wcześniej miałem zamiar studiować kierunek humanistyczny xD).
Ale to taki mały offtop. Zmierzałem do tego, że nie ważne jakie Twoja uczelnia ma opinie, liczy się ile pracy SAMA w to włożysz.

[quote=“Agata_Jasinska, post:5, topic:831”] mam pytanie czy nie lepiej zakupić jakiś kurs czy są jakieś opcje certyfikatu z programowania (niekiedy papierek się przydaje) oprócz darmowej i samodzielnej nauki
[/quote]

Szczerze mówiąc, trudno mi cokolwiek na ten temat powiedzieć, ale ze swojego (króciutkiego) doświadczenia zawodowego wiem, że większość pracodawców na własną rękę sprawdza wiedzę kandydata (testy, projekty rekrutacyjne itp). Papierek zawsze ładnie wygląda, ale rekruter chyba woli zobaczyć Twoje konto na GitHubie.


#7

Wow, dzięki, to dało mi dużo do myślenia :slight_smile:


#8

tak z ciekawości pracujesz jako programista czy jest to bardziej hobbistyczne zajęcia dla ciebie?


#9

Zarówno jedno i drugie :smiley:


#10

Ja dodam jeszcze coś od siebie.
U mnie na studiach (politechnika lubelska), nie uczą totalnie nic ciekawego :smiley: Wszystko co związane z programowaniem już umiałem, albo poziom tego był tak żałośnie niski, że szkoda gadać. Za to mamy dużo matmy (ale takiej raczej mało potrzebnej w programowaniu), dużo fizyki, elektroniki itd. Ale mam nadzieję, że tak tylko u mnie :smiley:
W każdym razie. Najwięcej możesz nauczyć się samemu. Tylko potrzeba dużo motywacji i pracy.
Trzeba tylko wiedzieć, że czytanie książek o jakimkolwiek języku (C++, java) nie nauczy Ciebie niczego. Tak samo jak suche czytanie tutoriali. Praktyka, to uczy najbardziej :smiley:
A studia, czasu jest może mniej, ale zawsze studia są. Życie bywa dziwne, i niekoniecznie programista będzie pracował jako programista. Zawsze lepiej studia mieć, niż nie. Taka jest ogólnie zasada :slight_smile: A na studiach często trafiają się ludzie, którzy mogą więcej Ciebie nauczyć, niż wszyscy wykładowcy na uczelni :smiley: Chyba, że samemu będziesz taką osobą xD W każdym razie, zawsze fajnie jest poznać ludzi którzy interesują się tym co Ty i dodatkowo Ciebie motywują :wink:


#11

Znajdź kogoś w realu kto Cie podtrzyma i pomoże. Zachęci i będzie dla Ciebie miał chwilę. Reszta przyjdzie z czasem.


#12

Też politechnikę lunelską kończyłem, ale II stopnia zaocznie i powiem Ci że matmy właśnie nie miałem, bardziej skupiali się na praktycznych przedmiotach a siatka godzinowa uzupełniana była jakimś przystosowaniem do rynku pracy chociażby. Jeśli chodzi o zajęcia z programowania, sam sobie poziom wyznaczasz w pewnym sensie. Umiesz więcej, wyznaczone zadania szybciej ogarniasz i możesz zająć się czymś innym. Ja w trakcie studiów korzystałem z kursów eduweb.pl, C#, java, środowisko androida, więcej można się nauczyć jak się samemu przyłoży do tego, a nie czeka aż ktoś nam wiedzy do głowy nałoży.


#13

Widzę że już sporo odpowiedzi, ale może dorzucę coś od siebie:-) Osobiście bardzo polecam C# i środowisko Visual Studio w technologii .NET. Czemu? Bo oszczędza głupich kłopotów (które pod dodstatkiem dostarcza C++), z drugiej strony nie rozleniwi Cię tak jak języki nietypowane. I nauczy obiektowości :smiley: Jeśli chcesz, to podrzucam mój artykuł dla totalnie niezaawansowanych. Tłumaczę wszystko łopatologicznie ;- ) Jak coś dawaj znać, jestem pod mailem i służę pomocą!


#14

Od siebie, jeśli chodzi o programowanie wgl, od czego zacząć.

Ja bym powiedział, że od C++.
Powód? Ciężko na początek zrobić coś więcej, ale zwraca uwagę na rzeczy związane z np. obsługą pamięci, z których w innych językach wyręcza Cię technologia (na przykład garbage collector). Jeśli zaczniesz od razu od C#, czy Javy, to zwyczajnie te aspekty pominiesz. Wbrew pozorom, nie jest tak, że skoro niektórymi rzeczami zajmuje się środowisko uruchomieniowe, to można je zaniedbać, bo prędzej się to zemści chociażby w postaci zwykłej niewiedzy i braku zrozumienia materii. Nie chodzi o to, żebyś nauczył się biegle programować w C++ (sam nie jestem biegły i mi do tej biegłości brakuje, w końcu tylko student pierwszego (no, teraz w zasadzie drugiego :P) roku informatyki, a, nie oszukujmy się, żeby programować naprawdę dobrze, to trzeba mieć lata doświadczenia.

Jednakże, gdy siadałem już do C# nie miałem problemów z dokładnym zrozumieniem czym jest taka np. referencja i jak ona działa, czy z ogarnięciem z czego tak naprawdę zwalnia mnie dany mechanizm lub co mi ułatwia.
Wystarczy z tego C++ dowiedzieć się jak obsługiwać pamięć, pliki, czym są i jak działają wskaźniki. I trochę praktyki, zrobić dynamiczną tablicę dwuwymiarową i trochę sobie popisać sensowniej (np. na pierwszym semestrze na podstawach programowania jako drugi projekt mieliśmy zrobić tetrisa w SDLu. (co prawda szablon był już zrobiony, ale zawierał jedynie przykładowy program (latające logo wydziału (xD) z licznikiem czasu i FPS) z już napisanymi konkretnymi komendami do rysowania (i dobrze, bo SDL to szajs… 1,(9)/10)).

Generalnie 2/3 kloce sensownego napisanego kodu (kloc - kilo lines of code - tysiąc linii kodu), przy czym nie mówię tu o kodzie napisanym według dobrej praktyki itd. (wiadomo, że tak szybko nie wypracujesz stylu programisty z dziesięcioletnim stażem) tylko o kodzie, który nauczył Cię konkretnych mechanizmów.

Potem jak usiądziesz do np. C#, czy Javy ( aczkolwiek Javy nie polecam, pomijając osobiste upodobania, ciężko znaleźć DOBRE i BEZPŁATNE IDE do Javy (no, IntelliJ jest Git!), które nie sprawi, że na samym początku będziesz się wkurzał i rzucał mięsem (np. Eclipse, czy Netbeans…) zauważysz różnice pomiędzy pisaniem w C++ przy jednoczesnym zrozumieniu co tak naprawdę dzieje się w tej niższej warstwie abstrakcji.

A jak będziesz się z C++ przesiadał, to od razu na C# :stuck_out_tongue:
Dlaczego?

  • Dobre darmowe IDE dla obydwu języków (Visual Studio 2015 Community - w pełni darmowe, obsługujące C++, języki platformy .NET (C#, F#, VB#)
  • Składnie będzie dla Ciebie bardziej “przyjazna” niż ta z Javy (np. wszystkie modyfikatory dostępu występujące w C++ w C# działają tak samo (w Javie inaczej działa protected) jest tylko dodany czwarty modyfikator “internal”).
  • W C# możesz pisać gry z użyciem silnika Unity w bardzo prosty i przyjemny sposób :slight_smile:
    itd. itp. etc. (a się rozpisałem…)

#15

IntelliJ w wersji Community jest bezpłatne.


#16

Niby tak, ale w tej chwili i tak lepiej sięgnąć po C#, zwłaszcza, że Xamarin jest już darmowy, odkąd go Microsoft wykupił, i można w C# pisać zarówno na Androida jak i iOSa, Windows Phone + PC :stuck_out_tongue:


#17

Nie zgadzam się z tym, że zaczynanie od C++ to dobry pomysł.
Dlaczego? Bo:

To nie są rzeczy którymi powinna przejmować się osoba zaczynająca przygodę z programowaniem. Jeżeli zaczynasz, to chcesz się dowiedzieć czym są zmienne, jak zrobić pętlę, instrukcję warunkową czy też wydrukować coś na ekran. No wiesz… Dobra zabawa :smiley:

Dlatego na początek polecam języki skryptowe: JavaScript albo nawet lepiej - Python. Dlaczego? Bo można w nich zacząć programować bez tej całej przerażającej wiedzy typu “muszę teraz zaalokować tyle i tyle pamięci, bo jak nie to wyciek i katastrofa”. Ponadto Python wymusza na programiście dbanie o porządek w kodzie.

Jeżeli już się ogarnie podstawy w Pythonie, można się bawić z C/C++.


#18

@damoch wypluj słowo Python, proszę.
Jak już słyszę o Pythonie, to mam ochotę znaleźć bombę atomową w tablicy broni masowego rażenia, tylko najpierw muszę ją zacząć przeszukiwać od tab[0]…

Ale tak serio. Jeśli nazywasz “dowiedzieć czym są zmienne, jak zrobić pętlę, instrukcję warunkową czy też wydrukować coś na ekran” nauką programowania, to równie dobrze mógłbyś powiedzieć, że kreślenie szlaczków w pierwszej klasie to nauka pisania wierszy…


#19

xdddddddd

No tak, bo przecież PRAWDZIWI programiści zazwyczaj zaczynają od pisania własnego jądra systemu operacyjnego, albo frameworka do budowania webaplikacji :slight_smile:
Od czego ma zacząć w takim razie osoba, która nie napisała w życiu linii kodu?


#20

Wiesz, tu nie chodzi o zaczynanie od pisania jądra, tylko o to, że nauka tego, czym są zmienne,pętle etc. zajmie Ci góra tydzień. Potem wypadałoby zacząć robić coś w kierunku zrozumienia tego, co się dzieje zamiast klepać kolejne foreache, metody etc.