9 tygodni w RoR-początek kariery programistycznej

0
Cześć! Chcielibyśmy przedstawić ciekawą inicjatywę Coder`s Lab. www.goo.gl/p3ylTa

Idea kursów Coder’s Lab zrodziła się po rozmowach z przedstawicielami firm branży IT, którzy narzekali na niedostosowanie systemu edukacji programistów do potrzeb Development Housów. Język Ruby on Rails jest stosunkowo młody, dlatego zapotrzebowanie na programistów w nim się specjalizujących ciągle rośnie. Jednakże próżno szukać zajęć z tego języka na studiach, a samodzielna nauka zajmuje bardzo dużo czasu.

Dlatego postanowiliśmy stworzyć pierwszy w Polsce 9-tygodniowy kurs, który uczy od podstaw programować w tym języku. Przez te kilka intensywnych tygodni, można zgłębić tajniki programowania pod okiem specjalistów z m.in.: Rebased, Visuality, El Passion. Na zakończenie każdej edycji kursu organizowane jest spotkanie absolwentów z firmami zatrudniającymi junior programistów. 

Właśnie zakończyliśmy 1. edycję kursu Coder`s Lab, czyli nauki RoR od podstaw. Te 9 tygodni były dla nas ogromnym wyzwaniem organizacyjnym. Wynieśliśmy mnóstwo ciekawych obserwacji, które pozwolą nam ulepszyć kolejną edycję.

Teraz pełną parą rusza organizacja kolejnej edycji kursu, która rozpocznie się 7. stycznia 2014 i tak jak poprzednia odbędzie się w Warszawie. 

Nawiązujemy współpracę z nowymi firmami oraz programistami, którzy chcą się przyczynić do rozwoju naszej inicjatywy. Obserwujesz nas? Zapraszamy do kontaktu wszystkich, którzy chcą przyczynić się do popularyzowania programowania w RoR i przekazywania rzetelnej wiedzy na ten temat, zarówno jako partner Coder’s Lab, jak i wykładowca.

Rozpoczęliśmy również nabór kursantów chcących wziąć udział w nowej edycji kursu. Ambitnych, chcących zmienić swój dotychczasowy bieg kariery, gotowych na ciężką pracę, która pozwoli osiągnąć zamierzony cel. Jeżeli chcesz się uczyć programowania szybciej, efektywniej, w miłej atmosferze, zgłoś się do nas.

Jeżeli podoba Ci się nasza inicjatywa, zapraszamy na naszą stronę po więcej informacji: www.goo.gl/p3ylTa

Piszcie! Odpowiemy na wszystkie pytania!
0

Czy druga edycja też będzie kosztować dziesięć tysięcy pln? Gdzie można poczytać o efektach pierwszej edycji?

0

W ciągu 9 tygodni można osiągnąć bardzo wiele. Między innymi nauczyć się programowania

Bzdura. O ile w 9 tygodni programista może się nauczyć nowego języka programowania na poziomie pozwalającym na jako-taką pracę w tym języku (o ile nie jest to jakiś chory paradygmat), o tyle nie ma możliwości nauczyć się w takim czasie programowania. Jestem też przekonany że nie-programista nawet języka w te 9 tygodni nie załapie.

Wybraliśmy framework Ruby on Rails z kilku powodów. Jednym z nich jest fakt, że programiści pracujący w Ruby on Rails po prostu dobrze zarabiają, a popyt na nich rośnie. Konkretniej mówiąc, junior developer posługujący się Ruby on Rails zarobi od 2,5 do 4 tys brutto

I to ma niby kogoś zachęcić? o_O Tyle to dostają studenci na stażu. Junior w Javie to jest ~5k brutto ;] O jeszcze to w kontekście 10k za ten kurs. To znaczy że ktoś musiałby potem pracować przez rok żeby ten kurs spłacić (przy założeniu że za coś żyć trzeba).

0

Druga edycja będzie miała cenę 10 200zł. Istnienie możliwość rozłożenia na raty płatności.

Już spieszę z odpowiedzią na temat wyników 1 edycji.

