Skocz do zawartości
WebCM

Jak uczyć się informatyki?

Rekomendowane odpowiedzi

Uwaga: kto nie zgadza się z twierdzeniami, które podam poniżej, może otwarcie zaprotestować.

 

Jak uczyć się dobrze programować?

 

To pytanie może zadać zarówno początkujący i doświadczony.

 

Oprócz chęci uczenia się mamy także aspiracje twórcze - po prostu pisać programy, tworzyć strony...

 

Tu zaczyna się problem. Początkujący postawi kilka pytań:

1. Od czego zacząć?

2. Co mi się w życiu przyda?

3. Czy tworzyć coś, czy tylko się uczyć i uczestniczyć na forach i blogach?

4. Czy zająć się pisaniem programów, budową stron, grafiką 2D, 3D czy czymś innym?

5. Czy publikować swoje prace?

6. Czy zająć się tworzeniem na zlecenie lub czy jestem na to przygotowany?

7. Po które źródła (strony, kursy, książki) sięgnąć?

 

Własne projekty

 

Potrzeba samorealizacji stoi najwyżej w piramidzie Maslowa. Na pewno chcesz dobrze wykorzystać swój potencjał. Być może zamierzasz zaistnieć w sieci (potrzeba uznania). Możesz się wykazać i przydać na różne sposoby, ale omówię tylko inwencję twórczą.

 

Podzielę projekty na kilka grup i podam przykłady:

1. Proste programy użytkowe - narzędzia, kalkulatory, konwertery, kulki, kółko i krzyżyk

2. Zaawansowane programy - edytory HTML, biurowe, specjalistyczne, słowniki, matematyczne

3. Proste skrypty do pobrania - liczniki, ankiety, skrypty

4. Zaawansowane skrypty do pobrania - fora, CMS-y, specjalistyczne systemy, frameworki

5. Zaawansowane biblioteki do pobrania - systemy szablonów, mail, grafika, komponenty

6. Strony domowe lub tematyczne - tworzone w różnych celach

7. Skrypty użytkowe - zazwyczaj działają tylko na stronie autorów

8. Gry - działają jako programy lub skrypty, zaprogramowane lub stworzone w kreatorach

 

Im bardziej skrypt jest zaawansowany i popularny, im więcej autorzy mają ambicji, tym więcej wyzwań. Na pewno do realizacji najłatwiejsze są punkty 1, 5 i 6. Nie jesteśmy pod presją terminu ostatecznego (deadline). 3 i 7 stawiają więcej wymagań, choćby udzielanie pomocy poszkodowanym (czyt. użytkownikom naszych dzieł), regularna aktualizacja projektów, wdrażanie nowych funkcji. Najtrudniejsze to: 4 i 7. Na to potrzeba dużego nakładu pracy, aby program lub skrypt liczył się i konkurował. Dochodzi rozwiązywanie często skomplikowanych problemów, poprawianie błędów, ciągłe ulepszanie i dostosowywanie produktu (bo konkurencja nie śpi, a Internet ewoluuje).

 

Czy to najlepszy sposób na naukę?

 

Zostawmy na chwilę potrzebę samorealizacji, a wróćmy do nauki. Rozwijając jakiś projekt (samodzielnie lub grupowo), testując go na różnych konfiguracjach, czytając fora, blogi, podręczniki, aby potem zastosować wiedzę w praktyce, łatwo zyskujemy doświadczenie i umiemy radzić sobie z wręcz nierozwiązalnymi problemami.

 

Jednak teorię poznajemy przez cały czas. Gdy spojrzę na kod, który pisałem kilka lat temu, muszę przyznać, że wiele się nauczyłem - właśnie przez praktykę. Zdaję sobie sprawę, że wciąż nie tworzę w sposób profesjonalny, wciąż popełniam wiele błędów, ale teraz przynajmniej dbam o wydajność i bezpieczeństwo. Wiedzę zdobywałem miesiącami w Internecie. :)

 

Wciąż zadaję sobie pytanie, czy wypuszczanie skryptów (mniej lub bardziej zaawansowanych) było dobrym posunięciem. W rezultacie staram się za wszelką cenę ulepszać stworzone dzieła (przecież wyznaczyłem sobie cele - wydać wersję X, dodać funkcje Y, Z, naprawić M, N, O) zaniedbuję naukę w szkole, ostatnio praktycznie spędzam czas przed komputerem :lol2:

 

