Czego muszę się nauczyć? Serwis + aplikacja

Cześć.

Tytułem wstępu:

  • Jestem finansistą, “excelowcem”.
  • Nie miałem do tej pory szczególnie do czynienia z programowaniem ani nawet z szeroko rozumianym IT, poza jakimiś prostymi skryptami vb.
  • Nie chcę się przekwalifikowywać zawodowo na programistę (chyba, że na rzecz jakiegoś swojego startupu, który jednak nie będzie prawdopodobnie wymagał bóg wie jakich zdolności), dlatego niekoniecznie chciałbym utknąć w nadmiernym gąszczu tutoriali, książek, dokumentacji - jeśli to nie jest niezbędne, do osiągnięcia celów, o których niżej.
  • Nie śpieszy mi się z niczym, ale chciałbym systematycznie widzieć efekty swojej nauki i poświęconego czasu. Motywacyjnie.

Cele mam dwa:

  1. Cel krótkoterminowy: Względnie dobrze zrozumieć “ekosystem” tworzenia internetowych startupów od technicznej strony (bazy danych, język/-i, frontend, backend, frameworki, gemy, serwery, etc). Innymi słowy - (i) czego muszę się nauczyć i (ii) jakiego zaplecza technicznego potrzebuję, aby stworzyć od zera aplikację mobilną i funkcjonalną stronę internetową. Nie mam tutaj zbyt dużego pojęcia, tematykę znam jedynie “hasłowo”.

  2. Cel średnioterminowy: Stworzyć startup oparty o responsywny serwis informacyjny z elementami społecznościowymi (portal z newsami ze specyficzną funkcjonalnością) i w drugim kroku powiązaną aplikację mobilną. Proces tworzenia ma służyć nauce programowania i obsługi technicznej tego typu projektów, którą chciałbym kontynuować rozwijając ten startup a może tworząc coś zupełnie nowego. Nie przewiduję nic nad wyraz skomplikowanego, wymagającego programowania sztucznej inteligencji, złożonych algorytmów, etc.

Nie oczekuję gotowego przepisu na sukces czy poprowadzenia za rękę. Mam tylko prośbę o skierowanie na właściwe tory. W tym celu potrzebuję następujących wskazówek / opinii:

  1. Czy w ogóle Ruby i RoR to dobry kierunek, czy może wybrać jakąś prostszą drogę (jeśli taka istnieje)?
  2. Czy opanowanie podstaw Ruby / RoR i elementów html wystarczy do osiągnięcia celu 1 i 2 (w zakresie serwisu/aplikacji webowej), czy np. niezbędna jest dodatkowo nauka SQL, JavaScript, CSS, xHTML, PHP, etc.? Mówimy tu o projekcie od początku do końca, tj. także o tym, co widzi użytkownik (frontend?).
  3. Czy do stworzenia aplikacji mobilnej (iOS, Android) muszę nauczyć się dodatkowych języków, czy znajomość Ruby/RoR wystarczy?
  4. Na ile mocno powinienem zagłębiać się w samo Ruby? Na jakim etapie powinienem przejść od razu do RoR, mając na uwadze postawione cele?
  5. Czy istnieje jakiś poradnik / tutorial, który pozwoli mi zrozumieć większość podstawowych pojęć i mechanizmów dotyczących zaplecza technicznego takiego projektu (mam napisaną aplikację - gdzie i jak ją postawić w sieci, na co zwrócić uwagę, jak sparametryzować minimalne wymagania techniczne dla określonego serwisu / aplikacji, etc)? Mogę szukać wszystkiego po kolei, ale może gdzieś ktoś to zebrał kompleksowo. Służyć ma to identyfikacji ew. dodatkowych rzeczy, które muszę się nauczyć, a także oszacowaniu ew. kosztów na poziomie MVP (wersja beta) i produktu finalnego.

Dziękuję za wszelkie wskazówki :slight_smile:

Siłą RoR to właśnie prostota w tworzeniu aplikacji. Wiele gotowych rozwiązań w postaci gemów. Moim zdaniem kierunek jest dobry bo tworzenie aplikacji jest procesem przyjemnym. Nie wiem na jaki ruch chciałbym być przygotowany, ale pamiętaj, że RoR to dość ciężki framework, więc ta prostota i szybkość w tworzeniu niesie ze sobą konsekwencje w postaci performance’u. No ale jak zaczynasz to dla Ciebie drugorzędna sprawa.
Co do początków to nie będzie Ci łatwo, zwłaszcza jeżeli nie pisałeś nigdy w żadnym języku programowania. Musisz poznać podstawy Rubiego żeby w ogole rozumieć co się dzieje w aplikacji, a potem poznać architekture Rails. Które pliki mają wpływ na inne i jak działą magia rails(np uzupełniając kontroller masz wpływ na widok itd itd). Rails obsługują najpopularniejsze frontowe frameworki. Instaluje odpowiedniego gema i masz dostęp do framworka, ale oczywiście podstawy html, css, js również musisz nabyć by zmusić te narzędzia do takich zachowań jakie oczekujesz. SQL względnie nie musisz znać bo ActiveRecord Rails daje Ci podstawowe metody do posługiwania się bazą danych. Generalnie musisz pamietać, że nie jest to CMS jak Wordpress, że można sobie to i owo wyklikać czy załadować template.
Nabycie wiedzy Cie nie ominie.

Dziękuję za opinię. Znajomość HTML i CSS staje się zatem niezbędna, co rozumiem.
Zastanawiam się tylko, czy dla zupełnie początkującego dobrym rozwiązaniem jest nauka jeszcze dodatkowo Ruby / RoR i JavaScript, czy np. nie mógłbym poprzestać na JS z jakimś frameworkiem (Node?).

Zmierzam do odpowiedzi na pytanie, czy skoro i tak muszę się uczyć się w zasadzie dwóch złożonych jezyków (Ruby i JS), to czy podobnych rezultatów nie osiągnę w krótszym czasie ucząc się jedynie JS na potrzeby backendu i frontendu?
Zwróćcie proszę uwagę na dwie rzeczy:

  • Nie mam w tym zakresie doświadczenia i nauka tylu języków na raz może mnie trochę przytłoczyć (a może się mylę?),
  • Potrzebuję na dziś wiedzy pozwalającej mi tworzyć aplikacje internetowe o umiarkowanym poziomie skomplikowania. Dla przykładu: serwis i aplikacja mobilna stworzona na potrzeby “user generated content” z elementami społecznościowymi (konta użytkowników, komentowanie, dodawanie treści, moderowanie, mikropłatności, etc.). Czy szybciej i sprawniej stworzę takie coś rozpoczynając dziś naukę JS+HTML+CSS czy JS+RoR+HTML+CSS?

Możesz zwrócić uwagę na taki framework jak ‘meteor’. Jest napisany w JS, korzysta z MongoDB(chociaż pewnie można to zmienić). Masz tam jedynie html, css i javascript. Backend stoi tam na nodejs. Fajny tutorial jest. W ten sposób odchodzi Ci pewien klocek w tym całym developerskim biznesie:P. Ja osobiście nie jestem zwolennikiem node ^^
Link: https://www.meteor.com/

Przyszłość Meteora jest niepewna w tej chwili, radziłbym inne opcje.

Dla mnie node ogólnie jest niepewny. Jeden zły update potrafi wywalić całą aplikacje…
Artykuł:
https://www.raymondcamden.com/2013/06/24/Node-lessons-learned-painfully-or-why-my-site-crashed/