W zeszłym tygodniu zorganizowaliśmy targi pracy, na których absolwenci naszego kursu mieli możliwość zaprezentować swoje projekty firmom zatrudniającym programistów RoR. Oprócz firm partnerskich, na targach obecnych było kilka firm zewnętrznych. Z tego, co nam wiadomo, firmy były zadowolone z poziomu wiedzy kursantów, a przede wszystkim z ich determinacji do zmiany dotychczasowego biegu kariery.

Ciągle do nas spływają wieści odnośnie wyników rekrutacji absolwentów, więc ciężko jest określić konkretnie, ile osób znalazło pracę. Jednakże wiemy, że większość kursantów została zaproszona na drugi etap rekrutacji do firm, a już kilku nich udało się podpisać umowy z firmami.

0
Coderslab napisał(a):

Z tego, co nam wiadomo, firmy były zadowolone z poziomu wiedzy kursantów, a przede wszystkim z ich determinacji do zmiany dotychczasowego biegu kariery.

No, ja sądzę... Trzeba być naprawdę zdeterminowanym, żeby taką kasę wyłożyć na kurs, gdzie zapewne poznają (może i dobrze) podstawy... Ale czy to nie jest trochę mamienie ludzi perspektywą dostania pracy? Za horendalną cenę?

0

Zakładając, że nauczyciel zarabia 5 tys. zł za pełnoetatową pracę, to każdy uczestnik kursu dostaje prywatnego nauczyciela na pełny etat?

3

Ale Panowie, nie czepiajcie sie wynagrodzenia, jak i kosztu kursu. Jesli kogos stac i chce tyle wylozyc, to prosze bardzo. Wolny rynek. Jesli zespolowi firmy udalo sie zrobic biznes tak, ze maja dochody 30 tys PLN netto / mies. dla trenera, to pogratulowac tylko, czyz nie? Pamietajcie, by mierzyc wysoko i do wyzszych, a nie do tego przecietne, do normalnosci. ;) Sa szkolenia, co trwaja 2 dni i tyle kosztuja.

2

A mi w teorii forma takiego szkolenia się podoba. 9 tygodni po 40 godzin nauki nastawionej na praktykę to już coś. Na pewno więcej niż ~3 godziny w tygodniu (zazwyczaj marnych) zajęć z programowania na studiach. Oceniać tej konkretnej oferty nie będę, bo ani nikt z nas nie widział materiałów, ani nie mieliśmy styczności z kimś kto ten kurs skończył.

0
Rev napisał(a):

A mi w teorii forma takiego szkolenia się podoba. 9 tygodni po 40 godzin nauki nastawionej na praktykę to już coś. Na pewno więcej niż ~3 godziny w tygodniu (zazwyczaj marnych) zajęć z programowania na studiach. Oceniać tej konkretnej oferty nie będę, bo ani nikt z nas nie widział materiałów, ani nie mieliśmy styczności z kimś kto ten kurs skończył.

Oprócz tych 40h tygodniowo bardzo zalecamy, aby poświęcić kolejne 20h na naukę własną. Niestety nie każdego da się nauczyć programować w ciągu tych 40h. Niektórzy są bardziej pojętni, inni mniej. Na pewno biorąc udział w naszym kursie, trzeba nastawić się na bardzo ciężką pracę. Ciężką pracę, która z pewnością przyniesie efekty. :)

0

Data rozpoczęcia drugiej edycji kursu uległa przesunięciu na 27.stycznia!

Wpadajcie na naszą stronę: www.goo.gl/p3ylTa

0

A czy na pierwszą edycję ktokolwiek się zapisał?

1
Spine napisał(a):

A czy na pierwszą edycję ktokolwiek się zapisał?

Jasne, że tak! :)

Kurs zaczęło 10 kursantów. W międzyczasie 1 osoba zrezygnowała z powodów rodzinnych. 9 osób zakończyło kurs, 8 osób uczestniczyło w organizowanych przez nas targach pracy (czyli aktywnie szuka pracy). Połowa z nich została zatrudniona już tego samego dnia (w firmach: Rebased, El Passion, DaftCode). Reszta jest jeszcze w trakcie procesów rekrutacji.

Myślimy, że to całkiem niezły wynik. :)

http://bit.ly/coderslabfaq4programmers

