Droga do programisty Ruby + Rails jak zacząć?

Cześć,
chciałbym nauczyć się Rubiego i Railsów. Juz kiedyś zaczynałem, dokładnie w zeszłym roku ale niestety musiałem przerwać naukę ponieważ końcówka roku(a wtedy zaczynałem) nie był to dobry moment, tzw. pożary w projektach. Teraz chciąłbym do tego wrócić. Moja sytuacja przedstawia się następująco: pracuje na pełen etat i zajmuje się w dużej mieże QA i testami automatycznymi. Chciałbym poprisć Was o pomoc oraz zadać kilka pytań. W obecnej pracy mam możliwość pracować zdalnie, a też często trafiają się momenty gdzie jest przestuj i mogę programować coś dla siebie albo pisać jakież narzedzia: python albo java w zależności od potrzeb tak żeby po 50 razy nie robić tego samego, wykorzystujac czas bardziej konstruktywnie.

Co polecilibyście na poczatek (poza tym forum oczywiście) do rozwoju?
Chciałbym wypić jakąś usłygę VPS i na nim zaisntalować Rubiego wraz z jakiś IDE do programowania, tak żebym mógł laczyć się z każdego miejsca i programować. Na wstępie myślałem nad VIM-em, nie mam w nim dużego doświadczenia i troche gupie się w skrótach, ale coraz bardziej mi się podoba, zwłaszcza że jest to narzedzie jakiego jeszcze nie znam.

Zrobiłem kilka wstepnych i bardzo prostych projektów, głównie używając scaffolda do generowania struktury prostych aplikacji.

Co mi polecacie?

Za wszelkie odpowiedzi będę bardzo wdzięczny.

1 Like

Osobiście polecałbym(chciałbym zaznaczyć, że w Railsach teź dopiero zaczynam tak jak ty mam doświadczenie w innych technologiach) zostać jednak przy Vim-ie , oczywiście koszt wejśćia(czas) jest duży, ale jak już zaczniesz się w nim swobodnie poruszać to nie będziesz widział innej możliwośći niż używanie Vim’a. Dużym plusem jest to, że vim’a znajdziesz praktycznie na każdym kompie z unixopodobnym OS-em, a tych skrótów nauczysz się raz na całe życie w przezciwieństwie do IDE tam często one się nie pokrywają i jeżeli korzystasz z kilku różnych to się sprawa komplikuje(oczywiscie mozna pozmieniać, ale znowu czas i nie zawsze też można). A wszystkie te funkcjonalności nowoczesnego IDE można łatwo doinstalować do Vim’a za pomocą odpowiednich pluginów.

Polecam c9.io Możesz programować nawet ze smartfonu, wystarczy przeglądarka. Railsy i Ruby preinstalowane, chociaż o ile pamiętam nie w najnowszej wersji.

Z c9.io jeszcze nie mam doświadczenia, z tego co zdążyłem obejrzeć na youtube wyglada całekiem ok. Z drugiej strony vim to vim, jest wszedzie.

Co z tego, że jest wszędzie? Przecież tam gdzie jest vim a nie ma innych edytorów, tam ten vim (albo nawet vi) jest czysty, bez żadnych pluginów, jedyne na co możesz liczyć to ew. kolorowanie składni a i to nie zawsze. Serio będziesz klepał zawodowo, czy nawet hobbystycznie kod w czystym vimie? Nie wydaje mi się.

Oczywiście że nie w czystym vimie.

mi od jakichs 5 lat wystarcza vim + nerdtree (z wyjatkami pt. XCode do iOS i Android Studio do Androida). Po drodze byl Eclipse (2007), Netbeans, Aptana, IntelliJ i w koncu powrot do vim.

@coffe jesli vim Ci z jakichs powodow pasuje, to czemu nie. Do ktorego polecam te ksiazke: https://pragprog.com/book/dnvim2/practical-vim-second-edition

Serio? Bez żadnych dodatkowych pluginów? To podziwiam, bo ja jestem tak przyzwyczajony do wygody dobrego IDE, że praca w edytorze, czy to vim, czy emacs (tak naprawdę spacemacs + evil mode), czy nawet jakiś sublime itp to… może nie męczarnia per se… ale blisko, zbyt wielu rzeczy mi brakuje, które np. w produktach intelij po prostu są :slight_smile: A z drugiej strony szukanie i instalacja pluginów które często robią za dużo albo za mało… ech szkoda czasu.

