nauka kodowania przez "ciężką pracę"

nauka kodowania przez "ciężką pracę"
0

cześć wszystkim
Ostatnio po głowie chodzi mi pewna myśl. Może zacznę od tego, że jak przypuśćmy chcemy się nauczyć matematyki to zwykle uczymy się z książki, a potem robimy zadania. Zwykle im wiecej zadań robimy, tym jesteśmy lepsi: uczymy się nawyków, zapamiętujemy sztuczki i wzory. Stąd często się mówi np. że można być bardzo dobrym z matematyki jak się "ciężko pracuje".

Takie same zwroty często widuje w wypowiedziach ludzi między innymi na tym forum lub jakimś innym, w stylu: ciężko pracowałem przez pół roku(np uczylem sie javy, php, c++ whatever) i dostałem się na staż/juniora

Przypuśćmy, że jest pan Gienek. Pan Gienek ma czas, ma dużo chęci i zapał do nauki, ale nie bardzo wie, co to znaczy "ciężka praca", a chce być dobry.
Jak wszyscy wiemy, np. czytajac same tutoriale dobzi nie będziemy. "praktyka czyni mistrza", ale nie łatwo jest odwzorować praktykę, która istnieje w pracy, praktykując samodzielnie w domu i w dodatku, nigdy nie mając styczności z taką "prawdziwą" praktyką.

Przypuśćmy, że Gienek chce być dobrym developerem Javy w przyszłości. Prostackie będzie pytanie "co zrobić żeby być dobrym?" bo pewnie za to zostałbym utopiony falą WTFów w odpowiedziach, ale jak postępować, żeby nie marnować czasu na bzdety, a faktycznie uczyć się wartościowych rzeczy. Co to znaczy "cięzka praca": robienie w kółko nowych programów, o różnej funkcjonalności bez czytania za dużo, czy może praktykowanie i czytanie na równi, czy może jedynym sposobem jest staż/praktyki? Co tak na prawdę w okresie nauki odróżnia tych, którzy kiedyś będą dobzi, a tych którzy bedą przeciętni?

Selige widziałem. Ale nie wiem czy wkucie informacji dot. concurrency, protokołu TCP czy inne bez praktyki coś da. Wiadomo, że to ważne informacje, ale zdobyte w drodze nauki, a nie wstukane w łeb młotkiem bo "must know to be awesome".

Stawiam, że open-source jest dobrym sposobem na zdobycie doswiadczenia. Tylko zeby gdzieś się wkręcić to trzeba mieć jakąś porządna wiedze, zeby nasze commity były w ogole uwzglednione, jako przynajmniej akceptowalne.

Mam szczerą nadzieję, że mój przekaz zrozumieliście :)
Pozdrawiam

JE
  • Rejestracja:około 11 lat
  • Ostatnio:ponad 9 lat
  • Postów:71
0

nauczyć się tyle, żeby umieć coś napisać -> napisać tyle, żeby mieć co pokazać na rozmowie -> zacząć pracować w danej technologii

Wiem po sobie, że rozkminianie "jak się uczyć" kiedy nie ogarnia się danej technologii na tyle, żeby w niej pracować na najniższym stażowym/juniorskim stanowisku to strata czasu.

Jasne, że trzeba mieć jakieś podstawy teoretyczne. Przecież nie można pisać "z głowy" w frameworku, którego się na oczy nie widziało :D Przeglądanie/pisanie z API/tutorialami to nic innego jak nauka tej "teorii".

Książki (dobre!) dają fajny fundament, ale na początku polecam je czytać raczej do poduszki, a skupić się na robieniu konkretnych rzeczy.

Powiem ci co to ta "ciężka praca" w moim wypadku była.

Jakieś 4 miesiące nauki Ruby i RoR + JavaScript, HTML, CSS na znośnym poziomie. Głównie dobre tutoriale + dokumentacja + klepanie małych rzeczy na początku praktycznie przeklepywanie z tutoriali, potem pisanie bardziej samodzielnie i zadawanie pytań na Stackoverflow jak coś się wysypało, a ja nie umiałem sobie poradzić. Do poduszki jakaś dobra książka dot. samego języka + coś tam Meyer'a dot. CSS i HTML.

0

Skąd taka rezerwa u wielu do książek (pytanie bez tezy)? Rozumiem, że można z dystansem patrzeć na pozycje, których tytuły zawierają słowa/frazy jak "wstęp", "podstawy", "w 10 dni", ale przecież na rynku jest trochę "krów", "cegieł" po prawie 1000 stron na temat jednej technologii. Nie jest to wystarczająca ilość teorii dla juniora, a nawet regulara?

