Skocz do zawartości

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

Barn

Nauka programowania

Rekomendowane odpowiedzi

Witam!

 

 

Czy wg Was można samemu w warunkach domowych nauczyć się programowania w wybranych językach? Ile czasu potrzeba aby osiągnąć jakiś w miarę normalny poziom (załóżmy, że ktoś jest w miarę inteligentny)? I jak uczyć się pod kątem tego czego wymagają pracodawcy?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Innego sposobu nie ma jak się sam nie nauczysz, pójdziesz na studia to tylko powiedzą czego masz się sam dowiedzieć... Żeby nie robić jakiejś reklamy, ale możesz się zainteresować kursami edu web, dobrze tłumaczą.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ile czasu potrzeba aby osiągnąć jakiś w miarę normalny poziom (załóżmy, że ktoś jest w miarę inteligentny)? I jak uczyć się pod kątem tego czego wymagają pracodawcy?

 

W przypadku technologii backendowych do dużych systemów wg mnie rok do dwóch regularnej nauki, jeśli start jest całkiem od zera. Frontend może nieco szybciej.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A może ktoś opisać taki typowy dzień pracy jako programista w korporacji na stanowisku juniorskim. Mniej więcej, jakie zadania ma taka osoba. Czy jest wspierana na początku przez osoby bardziej doświadczone, czy też od samego początku oczekuje się samodzielności w wykonywaniu powierzonych poleceń.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ja niestety jako junior w korpo nic ciekawego nie miałem okazji robić. Poprawiałem jakieś literówki i gówno-błędy w stylu źle wyświetlająca się lista w archaicznym projekcie z masą złych praktyk. Po pół roku zmieniłem na małą firmę, też jako junior, i tam było o wiele lepiej. Powiedzieli mi, czego muszę się nauczyć, wskazali dobre źródła wiedzy i dali jakieś 2 mies na naukę plus zrobienie projektu w ramach samouczka, na którym potem mi wytłumaczyli, co zrobiłem dobrze, a co nie i dlaczego. Po trzech miesiącach nauki byłem w stanie robić normalne zadania z resztą zespołu, przy czym firma robiła raczej proste rzeczy.

 

Ogólnie co firma to obyczaj, ale na start zazwyczaj dostajesz naprawę błędów, żeby poznać projekt i bardziej doświadczone osoby powinny jakoś wspierać nowych. Poświęcić 30min na ogólne obgadanie projektu albo jakiś pair-programming. Duże korpo to raczej zwiększone ryzyko trafienia na crapowy projekt z archaicznymi technologiami i złym podejściem do kodu. Celowałbym tylko w miejsca, gdzie używają mikroserwisów. O wiele łatwiej się wdrożyć i większa szansa, że projekty są zrobione (w miarę) dobrze. A jak do tego używają Dockera to już jest całkiem spora szansa, że będzie lux.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A może ktoś opisać taki typowy dzień pracy jako programista w korporacji na stanowisku juniorskim. Mniej więcej, jakie zadania ma taka osoba. Czy jest wspierana na początku przez osoby bardziej doświadczone, czy też od samego początku oczekuje się samodzielności w wykonywaniu powierzonych poleceń.

To wszystko zależy i nie ma żadnych reguł. Ja gdy zaczynałem, dostałem prosty projekt do zrobienia dla klienta. Nie byłem taki całkiem zielony w tym co robię, ale też doświadczenia zero. Miałem osobę, która sporo mi pomagała i tłumaczyła. Znów później dostałem prosty projekt i później już trudniejsze, ciekawsze i większe aż po 1.5 roku byłem najbardziej ogarnięty z całego zespołu (mała firma, parę osób odeszło, a ja też robiłem drugie tyle w domu po godzinach).

 

W obecnej mojej firmie jest przyjęte, że takie osoby są dev-sterami czyli pracują jako testerzy przez 2-3 miesiące poznając środowiska pracy i w międzyczasie w domu realizują zadania od managera (programistyczne). Jeśli przejdą pomyślnie taki test to zostają programistami i dostają normalne projekty jak inni, tylko że manager im więcej pomaga i ich dogląda.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
W obecnej mojej firmie jest przyjęte, że takie osoby są dev-sterami czyli pracują jako testerzy przez 2-3 miesiące poznając środowiska pracy i w międzyczasie w domu realizują zadania od managera (programistyczne). Jeśli przejdą pomyślnie taki test to zostają programistami i dostają normalne projekty jak inni, tylko że manager im więcej pomaga i ich dogląda.

 

Ciekawe zasady, u wiekszosci programistow ktorych znam by to nie przeszlo. Glownie mam na mysli senior developerow. Poza tym, praca w domu? Realizowanie zadan od manager? :lol2: Jasne ze tak, ale tylko dla siebie i to co mnie interesuje. Nic dla pracodawcy/firmy. Chyba ze mowimy o homeoffice/pracy zdalnej.

 

