Jak żyć?List NR.3 Oto kolejny list od czytelnika.

[Początek listu]

Szanowny Panie,

natknąłem się na Pana blog przypadkiem, ale po przeczytaniu paru wpisów od razu zdecydowałem się napisać i poprosić o poradę. Postaram się być konkretny :)

Otóż mam 24 lata, licencjat z finansów i magistra z prawa. Nie wdając się w szczegóły powiem krótko: realia zawodowe i finansowe, perspektywy, kształt rynku usług prawniczych, zarobki itp. nie są dla mnie satysfakcjonujące. Ponieważ chcę wygrać, a nie przegrać życie i nie być zmuszonym jednocześnie do emigracji pomyślałem o edukacji w kierunku programistycznym.

Wiąże się to z tym, że już od paru lat fascynuję się rynkiem nowych technologii, innowacji, mobilnym, bardzo podoba mi się też rozwój branży start-upowej w Polsce bo jesteśmy tutaj genialnym narodem :) I tutaj mam parę pytań:

1) Czy za pomocą kursów darmowych na platformach udacity, coursera bądź edx jestem w stanie nauczyć się tego, czego oczekują pracodawcy w Polsce?
2) W czym warto się specjalizować biorąc pod uwagę to, że bardzo bym chciał działać w środowisku start-upów z branży mobile apps i innowacyjnych platform webowych?
3) Gdzie można próbować zdobyć pierwszą pracę w zawodzie i co już trzeba umieć żeby móc o takiej pomyśleć?
4) Ile czasu jest potrzebne, by nabyć niezbędne minimum skilla potrzebnego do pracy zarobkowej?

Z góry dziękuję za odpowiedź. Pozdrawiam! :)

[Koniec listu]

Muszę przyznać, że 24 lata i posiadanie już magistra robi wrażenie. Ja zdobyłem magistra mając 26 lat. Oczywiście jednak nie ma to żadnego znaczenia i jak widać ten tytuł żadnemu z nas bardzo nie pomógł. Przejdźmy więc do głównych pytań.

Pytanie 1 :  Darmowe kursy

Nie korzystałem z darmowych kursów więc nie mogę się wypowiedzieć. Osobiście polecam trochę zainwestować w konto Pluralsight.  Na tej platformie moim zdaniem w łatwy sposób można przyswoić podstawy różnych języków programowania.  Mimo wszystko pamiętaj o jednym, nieważne czy kurs jest dobry czy zły, każdy kurs jest bezużyteczny, jeśli nie masz odpowiedniego nastawienia.

Zabrzmi to brutalnie, ale zamiast tracić czas na myślenie, czy jakiś “darmowy” kurs ma sens – może lepiej jest przeczytać ten kurs i samemu się przekonać, czy dany kurs ma sens.

Planowanie, zastanawianie się podczas nauki często kradnie nam czas i jest wymówką do lenistwa.

Poza tym moim zdaniem zamiast szukać kursów lepiej jest stawiać sobie cele. Przykładowo dzisiaj napiszę aplikację która:

  • Drukuje i tworzy plik PDF
  • Tworzy plik Excel lub CSV
  • Odczytuje i wysyła zapytania do usługi REST
  • Zapisuje do bazy SQL zestaw danych i informacji jak np. gry, owoce, itp.
  • Pozwala na stronie WEB wyświetlić rekordy z bazy
  • Steruje diodą w Arduino
  • Wyświetla na telefonie rekordy, które zapisywane są w wewnętrznej bazie SQLite
  • Pobiera zawartość strony internetowej HTML i wyciąga z niej odpowiednie dane
  • Jest sklepem odzieżowym
  • Wyświetla galerię zdjęć genialnym pluginem jQuery, Angular, czy coś
  • Analizuje kod w C# przy pomocy kompilatora Roslyn i dopisuje kod
  • Analizuje olbrzymie fragmenty tekstu i wyszukuje odpowiednie słowa
  • Wyświetla wykres kołowy, słupkowy, liniowy z danymi

Opcji jest naprawdę wiele. Zamiast więc szukać genialnych kursów, które mają cię czegoś nauczyć w 20 dni, zastanów się nad stawianiem sobie celów i ich realizacją przy użyciu wyszukiwarki Google.

Twoja pierwsza praca będzie wyglądała podobnie ponieważ nie ma możliwości, abyś był gotowy na każdy scenariusz w pracy. Dostaniesz zdanie i masz je zrobić, bez względu na to, czy już to robiłeś i czy wiesz, jak masz to zrobić.

Postaw więc sobie jakiś cel i zacznij tworzyć aplikacje. Nie musi to być coś dużego. Może to być prosty przykład utworzenia pliku PDF, Excel. W taki sposób szybko nauczysz się konkretnej wiedzy.

Pytanie 2 : W czym warto się specjalizować

Twoja logika jest prawidłowa ponieważ największe zapotrzebowanie jest na strony WEB i na aplikacje mobilne. Moim zdaniem, gdybyś umiał tworzyć aplikacje na IPhony i umiałbyś robić to dobrze, to raczej nie musiałbyś narzekać na brak zleceń.

Aplikacje mobilne jest to dobry kierunek, zwłaszcza jeśli to polubisz. Jak próbowałem się zaczepić w tym i wiem jak tworzyć aplikacje na Windows Phone, Android i IPhone, ale stwierdziłem, że jest to zbyt irytujące.