Argumenty za tworzeniem zaawansowanych projektów lub uczestniczeniem w nich:

1. Szybko uczymy się dobrze programować w praktyce

2. Mamy satysfakcję, podnosimy samoocenę, realizujemy się w dziedzinie

3. Kształcimy swoją inwencję

4. W niektórych przypadkach wykorzystujemy wiedzę z nauk ścisłych

 

Argumenty przeciwko:

1. Potrzeba dużego nakładu czasowego - zaniedbujemy szkołę / studia / pracę

2. Siedzimy w kółko w 1 lub kilku projektach (dożywotnio?), który może się znudzić

3. Wciąż się uczymy, popełniamy błędy - jesteśmy odpowiedzialni za ewentualne szkody

4. Być może istnieją lepsze polskie projekty, a my tylko niepotrzebne tworzymy konkurencję

5. Zaniedbujemy inne dziedziny informatyki, nauki ścisłe - matematykę, fizykę...

 

Jeśli nie projekty, to co? Może punkty 1, 6, 7, 8? Kto nie ma umiaru, i tak będzie spędzał większość czasu w oknie przeglądarki internetowej, grał w gry, a za zadania domowe, leORT: ORT: ktury, teorię, nauki ścisłe zabierze się w nocy (jeśli wcześniej nie pójdzie spać).

 

Podzielimy się swoimi doświadczeniami :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

zacznijmy od tego że 1. pytanie w temacie jest do bani bo informatyki to się uczy w szkole a bycia informatykiem od bycia informatykiem ogólnie nie polecam ;] 2. nie odpowiedziałeś na nie ;]

 

bycia programistą można się za to uczyć ale tu bym raczej zaczął od pytania na co masz ochotę i co sprawia ci przyjemność, potem wytypowałbym bliskie temu zastosowania mające przyszłość (olać www! neuronki ?) i wybrał odpowiednie technologie (nie nie phpa.., javki ?) z czego w sumie powinny wyjść sensowne pieniądze i wtedy siadał do szukania poligonu. O;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli masz 'zajawke' na to, i nie jest to takie wymuszone siedzenie i dłubanie - to trwaj w tym. To jest tak prężnie rozwijająca się dziedzina (developerka na potrzeby sieci), że żadne studia etc nie są w stanie być 'na bierząco'.

 

Chcesz zrobić coś nowego? Napisz dobrego frameworka typograficznego dla CSS (np), poczytaj o ASP.net, o MS Silverlight. Php5 (OOP) + mysql + ajax + js + perl. Jeśli jesteś kozakiem w temacie i przychodzi Ci to łatwo, z przyjemnością - to za 2-3 lata będziesz przebierał w ofertach.

 

forest kila zbila - moim zdaniem uczenie sie programowania na potrzeby sieci jest o tyle ciekawe, ze mamy mase dostepnych materialow edukacyjnych, no i siec jest przyszloscia. Wystarczy zobaczyc jak wygladaly strony 10 i 5 lat temu a jak teraz ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Gość chronicsmoke

Ja mam zamiar zacząć uczyć się na własną rękę CMSów + php. Po roku studiowania informatyki stwierdzam, że chcą mnie nauczyć wszystkiego czyli niczego co dla pracodawcy będzie przydatne bo w KAŻDEJ firmie od projektu jest inna osoba od pisania kodu w jednym języku też inna i od pisania kodu w jeszcze innym języku jeszcze inna a i algorytmami kto inny jeszcze się zajmuje. To już nie te czasy gdzie jedna osoba może dużo wnieść, wszystko idzie w kierunku wyspecjalizowanego pracownika tylko w jednej dziedzinie współpracującego w grupie. Bardzo fajny post ;) Jeżeli ktoś zna się na CMSach i php to prosiłbym o parę porad na PW od czego zacząć ( jakie książki, poradniki, kursy). Ja powiem krótko i otwarcie. Najlepsi informatycy jakich znam ( zarabiający 10k+) to SAMOUKI którzy już w latach 90 pasjonowali się tym i zrobili studia tylko dla papierka bo pracodawca za to płacił. Więc poszerzaj swoją wiedzę na własną rękę ale papierek ze studiów to też i ważna karta przetargowa przy szukaniu zatrudnienia którą warto mieć ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tak jak mówi chronicsmoke, np. studia informatyczne (przynajmniej na PG) są tylko po to, aby być, i tak naprawdę niczego nikt Cię dobrze nie nauczy, oni przez 5 lat pokazują podstawy, a to czy Tobie się coś z tego spodoba zależy wyłącznie od Ciebie i musisz siedzieć w domu i sam próbować. Kolejnym warunkiem jest to, żeby Ci się to podobało, sprawiało przyjemność, bez tego będzie mega ciężko. :) 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ale kto powiedział, że aby być programistą trzeba iść na studia? Wiadomo, że na infie nie mogą się skupić tylko na 1 rzeczy bo muszą Ci pokazać podstawy grafiki, programowania, sieci, bazy danych itd, itd.

