Pozwolę sobie na mały wstęp. Jestem na 1 roku na politechnice. Uczyli nas niby programowania od 0 w C++. Ja wcześniej nie miałem w żadnym stopniu styczności z tym i jest to dla mnie bardzo ciężkie mimo, że jestem ścisłowcem. Gdzieś czytałem, że znajomość angielskiego jest w tym przydatna. Mi raczej się w niczym nie przydała.
W grupie na studiach 2/3 osób wcześniej programowała i dobrze sobie z tym radzą, pozostała część nie miala z tym styczności i tylko 1 osobie udało się zaliczyć laboratoria. Trochę się martwię tym, że tego nie rozumiem, więc chciałbym poszukać pocieszenia/informacji. Proszę o wyrozumiałość.
Czy najlepszą metodą uczenia się programowania jest tylko i wyłącznie praktyka? Czytałem trochę 2 książki na ten temat, ale jakoś niewiele z tego wyniosłem. Kupiłem też tutorial, który mi pomógł trochę, ale nie załatwił problemu.
Czy zawsze początki tego bywają takie ciężkie? Wydawało mi się, że jestem kumatym człowiekiem w tych kwestiach, ale jak rozumiałem większość na wykładzie, to jak dostawałem zadanie na kolokwium, to musiałem dłużej pomyśleć jak je wykonać i na następne nie miałem już czasu.
Początki to nie tylko składnia i specyfika języka, ale i nauka nowego sposobu myślenia - jak za pomocą dostępnych narzędzi i wiedzy osiągnąć określony cel/rozwiązanie problemu.
Z własnego doświadczenia - wiedza potrzebna do zaliczenia przedmiotu nie zawsze jest tożsama z umiejętnością programowania. Mój wykładowca C++ sprawił, że wyrwany z łóżka w środku nocy mogłem działać na wskaźnikach i wskazywać w gotowym kodzie, w których liniach zmieniają się które wartości. Tyle że kiedy miałem napisać coś własnego i bardziej rozbudowanego… było ciężko.
IMO najpierw powtarzaj przykłady z książek. Po nabraniu jako-takiej sprawy czytaj tylko, co ma robić program, pisz to na własny sposób i na końcu porównuj sposób twój i książkowy.
Czytanie przed komputerem, kiedy czytasz sobie i praktykujesz. Przynajmniej dla mnie (właśnie, może dla Ciebie inna metoda jest dobra?), fakt - chyba nie C++.
Po prostu trzeba samemu eksperymentować, wyznaczać sobie coraz ambitniejsze projekty do zrealizowania. Na Twoim poziomie znajomości C++ polecam Symfonię C++ Grębosza - dobrze napisana książka, które nie tylko uczy suchej praktyki, ale też pokazuje co z tym można zrobić.
A jak już ogarniesz jeden język programowania tak że będziesz w stanie robić rozbudowane projekty (wykorzystanie zewnętrznych bibliotek, GUI itp) to już będziesz na etapie w którym ogarnięcie innego języka zajmie Ci kilkanaście, kilkadziesiąt dni.
A znajomość angielskiego - na poziomie podstawowym faktycznie zbędna, ale spróbuj napisać coś bardziej skomplikowanego bez czytania chociażby dokumentacji MSDN, która oczywiście jest po angielsku
Wiesz tutaj musisz ćwiczyć, ćwiczyć i jeszcze raz ćwiczyć zazwyczaj na początku jest ciężko, jednak później naprawdę można się wyrobić. Jest taka strona, jak http://www.spoj.pl/
Możesz pobrać zadania w *.pdf’ie i pisać programy.
Praktyka,możesz nawet analizować proste programy,najważniejsze jest zrozumienie składni samego języka w którym piszesz programy,książka ma tylko cię naprowadzić i nie denerwuj się jak coś nie wychodzi,np. zaczynasz od prostego hello world i dopisujesz do niego pobranie np twojego imienia z klawiatury i wyświetlenie go,potem bawisz się zmiennymi ,petlą for,while,czy piszecie programy,które mają coś wyświetlać,narysować na ekranie ?
Warunki w stylu jeśli wpiszesz 18 z klawiatury to system ma wyświetlić że masz 18 lat (if,switch,case w C,C++)
Uważam, że Twoim problemem jest przeniesienie się w pewien poziom abstrakcji jakim jest programowanie. Polecam program “Laboratorium Informatyki Eli”, który pozwala konstruować schematy blokowe. Jestem pewny, że jeżeli przerobisz w nim podstawowe matematyczne algorytmy, polski klasyk programowania: sortowanie bąbelkowe, przez wybór, przez wstawianie, NWD, liczba MAX, liczba MIN, silnia, ciąg fibonacciego. To da Ci duży postęp w zrozumieniu co tak na prawdę dzieje się w kodzie. I jest to uniwersalna droga rozwoju gdyż w większości o ile nie we wszystkich językach algorytmy blokowe zamienisz na kod. Powodzenia, mi to pomogło ale wybór należy do Ciebie.