Junior Ror w 2018r

Cześć wszystkim. Kilka pytań!
Co należy umieć - aby moc kandydowac na stanowisko junior ruby on rails?

Co powinien zawierać przykładowy projekt żeby był atrakcyjny (pomijając scaffolda czy typowy CRUD), czy tez :
agile web development with rails 5.1
Ruby on Rails Tutorial Michael Hartl

Poproszę jakis przykład aplikacji ponieważ aplikacje zrobione za pomocą tych materialow powyżej nie robią na nikim wrażenia!!!

Jakie technologie MUSI ZNAĆ !!!
Co by skłoniło firmę żeby zabrać pod swoje skrzydła takiego człowieka?
Ktoś coś?

https://github.com/kamranahmedse/developer-roadmap - bylo juz kilka razy

Cześć gotar

Jeżeli sam miałbyś zatrudnić takiego juniora - to powiedz w kilku słowach co przedewszystkim powinien umieć?

By byc web developerem trzeba wiedziec coraz wiecej, stad tez wymagania sa coraz wieksze, ale:

  • myslec
  • chcec sie uczyc
  • analityczny umysl
  • git
  • podstawy ruby (OOP)
  • rails
  • testy (unit, integracje)
  • html
  • css
  • js (jakies podstawy)

… ale jak pisalem wyzej wymagania sa coraz wieksze bo i narzedzia i technologie coraz bardziej obszerne i wymagajace, wiec firmy mocno wydziwiaja i sporo wymagaja od kandydatow(tek), a i juniorow malo kto bierze i potrzebuje, wiec znalezc pierwsza prace bardzo ciezko

1 Like

Dorzucę swoje 3 grosze.
Zgadzam się ze wszystkim co napisał @gotar, to jest must have.
Miej na uwadze, że jako kandydat na juniora raczej nie napiszesz aplikacji która swym pięknem i poziomem zaawansowania olśni rekrutujących Cię seniorów. Twoje apki mają pokazać że znasz podstawy i jesteś w stanie napisać dobry kod, fajnie jeśli jest do tego zgodny z ogólnie przyjętymi dobrymi praktykami.
Chcesz więcej? Jaką apke napisać żeby była inna niż cała reszta?
Może API + z jakimś frontendowym frameworkiem (angular, vue, react?). Podczas rekrutacji może się zdarzyć że dostaniesz zadanie które będzie od Ciebie wymagało napisania frontu w wybranym frameworku więc taka wiedza to zawsze plus.
Jeśli chcesz jeszcze, więcej to dobrze też pokazać że znasz popularne gemy które często są używane (rspec, capybara, devise, pundit, draper, factorybot, sidekiq, itp.) oraz patterny takie jak service objects czy form objects. Zerknij też na to co to jest HAML, żebyś się nie zdziwił jak na rozmowie dostaniesz do przerobienia aplikacje z widokami w “jakimś dziwnym htmlu”.
Dowiedz się czy w okolicy nie będzie jakiejś konferencji związanej z RoR i sie zapisz :slight_smile: poznasz ludzi pracujących w tych technologiach i dowiesz się nowych rzeczy, a i pewnie trafisz na osoby szukające nowych pracowników.
Całkiem sporo tego wyszło i nie sądzę żeby pracodawcy wymagali tego wszystkiego od potencjalnych juniorów ale sam pytałeś :slight_smile:

2 Likes

Odświeże temat. Jak poszukiwania pracy ?

Cześć,
wydaje mi się, że mogę wnieść do tematu. Od kilku miesięcy próbuję znaleźć pracę jako junior [Warszawa]. Dotychczas bez sukcesu. Spisuje sobie sobie pytania oraz zagadnienia z zadań.
Przykładowe pytania:

  • co to jest ActiveRecord
  • roznica find a findby
  • rożnica drop delete
  • czym jest polimorfizm
  • klasa, obiekt, moduł
  • SOLID
  • testy jednostkowe
  • jakie znam wzorce
  • czym jest garbage colector
  • funkcja map
  • Jaka jest różnica między metodami upcase i upcase! wywołanymi na obiekcie klasy String?
  • Tworzysz nową aplikację, jakich gemów użyłbyś do uwierzytelniania użytkowników, zarządzania rolami oraz uprawnień?
  • Wymień znane Ci Active Record Callbacks. Którego użyłbyś do wysłania powitalnego powiadomienia email po zarejestrowaniu użytkownika?
  • Napisz walidator sprawdzający pole “name” tak aby musiało rozpoczynać się od słowa “Admin” oraz zmień treść komunikatu na "musi rozpoczynać się słowem Admin". Walidator powinien uruchamiać się gdy metoda admin? zwraca true.
  • Z tablicy liczb całkowitych od 1 do 10 wybierz tylko liczby parzyste.

