Come posso passare da Java e ColdFusion a Ruby on Rails? [chiuso]

5

Attualmente lavoro con ColdFusion 9+ e Java in ambiente Windows. Prima di ColdFusion, il mio background era in Java e JSP.

Sto considerando un passaggio verso Ruby on Rails, perché penso che sarebbe una vera sfida, mantenere le cose fresche e offrire più opportunità di lavoro.

Per iniziare, ho iniziato a creare il mio sito web personale in Rails 3.0. Ma cos'altro posso fare per rendere questa transizione da ciò che conosco ora a Ruby and Rails? Ci sono aspetti specifici o idiomatici di Ruby o Rails che dovrei tenere a mente quando si passa da una mentalità di ColdFusion e Java?

    
posta Ciaran Archer 16.03.2011 - 14:41
fonte

5 risposte

7

Non c'è niente come fare un progetto real per imparare un linguaggio / framework. Secondo me, l'ingegneria delle cose intorno ai bisogni è molto più utile nell'apprendimento rispetto alla semplice costruzione di qualcosa per il gusto di costruire (ad es. Sito web personale).

Personalmente, avendo giocato con i primi Rails 2, ora sto imparando Rails 3 e sono stato fortunato in un paio di modi. Uno, un ex capo aveva un progetto su cui avrei potuto lavorare come lavoro secondario e sono stato in grado di costruirlo in Rails. E due, nel mio attuale lavoro sono stato in grado di convincere un piccolo progetto ancillare da costruire in Rails. Quando ho cercato di imparare Rails prima di pensare che il pezzo mancante per me fosse avere un vero progetto sul mondo reale su cui lavorare. Per te, che ne dici di proporre lo sviluppo di uno strumento interno o di un'app di supporto e di buttarlo casualmente che proverai a costruirlo in Rails come test / indagine? Potresti essere sorpreso, altre persone nel tuo negozio di CF potrebbero pensare la stessa cosa e troverai un movimento sotterraneo che vuole uscire da CF / Java.

Inoltre, quando inizi a intervistare nulla ti aiuta di più che avere un vero progetto / codice per mostrarti cosa è cosa.

Sono sicuro che sarai d'accordo, imparare la lingua di Ruby è probabilmente la parte più facile per te. Non entrerò in quello.

Non parli di aver lavorato in qualsiasi framework in Java / CF. Se sei nuovo nell'usare i framework, imparare una lingua (ad esempio Ruby) è una cosa e imparare la struttura è un'altra. C'è molto da Rails. Partendo da concetti come MVC e ORM, per il nitty-gritty come il funzionamento di ActiveRecord e tutte le cose disponibili in ActiveSupport. E non dimenticare che c'è anche l'apprendimento del modo in cui alla community piace progettare cose all'interno di Rails e gemme, come trovare supporto, dove sono tutte le gemme.

Se sei completamente nuovo a Linux, non sottovalutarlo. C'è molto da raccogliere lì. Se nuovo, suggerisco di impostare un box Linode ($ 20 / mese) e di scatenarlo in quanto è facile da distruggere e ricominciare da capo e installare diversi favori di Linux per vedere come funziona la gestione dei pacchetti su varie installazioni.

Quando assunzioni, diciamo uno sviluppatore Coldfusion, penso che i responsabili delle assunzioni siano molto più propensi ad andare con un buon programmatore e dare a quella persona un po 'di spazio per imparare la CF. Quando assumo uno sviluppatore di Rails, penso che la storia sia diversa. IMO, dovresti essere abbastanza impressionante per essere assunto da un negozio di Rails senza progetti di Rails reali.

A proposito di quando hai parlato di TDD, mi sto solo imbattendo in questo ora. Per TDD e BDD, guarda in RSpec e Cucumber in favore del framework di test integrato di Rails 3 (Unit :: Test). Ecco cosa sembrano fare tutti i bei ragazzi;)

    
risposta data 16.03.2011 - 17:10
fonte
2

Ho realizzato la transizione da solo e lo sto amando fino ad ora.

Provenendo da Java / ColdFusion, una delle cose più difficili da capire per me è stato il modo in cui Object Oriented è diverso in Ruby. Rubyist ben fondato è un libro altamente raccomandato, se sei interessato a comprendere Ruby e la filosofia che lo sta dietro.

Lavoravo a ColdFusion durante il mio lavoro diurno e imparavo Ruby on Rails dopo il lavoro. Inizialmente ho fatto il mio apprendimento su una macchina virtuale Ubuntu (molto meglio di Ruby su Windows). Ma passare a Mac è un altro livello di suggestione.