0

A na najbliższą edycję kursu mamy już 5 chętnych (4 osoby podpisały już umowy).

Przypominamy, że zimowa edycji rozpoczyna się 27.stycznia.

http://bit.ly/coderslabfaq4programmers

0

Hej,

ruszamy z kolejnymi kursami podstaw Ruby on Rails: weekendowy (od 10 maja) i stacjonarny (od 30 czerwca).

Weekendowy kurs Ruby on Rails będzie trwał 16 weekendów, po 7h dziennie nauki, w soboty i niedziele.
Stacjonarny Kurs trwa 9 tygodni, po 8h dziennie nauki, od poniedziałku do piątku. W połowie szkolenia przewidujemy tygodniową przerwę.

Tym razem program obu kursów podzieliliśmy na 4 części, dzięki czemu jest możliwe uczestniczenie w pojedynczych częściach.

Zapraszamy po więcej info na naszą stronę: www.coderslab.pl

0

Czy ja dobrze zrozumiałem za dwa etapy kursu trzeba wybulić 20 tysi, a na wykop.pl poszukiwali programisty czyli jedno miejsce było, gdzie oferowali 12 tysi na miesiąc za pisanie strony w RoR. Czy to się opłaci?

0

Hej,

informujemy, iż miejsca na stacjonarnym wakacyjnym kursie podstaw RoR już się wyczerpały!

Zapraszamy na szkolenie weekendowe, które rozpoczyna się 31 maja 2014. Będzie to 16 weekendów intensywnej nauki frameworku (sobota i niedziele wypełniona zajęciami), wspartej ćwiczeniami na specjalnie przygotowanej platformie e-learningowej.

Zostały ostatnie miejsca!

Zapraszamy do odwiedzin naszej zmienionej strony internetowej: www.coderslab.pl

Pozdrawiamy! :)

0

Z tego co się zorientowałem to jest tak. Jest dość dużo takich płatnych szkoleń i książek za które trzeba zapłacić, dotyczących rubiego i railsów, natomiast jakoś trudno znaleźć coś wartościowego do nauki bezpłatnie w sieci. Mam zainstalowane wszystko co potrzebne do tworzenia aplikacji webowych w RoR, natomiast próbując się w tym rozeznać, sprawa nie jest taka prosta. Przede wszystkim dość złożone i niejasne zasady składni w tych wszystkich modelach i szablonach.

