Simple doesn’t mean easy

Cześć!
Dziś z powodu majówki nie będzie wpisu, za to tradycyjnie jak to już bywało wcześniej w przypadku długich weekendów czy świąt chciałbym zaprosić Cię do obejrzenia ciekawej prezentacji, tym razem w języku angielskim. Jak dostać pracę u kogoś z “Wielkiej Czwórki”? Wystarczy kilka prostych kroków. Miłego oglądania!

A week with JEE, Java 8 and Maven

Hello!
This week I have been mostly learning some JEE, Maven and finally Java 8.

All this things I have learned this week made me like “wow”. I seem to look at the code of my project from diffrent perspective, it looks to me like it was so simple. I seem to understand software architecture much much better than I used to few weeks ago. As I have been mostly learning lately, all i can share with you today is some important materials about JEE, Java8 and Maven.

  1. Maven: The Complete Reference
    http://books.sonatype.com/mvnref-book/reference/index.html
  2. Java 8 and JEE video tutorials
    https://www.youtube.com/user/koushks/playlists

I think my next entry will be some code-related, as I am planning to get back to coding this weekend! So stay tuned 🙂

Rekordy zostawmy olimpijczykom

Wiesz co jest najgorsze w życiu? Nie, to nie odnieść porażkę. Najgorzej jest odnieść sukces, zasmakować wygranej,  zachłysnąć zwycięskim powietrzem, a później musieć wrócić do bycia nikim.

Zwolnij – rekordy zostawmy olimpijczykom

W zmianie pracy absolutnie nie chodzi o śrubowanie rekordu “kto szybciej się nauczy, ostatni rekord to 3 miesiące, a ten gość zrobił to w 2 miesiące i 3 tygodnie, mamy nowego lidera!”. W zależności od wybranych technologii, w zależności od firmy w pracy czeka na Ciebie wiele wyzwań. Kiedy podejmujesz decyzję, że jesteś gotów, że “to już”, musisz być tego pewien. Musisz być pewien, że sobie poradzisz, bez względu na okoliczności. W przeciwnym razie moim zdaniem może czekać na Ciebie wiele niebezpieczeństw.

Syndrom podrabiańca

Syndrom podrabiańca (ang. Imposter syndrome) przytrafia się również osobom, które są programistami “z wykształcenia”. Ba, przytrafia się nawet gwiazdom estrady, aktorom i wielu osobom publicznym! Warto wspomnieć np. o piłkarzach – wyobrażasz sobie, jak bardzo odpornym psychicznie trzeba być, aby wytrzymywać transfer za grube miliony euro, wytrzymać presję związaną z oczekiwaniami mediów i kibiców? Na koniec dnia piłkarze, tak jak my, są tylko ludźmi. Mają wady i zalety. Strony silne i słabości.

O syndromie oszusta na swoim blogu wspominał również Java Dev Matt, jeśli jesteś zainteresowany i chciałbyś poczytać o tym więcej, zachęcam do lektury: http://www.javadevmatt.pl/impostor-syndrome-u-programisty-i-nie-tylko/

Desperacja

Nie wiem, jaka jest Twoja sytuacja życiowa i dlaczego chcesz zmienić zawód. Chciałbym, żebyś przed podjęciem decyzji wiedział jedno. Jeśli nie potrafisz być szczęśliwym w miejscu w którym jesteś teraz, jeśli nie potrafisz cieszyć się życiem ze wszystkimi jego wadami i zaletami już teraz, to zmiana pracy nie odmieni Twojego losu jak za dotknięciem czarodziejskiej różdżki. Dalej będziesz smutny, dalej będziesz miał problemy, tylko że trochę inne.

Stres

Co jeśli po jakimś czasie się okaże że się nie nadajesz? Może tak na prawdę miałeś tylko farta i gdyby coś poszło nie tak to już nie znalazłbyś kolejnej pracy? Co wtedy?

Zarządzanie kapitałem