A to, że ktoś już na samym początku studiów wie w czym dokładnie chcesz robić to tym lepiej dla niego i niech więcej czasu poświęca na to. Jednak są osoby, które idą na informatykę nie wiedzą, dokładnie w jakiej dziedzinie chce pracować. Branża IT jest szeroka. Po drugie kto wie czy np. po 4 latach po skończeniu studiów nie stwierdzisz: mam dość programowania, chce się wziąć za sieci. Wtedy masz już pewne podstawy (które miałeś na studiach) i Ci będzie trochę łatwiej ;).

 

Takie jest moje zdanie, ale ja się nie znam i nie studiuję infy ;).

Edytowane przez shoq

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

 

Ale kto powiedział, że aby być programistą trzeba iść na studia?

Bardzo dobre stwierdzenie. Popieram w pełni. :) Tylko mam nadzieję, że zdajesz sobie sprawę, że bez takiego papieru jesteś w d... , no chyba, że fartem. A nawet jeśli dobrze zarabiasz to z papierkiem zarabiałbyś jeszcze więcej. ;) 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli ktoś wymaga wyższego wykształcenia od informatyka (czy to programista, czy grafik, czy webmaster), to tylko dlatego, iż nie ma o tym zielonego pojęcia. Dla niego nadal papier jest gwarancję większej wiedzy, niż 20 lat przed ekranem. A potem wielkie zdziwienie, że gość wie wszystko o niczym lub odwrotnie.

 

Widziałem ostatnio kilka ogłoszeń dla programisty PHP i chyba w żadnym z nich nie było ani słowa o szkole, wykształceniu itp. Ogłoszenia takie to zazwyczaj małe firmy programistyczne, których założyciel także jest programistą i po prostu sam nie wyrabia. Wtedy są tylko czyste wymagania co do pracy: PHP, SQL, Smarty, framework - o JS, HTML i CSS nie wspominając. Można być nawet po podstawówce, jeśli tylko potrafi się robić to, co do niego należy.

 

Jak uczyć się informatyki?

 

1. Gry na bok. Tłumaczenia nie trzeba. Im wcześniej to rzucisz, tym więcej czasu na pożyteczne rzeczy.

 

2. Wiedzieć, czego się będzie potrzebować. Nie uczyć się archaicznych języków. Jeśli nie zamierzasz programować sterowników urządzeń, to ASM jest Ci zupełnie zbędny do życia. Pascal czy zwykły C to także przeżytek. Delphi także wyleciało z obiegu.

Co się sprzedaje? Robienie stron, ale tego jest już powoli przesyt. Grafika? PS też już każdy gimnazjalista pobrał z Netu i się uczy. Na CAD nadal mało kto się porywa. Natomiast zastosowanie ma dużo szersze i jest lepiej płatne.

Jakoś jeszcze trzyma się C++, dobrze sprzedaje się C# z całą platformą .NET oraz Java. Na koniec wszelkie sieciówki - administrowanie serwerem Unix/Linux, sprzętem CISCO itp.

 

3. Dużo czytać, zarejestrować się na forum tematycznym. Pisać/rysować ile się tylko da - nawet jeśli czegoś nie potrzebujesz. Np zobaczysz stronę w Sieci, uznasz że jest ładna, ciekawie zrobiona i dość skomplikowana - wyzwanie: zrób taką samą! Zajmie to trochę czasu, dużo czytania, trochę przekleństw, kilka nocy i dużo kawy, ale zdobytych umiejętności nikt Ci nie odbierze.

 

