Jak się uczyć programować?

0

Z racji tego, że nauka programowania to trudny i złożony proces, a ja jestem jeszcze początkujący, napisałem poniżej schemat wg którego się uczę. Jeśli ktoś by coś dodał lub zmienił to chętnie przyjmę różne uwagi.

  1. Ustal priorytety np. 1) struktury danych i algorytmy, 2) programowanie obiektowe, 3) LINQ, 4) bazy danych, 5) grafika/refleksja/serializacja...
    przykładowo jeśli nie umiesz wystarczająco dobrze i nie stosujesz swobodnie programowania obiektowego to nie zaczynaj nauki baz danych, czy refleksji, bo wszystko ci się pochrzani

2 ) konsultuj pomysły/projekty. Jeśli zrobisz jakiś projekt koniecznie daj go do sprawdzenia komuś bardziej doświadczonemu a z pewnością wytknie ci mnóstwo błędów np brak refaktoryzacji, wzorców projektowych, nieużywanie bloku try and catch, zasady SOLID itp

  1. stawiaj sobie realne cele i uparcie do nich dąż, np jeśli uczysz się asp.net mvc to pierwszy projekt niech będzie dość prosty, tak żebyś bezstresowo go zrobił np. jakaś aplikacja do podliczenia rachunków, opłat, (wypełnienie prostych formularzy), potem nieco trudniejsza np strona internetowa z danymi wyświetlanymi z bazy, a potem jeszcze trudniejsza np sklep, forum itp

  2. selekcja informacji. Nie kupuj/pobieraj pierwszej lepszej książki, tylko sprawdz jej spis treści, opinie, porównaj z innymi. Najlepiej kupuj dość tanią i skondensowaną treść,

  3. nie czytaj książek od deski do deski. Jeśli robisz jakiś projekt i potrzebujesz bardziej szczegółowo wiedzieć o czymś to doczytaj o tym np w ksiażkach czy dokumentacji. Czytaj o czymś jeśli akurat tego potrzebujesz, a nie na zapas.

2

Najlepiej to jednak lepiej przeczytać jakąś książkę od deski do deski żeby mieć jakieś pojęcie. Ja polecam "C# rusz głową", po spisie treści jest tam wszystko co powinien chyba wiedzieć początkujący, są trzy laboratoria kiedy można się wykazać samemu + dużo ćwiczeń. Mówię o spisie treści, bo ciągle się zacinam i nie mogę jej skończyć, bo przestaje i robię coś innego. Później ktoś się bierze za coś większego i się pyta na forum czemu mi się coś nie kompiluje, a np. źle inicjuje zmienne. Niestety dla początkujących którzy z programowaniem mają styczność po raz pierwszy, nie mają wyrobionego myślenia to wiedza w internecie jest dość rozproszona i często przy łączeniu kolejnych kawałków kodu wychodzą babole bo nie zna się podstaw.

1

Kursy / wiedza w internecie są 90% niskiej jakości. A to autorowi brakło energii do dalszych rozdziałów, a to sam ledwie wyszedł z etapu poczatkujacego , a to jego układ kursu jest nieoptymalny/ błedny
Szukanie przez googla z natury bardziej wystawiam problemy (więc błedny kod) niż coś dobrej jakości.
Do korzystania z wiedzy internetowej już tzreba mieć dobre fundamenty. Do kopiowania kodu tzreba być naprawdę dobrym.

Książka papierowa (właśnie do mnie jadą trzy) czy na czytnik wymaga zaangażowania przez wydawnictwo kasy i ludzkiej pracy, więc następuje odsiew. Pierwszą bym czytał sekwencyjnie, od deski do deski (z przerwami na ćwiczenie)

1
  1. Ustal priorytety np. 1) struktury danych i algorytmy, 2) programowanie obiektowe, 3) LINQ, 4) bazy danych, 5) grafika/refleksja/serializacja...
    przykładowo jeśli nie umiesz wystarczająco dobrze i nie stosujesz swobodnie programowania obiektowego to nie zaczynaj nauki baz
    danych, czy refleksji, bo wszystko ci się pochrzani

Sztywne podejście. Po prostu dobieraj narzędzia do projektu. By działać nad projektem dajmy na to do 10LOC bardzo często nie potrzebujesz wiedzy specjalistycznej. Wystarczy, że zaczniesz badać wybrany temat gdy napotkasz jakiś większy problem. Poza tym Twoja pierwsza wersja projektu nie musi być idealna, jak będziesz z czasem poprawiać błędy to też będzie git.

2 ) konsultuj pomysły/projekty. Jeśli zrobisz jakiś projekt koniecznie daj go do sprawdzenia komuś bardziej doświadczonemu a z pewnością wytknie ci mnóstwo błędów np brak refaktoryzacji, wzorców projektowych, nieużywanie bloku try and catch, zasady SOLID itp

Sęk w tym, że te błędy czasem nic nie znaczą. Osoba, która sprawdza Twój projekt opiera się na pewnym zbiorze zasad do przestrzegania. Jesli zapytasz osobę, która rzeźbi bardzo duży system, to pewnie powie Ci, że nie masz tego czy tego wzorca (albo powie, że masz niewydajne zapytanie itp), a jak zapytasz kogoś kto pisze mniejsze aplikacje to ten powie Ci, że już strasznie komplikujesz (i że Twój problem to nawet bez bazy da się rozwiązać). I kto ma wtedy rację?

