RoR dla początkującego programisty (w ogóle)

Cześć!
Jako, że liczę na konkretne i trafne odpowiedzi postaram się pokrótce powiedzieć coś o sobie (proszę by odpowiadając zwracać uwagę na całość a nie tylko pytania).
Nazywam się Bartek, ukończyłem technikum informatyczne, aktualnie zajmuję się programami dla robotów przemysłowych oraz symulacjami dla nich, studiuje zaocznie BHP (zaczynam od października). Na RoR natrafiłem przypadkiem przeglądając internet, bardzo zainteresował mnie ten temat, ogarnąłem jakieś tam podstawowe zapoznanie ze środowiskiem, przeszedłem TryRuby które tak nawiasem gorąco polecam dla całkowicie “zielonych”. A teraz krótko moje doświadczenia:

- W wieku może 13 lat zainteresował mnie temat hakerstwa oraz zabezpieczeń komputerowych, jak to na młodego buntownika przystało, liznąłem trochę Delphi, C++, (proste kalkulatory, “programki”, proste trojany według tutoriali, których nigdy niestety nie miałem okazji testować :slight_smile: ), poznałem trochę zasady budowy sieci itd. i chyba jako jedyny wśród moich znajomych (w dużej części teraźniejszych dobrych informatyków) miałem jakiekolwiek większe pojęcie w tym temacie, mając w dodatku mało materiałów.

- Rok później założyłem prywatny serwer do gry, który hostowałem na swoim komputerze w domu (PhpMyAdmin, Mysql, Webserver (nie wiem czy w ogóle jeszcze istnieje), Apache), tak więc dosyć szybko miałem styczność z bazami danych i jako takim hostingiem. Szło mi doskonale. Mogłem zarabiać wtedy spore pieniądze lecz ograniczał mnie wiek, kapitał i rodzice

Niestety moje zainteresowanie opadło wraz z pójściem do technikum informatycznego, nauczyciele obrzydzili mi temat jednakże nauczyłem się m.in.
- instalować linuksy i korzystać z nich (w sumie nic nadzwyczajnego ale…)
- trochę więcej programować w C++
- pisać proste strony internetowe

Zająłem się sportem. Miałem długą przerwę po czym dostałem ciekawą ofertę pracy przy robotach przemysłowych (KUKA) i do dziś dnia się tym zajmuje, lecz nie jest to do końca działka która mnie pociąga. Po drodze stworzyłem swojego bloga, którego zawiesiłem do odwołania. Również około 2 miesiące pracowałem w Photoshopie. Bardzo dobrze posługuję się j. angielskim.

Cóż, dosyć przynudzania :slight_smile:, teraz z mojej strony pytania, chcę nauczyć się pracować w środowisku RoR (chyba jasne), chcę spróbować czegoś nowego, i chcę nabyć cennego doświadczenia.

- Co muszę wiedzieć nim zabiorę się do nauki (poziom trudności, ogólne)?
- Czy jest potrzeba uczenia się innego języka programowania nim wezmę się za RoR?
- Jakie są jego możliwości, gdzie mogę sięgać nabywając tą umiejętność?
- Jaką przyszłość ma RoR?
- Biorąc pod uwagę moje dotychczasowe umiejętności jakie są szanse, że dobrze przyswoję RoR?
- Czy moje studia pozwolą mi nauczyć się pracować jakoś sensownie w RoR w miarę krótkim czasie, pozostawiając mi jeszcze chwilę wolnego czasu dla siebie, czy jest sens się za to zabierać?
- Jak żmudna jest nauka w tym środowisku, jak przyjazne jest dla użytkownika?
- Nie ukrywam, że szukam czegoś, co nie jest na dłuższą metę monotonne, dlatego zainteresował mnie RoR, czy moje przypuszczenia są trafne?
- Nie interesuje mnie praca w korporacjach, jak wygląda praca solo w tym środowisku? Jak wygląda praca w małych grupach? Możecie podać przykłady ciekawych projektów non-profit w RoR?
- Śmieszne pytanie, aczkolwiek ciekaw jestem odpowiedzi :slight_smile:, macie jakieś wizje łączenia BHP z RoR?
- Uważam, że kursy to nabijanie kasy, w grę wchodzi tylko indywidualna nauka, czy istnieją materiały które wprowadzą mnie w RoR, mając tylko podstawową wiedzę na temat programowania?
- Co ułatwi mi naukę?
- Jak ukierunkować swoją ścieżkę, by być specjalistą?
- Jakie technologie muszą mi być znane by czuć się w tym środowisku swobodnie?
- Chciałbym uniknąć nauki wszystkiego po trochu bo wychodzę z założenia, że jak umiesz wszystko to nie umiesz tak naprawdę nic, o czym przekonało mnie całe moje dotychczasowe życie, dlatego chciałbym bardzo uściślić swoją wiedzę i skompresować mając jeden porządny produkt :slight_smile:, co polecacie zrobić na moim miejscu, biorąc pod uwagę RoR, programowanie jako tako?
- Przede wszystkim czy potrzebne są studia by być w tym dobrym? Jak tak, to jak bardzo?

