Jak poznajesz standardową strukturę / interfejs API / języka? [Zamknięte]


14

Rozumiem, jak kodować. Wiem, jak ominąć podstawy języków, których regularnie używam. Wiem, jak pisać nieco ponadpodstawowe wyrażenia regularne, mogę rozmawiać z bazami danych, mogę akceptować dane wejściowe, dane wyjściowe, obsługiwać pliki itp. Jestem mniej więcej pewien swojej podstawowej umiejętności wyrzucania kodu źródłowego średnio skomplikowany program.

Mój problem polega na tym, że nigdy nie czuję, że to wystarczy. Wydaje mi się, że znam tylko niewielką część standardowej biblioteki mojego języka i że dopóki nie zrozumiem wszystkiego, przynajmniej na marginesie, nie mam prawa nawet próbować znaleźć pracy przy jego użyciu. Jestem po prostu z college'u (społeczność / junior / whathaveyou), a moi przyjaciele dostają pracę w branży, ale nadal czuję się jak oszust lub pozer i że po prostu nie jestem wystarczająco dobry.

Czy istnieje znaczny znacznik „Wiem wystarczająco”, którego mógłbym użyć, aby upewnić się, że umiem kodować? Czy powinienem wziąć pod uwagę fakt, że przynajmniej jestem w stanie zakodować FizzBuzz jako wskaźnik, że można ubiegać się o coś? Jak mogę dowiedzieć się więcej o tych standardowych bibliotekach, frameworkach i / lub API stosunkowo łatwo? Regularnie koduję, czytam książki, ale moja wiedza wciąż wydaje się tak płytka.

WSPARCIE!


3
im więcej się uczysz, tym bardziej zdajesz sobie sprawę, jak mało wiesz. +1 za bardzo dobre pytanie.
devnull

Nie jestem pewien, czy te rzeczy warto zapamiętać. W końcu masz dokumentację do przeszukiwania, inteligentne IDE i tak dalej. O wiele lepiej jest wykorzystywać swój mózg do ważnych rzeczy, do podstawowej wiedzy, trzymając wszystkie zmienne API na zewnątrz.
SK-logic

I feel like I only know a small portion of the standard library of my languagezdanie to powinno być oficjalnym mottem C ++ .
ZJR

Odpowiedzi:


8

Moja rekomendacja kolego:

przestań myśleć binarnie (0/1, nie znając / wiedząc, analfabetyzm / piśmienność) i zacznij myśleć niewyraźnie (wiem do pewnego stopnia). Wszyscy wiemy coś i do pewnego stopnia. Wiedza jest kontinuum i każdy znajduje się gdzieś pomiędzy najbardziej niepiśmienną osobą a najbardziej kompetentnym, wyrafinowanym facetem. Możesz wykonać tę pracę, ale na swoim poziomie i poniżej tego . To jest reguła. Nie bój się Nie czekaj na dzień, w którym dowiesz się wszystkiego o swoim frameworku, a IMHO tego dnia nigdy nie nadejdzie. Nawet programiści z 20-letnim doświadczeniem wciąż czytają, aby uczyć się nowych rzeczy. Programowanie ma tak szeroki charakter, że nie powinieneś (lub nie możesz) złapać tego wszystkiego.

Zanurz się w środowisku pracy i nie bój się. Wszyscy mieliśmy dni, kiedy nie mogliśmy nic zrobić. To nie jest przestępstwo. To część naszej pracy. Nie wiesz, uczysz się, próbujesz wykonać pracę i wykonasz ją.

Myślę, że teraz musisz mieć więcej wiedzy. Raczej jest to po prostu pewność siebie.

Powodzenia


Rozumiem, że to cała rozmyta wiedza i trochę szczegółowego uczenia się JIT. Po prostu nie wiem, jak się upewnić, że nawet nie rozumiem podstaw. Martwię się, że całkowicie przegapiłem kilka naprawdę ważnych rzeczy.
Throwaway

2

Myślę, że zadajesz tutaj niewłaściwe pytanie, a jeśli pozwolisz mi trochę na nieuzasadnioną psychologię, myślę, że dzieje się tak dlatego, że nękają cię wątpliwości i niska pewność siebie.

Przestań szeroko porównywać się z innymi

Przede wszystkim nie można porównywać się na szerokim poziomie z innymi programistami. Nawet gwiazdy rocka, na które możesz teraz spojrzeć, prawdopodobnie mają problemy (niechlujstwo, Yet Another Way Of Things i problemy z nastawieniem), więc nie martw się o to, czy porównasz je z nimi. Zamiast tego, twoim podejściem powinno być pozyskanie jak największej liczby mentorów, zebranie całej możliwej wiedzy i polepszenie się poprzez obserwowanie i naśladowanie ekspertów.