Moim zdaniem to jedna z najważniejszych rzeczy w życiu zawodowym. Pozwala zachować komfort psychiczny, nawet wtedy kiedy nie wszystko idzie po naszej myśli. Zarządzanie kapitałem jest rzeczą, której nie uczą w szkole, której nie nauczysz się na uczelni. Kiedy zmieniasz zawód nie polecam stawiać się w sytuacji, w której nie masz żadnych oszczędności. Posiadanie “poduszki finansowej” jest moim zdaniem bardzo istotne, buduje komfort psychiczny, pozwala skupić się na swoich zadaniach, a nie na liczeniu złotówek. Moim zdaniem powinieneś być przygotowany na kilka miesięcy ewentualnego bezrobocia. Będziesz mógł podejmować optymalne decyzje bez panikowania.

Czas wracać do pracy

Warto pamiętać o tym, że nauka programowania wymaga koncentracji. Stres może wpływać bardzo destruktywnie na Twoją zdolność uczenia się. Chciałbym, żebyś dbał o swoje emocje, to z pewnością pozwoli Ci wycisnąć więcej z notatek, z książek czy kursów, nad którymi obecnie pracujesz. Pamiętaj też, że od czytania tego nie zostaniesz programistą, konieczny jest też Twój wkład, Twój wysiłek. Wracaj do pracy.

REST…. no time to rest!

Hello!

This week I’ve been mostly focused on learning about REST services. On sunday I have found youtube channel with video tutorials called Java brains. You can find a lot of interesting materials about maven, spring and jee there. At this moment I’m not sure if i will work with the code in upcoming week, as there is a lot of things I need to learn about maven, rest services and JEE that I found quite interesting and I would like to increase my knowledge in this areas.

See you next week!

Przerwa świąteczna :)

Dziś, z okazji świąt wielkanocnych, na blogu nie będzie wpisu w tradycyjnej formie :).

Chciałbym jednak podzielić się z Wami ciekawym materiałem dotyczącym perspektywy drugiej strony podczas rekrutacji – czyli osoby przeprowadzającej rozmowy kwalifikacyjne. Prezentacja miała miejsce podczas spotkania warszawskiej grupy JUG, a jej autorem jest Tomasz Dziurko.

 

 

 

 

Android: first ui impressions

Hi there!

This week I have been working mostly with android. It took me 3 days to set up the Android Studio and I’m still having some troubles with Android Device Emulator. To avoid all emulator problems I have decided to use my Samsung Galaxy to debug application.

In last couple of days I have been learning a lot, expecially about Hibernate which I found quite interesting. I think I understand JPA and Hibernate perspective much better now and I think it will help me write better code and develop my applications in much smarter way. The most interesting lecture for me was the lecture about Dirty Checking mechanism in Hibernate. I would recommend everyone to read about how this framework is working behind the scenes.

I have managed to spend some time learning about UI development as well and I would like to share with you guys my first prototype (or lets say, first idea) of login screen in StreamPlayer. I know not everything looks perfect now but I need to think how to handle this color-schema with readability (it’s hard to read text on the button). Please take a look at the picture below:

unnamed.png

In upcoming week I would like to focus on connecting this UI to rest-api, I find it quite challenging and I think that I will need to learn a lot.

See you next week!

 

Królowa nauk

Czy potrzebujesz znać wyższą matematykę, żeby myśleć o zostaniu programistą? Moim zdaniem nie. Moim zdaniem prawdopodobnie nigdy nie będziesz musiał zaimplementować algorytmu do rozwiązywania równań różniczkowych czy całkowania. Ale matematyka to nie tylko rachunki. Na lekcjach matematyki poznawaliśmy sposoby przeprowadzania dowodów, rozwiązywania złożonych abstrakcyjnych problemów, operacji na zbiorach i matematycznej logiki, a to… może Ci się przydać.

Whiteboard test

Niektóre bardzo duże firmy podczas rekrutacji oczekują od kandydatów rozwiązywania zadań na tablicy lub przez strony internetowe typu hackerrank albo codility. Chociaż sam nigdy nie uczestniczyłem w takim teście, zauważyłem bardzo ciekawą rzecz odnośnie tych testów.

Nie chciałbym oceniać czy to dobrze czy źle, czy te testy sprawdzają umiejętności kandydata czy nie, to osobny temat. Chciałbym natomiast zwrócić uwagę na pewną różnicę w podejściach osób po studiach kierunkowych oraz samouków bez formalnego wykształcenia.

Spotkałem się z opiniami osób bardzo znanych w naszej społeczności, że takie testy nie sprawdzają wiedzy programistów i proponowali oni alternatywę w postaci rozwiązywania zadań, o podobnej złożoności do tych wykonywanych w pracy.