Co było oceniane/punktowane w aplikacjach rekrutacyjnych:

  • użycie waldatora składni -> Rubocop
  • użycie CQRS service
  • budowanie mikroserwisów
  • kontaktowanie sie z zewnętrznym API
  • integracja logowania z Gmailem
  • użycie dekoratora -> np. Draper
  • uzycie HAML/ SLIM
  • użycie Service Objects
  • użycie procesów w tle -> sidekiq
  • znajomość gemów do sklepów internetowych spree i solidus
  • Heroku, AWS
  • importowanie danych z pliku do aplikacji
  • użycie zagnieżdzonych forularzy
  • użycie dry-validation
  • i oczywiście testy

Wydaje mi się, że to dość sporo jak na juniora, ale takich rzeczy wymagali.

2 Likes

To jest bardzo duzo jak na juniora, ale taki rynek - po prawdzie, nikt nie potrzebuje juniorow, tylko devow gotowych do pracy pod nadzorem jakims. Stad takie wymagania bo projekty sa coraz bardziej skomplikowane

No, ale jednak

  • użycie CQRS service
  • budowanie mikroserwisów

to już taki trochę senior junior ;>

Na rynku pracy funkcjonuje nieco dłużej niż by sugerowała historia Linked-in no ale kogo dziś obchodzą stacki z epoki kamienia lizanego

nvmd… moje 3 grosze

Rozmowa o pracę niezależnie od tego czy aplikujesz do firmy na stanowisko =~ 3k PLN czy =~ 30k PLN to mniej więcej ten sam schemat z 3ma kategoria pytań

  • Kategoria 1… nazwijmy ją umownie “pytania bezpieczne” :pizza:

Trzymając się Junior RoR dev to będzie:

Elementarz języka ruby, elementy składowe RoR itp. pytania na które odpowiedź powinieneś znać nawet po 3 miesiącach skryptowania w ruby + RoR i na jednym wdechu powinieneś odpowiedzi udzielić bo masz już odpowiedź na swoim koncie github albo w CV zaznaczyłeś że już czegoś używałeś

przykład takiego pytania

String - manipulacja String, Array, Hash tak wyglądają pierwsze skrypty na konsole rubiego. O co chodzi z metodami z ! na końcu dokumentacja objaśnia nie tylko w klasie String


  • Kategoria 2 pytania sprawiające trudność :sweat:

Tutaj najlepszym typem pytania to pytanie “otwarte”. Jeżeli drążyłeś temat to Twoja odpowiedź będzie wielowątkowa i nie sprawi trudności, a jeżeli tylko skopiowałeś tutorial i Ci “zadziałał” to odpowiedź będzie poprawna, ale mało satysfakcjonująca

Przykład pytania otwartego:

Jak to w pytaniu otwartym można zgarnąć dodatkowe punkty albo całkiem wtopić


  • Kategoria 3 pytania z kategorii “WTF” :scream:

Tutaj wchodzą wszystkie pytania co do których układający pytania są zgodni, że wykraczają poza zakres wiedzy wymaganej na stanowisko, w przypadku seniorów trafiają się pytania spoza domeny.

W rozmowie face2face wychodzi wszystko… jak sobie radzisz z podwójnym stresem… jak komunikujesz brak wiedzy… czy masz jakiś bezpieczny fallback… czy może za wszelką cenę będziesz wymyślał nową teorię do zagadnienia…

@wojkos nazbierał całkiem sporo pytań, które mocno uogólniając można wrzucić do grupy “optymalizacja wydajności” Sama optymalizacja to problem o charakterze “plecakowym” więc CQRS CQRS-owi nie równy


Ustawiamy maszynę losującą: 60% pytań to kategorie 1 i 2… 40% pytań kategoria 3 (proporcje są różne nieraz wystarczy tylko jedno pytanie z kategorii WTF ale z reguły jest więcej)

Kolejność pytań… tu jest różnie… jedni stopniują w górę… jedni losowo… a jeszcze inni zaczynają od tego czego nie masz szans wiedzieć

i… jak na studiach zalicza ten kto zrobi 60%++


Nikt nie mówi że produkcyjny stack HTTP jest najlżejszym do opanowania, są inne obszary IT w których wchodzący na rynek pracy wyrabia miękkie skille i część wymaganych twardych skilli

Na każdym etapie życia zawodowego gdy próg wejścia jest za wysoki bieżesz taką pracę jaką w danej chwili jesteś w stanie wykonywać… a pasje rozwijasz… bo to Twoja pasja!

1 Like