"Bieglosc programistyczna"

1

Nie wiem czy tu, czy jednak na newbe, wiec w razie czego prosze o przeniesienie. Musze jak najszybciej i jak najefektywniej nabrac "bieglosci" w programowaniu w javie. Kwestia konkretnie jest taka: bralam udzial w rekrutacji, w odpowiedzi uslyszalam, ze algorytmicznie bomba, ale slabo jeszcze z samym programowaniem (zbyt duzo bledow, nawet jesli potem poprawionych). Wyglada na to, ze po prostu brak mi bieglosci (zreszta nie jest to dla mnie zaskoczeniem). W kazdym razie dali mi szanse w drugim etapie z zastrzezeniem, ze musi byc lepiej, zebysmy mogli dalej rozmawiac :D mam jakis miesiac, moze 6 tyg. Mozecie podpowiedziec mi jakies materialy z fajnymi zadankami przydatnymi w takiej sytuacji? Nie chce, zeby byly zbyt trudne algorytmicznie, bo nie chce tracic czasu na wymyslanie optymalnego rozwiazania (z tego powodu wszelkie spoje i eulery raczej odpadaja, bo tam to glownie o algorytm chodzi, jak sie ma algorytm to dalej jest juz prosto). Raczej cos, gdzie trzeba pisac sporo kodu, moze uzyc roznych mechanizmow itp. Podstawy (a nawet troche wiecej niz podstawy) znam, nie chodzi mi o kurs sensu stricte gdzie sie "naucze" javy, ale wlasnie o zlapanie takiej bieglosci. Pewnie po prostu jakis zbior zadan by mi sie przydal :P macie jakis pomysl jak sie za to zabrac?

Dzieki z gory.

1

O biegłości to można mówić dopiero po kilku latach ciągłej nauki i przede wszystkim praktyki a nie miesiącach czy nawet tygodniach. A błędy popełniają także biegli z doświadczeniem, tylko że jest ich o niebo mniej. Miesiąc ćwiczeń to nieporozumienie.

2

Sama sobie odpowiedziałaś na pytanie.

Znajdź jakiś projekt, i go klep. Google Twoim przyjacielem - po wpisaniu "programming projects for beginners java" trochę tego wychodzi.

2

Jeżeli chcesz nabrać dobrej praktyki przy pisaniu kodu , pisz testy do niego.

Czyli jeżeli klasa ma coś robić, najpierw wymyślasz interfejs do tego, później piszesz testy jakie ten interfejs ma przechodzić, i dopiero się zabierasz za implementację.

Od razu zobaczysz jak napiszesz gówniany kod, bo nie będzie go jak przetestować

1

Tak tylko chcialam powiedziec, ze jak sie chce to sie da - niecaly miesiac, praca tylko wieczorami (dwojka malych dzieci) i gigant z Mountain View uznal, ze z moja java nie jest tak zle, wiec zaprosil mnie na on site. Nie pisze tego, zeby sie chwalic (no dobra, moze troche), ale po to, zeby nastepni, ktorzy tu trafia nie zrezygnowali po odpowiedzi drorata, ale jednak sprobowali cos zrobic. Bo moze sie okazac, ze jednak sie da.

Po rozmowie z rekruterami i kilkoma innymi osobami polecam jednak od siebie troche inne podejscie - duzo, malych cwiczen, glownie mock interviews. Oczywiscie jesli chodzi o codzienna prace nad warsztatem to tak jak koledzy u gory pisali duzy projekt da wiecej. Ale jesli chodzi o przygotowanie stricte do rozmowy, szczegolnie w krotkim czasie, to najlepiej chyba jednak cwiczyc typy zadan jakie sie na takiej rozmowie pojawiaja.

0

Nie zamierzam nikogo zniechęcać :-) Ale tylko zapytam. Co tak naprawdę będziecie w stanie napisać po tym miesiącu spięcia się i nauki na pełnych obrotach? Może lepiej napiszę dość jasno co rozumiem przez pojęcie biegłość. Otóż jest to taki stan wiedzy i doświadczenia, który to pozwala na realizację czegokolwiek co Wam wpadnie do napisania w miarę szybko i co najważniejsze bez żadnych problemów. Tzn. problemy zawsze będą ale tutaj powinny się pojawiać dość rzadko. Myślicie że to tak łatwo do tego dojść?

Można więc coś opanować do perfekcji i w tym się wyspecjalizować aż do tego stopnia, że po pewnym czasie będziecie czuć się na tyle pewnie, że Wasza praca nie będzie się z tego powodu wiązała z jakimś stresem, bo nie wiecie jak coś zrobić, szukacie po sieci a tu się okazuje że albo gotowce nie działają tak jak powinny, albo co gorsze w ogóle nie możecie czegoś znaleźć.

Wiem o czym piszę bo długo już w tym programowaniu siedzę. Z punktu widzenia kodera a nie rekrutera :-)

1

Możesz spróbować przeczyta refactoring i/lub clean code (bo 100% czasu na pewno kodować nie będziesz) tam ktoś popełnił i naprawił błędy za ciebie, wiec to +10 do wydajności. Dowiedz się czym są wzorce strategy, templeMathod, fabryka, commnad i sigleton. Świadomie lub nie i tak będziesz musiała z nich korzystać wiec lepiej się tego w kuc i mieć gotowe rozwiązanie w rękawie niż wymyślać je 10 razy na nowo.
Możesz poszukać w google code cata, generalnie chodzi o to by codziennie ten sam problem rozwiązywać trochę i inaczej dużo czasu to nie zajmuje, "algorytm" po pierwszym razie już kumasz i w sumie ćwiczysz same pisanie kodu. Możesz nauczyć sie też regular expresion, to też gotowe rozwiązanie na częste problemy -sytuacyjnie + 1000% do wydajności :P.
Nie wiem czy pisać większe czy miejsze projekty. Z jednej strony im większa skala tym lepiej ale rzadziej otrzymujesz sprzężenie zwrotne i może się okazać że przez x-dni będziesz bardzo sprawnie biec do krakowa przez szczecin.
Zaimplementuj jakąś prosta gre tetrisa, sapera, pasjnasa, ponga, snajeka, chinczyka :P niby klasyka klasyki i wiadomo o co chodzi ale gry się ciężko implementuje i szybko otrzymasz informacje że coś chyba jednak robisz nie tak :P.
Nie wiem jak rozplanować stosunek nauki do kodzenia ale sama nauka i samo kodzenie jest nie efektywne.
Jest jeszcze taki prosty trick ze zamiast operować na gołych tablicach lisach czy innych kolekcjach chowasz je do osobnych wyspecjalizowanych klas. Zwalnia Cie to z tysiąckrotnego sprawdzania warunków brzegowych i innych błedogennych upierdliwych nudnych rzeczy.

Z ciekawości jako kto aplikowałaś i czym im zaimponowałaś?

1 użytkowników online, w tym zalogowanych: 0, gości: 1