LukeJL
kiedyś się uczyłem z takich cegieł, ale na dzisiaj bałbym się uczyć z książki papierowej o konkretnej technologii, skoro teraz technologia zmienia się z miesiaca na miesiąc, więc taka ksiazka zawierała by przedawnioną wiedzę już w momencie jej wydania...(szczegolnie wydana w Polsce, gdzie dodatkowo dochodzi czas na tlumaczenie jej)
niezdecydowany
niezdecydowany
ale co komu po tym że przeczyta ? przeczytaj dokumentacje springa - jutro będziesz pamiętał że .... że czytałeś, nic więcej.
mr_jaro
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Grudziądz/Bydgoszcz
  • Postów:5300
0

Książka pomaga zacząć ale później ją odkładasz i już więcej na nią patrzysz.


It's All About the Game.
0

Różnie często książki są bezsensu napisane, bo wałkują proste tematy, a trudne są opisane, jakby autor sam tego nie rozumiał, albo co gorsza leją wodę, czytam czytam a dalej wiem to samo. Poza tym takie przerabianie książek, że lecimy po kolei i rozkminiamy przez początkującego jest bezsensu, wiem bo sam tak robiłem, chociaż warto ogólnie ogarniać, ale nie za taką cenę czasu.

LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:9 minut
  • Postów:8408
0

nauka to jedno, drugie to że trzeba być zorientowanym w rynku, czyli przegladac chociazby ogloszenia o prace albo fora branzowe i wiedzieć, jakich frameworków się używa, jakie są wymagania na stanowisko, na ktore byś chciał aplikować - wtedy nie będziesz się uczyl w ciemno.

No i ważne są rzeczy typu system kontroli wersji (np. GIT), testy jednostkowe, umiejetnosc pisania eleganckiego kodu (a nie spaghetti), umiejetność pracy z cudzym kodem, i ogólnie z dużą iloscia kodu źródłowego napisanego przez kogoś innego (na szczescie jest duzo projektow open source, ktore mozna sobie podejrzeć/użyć/zmodyfikować, a wiec rownież cwiczyć te umiejętnośc "pracy z cudzym kodem").

No, a to niekoniecznie są rzeczy majace związek z jakąs konkretną technologią.


edytowany 2x, ostatnio: LukeJL
0

ciezkom pracom ludzie sie bogacom

DA
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 9 lat
  • Postów:52
0

Ja się uczę tak, że czytam książkę od deski do deski i robię zadania do każdego rozdziału (chociaż kilka zadań) i tyle (albo aż). Na uczelni sprawdza się ta metoda, a czy w pracy potem też poskutkuje to już czas pokaże :). Uważam też, że dobrze jest potem wrócić za jakiś czas do takiej książki i przeczytać ją jeszcze raz (niekoniecznie z robieniem zadań), bo w książce jest często dużo detali, które są przydatne, a o których zapominamy.

MI
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:3
0

Pierwszą książkę o programowania warto przeczytać cała, po polsku. Dlaczego? Bo łatwiej zrozumieć pojęcia klas,klas abstrakcyjnych,obiektów, dziedziczenia ,pól,metod i wielu innych. Jak się będziesz uczył kolejnego języka to wtedy warto korzystać z dokumentacji bo jak to wyżej napisali wszystko się ciągle zmienia.

0

Z tym, że przykładowo: uczyliśmy się danych techonologii (zostanmy przy javie, bo troche ją znam) gdzie są frameworki tj spring czy jee, gwt, wicket, jsf i wiele innych i nagle staneliśmy w miejscu i nie wiemy co dalej. Tutoriale przeklepane, pare swoich niedokonczonych aplikacji popisane i świadomość, że można wiedzieć znacznie więcej, ale kompletnie nie wiadomo skąd to brać.
A jeśli ktoś zna np springa i jakiegos vaadina, to czy warto uczyć się znowu kolejnych technologii frontendowych(nauka gwt, jsfa i innych) czy backendowych(jakies implementacje jee tj. jersey), bo myślę, że lepiej jest coś, jak to się mówi "zmasterować", niż wiedzieć o wszystkim po troche.
A może dodatkowy język jest wart nauki, scala, python, ruby? (ale to chyba podobna sytuacja co uczenie się nowych frameworków: nie masterujemy, a poznajemy wciąż nowe)

LukeJL
"pare swoich niedokonczonych aplikacji popisane" - no właśnie. Można więc je dokończyć. Albo zacząć pisać aplikację na tyle małe, żeby nie przerwać w połowie z braku umiejętności/motywacji itp. Aplikacją, która coś robi i działa można się nawet pochwalić przed pracodawcą, a zaczętym "czymś" nie bardzo... ;)
JE
Nie polecam uczyć się X języków i Y technologii jeśli żadnej nie zna się na tyle, żeby móc w niej pracować. Kwestia jaki masz obecnie cel.
LukeJL
no i w ogóle to umiejętność planowania projektów, oraz kończenia/rozwijania zaczętych, to umiejętnosć nie mniej ważna niż czysto techniczna znajomość frameworków...
0

Zależy od tego, czy stawiasz tylko na kasę, czy również na erudycję.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)