Moim zdaniem podejście osób, które samodzielnie uczyły się programowania jest nieco inne. Wchodzimy na rynek akceptując jego zasady, jeśli trzeba się czegoś nauczyć to się tego uczymy. Firma wymaga znajomości algorytmów? Ok, nauczę się. My poniekąd akceptujemy zastany stan i jeśli trzeba się przygotować z algorytmów to my się przygotujemy, bo podejmując decyzję o zmianie pracy albo branży akceptowaliśmy panujące tutaj zasady, które istniały długo przed naszym przyjściem. Nie wykazujemy tendencji do zmiany realiów, a raczej przyjmujemy i staramy się dopasować do zastanych warunków.

Sprinter kontra maratończyk

Wybierając sobie zawód trzeba myśleć w perspektywie długoterminowej. Mając średnie umiejętności miękkie i przeciętny potencjał techniczny prawdopodobnie będziesz musiał popracować ładnych kilka lat (może nawet 20-30) zanim coś odłożysz albo zainwestujesz na tyle dużo, że będziesz mógł odejść z pracy. Wszystko zależy od tego jak jesteś ukształtowany pod względem umiejętności inwestowania i zarządzania swoimi pieniędzmi. Zmiana pracy czy branży to nie może być chwilowy kaprys, bo prawdopodobnie czeka Cię wiele lat pracy bo w pracy… trzeba przecież pracować.

Długi dystans

Jako programiści-samoucy bardzo często posiadamy bardzo duże zaległości w teoretycznej wiedzy ze studiów. Im dłuższy będzie nasz bieg, tym bardziej te zaległości będą nam dokuczały. Nawet bardzo małe odchylenie od planowanego kursu na początku biegu może doprowadzić do ogromnych różnic na długim dystansie. W internecie można znaleźć wiele reklam parotygodniowych kursów na których obiecuje się ludziom, że zdobędą tej samej jakości wiedzę co ich koledzy przez kilka lat studiów. Nie zdobędą. Ale czy to powód, żeby siedzieć z założonymi rękami?

To co najcenniejsze jest za darmo?

W dzisiejszym wpisie chciałbym zachęcić Cię do nauki programowania jako rozwiązywania problemów i dobierania do tego odpowiednich narzędzi z kursów dostępnych za darmo w internecie. Są to kursy dwóch zagranicznych uczelni – Harvard oraz MIT.

This is CS50.

Kurs podstaw informatyki z uniwersytetu Harvarda, moim zdaniem absolutny must see. Jeśli nie wiesz o co chodzi z zapisem binarnym, co to jest algorytm i jak działa komputer po prostu musisz to zobaczyć. Cały kurs jest przedstawiony w bardzo przystępnej formie, jest dobrze zrealizowany i godny polecenia. Warto dodać, że ten kurs podjął także sam Mark Zuckerberg :).

A former child prodigy

W jednym z moich poprzednich wpisów proponowałem zacząć naukę od pythona. Oto do czego przyda Ci się znajomość tego języka – Wprowadzenie do Algorytmów. Chciałbym zachęcić Cię do nauki z kursu dostępnego na stronie MIT – https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/

Jest to kurs składający się z wykładów, ćwiczeń i kolokwiów, podobnie jak na naszych uczelniach :). Na stronie MIT znajdziesz materiały wideo z wykładów i ćwiczeń, które serdecznie polecam, bo moim zdaniem wyniesie to Twoją świadomość pracy z kodem na zupełnie inny poziom. Rozwiązuj problem sety, ćwicz też dodatkowe zadania (proponuję wyżej wymienionego hackerranka). Jeśli jesteś początkującym, to rzetelne przerobienie tego kursu zmieni Twój punkt widzenia na temat kodu, to jest zupełnie inny poziom. Polecam przerobienie też innych kursów z MIT, które Cię zainteresują, wszystkie są dostępne na stronie MIT OCW.

Ultymatywny cel

Moim zdaniem warto żebyś pamiętał, że jesteś dopiero na początku swojej przygody i warto poświęcić trochę czasu, aby solidnie odrobić lekcje. Przed nami bardzo długa droga, droga pełna wyzwań i niespodzianek. Powinniśmy nauczyć się czerpać z niej jak najwięcej przyjemności i szczęśliwi dążyć do wymarzonego celu.