Nauczyć się uczyć

Ponadto najlepszym podejściem do zostania lepszym programistą i ogólnie uczniem nie jest uczenie się określonych rzeczy lub rozumienie przez pamięć. IMO, zapamiętywanie na pamięć jest najniższą formą uczenia się. To jest jak program, w którym brakuje kluczowego kroku „przetwarzania” wejścia-> Proces-> Wyjście. Naucz się pojęć takich jak te, o których wspomniałeś w swoim pytaniu. Szerokie zrozumienie programowania to miejsce, w którym zapewniasz największą wartość. Uczenie się nowego języka w ramach paradygmatów, które znasz, to bułka z masłem w porównaniu do nauki rozwiązywania problemów.

A teraz kilka słabych rad od kogoś niewiele starszego od ciebie

Jednym z największych błędów, jakie popełniłem jako młody człowiek, było to, że podejmowałem za nich decyzje wszystkich innych, zakładając, że nie jestem wystarczająco dobry, a mój czas i talent nie były warte ich czasu i pieniędzy. Nieustannie podkreślam swoje umiejętności i talent, choć rzadko tak było. To był ogromny błąd.

Musisz zrozumieć, że nawet średnio przyzwoity programista wydaje się być czarodziejem przeciętnego codziennego Joe. Mogą cię nienawidzić, mogą mieć dość tego, że zawsze muszą zapytać lokalnego kujona, jak włączyć komputer, ale ponieważ brakuje im wglądu i zrozumienia tego, co robisz, bez względu na to, jak banalne i proste wydaje ci się to, nie jest to możliwe. do nich.

Ludzie zapłacą ci za twój czas, talent i energię. W naszej branży jest dość absolutnie okropnych programistów, którzy zabijają po prostu dlatego, że mogą usiąść i (prawdopodobnie) pisać podstawowe programy. Rozgrywaj swoje karty, rozwijając pewną siebie pewność siebie poprzez osiągnięcia, ćwicz swoje mówienie i mowę ciała, kontynuuj opanowanie swojego rzemiosła, zawsze szukając rzeczy, których nie znasz, i biegnij w kierunku tych rzeczy, aby uzyskać więcej zrozumienia, a na koniec: przestań bagatelizować umiejętności, które rozwinąłeś.


2

„Wiem wystarczająco” i „Jestem dobry do tej pracy” są zupełnie inne.

IMO „Jestem dobry do tej pracy” jest bliżej do „Znam podstawy i wiem - czego się uczyć / gdzie szukać / kogo zapytać / co przeczytać - aby wykonać moje zadania”.

(nie oznacza to, że zatrudniają cię, jeśli potrzebujesz 1-2 miesięcy na naukę, na przykład: zapisu / odczytu w plikach XML. Mam nadzieję, że rozumiesz, co mam na myśli).

Nie sądzę też, by którykolwiek programista powiedziałby „wiem wystarczająco”. (może „wystarczy, aby dostać pracę”, „wystarczy, aby być bogatym”, „wystarczy, aby ...”, ale nie „wystarczy” :))

EDYCJA: Kiedy mówię „podstawy” mam na myśli

  1. Podstawy programowania (bit, bajt, zmienne, funkcje, parametry, pętle, warunki, rekurencja)
  2. Podstawy języka programowania, z którym będziesz pracować (jak skompilować program, jak debugować program; jak korzystać z IDE; 90% słów kluczowych i wiedzieć, co robią, kiedy używać, jak ich używać; zmienna typy; jak używać rzeczy z 1 w języku; najbardziej przydatne biblioteki; obsługa błędów)
  3. „Połącz 1 i 2 swoją krwią” :)

(Być może będziesz musiał używać 2-3 języków w swojej pracy)

Zgadzam się z Saeedem, zanurz się w pracy, praca jest najlepszym sposobem na naukę rzeczy, pracujesz z ludźmi, którzy wiedzą więcej niż ty, uczysz się od nich, widzisz, jak działają, ale zaczęli tak jak ty (a może zaczęli z mniejszą wiedzą niż teraz).


Czytanie i pisanie plików XML nie zajęłoby mi miesiąca, choć nadal uważam, że prawdopodobnie zajęłoby mi to jeden dzień. Czy potrafisz rozwinąć „podstawy”? To właściwie główny wątek mojego pytania, ponieważ nie wiem, czy znam podstawy. Zdecydowanie znam niektóre podstawy, ale naprawdę martwię się, że brakuje mi kilku naprawdę fundamentalnych luk.
Throwaway

1