Jestem młody, moja ścieżka rozwoju jest burzliwa, aczkolwiek pełna energii do działania i poznawania rzeczy nowych, marzę o tworzeniu rzeczy wielkich i tylko coś takiego mnie interesuje, lubię mieć wpływ na to co mnie otacza, nie chodzi o zarobki, szukam czegoś coś mnie wciągnie i pozwoli na perfekcjonizm i zaspokajanie mojej odwiecznej potrzeby tworzenia. Od zawsze szanse widziałem w internecie, bo nie poznałem rzeczy bardziej podniecającej niż np. obserwacja sytuacji gdzie zwykły filmik na YT, w ciągu doby potrafi odtworzyć miliony osób na całym świecie. A co może być lepszego niż język który to wszystko tworzy? RoR w pewien sposób mnie przyciągnął i nie wiem czy trafnie.

Po co to wszystko piszę? Otóż dlatego, że oczekuję bardzo konkretnych odpowiedzi, rzadko rejestruję się na forach internetowych ale trafiając tutaj widzę bardzo wysoki poziom, inteligentnych i konkretnych ludzi, którzy nie boją się słuchać (czy też czytać) pytań i nie boją się na nie konkretnie odpowiadać. Stawiam na celność i liczę na Waszą pomoc, mając na uwadze niezwykłą otwartość tego środowiska. Wiem, że wiele pytań już było poruszanych na tym forum, aczkolwiek pragnę by zwrócono uwagę na indywidualność i charakter mojego problemu w kontekście całości. Czuję, że RoR odkryję przede mną nowe możliwości i w znaczny sposób poszerzy horyzonty, jeśli się mylę, proszę o wyprowadzenie mnie z błędu. Jestem skłonny do dyskusji. Dzięki z góry za wszelkie odpowiedzi i liczę na wyrozumiałość :slight_smile:. Peace!
**

Skoro chcesz pisać w języku w którym jest napisany backend Youtube’a to czemu zastanawiasz się nad rubym? Backend Youtube jest w Pythonie.

W Rubym możesz napisać prawie wszystko, bardzo wiele z tych “wszystkich” rzeczy można napisać bardzo szybko, ale z drugiej strony ruby pozwala na wyrobienie sobie złych nawyków. Jedno czego na pewno nie można napisać o rubym, to to że jest szybki albo że jest w stanie wydajnie gospodarować zasobami które ma dostępne.

To tak tylko w kwestii zacytowanego fragmentu twojego posta.

Nie miałem na myśli typowo youtube, tylko tworzenie internetu, jako ogółu :slight_smile:, dzięki za odpowiedź, czyli rozumiem, że kod tworzony w Rubym jest mało optymalny? Pytanie więc, czy taki kod stworzony przez Ruby, można optymalizować, i co się do tego najlepiej nadaje?

Ruby bardzo jest naprawdę fajny jako systemowy język skryptowy, jest całkiem wystarczająco wydajny do pisania pisania średnio skomplikowanych aplikacji webowych o średnim natężeniu ruchu.

Ale im dalej w las tym większy problem jest z wydajnością. Jeżeli aplikacja ma sporo rzeczy które musi wykonwywać w tle, to prawie na pewno nie obejdzie się bez redisa’a albo czegoś innego do kolejkowania. Do tego pisząc w railsach trzeba naprawdę bardzo uważać, bo na dzień dobry uczy Cię fatalnych rzeczy które może i są wygodne przy małych aplikacjach, ale przy większych to idąc z konwencją zaczynasz robić klasy potworki i nim się obejrzysz refactoring to będzie droga przez mękę.

Ale nie zmienia to faktu, że średnio skomplikowane aplikacje, albo takie prototypy, proof of concept itp. pisze się naprawdę bardzo bardzo szybko. Jeżeli stosunkowo szybko sobie uświadomisz że pisanie kodu to jest zwykłe rzemiosło a nie sztuka, to ruby jest dobrym narzędziem do bardzo, bardzo wielu prac. Ale miej zawsze na uwadze, że czasem niektóre inne narzędzia lepiej się nadają do danej pracy (np. rozproszone przetwarzanie danych).

A co się lepiej nadaje? To zależy do czego, bo nie ma żadnego złotego narzędzia. Nie próbuj uczyć się języka który jest najlepszy bo takiego nie ma.

Napisałeś tam ścianę tekstu, ale może lepiej by było streścić to jednego, dwóch zdań które odpowiedzą na zasadnicze pytania: Po co chcesz programować i co dokładnie chcesz programować, przynajmniej na samym początku, czy to są webowe CRUD’y dla klientów, czy może soft do sterowania samodzielnie zbudowanym dronem czy jeszcze coś innego. Wtedy łatwiej będzie napisać, czy ruby to dobry kierunek na początek, oraz gdzie co trzeba zrobić żeby ruszyć z kopyta :wink:

Chciałbym urzeczywistnić własną wizję CMS. Mam również pomysł na forum, ogólnie bardzo dużo koncepcji, które chciałbym chociaż spróbować zrealizować. Aplikacje na telefon też są dla mnie interesującym tematem aczkolwiek Ruby chyba się do tego nie nadaje. Odbiegając od tematu, czy może mi ktoś powiedzieć jak wygląda gra która działa na komputerze jak i na smartfonie (tzn. korzystając ze smartfonu mamy dostęp do tego co już stworzyliśmy na komputerze i odwrotnie)? Jak wypada na tym tle Ruby?

Korzysta z Web API, którego stworzenie w Railsach są dość proste.

Jeśli myslisz o aplikacji na mobilne możesz się pobawić w RubyMotion.