To wszystko zależy i nie ma żadnych reguł. Ja gdy zaczynałem, dostałem prosty projekt do zrobienia dla klienta. Nie byłem taki całkiem zielony w tym co robię, ale też doświadczenia zero. Miałem osobę, która sporo mi pomagała i tłumaczyła. Znów później dostałem prosty projekt i później już trudniejsze, ciekawsze i większe aż po 1.5 roku byłem najbardziej ogarnięty z całego zespołu (mała firma, parę osób odeszło, a ja też robiłem drugie tyle w domu po godzinach).

 

W wiekszosci przypadkow tak to wyglada. U mnie akurat bylo inaczej, bo pierwsza prace zaczynalem po okolo 2 latach pracy jako freelancer + okolo 3 lata exp programowania dla samego siebie, wiec nigdy nie bylem juniorem. Ale z obserwacji kolegow z firmy to tak mniej wiecej wyglada. Chyba ze mowimy o ciezkim przypadku janusz-softu, ale to moze pominmy.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ciekawe zasady, u wiekszosci programistow ktorych znam by to nie przeszlo. Glownie mam na mysli senior developerow. Poza tym, praca w domu? Realizowanie zadan od manager? :lol2: Jasne ze tak, ale tylko dla siebie i to co mnie interesuje. Nic dla pracodawcy/firmy. Chyba ze mowimy o homeoffice/pracy zdalnej.

To jest sytuacja gdy przychodzi osoba, która ma niewielkie doświadczenie i wiedzę. Ja jak przychodziłem dostałem na dzień dobry gruby projekt.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ja niestety jako junior w korpo nic ciekawego nie miałem okazji robić. Poprawiałem jakieś literówki i gówno-błędy w stylu źle wyświetlająca się lista w archaicznym projekcie z masą złych praktyk. Po pół roku zmieniłem na małą firmę, też jako junior, i tam było o wiele lepiej. Powiedzieli mi, czego muszę się nauczyć, wskazali dobre źródła wiedzy i dali jakieś 2 mies na naukę plus zrobienie projektu w ramach samouczka, na którym potem mi wytłumaczyli, co zrobiłem dobrze, a co nie i dlaczego. Po trzech miesiącach nauki byłem w stanie robić normalne zadania z resztą zespołu, przy czym firma robiła raczej proste rzeczy.

 

Ogólnie co firma to obyczaj, ale na start zazwyczaj dostajesz naprawę błędów, żeby poznać projekt i bardziej doświadczone osoby powinny jakoś wspierać nowych. Poświęcić 30min na ogólne obgadanie projektu albo jakiś pair-programming. Duże korpo to raczej zwiększone ryzyko trafienia na crapowy projekt z archaicznymi technologiami i złym podejściem do kodu. Celowałbym tylko w miejsca, gdzie używają mikroserwisów. O wiele łatwiej się wdrożyć i większa szansa, że projekty są zrobione (w miarę) dobrze. A jak do tego używają Dockera to już jest całkiem spora szansa, że będzie lux.

jak tak wygląda junior to jak wygląda stażysta?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

jak tak wygląda junior to jak wygląda stażysta?

Szczerze? Tak samo. 3 miechy doświadczenia ze stażu to tyle co nic. Junior ma jeszcze jakieś mgliste pojęcie o idei frameworków, a stażysta zazwyczaj ich nie widział na oczy i zdarzają się braki w wiedzy z samego języka. Tak czy siak to, że ktoś ma 0 czy 3 mies doświadczenia nie zmienia tego, że taka osoba nie ruszy samodzielnie zaawansowanego projektu z wieloma technologiami i nie stworzy dobrego softu bez nadzoru kogoś doświadczonego. Trzy lata doświadczenia w dobrych projektach to jest ten moment, gdy zaczyna się solidnie ogarniać.

 

Poza tym to nazewnictwo junior, senior w Polsce nie ma żadnego sensu. Korpo seniora dają ludziom z trzyletnim doświadczeniem, którzy w życiu nie widzieli transakcji albo wątków, a o wzorcach projektowych słyszeli tylko w legendach.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

zaawansowanego projektu z wieloma technologiami

możesz zdefiniować to pojecie; podać przykłady?

Poza tym to nazewnictwo junior, senior w Polsce nie ma żadnego sensu. Korpo seniora dają ludziom z trzyletnim doświadczeniem, którzy w życiu nie widzieli transakcji albo wątków, a o wzorcach projektowych słyszeli tylko w legendach.

czyli jak odróżniam singleton od fabryki i wiem o std::thread (CreateThread w Win API) to stażami se głowy nie zawracać?

ciekawe że trafiłem pare razy na rozmowę w sprawie stażu tylko feedback HR był co najmniej zastanawiający (jeśli w ogóle jakiś był)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

czyli jak odróżniam singleton od fabryki i wiem o std::thread (CreateThread w Win API) to stażami se głowy nie zawracać?

Pytanie, czy "znam" znaczy "potrafię użyć ze zrozumieniem bez popełniania wielu błędów". Własnoręczna zabawa z wątkami to 99% szansy na ukryte bugi. Ja od razu poszedłem na juniora, a przed tym skupiałem się na dobrym zrozumieniu mechanizmów samego języka, tak żeby mi służył dobrze jako narzędzie, a nie przysparzał trudności. Do tego clean code i cała standardowa otoczka - bazy danych, struktury danych, OOP, jakieś podstawy architektury aplikacji, itp.