Zdenerwowalo mnie kiedys to, ze ktorekolwiek z ww. IDE żre 80% procesora i uruchamia wiatrak. W polaczeniu z obserowaniem ludzi na konferencjach, ktorzy pracowali na Macbook Air-ach prawie na kolanach w czyms co wygladalo na konsolowe edytory. Wtedy powiedzialem ‘dosc’ :slight_smile:

Standardowo korzystam tez z “relativelines”, ale to chyba nie jest osobny plugin.

Z pluginow probowalem i ctrlp (do lepszego wyszukiwania), lion (do ‘wyrownywania’) - ale ostatecznie i tak poruszam sie albo korzystajac z indeksowanych ctags-ow (a to jest czesc “core” w vim), albo po prostu z grep-a i find-a.

A dlaczego to nie przeszkadza? Bo i tak 90% czasu spedzonego w pracy to myslenie nad tym albo GDZIE cos dodac (i jak), albo gdzie cos przeniesc, tak zeby nie popsuc. A do tego nie potrzeba super-szybkiego skakania po calym projekcie i zmieniania nazw klas 20 razy na godzine. Poza tym jesli projekt jest na tyle skomplikowany, ze potrzeba super-hiper narzedzi zeby w nim cos znalezc, to znak ze czas go rozbic na mniejsze kawalki.

Jesli chodzi o szybkosc edycji to VIM zawsze wygra (we wprawnych rekach), a jesli potrzeba na codzien korzystac z refactorowania i ciaglego zmieniania nazw (mi sie nie zdarza) - to pewnie jest do tego plugin.

Ok VPS ogarniety i korzystam z vima. Na razie idzie trochę topornie ale tak jest zawsze na poczatku, kwestia wprawy. Kolejnym krokiem jaki moim zdaniem jest dobry to: zaczynam piasac pet project + dodatkowe zadania np na HackerRank albo exercism.io + posty na blogu. Tak żeby możńa było coś pokazac przy potencjalniej rozmowie.

Jeśli interesuję Cie na początek pozycja junior developera RoR to w większości firm projekcik o zbliżonej złożoności do tego co jest w https://www.railstutorial.org/book (+ zrozumienie tych koncepcji, które są w tym tutorialu) jest wystarczający. Więcej chyba nie ma sensu, bo zdecydowanie szybciej się już potem uczy mając mentora i doświadczonych programistów dookoła siebie i robiąc komercyjne projekty.

3 Likes

@coffe jakiś czas temu napisałem na swoim blogu artykuł, który może będzie jakoś Tobie pomocny "What skills should a junior Ruby on Rails developer have?" .

Co do edytora / IDE to już sprawa indywidualna i niejedna święta wojna toczy się w obronie/przeciwko kolejnego edytora. Ja osobiście od lat jestem przywiązany do jedynego słusznego ( :slight_smile: ) edytora, czyli do VIM’a. Szanuję jednak tych, którzy z jakichś przyczyn jeszcze z niego nie korzystają :slight_smile:

1 Like

Co do vima to polecam polecenie vimtutor. Interaktywny kurs vima w vimie.

Sam używam vima z coraz mniejszą ilością pluginów. Tak jak @mark napisał, 80% czasu trzeba zastanawiać co się napisze, w tym celu nawigujemy po kodzie. W vimie jest to bardzo proste i można to robić na wiele sposobów.
Dodatkowo, w programowaniu rzadko dopisuje się dużo nowego kodu - czesto trzeba coś poprzesuwać, zrefaktorować itp - i tutaj vim pokazuje klase dzięki text objects, makrom i różnym małym sztuczkom.

Mniejszy hardcore na początek to np. Sublime Text albo VS code z vim mode :wink:

Nie chciałbym aby ten wątek przyjał formę dyskusji na temat które IDE jest lepsze i dlaczego, bo nie o to mi chodziło. A dyskusja trochę schodzi na inne tory.
@changs co do książki jaką polecasz kiedyś ja przerabiałem i zacznę od początku + tworzenie projektu na boku do portfolio bo nie mam się czym pochwalić nawet
@k_kempinski bardzio ciekawy artykuł