Moim zdaniem o wiele prościej i łatwiej nauczyć się tworzenia aplikacji webowych w ASP.NET (C# albo VB.NET) albo PHP niż w takich językach jak python (i przy użyciu DJANGO) albo w ruby (Rails). Co prawda python albo ruby są niszowe w Polsce (na pracuj.pl można naliczyć nie więcej niż 50 ofert pracy), więc może warto by wydać kasę (o ile nie jest zaporowa) na taki kurs ale:

  1. Zastanawia mnie czy ruby nie jest tylko taką programistyczną modą (skąd tyle szumu wokół niego)
  2. Czy jego zastosowanie nie jest czasem ograniczone (jakby nie było króluje JAVA albo .NET i PHP)
  3. Co z wsparciem dla rubiego (bo chyba powinno być jasne, że najlepiej pisać w czymś co ma duże wsparcie (php, java, .NET)

Może się nie znam ale takie mam odczucia. Dość dobrze odnajduję się w językach kompilowanych statycznie typowanych (C#, JAVA) ale co do web to sam czuję się na siłę napisać aplikację web tylko w PHP albo ASP.NET, bo to jest dość proste.

Jestem ciekaw ilu programistów będzie w stanie załapać to co jest tam wykładane na takich kursach? I jestem ciekaw czy taki wydatek się tak prosto zwróci, skoro w PL jest mało ofert pracy w RoR? A zresztą kto tu mówi o zwrocie kasy, bo przecież można nauczyć się tego tak dla siebie. Idąc dalej. Jeśli mimo to wywalę kilka tys. na naukę RoR, czy zwróci mi się to w postaci zleceń?

0

Dajmy np. aplikację railsgirls: http://guides.railsgirls.com/app/

I dla mnie problem jest np. ze zrozumieniem tego co jest w takich plikach:

app/views/ideas/_form.html.erb

<%= form_for(@idea) do |f| %>
<%= form_for @idea, :html => {:multipart => true} do |f| %>

tak samo i to np:

 
rails generate scaffold idea name:string description:text picture:string
ruby bin/rake db:migrate

albo to:

class Idea < ActiveRecord::Base
  mount_uploader :picture, PictureUploader
end

Strasznie ciężko mi załapać o co w tym chodzi a w PHP akurat nie miałbym takich problemów jakby taką aplikację pisać od zera a nie w oparciu o frameworki.

0

@niezdecydowany - Mam gdzieś szybkość pisania aplikacji. Widzę że nie masz bladego pojęcia na temat możliwości jakie daje np. .NET. Zapewniam Cię, że potrafię znacznie więcej niż napisać jakiś prosty kalkulator a C# siedzę najwięcej.

Chyba nie zaprzeczysz że w tej technologii pisze się poważne aplikacje w większych firmach. Próbowałem tworzyć bloga w rails w oparciu o to: http://guides.rubyonrails.org/v4.0.6/getting_started.html,

niestety Netbeans 6.1 wywala mi jakieś czerwone ikonki, co może wynikać po prostu z niezgodności w wersjach albo coś podobnego.

Kiedyś była na temat rubiego dość ciekawa dyskusja:

http://blog.zabiello.com/2007/08/25/aplikacja-webowa-wybor-technologii
http://blog.zabiello.com/2005/11/14/ruby-python-vs-java-c

I jak to przeczytasz to zobaczysz, że są mocne argumenty zwolenników PHP, JAVA albo .NET.

0

A ile się zmieniło od tego 2005 czy 2007 roku? Poza tym druga sprawa. Czy na uczelniach są już teraz zajęcia z ruby a jeżeli tak to ile to jest procent całości i jaki jest na to nacisk? Widzę że nawet na YT są jakieś kursy w tym temacie, nawet po polsku. A co do tych szkoleń Coder's lab dyskusje są podzielone.

0

@drorat1 - rails POWSTAŁ w 2003. Jak myślisz - jak bardzo był rozbudowany i zajefajny w 2-4 lata po powstaniu vs. 11 lat po powstaniu? i to w ciągu tych 11 lat zyskiwał na popularności a przez popularność railsów ogromnie zyskał też język Ruby. Poza tym Netbeans NIE MA wsparcia dla Ruby/RoR od wersji 7.0 (bo i tak każdy widział że kulało to olali).
W przypadku railsów lepej nie grzebać w antykach bo za szybko się rozwija :)

1

To może się wypowiem, zanim @drorat1 zostanie tutaj zniszczony totalnie przez kolegów i się zrazi do naszego zacnego grona.

W roli wyjaśnienia: piszę aplikacje w Railsach zawodowo i zajmuję się tą technologią od jakichś 3-4 lat.

Railsy względem wersji 1.x czy 2.x zmieniły się praktycznie całkowicie. Z ważniejszych zmian:

  • Assets pipeline - najwygodniejszy wg mnie sposób na zarządzanie assetami. CommonJS czy inne AMD są IMHO znacznie bardziej zagmatwane i "magiczne".
  • Bundler - zarządzanie bibliotekami, które zaczęło cały boom na takie managery (npm, PiP, Gradle, Go, etc.). Maven jest potężny, ale zarządzanie nim bez IDE to masakra, do Rubiego wystarcza mi Vim i wszystko jest klarowne.
  • Użycie Rack dzięki czemu można montować silniki napisane w innych frameworkach opartych na Rack (jak Sinatra) oraz uproszczone tworzenie serwerów HTTP (Unicorn, Rainbows!, Mongrel, Puma).
  • Domyślne threadsafe.
  • Zmiany w API - uproszczona edycja response, natywne wsparcie dla JSONa, etc.
  • Dodanie Springa
  • Porzucenie wsparcia dla Ruby 1.8 (które jest dość mocno w tyle względem obecnego standardu, czyli 2.x)

A teraz odpowiadając na twoje pytania:

  1. Zastanawia mnie czy ruby nie jest tylko taką programistyczną modą (skąd tyle szumu wokół niego)

Patrząc, że ta "moda" trwa już dobrych parę lat i dość znacząco wpłynęła na większość frameworków (i.e. Django, Grails, Play!, Cake) to raczej jest to trend niż moda.

  1. Czy jego zastosowanie nie jest czasem ograniczone (jakby nie było króluje JAVA albo .NET i PHP)

Java i .Net to są technologie korporacyjne, a PHP trzyma się mocno jeszcze chyba tylko w Polsce. Z bardziej znanych serwisów napisanych w Rubym:

  • Twitch
  • Twitter (kiedyś był w znacznej części, teraz ze względów na wydajność przenoszą logikę na Scalę)
  • Shopify
  • Groupon
  • AirBnB
  • Soundcloud
  • Heroku
  • GitHub
  • Redmine
  • GitLab
  • Travis
  • SlideShare
  • Ask.fm
  • Basecamp (z resztą to oni stworzyli RoRa)

Część z nich powinieneś znać.

  1. Co z wsparciem dla rubiego (bo chyba powinno być jasne, że najlepiej pisać w czymś co ma duże wsparcie (php, java, .NET)

Sądzę, że ta grafika będzie odpowiedzią na Twoje pytanie:
user image

I dla mnie problem jest np. ze zrozumieniem tego co jest w takich plikach:

app/views/ideas/_form.html.erb

<%= form_for(@idea) do |f| %>
<%= form_for @idea, :html => {:multipart => true} do |f| %>

A w ASP.NET znasz to:

@for(var i = 10; i < 21; i++)
{
    <p>Line #: @i</p>
}

To jest dokładnie to samo, tylko inny język szablonów. Jeśli nie rozumiesz składni method do |var|; end to znaczy, że nie znasz konceptu domknięć w Rubym, a nie widoków.

tak samo i to np:

rails generate scaffold idea name:string description:text picture:string
ruby bin/rake db:migrate

A jak piszesz w swoim ASP.NET to też tworzysz wszystkie modele z palca? Pierwsze tworzy szablon (model, kontroler, widoki) dla modelu Idea zawierającego pola: name będące polem VARCHAR, description będącego TEXTem oraz picture będącego znów VARCHAREM. Dodatkowo Rails z automatu doda pola id będące autoinkrementowanym kluczem głównym oraz pola created_at oraz updated_at będące typu DATETIME (zakładam, że używasz ActiveRecord, czyli domyślnego ORMa). Drugie uruchamia migracje, by utworzyć odpowiednie tabele w bazie danych (nie znam odpowiednika w ASP.NET).

albo to:

class Idea < ActiveRecord::Base
mount_uploader :picture, PictureUploader
end



To jest zwykła deklaracja modelu z dodatkowo dodanym uploaderem z gema CarrierWave (po szczegóły polecam zapoznać się z dokumentacją). Poza tym w tutorialu na pewno było to opisane.


> Mam gdzieś szybkość pisania aplikacji.


Wat? Nawet jeśli ty masz to gdzieś (pewnie płacą Ci od godziny i masz płatne nadgodziny, wtedy się nie dziwię) to Twój pracodawca się tym przejmuje.


> Widzę że nie masz bladego pojęcia na temat możliwości jakie daje np. .NET. Zapewniam Cię, że potrafię znacznie więcej niż napisać jakiś prosty kalkulator a C# siedzę najwięcej.


Czyli pewnie siedzisz w korpo, a technologie takie jak Node, Rails, Django rządzą w startupach gdzie nie ma zasobów na to by kupić serwer IIS czy zatrudnić armii programistów, a szybkość wydania aplikacji jest jedną z najważniejszych kwestii.


> niestety Netbeans 6.1 wywala mi jakieś czerwone ikonki, co może wynikać po prostu z niezgodności w wersjach albo coś podobnego.


Pomijając fakt, że wybrałeś strasznie starą wersję Netbeans to jeszcze to nie jest najpopularniejszy wybór przy tworzeniu aplikacji w Railsach. Aktualnie prym wiodą Vim oraz Sublime Text. Kiedyś był to TextMate, ale on jakoś zniknął z rynku. Jeśli wolisz IDE to znacznie popularniejsze są Aptana lub RubyMine, jednak jak jestem zwolennikiem minimalizmu i moje toolbox to: Vim, TMux, Git z terminala.


> Czy na uczelniach są już teraz zajęcia z ruby


A co to za różnica? Ja miałem zajęcia z Prologa a jakoś wielu projektów w tym języku nie widzę. Ja jestem zwolennikiem nauczania Scheme na studiach a jakoś projektów w tym języku też jest jak na lekarstwo. Na uczelni mają Cię nauczyć myśleć jak programista a nie języków, w których będziesz potem pracował. Dobry programista nauczy się dowolnego języka w tydzień. Dać mu dodatkowy miesiąc na naukę biblioteki standardowej i będzie potrafił napisać całkiem dobry kod dowolnej aplikacji. Klepiąca małpa pozostanie klepiącą małpą.

**EDIT:**

> Z tego co się zorientowałem to jest tak. Jest dość dużo takich płatnych szkoleń i książek za które trzeba zapłacić, dotyczących rubiego i railsów, natomiast jakoś trudno znaleźć coś wartościowego do nauki bezpłatnie w sieci.


- <a href="http://railscasts.com/">RailsCast</a> - spora część jest za darmo
- <a href="https://www.codeschool.com/paths/ruby">CodeSchool</a> - podstawy za darmo
- I ogólnie <a href="https://www.ruby-lang.org/pl/documentation/">tu</a> oraz <a href="https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md#ruby">tu</a> masz dostateczną ilość materiału by poznać ten język tak, by napisać własny interpreter.
0

@drorat1

Z tego co się zorientowałem to jest tak. Jest dość dużo takich płatnych szkoleń i książek za które trzeba zapłacić, dotyczących rubiego i railsów, natomiast jakoś trudno znaleźć coś wartościowego do nauki bezpłatnie w sieci

A tą stronę znasz: http://www.codecademy.com/

Szybkość tworzenia aplikacji jest ważna, chyba przyjemniej się czegoś uczy jak się widzi tego efekty, przynajmniej ja tak mam.

0

Tak z ciekawości postanowiłem zrobić sobie testy obliczania rekurencyjnie elementów ciągu Fibonacciego w językach: PHP (5.4), Ruby (2.0), Python (2.6), C# (.NET 2.0) oraz JAVA (JRE 7) i otrzymałem takie oto wyniki:

Ruby: 27 sek
Python: 57 sek
PHP: 1 min 28 sek.
JAVA: 5 sek
C#: 6 sek

Obliczenia były kolejno od zerowego do 36 elementu włącznie, wyświetlane w konsoli a w przypadku PHP w oknie przeglądarki. Jakby nie było, języki kompilowane, statycznie typowane tu wygrywają, co do PHP to musiałem jeszcze ustawić w php.ini aż 120 sek jako maksymalny czas wykonania skryptu bo normalnie przy instalacji było 30 sek.

Co do szybkości wytwarzania kodu, jaki to jest problem napisać w C# albo w JAVA aplikację konsolową lub desktopową która by posłużyła za generator modeli, kontrolerów, widoków, testów i plików konfiguracji?

Poza tym mam wrażenie, że ruby jest tu przedstawiany jako coś zajebistego (w porównaniu z php i po tych testach wygląda na to, że nie ma co nawet tego negować), co nie znaczy że powinien być jedynym i słusznym językiem programowania. Jakby nie było, w PL to właśnie PHP jest dość często wykorzystywany i chyba nie muszę nawet tłumaczyć z czego to może wynikać.

Napiszecie szybko aplikację, bo RoR samo wygeneruje większość potrzebnych plików i co z tego? A co z testowaniem aplikacji i poprawnością kodu? W C# to nawet nie będę mógł skompilować kodu a w JAVA to Netbeans albo Eclipse już w trakcie pisania samo wykryje ewentualne błędy.

0
drorat1 napisał(a):

Napiszecie szybko aplikację, bo RoR samo wygeneruje większość potrzebnych plików i co z tego? A co z testowaniem aplikacji i poprawnością kodu? W C# to nawet nie będę mógł skompilować kodu a w JAVA to Netbeans albo Eclipse już w trakcie pisania samo wykryje ewentualne błędy.

No dobra: ale to chyba zaleta IDE a nie języka programowania. Rubymine również sprawdza poprawność wklepywanego kodu i załadowanych gemów. BTW według mnie wszelkie automaty usprawniające cykliczne czynności, które sprowadzają się do jednego i tego samego (np: w/w generowanie modeli) to żadna zbrodnia a raczej bardzo duże ułatwienie. Komu by się chciało wklepywać jedno i to samo jak można to zrobić szybko i skupić się na bardziej ambitniejszych zadaniach. Zaczynam zabawę z ROR i jak widać - sekret tkwi nie w generowaniu większości potrzebnych plików a w dużej społeczności i w gemach....
Znowu... komu by się chciało pisać n-ty CRUD, jak to można zrobić szybko i przyjemnie. Np w PHP - Symfony2 - jest masa bundli które ułatawiają życie i dzięki temu produktywność programisty jest dużo większa jak ia rozwój, bo można pominąć czynności z których i tak już nie wiele uda nam się wynieść.

0

Co do szybkości wytwarzania kodu, jaki to jest problem napisać w C# albo w JAVA aplikację konsolową lub desktopową która by posłużyła za generator modeli, kontrolerów, widoków, testów i plików konfiguracji?

Problemem jest to, że trzeba to napisać, a nie zrobił to ktoś za nas. Po co bezproduktywnie marnować czas skoro nie za to Ci płacą i nie tego od Ciebie oczkuje pracodawca? Poza tym najczęściej takie rzeczy w językach jak C# czy Java załatwia za Ciebie IDE.

Poza tym mam wrażenie, że ruby jest tu przedstawiany jako coś zajebistego, co nie znaczy że powinien być jedynym i słusznym językiem programowania.

Ja nie mówię, że on jest jedyny słuszny i zajebisty do wszystkiego. W ręcz przeciwnie, to Ty cały czas głosisz, że języki jak Ruby czy Python są znacznie gorsze od PHP (bo są "mniej używane" i "mniej ofert pracy") czy C# (bo X czy Y). Dodatkowo mówisz, że język i jego framework jest zły (by nie było, mówisz to tu) uzasadniając to tym, że go nie rozumiesz. WAT?

A co z testowaniem aplikacji i poprawnością kodu?

Za przeproszeniem, ale RSpec jest aktualnie chyba najbardziej podziwianą pod względem łatwości użytkowania biblioteką do TDD a Cucumber do BDD. Oba wywodzą się z Rubiego i pisanie testów w Rubym a w Javie czy C# to zupełnie inna bajka. Mockowanie obiektów w Javie czy C# jak jest kod napisany bez DI to jest droga przez mękę, a w RoRze nawet nie ma zbytniej potrzeby bawienia się w DI bo framework sam o to zadba i z racji duck typingu (który nie zawsze jest dobry) zupełnie nie ma potrzeby na jakąś konfigurację zależności czy coś. Nawet pisanie mocków jest prostsze w Rubym, co potem niektórzy z mniejszym lub większym powodzeniem starali się odwzorować w innych językach (i.e. Mockito).

No to jaki jest problem napisać choćby własny framework, przy założeniu że istniejące nie zadowalają?

Polecam zobaczyć sobie talk Yehudy Katza (jednego z twórców Railsów) na konferencji Railsberry 2012 w Krakowie:

1

@drorat1

(w porównaniu z php i po tych testach wygląda na to, że nie ma co nawet tego negować)

Przeciez ten "test" to jakas kpina. Zadnego kodu, zadnych faktycznych rezultatow (ilosci prob chociazby). Do tego w PHP wypluwales dane w inne miejsce niz w calej reszcie, wtf. Jak zrobisz test w faktycznym srodowisku, gdzie te jezyki sie uzywa i przedstawisz jakis rzetelny rezultat to wtedy bedzie mozna wyciagac jakies wnioski na podstawie tego, na razie tak jak pisalem - to dowcip.

@winerfresh

Pytanie jakiego algorytmu na ciąg Fibonacciego użyłeś.

Zapewne majacego koncowke fib(n-1) + fib(n-2).

0

<quote="1059223">@drorat1

(w porównaniu z php i po tych testach wygląda na to, że nie ma co nawet tego negować)

Przeciez ten "test" to jakas kpina. Zadnego kodu, zadnych faktycznych rezultatow (ilosci prob chociazby). Do tego w PHP wypluwales dane w inne miejsce niz w calej reszcie, wtf. Jak zrobisz test w faktycznym srodowisku, gdzie te jezyki sie uzywa i przedstawisz jakis rzetelny rezultat to wtedy bedzie mozna wyciagac jakies wnioski na podstawie tego, na razie tak jak pisalem - to dowcip.

To przetestuj sobie:

JAVA:

class TestFib
{
    public static int fib(int n)
    {
        if ((n == 0) || (n == 1))
        {
            return n;
        }
        else
        {
            return fib(n - 2) + fib(n - 1);
        }
    }

    public static void main(String[] args)
    {
        for (int n = 0; n < 37; n++)
        {
            System.out.println(fib(n));
        }
    }
}

C#:

using System;

namespace TestFib
{
    class Program
    {
        public static int fib(int n)
        {
            if ((n == 0) || (n == 1))
            {
                return n;
            }
            else
            {
                return fib(n - 2) + fib(n - 1);
            }
        }
        
        public static void Main(string[] args)
        {
            for (int n = 0; n < 37; n++)
            {
                Console.WriteLine(fib(n));
            }
            
        }
        
    }
}

Python:

def fib(n):
    if n == 0 or n == 1:
        return n
    else:
        return fib(n - 2) + fib(n - 1)


for n in range(0, 37):
    print fib(n)

Ruby:

def fib(n)
  if n == 0 or n == 1
    return n
  else
    return fib(n - 2) + fib(n - 1)
  end
end

n = 0
while n < 37
  print fib(n)
  print "\n"
  n += 1
end 
1

Kod w Rubym jest napisany fatalnie. Już lepsze będzie:

def fib(n)
  if n < 2
    n
  else
    fib(n - 1) + fib(n - 2)
  end
end

puts (0..26).map { |n| fib(n) }

Co nie zmienia faktu, że można to napisać znacznie lepiej, np.:

fib = Enumerator.new do |y|
  a, b = 0, 1
  loop do
    y << a
    a, b = b, a + b
  end
end

puts fib.take(36)

lub użyć mnożenia macierzy:

require 'matrix'

M = Matrix[[0, 1], [1,1]]

def lower_right(matrix)
  return nil if matrix.row_size == 0
  matrix[matrix.row_size - 1, matrix.column_size - 1]
end

def fib_matrix(n)
  return 0 if n <= 0 # F(0)
  return 1 if n == 1 # F(1)
  lower_right(M**(n - 1))
end

Co nie zmienia faktu, że porównywanie szybkości języków przy pomocy ciągu Fibonacciego przy porównywaniu przydatności języka w tworzeniu aplikacji webowych to debilizm.

Już lepszy benchmark to:

  • stworzyć aplikację zwracającą jakąś (taką samą) odpowiedź HTTP pod adresem http://localhost:3000/
  • odpalić httperf --hog --serv localhost --port 3000 --ra 10 --timeout 3.5
  • porównać wyniki w postaci ilości zapytań na sekundę oraz długość kodu dla tak prostego zadania (wyłączamy kod bibliotek użytych do tego)

Wtedy będziesz miał jakieś porównanie.

0

Haha co za gównoburza. Gdyby Python i Ruby były bezużyteczne to nie byłyby stosowane, tymczasem są i to nawet w poważnych instytucjach typu banki albo przez potentata branży IT Google (mowa o Pythonie). Test z ciągiem Fibonacciego, to chyba jakiś żart... Po pierwsze Pythona czy Ruby stosuje się w konkretnych zastosowaniach, a test w ogóle tego nie uwzględnia. Po drugie test nie uwzględnia oszczędności czasu i pieniędzy związanych z rozwojem i utrzymaniem kodu, więc przeprowadzanie jakichkolwiek testów nawet URL shortnera jest po prostu bez sensu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1