Staż to nie tylko klepanie kodu, ale także okazja na zobaczenie, jakich narzędzi się używa do synchronizacji pracy całego zespołu - systemy kontroli wersji, sposoby budowania aplikacji i odpalania ich na serwerach oraz dobre testowanie kodu. A także praca z zastanym kodem. O wiele trudniej jest ruszyć coś, co już istnieje w jakiejś formie, niż pisać od zera.

 

możesz zdefiniować to pojecie; podać przykłady?

Nie siedzę w C++, ale w moich realiach najwięcej trudności stwarza integracja kilku aplikacji, które razem coś robią. Synchronizacja komunikacji po HTTP, kolejkach i do baz danych, obsługa uwierzytelniania, przetwarzanie dużych danych i sprawny rollback w przypadku błędu jednego z systemów tak, aby nie zepsuć danych. Do tego dochodzi obsługa jakiegoś sensownego budowania całego systemu i jego automatycznego deploymentu na rozproszone środowisko oraz kwestia stworzenia sensownych testów dla takiego oprogramowania. Ogólnie żadna z tych rzeczy osobno nie jest trudna, ale spięcie tego wszystkiego razem jest wyzwaniem.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Pytanie, czy "znam" znaczy "potrafię użyć ze zrozumieniem bez popełniania wielu błędów". Własnoręczna zabawa z wątkami to 99% szansy na ukryte bugi.

tylko od wątków i ich synchronizacji nie uciekniesz

Staż to nie tylko klepanie kodu, ale także okazja na zobaczenie, jakich narzędzi się używa do synchronizacji pracy całego zespołu - systemy kontroli wersji, sposoby budowania aplikacji i odpalania ich na serwerach oraz dobre testowanie kodu. A także praca z zastanym kodem. O wiele trudniej jest ruszyć coś, co już istnieje w jakiejś formie, niż pisać od zera.

a co jeśli od lat używam SVN i ostatnimi czasy git (co obecnie jest w programie studiów), a obecny zespól zmusił mnie do używania redmine (nie lubię biurokracji)

chociaż CI i testy jednostkowe to nadal czysta abstrakcja

niestety obcowanie z sieczka jaką pozostawili inni była na porządku dziennym (szczególnie że pisali to "juniorzy")

Nie siedzę w C++,

a w czym siedzisz? PHP? java? ruby?

czyli z czego to doświadczenia?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Robię backed w Javie i ta akurat ma rewelacyjne API do wielowątkowości, więc pisanie jej samemu jest uważane za bad practice. Można się w to w ogóle nie bawić, bo kontenery i frameworki Javowe potrafią ją w pełni ukryć przed programistą. A jak ktoś już pisze coś wielowątkowego przy pomocy tego api - wiadomo czasem sekcja krytyczna kodu i inne wynalazki są potrzebne do synchronizacji. Ale tak czy siak, gdy dojdzie do przerzucania wątków między rdzeniami procka, które akurat będą miały niezsynchronizowany cache, a kompilator pozwoli sobie na reorder instrukcji to pozamiatane. Zapomnisz nałożyć memory barrier i game over. O niedebugowalne błędy jest bardzo łatwo i z góry zakładam, że świeżo napisany wielowątkowy kod gdzieś ma błąd.

 

Co do otoczki - prosta sprawa. Brak GIT oznacza z automatu odrzuconą ofertę pracy. Brak CI i testów to samo. Chyba, że ktoś w zamian odpowiednio dobrze posmaruje. Ale ogólnie - z crapem w software house'ach nie robię. Preferuję firmy technologiczne.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

.Adam +1

 

Kolega Karister ma typowe spojrzenie javovca na programowanie. "watkow nie dotykaj!!11". W C++ uzywanie _beginthreadex (win32/64) lub std::thread to chleb powszedni. Znajomosc mechanizmow synchronizacji watkow jakie udostepnia system operacyjny jest kluczowa. Szczegolnie Microsoft Windows, ktory udostepnia naprawde szeroki wachlarz tych narzedzi i nie nalezy sie tego bac.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Takie spojrzenie pozwala być speakerem na międzynarodowych konferencjach i dostawać telefony z ofertami pracy od firm technologicznych. Wielowątkowość Javy nie ma nic wspólnego z systemem operacyjnym, na którym działa, bo gwarantuje ją specyfikacja JMM, dzięki czemu nie jest przybita do platformy. Plus 99% softu javowego nie deployuje się na Win. Wyraźnie pisałem, że to dotyczy javy i chyba wiadomo, że cpp to inny świat.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Przydałby się jakiś mentor, ktoś doświadczony, kto szybko wyjaśni pewne sprawy a równie szybko wybije z głowy kiepskie pomysły. W każdym bądź razie musisz śledzić trendy dotyczące sposobu pisania aplikacji no i aktualne standardy. Proponuję iść w połączenie Javy bądź. NET z jakimś internetowym frontendem.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...