Masz świetne podejście! Jednym z podstawowych czynników sukcesu jest nigdy samozadowolenie. Nigdy się nie osiedlaj. Nigdy nie narażaj się na szwank. To powiedziawszy, bardzo trudno jest ustalić , jak dokładnie to zrobić (np. Znajomość „najlepszych praktyk” wykonywania zadania X nie jest tak prosta jak Googling, ponieważ każdy ma własne zdanie).

Najlepiej nauczyć się identyfikować dobry kod i uzasadnienie ( jak i dlaczego ). W tym celu polecam czytanie blogów renomowanych specjalistów w naszej dziedzinie, ponieważ wystawi cię to na sposób myślenia. Przyczyniając się do projektu open source jest również jednym ze sposobów, aby skoczyć na głęboką wodę, jednak będzie ona daje możliwość uczenia się od innych, gdyż ci obecnie postępuje.


Dzięki. Nie sądzę, że zdałem sobie sprawę, jak bardzo potrzebuję usłyszeć takie pochwały.
Throwaway

0

Myślę, że większość z nas wcześniej lub później była w takiej sytuacji. I za każdym razem, gdy wybierzesz nowy język, wszystko zaczyna się od nowa. Pierwsza rada ode mnie brzmiałaby: nie rozpaczaj, nie jesteś sam. I: prawdopodobnie jesteś lepszy, niż myślisz, choćby dlatego, że się zastanawiasz. Pamiętajcie o starym przysłowie: głupcy pędzą tam, gdzie aniołowie boją się stąpać.

Obecnie większość języków ma standardowe biblioteki, które są po prostu zbyt duże, aby jedna osoba mogła je całkowicie na pamięć. Dodaj frameworki i interfejsy API na górze, a prawdopodobnie nie będziesz w stanie wiedzieć wszystkiego. Najlepsze, co możesz zrobić, to poznać podstawy, a następnie dowiedzieć się, gdzie można dowiedzieć się więcej. Z doświadczeniem staje się coraz lepszy, więc prawdopodobnie najlepsza rada: po prostu idź i użyj tego!

Nie ma jednego znacznika „przyzwoitego”. Wszystko zależy od środowiska. To, co byłoby idealnie wystarczające dla jednej firmy / projektu, może być dalekie dla innej. Jeśli naprawdę potrafisz robić to, co mówisz, mógłbym zrobić z ciebie porządnego juniora i nie powinieneś mieć problemów ze znalezieniem dobrej pracy.


[Skopiuj / Wklej z mojego komentarza do komentarza @ e-MEE powyżej] Czytanie i pisanie plików XML nie zajęłoby mi miesiąca, choć nadal uważam, że prawdopodobnie zajęłoby mi to jeden dzień. Czy potrafisz rozwinąć „podstawy”? To właściwie główny wątek mojego pytania, ponieważ nie wiem, czy znam podstawy. Zdecydowanie znam niektóre podstawy, ale naprawdę martwię się, że brakuje mi kilku naprawdę fundamentalnych luk.
Throwaway

0

Opierając się na tym, co piszesz w swoim pytaniu, faktycznie potrafisz kodować i jesteś gotowy poprawić swoje umiejętności i wiedzę.

Każdy w każdej pracy musi zacząć od początku jako początkujący, a następnie rozwijać się z doświadczeniem.

To, jak szybki jest twój wzrost, zależy od ciebie, wszyscy rosną z różnymi prędkościami, jedyną ważną rzeczą jest to, że teraz nie wymagasz od siebie zbyt wiele.

Jeśli czujesz, że jeszcze nie rozumiesz, nie martw się. Wkrótce będziesz w stanie uzyskać zdjęcie.

Możesz rozpocząć pracę w branży tak szybko, jak to możliwe. Ponieważ już umiesz kodować, możesz już zacząć działać. Jest tak, ponieważ teoria nie jest wystarczająco dobra, potrzebujesz praktyki i problemów w świecie rzeczywistym, aby rozwiązać.

Jeśli chodzi o wiedzę o kodzie biblioteki, przyjdzie z czasem, o ile będziesz go studiować, czytać dokumentację i ćwiczyć z niego korzystanie. Takie strony są również bardzo przydatne i nauczysz się szybciej, jeśli będziesz aktywnie zadawać pytania i odpowiadać na nie.

Osobista rada: jeśli naprawdę chcesz się wyróżnić spośród wielu ludzi, którzy robią kod spaghetti, nazywając siebie programistami, poznaj najlepsze praktyki. Nie ma znaczenia, z jakiego języka lub biblioteki się uczysz, czy kodujesz, poznaj najlepsze praktyki. Pozwoli ci to zaoszczędzić dużo czasu, błędów, błędów, bólów głowy i pomoże ci poczuć się lepszym programistą.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.