Tworzenie stron internetowych jest dla mnie zawsze bardziej przyjemne. Fakt wystarczy wpisać w serwisie Pracuj.pl słowo “programista ASP.NET” i zobacz ile jest ofert. Pamiętaj jednak, aby trzymać się tego, co lubisz. Zwłaszcza, że to, co lubisz czyli aplikacje mobilne jest dobrym kierunkiem.

Zdecydowanie unikaj aplikacji desktopowych i technologii jak WPF i Windows Form. Zapotrzebowanie w tym dziale jest dużo mniejsze.

Pytanie 3.1 : Gdzie można próbować zdobyć pierwszą pracę w zawodzie

pracę. Jeśli tak nie jest, to niestety, ale musisz się przeprowadzić do najbliższego dużego miasta jak np. Warszawa, Kraków, Wrocław, Białystok.

Jeśli chodzi o konkretne firmy. To radzę się trzymać konkretnych firm programistycznych, a nie jakiś dziwolągów, gdzie programiści są tylko tłem do całego ekosystemu firmy. Jeśli firma koncentruje się na reklamie, to raczej programiści nie odgrywają w niej takiej dużej roli. Znajdź firmę, w której programiści są szanowani i ważni.

A czy warto pracować w dużej, czy lepiej w małej firmie, to przekierowuję cię do tego wpisu :

http://cezarywalenciuk.pl/blog/programing/post/3-rodzaje-firm--kariera-programisty

Pytanie 3.2 : Co już trzeba umieć, żeby móc o pracy pomyśleć

Na pewno musisz znać wszystkie niuanse języka programowania X. W  przeciwnym wypadku nie przejdziesz przez rozmowę kwalifikacyjną. Jak to już potrafisz, to szukaj pracy. Nie mówię, że ci się uda, ale przynajmniej będziesz wiedział jak wielka przepaść dzieli ciebie od pracy. Czasami tylko rozmowa o pracę może zweryfikować to, czego jeszcze nie umiesz.  Pamiętaj o swoim treningu, który ci napisałem w odpowiedzi na pytanie numer jeden.

Musisz być świadomy i przygotowany na to, że pierwszego dnia dostaniesz zadanie, na które w ogóle nie będziesz gotowy.

Mówiłeś, że interesujesz się aplikacjami mobilnymi. Jeśli chciałbyś szukać pracy w tym kierunku, to naturalne jest to, że umiesz stworzyć aplikację mobilną w wybranym systemie.

Przykładowo w Android będziesz wiedział czym są Broadcasty. W IPhone będziesz wiedział jak nawigować widoki pomiędzy jednym i drugim, niekoniecznie przy użyciu mechanizmu segue. W Windows Phone będziesz wiedział jak powiązać dane (binding) i jak wyświetlić je na liście.

To są przykładowe podstawy, które raczej musisz znać, jeśli chcesz pracować z daną aplikacją mobilną u pracodawcy.

Pytanie 4 : Ile czasu jest potrzebne, by nabyć niezbędne minimum skilla

Dla mnie to trwało 3 miesiące, ale osobiście wierzę, że jeśli ktoś systematycznie się uczy i codziennie stawia sobie cele, to moim zdaniem ten okres powinien maksymalnie trwać do 6 miesięcy.

Nadejdzie taki moment, że uświadomisz sobie, że :

  • Znasz podstawy i zawansowane triki danego, jednego języka programowania
  • Znasz sztuczki i mechanizm danej platformy mobilnej
  • Nie masz już pomysłów na aplikacje, które mogłyby rozwinąć twoją wiedzę.

Kiedy ten moment nadejdzie, to będziesz wiedział, że dalszy trening jest już tylko stratą czasu i tylko rozmowa o pracę lub sama praca może zwiększyć twoje umiejętności.

Ten moment może być za 3 miesiące, może być za 6. Jedno jest pewne musisz być zdeterminowany. Wybierz jeden język programowania i jedną platformę mobilną. Postaraj się uniknąć nauki Windows Phone. Jeśli jednak wierzysz w potęgę C#, to zawsze możesz spróbować nauczyć się platformy Xamarin. Niestety to jest już trochę wyższy poziom dla początkującego, dlatego dla aplikacji mobilnych Android i Java to dobry start.

Jak żyć

Wierz mi, zapewne nie jesteś jedynym, który uświadomił sobie, że studia, magisterskie to trochę ….., zwłaszcza o kierunku nie informatycznym. Z drugiej strony nie myśl tak bardzo o przeszłości. Kto wie, może twoja wiedza ze świata finansów i prawa okaże się kiedyś bardzo przydatna w zawodzie programisty. Życie jest dziwne.

Jak więc żyć? Wierz mi, ja też zadaje sobie to pytanie, mimo iż mam 5 lat doświadczenia i w teorii nie narzekam na kasę.

Życie codziennie stawia nam jakieś wyzwania i to się nigdy nie kończy. Jest jednak coś, co możesz zrobić. Możesz zawsze tak sobie ułożyć życie, że te wyzwania z czasem będą wydawały ci się coraz łatwiejsze do pokonania. Wstaniesz któregoś dnia i będziesz czuł, że możesz płynąć po tym oceanie życia, bo w końcu masz doskonałą łódkę doświadczeń, która wie jak sobie radzić, nawet gdy jest sztorm.

Powodzenia.