Se ci sono incontri di Ruby User Group nella tua zona, fai attenzione, cerca in rete con gli sviluppatori di Ruby e guardali. Ho imparato a frequentare le riunioni dei gruppi di utenti e le notti di hacking qui a Sydney.

    
risposta data 19.12.2011 - 02:36
fonte
1

Sto lavorando anche per venire a conoscenza di Ruby da uno sfondo di ColdFusion e mentre guardo RoR (leggere e suonare) ho deciso di costruire qualcosa (piccola app commerciale) con il framework Sinatra più leggero come primo progetto.

Alcune delle migliori indicazioni che ho trovato includono:

link

link

È sicuramente un grande vantaggio avere un buon codice per mostrare i tuoi potenziali clienti. Cin cin.

    
risposta data 18.03.2011 - 15:34
fonte
1

Per chiunque altro stia considerando questo, raccomando anche di imparare e lavorare con un framework mentre lavoro ancora in CF. CFWheels è il più simile a Rails e potresti trasferire i concetti piuttosto facilmente. Ma raccomanderei a qualsiasi sviluppatore di CF che non ha lavorato in un framework per provarlo. Ti costringe a pensare in modi molto diversi.

    
risposta data 15.05.2012 - 22:52
fonte
0

In realtà ho effettuato questa transizione esatta (da Windows C ++ / C # / PHP / Perl) a Ubuntu / Rails.

Non sono troppo sicuro della remunerazione, perché dipende dalla tua posizione geografica. In Silicon Valley Rails è molto popolare e gli sviluppatori vengono pagati bene. Suppongo che alcune aree abbiano più richieste per .NET (C #) o LAMP (w / PHP). Dipende anche se vuoi lavorare da remoto.

Mi sembra che potresti voler pensare al futuro: il mondo sta cambiando velocemente e ci sono milioni di persone che imparano a programmare chi competerà con te. Quale tecnologia ha un futuro più luminoso? Quale è probabile che sia molto richiesto con una bassa offerta di buoni codificatori? Come puoi creare valore per il tuo datore di lavoro che non sarà esternalizzato a qualcuno che lavora per 1/4 del tuo stipendio?

La mia esperienza è che Linux non è molto popolare con gli sviluppatori di Rails. Se guardi il link , vedrai che usano i Mac. Sono andato a un paio di meetup Rails, e tutti sembrano lavorare su Mac. Ubuntu è una sorta di macchina Rails Dev del povero uomo. Funziona bene, ma costa 1/4 tanto quanto un Mac.

A proposito, trovo che modificare i file sul mio PC (per ora!) usando Notepad ++ e condividere i file con la macchina Ubuntu funziona molto bene. Ottieni tutti i vantaggi di lavorare sulla tua normale macchina Dev e tutti i vantaggi di lavorare in Ubuntu. Ho provato un IDE su Ubuntu, ma è stato più lento dell'inferno e non ha funzionato per me. Adoro Visual Studio, ma non è davvero necessario se fai TDD.

Suggerirei di fare alcuni progetti di Rails freelance. Lavorare in remoto va bene perché non è ovvio che non si è veramente sicuri su cosa fare. Quindi puoi acquisire esperienza del mondo reale e migliorare più velocemente. E fai tutto il tuo sviluppo TDD, perché migliorerai e diventerà una buona abitudine.

Non aspettarti che sia veloce e facile. Ho trovato Rails e in particolare Unit :: Test molto difficile da imparare. Molto più difficile di C ++, per esempio.

Per quanto riguarda le aree da affrontare, il TDD è l'unico a cui riesco a pensare. Potresti voler imparare i popolari strumenti TDD, come RSpec, Cucumber e penso che ci sia uno strumento molto popolare per stub / mock. (Sarebbe una grande domanda di Stack Overflow.)

Dipende anche dalla tua personalità. Vuoi imparare nuovi (ed eccitanti) strumenti e tecnologie? O vuoi restare con ciò che conosci e diventare un esperto? Non sto dicendo che uno è migliore dell'altro. Ma se odii imparare cose nuove probabilmente non saresti molto felice come sviluppatore di Rails perché sta cambiando così velocemente.

Non penso che ci siano delle risposte chiare a questa domanda. Ma è una bella domanda da porre (e la maggior parte delle persone non ci pensa nemmeno - +1 per Programmers.StackExchange). Spero che questo ti aiuti a chiarire le tue idee e a portare a una soluzione.

    
risposta data 24.11.2011 - 02:09
fonte

Leggi altre domande sui tag