Na początku dużo eksperymentuj i niech Twoim sędzią będą Twoje doświadczenia z systemem. Przykładowo jeśli dostajesz wiele zgłoszeń o błędach to może dlatego, że nie masz testów. Jak wybrane testy ciężko dodać to może dlatego, że w pewnym miejscu przydałby się bardziej ogólny styl. Ale to nie znaczy, że od razu musisz wszystko ogólnie pisać. I to samo co do narzędzi. Jak apka wolno chodzi, to pierw zrozum dlaczego i jeśli faktycznie zapytanie będzie wolne to poducz się tematu, zbadaj z czego wynika i popraw.

Jako żółtodziub nie masz doświadczenia, a wszelkie rady i tak możesz źle zinterpretować. Jak chcesz mieć doświadczenie zbudowne poprzez rozwiązywanie problemów to reaguj na problemy - nie twórz ich z góry sam sobie.

  1. stawiaj sobie realne cele i uparcie do nich dąż, np jeśli uczysz się asp.net mvc to pierwszy projekt niech będzie dość prosty, tak żebyś bezstresowo go zrobił np. jakaś aplikacja do podliczenia rachunków, opłat, (wypełnienie prostych formularzy), potem nieco trudniejsza np strona internetowa z danymi wyświetlanymi z bazy, a potem jeszcze trudniejsza np sklep, forum itp

Trochę tak, ale w takim przypadku nie robisz projektu tylko uczysz się asp.net W normalnej sytuacji byłoby odwrotnie. Piszesz projekt, który jest ważny dla Ciebie i najpierw dobierasz jak najprostsze narzędzia, a jak sytuacja tego wymaga to podkręcasz swój warsztat.

  1. selekcja informacji. Nie kupuj/pobieraj pierwszej lepszej książki, tylko sprawdz jej spis treści, opinie, porównaj z innymi. Najlepiej kupuj dość tanią i skondensowaną treść,
  1. nie czytaj książek od deski do deski. Jeśli robisz jakiś projekt i potrzebujesz bardziej szczegółowo wiedzieć o czymś to doczytaj o tym np w ksiażkach czy dokumentacji. Czytaj o czymś jeśli akurat tego potrzebujesz, a nie na zapas.

Jeśli punkty 4 i 5 dotyczą dajmy na to książek o obsłudze frameworka to prawdopodobnie masz rację, ale tylko wtedy. Zacznij czytać więcej klasyki :-)

1

Odpowiem krótko i zwięźle:

Według mnie najlepiej się nauczyć programowania poprzez przeczytanie książki od danego języka (Z samgo czytania nawet bez wykonywania ćwiczeń się można sporo nauczyć), także ciekawym sposobem nauki jest czytanie dokumentacji języków/technologi. No i jeszcze jest ostatnia opcja nauki czyli youtube i kursy online. Z tego co piszesz to widzę że chcesz się nauczyć C# ' pa wg. mnie grafika i elementy interfejsu klienta czyli przyciski, zdjęcia itp. itd. to powinno iść na koniec ponieważ to nie jest aż tak ważne w nauce programwania, trochę ważniejsze już są bazy danych, ale jak się nie nauczysz od "deski do deski" podstaw to niez zrozumiesz nic z baz danych. Dlatego radził bym się skupić na początku na podstawach, bo jak dobrze się nauczysz podstaw jednego języka to inne zaawansowane rzeczy będą łatwiejesze tak jak i nauczyenie się innych języków programowania. Ja bym dodał jeszcze żeby się nie poddawać, ponieważ często może być tak że wyskoczy ci pierwszy Błąd i powiesz: "Eeeee... Za trudne to jest" to jest słomiany zapał i trzeba z tym walczyć.

Co do (2 punktu to się z tym zgadzam, ponieważ doświadczony programista może ci pomóc w wyeliminowaniu błędów i optymalizacji kodu ( Co do optymalziacji kodu to tu znajdziesz trochę więcej informacji: (Nie czepiać się że to jest moje ;p ) ).

Jak i koledzy do *(3 punktu * także się zgdzam i jak już napisałem nie możesz się zniechęcać. Powinienneś na początek zacząć z czymś prostym np. Napisaniem gry kółko-krzyżyk. Caly czas się uczysz i jak będziesz uparty i będziesz dążył do swego to na pewno będziesz dobrym programistą ;)

Punkt (4 i (5 cóż, jak się uczysz podstaw to powinieneś chociaż książkę z podstawami podstaw języka, przeczytać od deski do deski. Zgadzamsie z tym że jeśli potrzebujesz jakiś informacji, lub chcesz się douczyć to znajdź dokumentację. Także nie pobieraj szlamu z internetu. Poniżej dam ci kilka linków do fajnych książek i dokumentacji do C# ' pa

Linki:

Marcin Lis C# podstawy: https://helion.pl/ksiazki/c-praktyczny-kurs-wydanie-iii-marcin-lis,cshpk3.htm#format/d Btw, polecam wydawnictwo helion

Dokumentacja .NET Microsoftu: https://docs.microsoft.com/pl-pl/dotnet/

Mam nadzieję że pomogłem. @Mondonno :D

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