4. Znajomość angielskiego piekielnie ułatwia sprawę. Większość dokumentacji czy pomocy jest w tym języku. Ciężko znaleźć ich dobre odpowiedniki polskie, bo zazwyczaj wszyscy czytają oryginał.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

To ja dopisze kilka moich przemyśleń do wypowiedzi ULLISSES-a

 

5. Dobra znajomość sprzętu też się przyda. Wiedząc co i jak piszczy w budzie czasem pomaga.

 

6. Nie opłaca się iść w kierunku wąskiej specjalizacji bez pomacania innych dziedzin. Dzisiejsze realia wymagają od ludzi elastyczności, a mając przynajmniej podstawowe pojęcie na dany temat łatwiej się w niego zagłębić.

 

7. Jak masz możliwość to przyklej się do kogoś kto ma pojęcie o informatyce i może Ci dużo pokazać. Łatwiej się czegoś nauczyć mając podstawę praktyczną.

 

8. Nie zniechęcaj się początkowymi niepowodzeniami :)

 

 

Co do wymagań przedstawianych przez niektórych pracodawców to ULLISSES ma rację. Co do poziomu kształcenia to uczelnie i inne szkoły są daleko za postępującymi zmianami z branży IT. Szkoła to nie wszystko, trzeba po prostu samemu się dokształcać aby nie zostać w tyle za galopującym światem.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dopowiem tylko odnośnie szkół na moim przykładzie:

 

LO:

podstawy obsługi kompa/Windows - imo bez sensu, kto chce być informatykiem to już powinien to umieć

Język C - martwy, sprawę ratuje fakt, że C++, PHP oraz Java mają kilka podobieństw

Word + Excel - masakra

Visual Basic - połowa obecnych maturzystów o takim nigdy nie słyszała, uczy myślenia które nie sprawdza się chyba w niczym

 

 

Studia:

podstawy kompa - pewności nie mam, ale chyba było

Pascal - teoretycznie pod kompilatorem Delphi, ale nigdy żadnej formy czy buttona na zajęciach nie użyliśmy

C++ - totalne podstawy + głupie sztuczki i kruczki z kolejnością funkcji, zabawy w stylu: jaki będzie wynik tego wyrażenia: T!I^&&G*&^#G&^T^G&^T%, jedyny pożytek: wskaźniki

systemy operacyjne Unix - był jakiś wynalazek od Suna, ułomna konsola i najbardziej zryty edytor tekstowy, jaki wymyśliła ludzkość

HTML, CSS, PHP - totalne podstawy, nawet nie raczyłem chodzić na wykłady, bo wykład był lata świetlne za tym, co wtedy robiłem

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Co do programowania i studiów to wyższe wykształcenie owszem, jeśli jest ono potrzebne do zrozumienia tematu (np. robisz programy obliczeniowe albo takie, które wymagają wiedzy inżynierskiej) to wtedy rozumiem, że wymagają wyższego, jednak do zwykłych programów okienkowych to tam znajomość języka, algorytmów i wymaganej technologii starczy. Sam żałuje, że w technikum się nie interesowałem programowaniem bo mogłem już wtedy spokojnie się uczyć języka klepiąc proste programy.

C# bym się teraz chętnie nauczył jednak ciągłe zmiany, które Microsoft wprowadza i które trzeba je śledzić, żeby być na bieżąco oraz znajomość bogactwo .neta mnie trochę przeraża, gdyż wymaga dużo czasu, który trzeba poświęcić na naukę (jednak jeśli się mylę to mnie poprawcie ;) ). C++ się trzyma, ale wydaje mi się, że z czasem on zostanie wyparty i pozostanie tylko na urządzeniach mobilnych, telefonach czy jakiś systemach embedded, a jeśli chodzi o kompy to tam raczej c# i Java.

 

Do CAD to raczej bym szukał kogoś po Mechanice i Budowie Maszyn, Budownictwie bo to jednak trzeba mieć też ogólne pojęcie o temacie tego co się projektuje ;).

Edytowane przez shoq

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...