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.