Trochę tła
Mam dziś 28 lat i nigdy nie odbyłem żadnego formalnego szkolenia w zakresie tworzenia oprogramowania, ale mam dwa stopnie naukowe odpowiadające licencjatowi z Public Relations i Executive MBA z zakresu zarządzania projektami. Pracowałem na tych polach łącznie przez około 6 lat, a 2,5 roku temu rzuciłem / straciłem pracę i postanowiłem zmienić kierunek.
Po miesiącu zastanowienia postanowiłem rozpocząć freelancing, tworząc małe strony internetowe w WordPress. Sam się nauczyłem i dzisiaj mogę powiedzieć, że prowadzę skromną, ale odnoszącą sukcesy karierę, opracowując od podstaw motywy i wtyczki dla moich klientów - głównie agencji zlecających część pracy programistycznej dla średnich / dużych stron internetowych.
Ale czasami po prostu czuję, że brak wystarczającej wiedzy z matematyki lub brak formalnego zrozumienia rzeczy naprawdę mnie powstrzymuje, gdy muszę konkurować lub pracować z bardziej doświadczonymi programistami. Ciągle szukam sposobów, aby dowiedzieć się więcej, ale wydaje mi się, że brakuje mi podstaw.
Niestety, spędzanie 4 kolejnych lat w informatyce nie jest teraz opcją, więc staram się nauczyć wszystkiego, co mogę, z książek i zasobów internetowych. Ta metoda nigdy nie spowoduje, że NASA mnie zatrudni, ale tak naprawdę nie obchodzi mnie to w tej chwili. Moim celem jest, aby najpierw przekroczyć poprzeczkę i móc nazywać się prawdziwym programistą.
Obecnie spędzam wolny czas studiując Javę dla programistów (aby opanować język, który według wszystkich jest trudny / wymagający), czytając fragmenty kodu Complete (aby uzyskać najlepsze praktyki), a także Code: The Hidden Language of Computer Sprzęt i oprogramowanie (aby uchwycić wewnętrzne działanie komputerów).
TL; DR
Tak więc moja obecna sytuacja jest następująca: w zasadzie jestem w stanie napisać dowolny kompletny system w PHP (z pomocą Google i kilku książek), zintegrować Ajax, SQL i tak dalej, i może trochę wolniej niż oczekiwałby doświadczony programista z powodu wszystkich zaangażowanych badań.
Ale wczoraj utknąłem w martwym punkcie, próbując znaleźć (nie Google) rozwiązanie dla testu FizzBuzz, ponieważ nie zapamiętałem operatora modułu if($n1 % $n2 == 0)
metody .
Co sugerujesz jako dobry sposób rozwiązania tego dylematu? Jakie przedmioty / książki powinienem studiować, aby szybciej rozwiązywać problemy, a może bardziej „w sposób programistyczny”?
EDYCJA - Wydaje się, że było pewne zamieszanie w kwestii tego, czego nie wiedziałem, aby rozwiązać FizzBuzz.
Może nie wyraziłem się dobrze: znałem kroki potrzebne do rozwiązania problemu. To, czego nie zapamiętałem, to operator modułu. Problem polegał na transpozycji podstawowej matematyki do programu, a nie na znajomości podstawowej matematyki.
Podjąłem test dla zabawy, po przeczytaniu o nim w Coding Horror . Właśnie zdecydowałem, że to dobra linia porównawcza między mną a formalnie wyszkolonymi deweloperami.
Użyłem tego tylko jako przykładu tego, jak nie radzenie sobie z matematyką w środowisku komputerowym sprawia, że tracę czas na szukanie podstawowych rzeczy, takich jak operatory modułu, aby móc rozwiązać proste problemy.
I'm basically capable of writing any complete system in PHP (with the help of Google and a few books)
i łączę to z tym, że nie wieszif($n1 % $n2 == 0)
, zastanawiam się nad narażeniem na rzeczy napisane w PHP. Myślę, że większość rzeczy, które robisz, wykracza poza proste obliczenia modulo. Czy mógłbyś dać więcej wglądu w to, co według ciebie jesteś w stanie zrobić?stuck b/c I didn't memorize %
problemu warto zauważyć, że istnieją inne sposoby na zrobienie tego: (przy założeniu, że $ n2! = 0)if (is_int ($n1 / $n2))
lubif (($n1 / $n2) == (int) ($n1 / $n2))
znajomość słów kluczowych to jedno, a umiejętność wyrażenia podstawowych pomysłów w przypadku braku wbudowanego rozwiązania jest inne.Odpowiedzi:
W twoim przypadku, ponieważ jesteś samoukiem i masz już dobre, zdrowe podejście do nauki bez BS. Nadal kilka sugestii ...
Praktyka czyni mistrza
Myślę, że powinieneś zanurzyć się w ćwiczeniach programowania, takich jak:
Weź nawet pytania z poprzednich egzaminów znanych uniwersytetów wokół ciebie lub lokalnych (lub zdalnych) konkursów programistycznych. Na przykład, mamy fajną we Francji dla początkujących programistów, która nazywa się Prologin , i co roku zapewnia dobrą serię łamigłówek (prawdopodobnie tylko po francusku, przepraszam, ale to jest to, co mam na myśli ).
Więcej informacji: gdzie mogę znaleźć programistyczne łamigłówki i wyzwania?
Klasyczne książki i referencje
Moglibyśmy również polecić bardzo długą listę niesamowitych książek , ale powiedziałbym, że Zen odpowiada, że nie ma jednej właściwej drogi do Oświecenia.
Trudno byłoby powiedzieć, które są na szczycie listy. Czytaj dalej mnóstwo rzeczy, aby poznać ogólne pułapki, których należy unikać, i najlepsze praktyki, których należy przestrzegać, tak jak teraz postępujesz poprawnie.
Więcej:
Przekraczając granice
Poszukaj również materiałów do drapania głowy, takich jak:
Niekoniecznie musi być traktowany jako przykład rzeczy do zrobienia w dzisiejszych czasach, ale warto spróbować dowiedzieć się, co się tam do diabła dzieje.
Systemy równorzędne są motywacyjne
Możesz także czaić się (i angażować) w następujące społeczności, aby stopniowo podnosić swoje umiejętności poprzez konfrontację z innymi.
Edukacja w niepełnym wymiarze godzin
Jeśli nie masz czasu ani motywacji, aby wziąć udział w kolejnym 4-letnim kursie lub czymś podobnym (co może nawet nie być konieczne lub przynosić satysfakcję i kosztowne), możesz rozważyć poszukiwanie materiałów do nauczania online. Oczywiście nie ograniczają się one do informatyki.
Dzięki oryginalnemu wysiłkowi MIT OpenCourseWare , teraz jest mnóstwo uniwersytetów, które poszły w ich ślady , i możesz znaleźć wiele materiałów na poziomie uniwersyteckim za darmo. Nie zawsze jest łatwa nawigacja i samodzielne czytanie, ale niektóre są dość dobrze zrobione. Aby zacząć od zera i iść dość wysoko, zastanów się również nad Akademią Khan .
Niektóre z nich idą nieco dalej i oferują darmowe kursy online, w których podobnie masz dostęp do materiałów kursu, ale także zapewniają one wykłady i regularne samooceny. Na przykład odwiedź Coursera lub Udacity .
Większość z nich często publikuje swoje wykłady na Youtube lub iTunesU, więc znajdziesz mnóstwo materiałów, jeśli twoje pragnienie wiedzy nie zostało stłumione przez wszystkie poprzednie linki.
Jeśli chcesz czegoś, co zapewni bliższe doświadczenie „prawdziwemu” uniwersytetowi, możesz wziąć pod uwagę uniwersytety zdalne, które pozwalają również na pracę w niepełnym wymiarze godzin, ale wymagają zachowania tempa oraz posiadania zarówno samooceny, jak i zakończenia roczne egzaminy (czasem na miejscu), jak w przypadku OpenUniversity i jego międzynarodowych wariantów.
Pasja utrzymuje Cię w ruchu
(i uzyskaj wystarczającą liczbę gałek ocznych, patrząc na Twój kod, aby Cię krytykować i mieć różne perspektywy)
Francuzi mówią:
Rób to, co robisz, a ostatecznie będziesz ekspertem. Zajmuje czas i pracę.
Zobacz także Mam problemy z nauką, aby uzyskać więcej sugestii.
PS: Chociaż jest to bardzo kontrowersyjne narzędzie do przeprowadzania wywiadów i nie pomaga w identyfikacji dobrych kandydatów, często używam FizzBuzz, aby przynajmniej wyeliminować niewiarygodnie „złych”. Więc zwróć uwagę na tę praktykę! :)
źródło
Nie pisałem zbyt długo (zacząłem uczyć się SQL około 27 miesięcy temu i zacząłem pisać w Perlu około 20 miesięcy temu), ale powyższy cytat brzmi jak niektóre rzeczy, które słyszałem od byłych uczniów:
Okej, ten ostatni był chyba trochę trudny ... ale staram się, aby rozwiązywanie problemów nie polegało na zapamiętywaniu . Gdyby tak było, to jakiś geniusz mógłby zaprogramować komputer, aby rozwiązał każdy problem i nikt z nas nie musiałby nigdy więcej myśleć (jaki to piekielny świat ...).
Prawdą jest, że każda próba intelektualna polega na przynajmniej odrobinie zapamiętywania. W szczególności, jeśli zamierzasz pisać w PHP, powinieneś zrozumieć podstawowe typy danych (liczby, ciągi, tablice), podstawowe rzeczy, które możesz z nimi zrobić (dla liczb: dodawanie, odejmowanie, mnożenie, dzielenie i moduł; dla łańcuchów: konkatenacja, podciągi, zamiana i przynajmniej pewna znajomość wyrażeń regularnych; dla tablic: konkatenacja, sczepianie elementów, łączenie elementów, zapętlanie, zliczanie elementów itp.) oraz podstawowych struktur logicznych, których można użyć (instrukcje if / then / else, foreach loop, while loop itp.).
Następnie, gdy napotkasz problem, użyj go, aby zapewnić kontekst dla potrzebnych narzędzi. W przypadku FizzBuzz musisz powiedzieć, kiedy liczba jest podzielna przez 3, 5 lub 15. OK, więc mamy do czynienia z liczbami ... jakie podstawowe narzędzia pozwalają nam stwierdzić, kiedy jedna liczba całkowita jest podzielna przez inną? Operator modułu. Więc skorzystaj z tego. (Oczywiście, jeśli masz numer
$n
, możesz być fantazyjny i sprawdzić, czy ostatnia cyfra$n
to 0 lub 5 i / lub czy cyfry$n
sumują się do czegoś podzielnego przez 3, ale ja dygresję ...) Musisz zrób to dla każdej liczby od 1 do 100, więc aby uniknąć dostania się tunelu do carpel, użyjforeach
pętli.Morale tej historii jest to, że jeśli z jednej strony powiesz „Jestem w zasadzie zdolny napisać dowolny kompletny system w PHP”, az drugiej strony nie możesz napisać kodu do FizzBuzz, to pierwsze stwierdzenie jest błędne. Niektórzy z moich byłych studentów rachunkowości przeklinali w górę i w dół, że rozumieli pojęcia, ale po prostu nie mogli rozwiązać problemów na egzaminie ... ani zadań domowych ... ani problemów z quizem. Myliły się również co do swojego zrozumienia.
Przestań robić wymówki i naucz się podstaw.
źródło
Możesz myśleć, że FizzBuzz to problem z zabawkami; kiedy będę musiał użyć operatora modułu w prawdziwym programie. Ale tak naprawdę używasz go cały czas. Trzy typowe przykłady:
row_number % 2 == 0
) i wyświetlasz jeden kolor dla wierszy parzystych i jeden dla wierszy nieparzystych.if item_number % N == 0
został zapisany jako równoważny (if item_number|divisbleby: N
).if cur_item_number % 50 == 0 then commit_data
.Pewnie, że istnieją inne sposoby robienia tych wszystkich rzeczy. Ale możesz zrobić fizyczny szum bez użycia operatora modułu lub porównywania podziału zmiennoprzecinkowego z podziałem całkowitym. Na przykład dla FizzBuzz możesz zrobić coś takiego jak następujący pseudo-kod.
Podsumowując, jeśli chcesz zostać świetnym programistą, nie wskakuj do nauki książek językowych. Tak, w książce PHP / Java będziesz otrzymywać odpowiedzi z google / stackoverflow i programów działających w połowie znacznie szybciej niż cokolwiek innego. Ale aby móc wiedzieć, jak pisać optymalne programy o jakości i myśleć jak programista, trzeba mieć kontakt z prawdziwymi książkami z CS.
Zacznij od książki CS, która wprowadza język programowania i tło CS, ze słynnym przykładem struktury i interpretacji programów komputerowych (który nauczy Schematu - dialektu Lisp) lub czegoś innego jak Think Python Jak myśleć jak komputer Naukowiec (którego nie przeczytałem). Oba są bezpłatne online.
W końcu musisz przeczytać dobrą książkę z algorytmami, najlepiej z algorytmami CLRS (nie za darmo), choć ta książka z darmowymi algorytmami onlinemoże to być tani zamiennik (choć jeśli możesz po prostu kupić CLRS). Książka algorytmów nauczy Cię, jak myśleć o rozwiązywaniu problemów z komputerem i zapozna Cię z różnymi strukturami danych (tablice / listy połączone / sterty / drzewa binarne / B-drzewa / tabele skrótów) i ważnymi algorytmami, które musisz wiedzieć, jak optymalnie używać . Nie musisz zapamiętywać każdego dowodu ani wiedzieć, jak perfekcyjnie napisać każdy algorytm (kto kiedykolwiek używa sterty Fibonacciego); ale intuicyjnie powinieneś wiedzieć, że dwa zagnieżdżone dla pętli to O (N ^ 2); sortowanie porównawcze jest w najlepszym wypadku O (N lg N), wyszukiwanie binarne to O (lg N), można znaleźć medianę w O (N), dlaczego bazy danych na twardym dysku używają B-Drzewa itp.). Co najmniej dobra znajomość książki algorytmów pomoże Ci przeprowadzić asy techniczne wywiady programistyczne odmiany Google / Facebook. Czytając książki programistyczne, nie tylko przeglądaj / czytaj; ty'
Po przeczytaniu książki CS i algorytmów poleciłbym także książkę o inżynierii oprogramowania (Code Complete lub Pragmatic Programmer), która nauczy najlepszych praktyk pisania dobrego kodu, który można utrzymać (jasne nazwy; komentuj tylko w razie potrzeby ; trzymaj kod razem; refaktoryzuj w razie potrzeby; użyj kontroli wersji; itp.).
źródło
Nikt tego nie pamięta . Powinieneś sam to wymyślić. Jeśli znasz operatora modułu i wiesz, co on robi, to w trywialny sposób doskonale pasuje do problemu FizzBuzz.
Mam zamiar wyjść tutaj na całość i ogólnie sugeruję, że problemem jest PHP. Lubię powiedzieć, że Java jest najgorszym językiem, jaki kiedykolwiek zaprojektowano, a PHP jest najgorszym językiem , ponieważ nawet jego twórcy przyznają, że nigdy nie został zaprojektowany. Trudno jest nauczyć się dobrych praktyk inżynierii oprogramowania, gdy środowisko jest praktycznie definicją tego, jak tego nie robić. I w zależności od struktury, aby wszystko załatwić, niewiele mówi.
Java jest jednym z najłatwiejszych i najgorszych istniejących języków. Ma tylko jedno: ręczne dziedziczenie śmieci. Jeśli Twoi znajomi lub doradcy twierdzą, że Java jest trudna, znajdź nowych przyjaciół. C ++ to trudny język, który zawiera wiele pojęć i których nikt nie będzie kwestionował. Możesz także zrobić C #, który ma przynajmniej niektóre generyczne i lambdas.
Jak zamierzasz nauczyć się kodować, kiedy twoje języki zostały zaprojektowane i zaimplementowane przez ludzi, którzy nie potrafią kodować, a ty zależysz od ram dla wszystkiego, co robisz?
źródło
Myślę, że musisz rzucić okiem na powód, dla którego utknąłeś w obliczu FizzBuzz. Przypuśćmy, że pamiętasz, że istnieje operator, który
$n
powiedział ci, czy można go podzielić przez liczbę. I masz pecha, aby zapomnieć, co to jest. Dobrze, dlaczego nie spróbujesz tego zrobić w inny sposób? Jeśli wiesz coś o kodzie, powinieneś być w stanie znaleźć tuzin innych sposobów na zrobienie tego. Niektóre z nich mogą wyglądać dziwnie - na przykład umieszczanie każdej wielokrotności 5 w tablicy, a następnie sprawdzanie, czy$n
jest wśród nich - i jest to złe rozwiązanie, ale nadal byłoby rozwiązaniem. Mówisz jednak, że nie masz, po prostu utknąłeś. Może to być objaw większego problemu.W programowaniu musisz nauczyć się dwóch rzeczy.
Z twojego opisu wygląda tak, jakbyś zaczął od pierwszej części, ale trochę jej brakuje w drugiej części. Dobry kurs CS zwykle bardzo w tym pomaga, ale nie jest to jedyny sposób. Próbując rozwiązać różne problemy i poczytać o tym, jak problemy te należy rozwiązać, czytając cytowane tutaj podstawowe książki - wszystko to by pomogło. Po ustaleniu sposobu myślenia programisty odkryjesz, że korzystanie z nowej torby sztuczek nie będzie stanowić większego problemu. Oczywiście musisz tu i tam google, ale nigdy nie będziesz osierocony.
źródło
Jesteś dobry w rozwoju tak, jak jesteś dobry w czymkolwiek innym: ćwicz. W świecie programowania istnieje dobra koncepcja o nazwie kata kodu . Jest to w zasadzie ćwiczenie polegające na kodowaniu rozwiązania stosunkowo niewielkiego problemu, analizowaniu tego, co jest dobre, a co złe, wycinaniu wszystkiego i robieniu tego ponownie. FizBuzz jest kata sama w sobie. Zrób to i zrób więcej. Kiedy znajdziesz rzeczy, które wydają się niezbyt dobre lub po prostu nie działają, przeprowadź badania i bądź dogłębny. Zadawaj pytania na stronach z pytaniami i odpowiedziami, czytaj artykuły i blogi, zobacz, jak radzą sobie z tym inni, a następnie ćwicz to, czego się nauczyłeś.
Podczas wykonywania tej praktyki dowiesz się, ile dodatkowego matematycznego / teoretycznego zaplecza możesz potrzebować. Jeśli natkniesz się na koncepcje, których po prostu nie możesz owijać w głowę, przeczytaj o nich i ich niezbędnej wiedzy i zdecyduj na podstawie indywidualnych przypadków, czy chcesz wziąć udział w kursie lub co masz, aby rozwinąć swoją podłoże teoretyczne.
źródło
Rozumiem, że to znaczy, że nie wiedziałeś i / lub nie pamiętasz operatora modułu. W takim przypadku zacznij od sprawdzenia konstrukcji języka w języku, którego używasz. Przejrzyj wszystko, czego nie znasz „zimnem”, i naucz się wszystkiego, czego po prostu nie znasz.
źródło
Kontynuuj kodowanie, kontynuuj naukę. W końcu, przy wystarczającym zaangażowaniu, spojrzysz na FizzBuzz i zastanawiasz się, dlaczego w ogóle o tym pomyślałeś. Wiele firm zadaje pytanie w stylu FizzBuzz jako bardzo wczesna część swoich wywiadów, więc niepowodzenie tego razu oznacza, że przynajmniej dowiedziałeś się czegoś o procesie rekrutacji.
Po prostu pisz kod, wymyślaj pomysły na projekty i badaj.
źródło
Czy mogę polecić naukę JavaScript przed Java, C ++? Powody dla ciebie:
Darmowe zasoby dla początkujących
http://www.codecademy.com/tracks/code-year
https://stackoverflow.com/tags/javascript/info
Miałem około 10 dodatkowych linków, ale SE nie pozwoli mi ich opublikować, dopóki nie trafię 10 powtórzeń.
Nauka C ++, Java itp. Są również pomocne, ale nie IMHO nie ma tak dużego wpływu na programowanie sieciowe, jak JS, ponieważ można go używać zarówno na froncie, jak i na zapleczu. Baw się dobrze!
źródło
Możesz znaleźć i pomóc innym, np. Podając kod (ujawnienie: moja strona) lub Code for America lub cokolwiek innego. Jest to doskonały sposób, aby uzyskać większą ekspozycję na problemy z tworzeniem stron internetowych innych niż PHP i czuć się dobrze.
Gdy masz problem do rozwiązania - lub pomóc rozwiązać, lub po prostu zrozumieć - odebranie kodu przychodzi naturalnie po drodze. Osiągnięcie celu jest najlepszym sposobem na naukę czegoś.
źródło
Więc nie można rozwiązać problemu FizzBuzz. Wielka rzecz. Teraz możesz i założę się, że nigdy nie zapomnisz wszystkich niezliczonych sposobów. Staraj się nie być tak chętnym do oznakowania się złym programistą tylko dlatego, że nie możesz rozwiązać jednego głupiego problemu z głowy.
To jeden problem. Po drugie, wydaje się, że czujesz się trochę za krzywą uczenia się programowania. Jak powiedzieli inni, kontynuuj kodowanie i czytaj dalej. Im więcej robisz, tym lepiej. To takie proste. Zacznij od tego, co uważasz za największą dziurę w tle, i stamtąd.
źródło
Nie sądzę, żebym odmówił polecenia kogoś do wynajęcia, ponieważ nie wiedzieli, że to operator modułu, pod warunkiem, że:
Nie zawsze (choć zwykle)%, a niektóre języki są dziwne. I do diabła, po dekadzie nie mogę szczerze powiedzieć, że znam wszystkich operatorów Perla (i co jeszcze robi statek kosmiczny?), Ani też nie zawsze pamiętam doskonale operatorów bitowych. Minęło kilka lat, odkąd zrobiłem coś, co nawet wymagałoby tego.
Może wahałbym się polecić komuś, kto spowodowałby atak paniki z powodu pominięcia tego pytania / testu. Mogłoby to sprawiać wrażenie, że były trochę zbyt zielone (chyba że była to pozycja bardzo na poziomie podstawowym). Nikt nie potrzebuje kogoś, kto (lub czuje potrzebę) zapamiętania tych rzeczy. Potrzebujesz kogoś, kto rozumie znacznie szersze pojęcia. Nikogo to nie obchodzi, jeśli spojrzysz na to w Google, ale musisz być pewny w wywiadzie, że znajomość% nie była niczym wielkim, a także, że wiesz, jak używać operatora jako słowa kluczowego, gdy robisz szybkie google Szukaj.
Jest to także pomysł ... ale jeśli lokalna uczelnia ma program compsci, wszystkie inne kredyty zostaną przeniesione i prawdopodobnie potrzebujesz tylko około 20 punktów na 2-letni dyplom. Mogłoby to prawie zakończyć w semestrze. Poprowadzą cię przez kurs struktur danych, mam nadzieję, że algorytmy ... mogą cię wzmocnić.
źródło
Oto przykładowy kurs: http://www.ox.ac.uk/admissions/undergraduate_courses/courses/computer_science/computer_science_.html
Proponuję przeczytać najpierw: Programowanie obiektowe (bardzo powszechne, używane wszędzie, tutaj pojawia się Java) Współbieżność (pisanie programów Java, które nie ulegają tajemniczym awariom w prawdziwym świecie, poznanie impasu) Pojęcia dotyczące baz danych (większość aplikacji musi zapisywać dane, teoria jest tutaj ważna). Paradygmaty programowania (przeczytaj o co najmniej jednym języku non-ups, najlepiej funkcjonalnym, aby rozwinąć swoje myślenie i nauczyć się nowych rzeczy)
Kiedy patrzę na 4 lata edukacji informatycznej, szczerze mówiąc, myślę, że jest tylko kilka kursów, które należy wziąć na poważnie.
Struktury danych i algorytmy (a tutaj potrzebujesz matematyki, aby być naprawdę dobrym i być traktowanym poważnie przez innych programistów), najważniejsze są sieci komputerowe i systemy operacyjne. Inne tematy, które dotyczą kodu niższego poziomu, takie jak możliwość kodowania w asemblerze, prawdopodobnie nie są dla ciebie tak ważne. Inżynieria oprogramowania i testowanie narażają Cię na przydatne koncepcje, które możesz wykorzystać z czasem.
Wystarczy pobrać pdf, który wyjaśnia te pojęcia w intuicyjny sposób, a będziesz na dobrej drodze.
Na niektórych kursach informatycznych, przynajmniej w moim, pierwszy rok jest wstępem do wszystkich dziedzin inżynierii, takich jak mechanika, elektrotechnika, inżynieria lądowa itp. Jest wiele skomplikowanych obliczeń matematycznych, pamiętajcie, które znowu mogą, ale nie muszą być istotne dla większości programistów aplikacji dzisiaj. Tak więc wielu inżynierów dzisiaj ma zaledwie 3 lata prawdziwej edukacji informatycznej (Mam nadzieję, że dzięki temu poczujesz się lepiej :)
Sedno odpowiedzi: codziennie możesz poświęcić trochę czasu na naukę, powiedzmy godzinę, i z czasem stać się całkiem dobrym programistą. Po prostu kontynuuj naukę. I pamiętaj, aby codziennie pisać kod.
źródło
Dla mnie moja strategia polega na tym, że atakuję tylko problem związany z tym, co pracuję, więc radzę, abyś nie musiał się wszystkiego uczyć, po prostu przeczytaj te rzeczy, które są istotne dla tego, nad czym pracujesz, ponieważ jeśli spróbujesz nauczyć się tego wszystkiego naraz, wtedy masz tendencję do prostaty i w końcu nienawidzisz programowania.
Pokój
źródło