Dear HN,<p>I am currently developing Java web applications for a company in the publishing sector. However, I really want to pursue a career in the Ruby sector of web development. I have got to grips with a lot of rails development in my spare time. However, I am starting to feel that my day job is interfering with my self development. Currently my company is caught up in a lot of politics with clients and dissatisfaction with development processes. Some of us really believe that moving away from Java to languages like Ruby, Python or Javascript makes the most logical sense. However, efforts are thwarted by senior managements opinions. Opinions which aren't justified with any kind of evidence. It's just driven by their own personal taste / a lack of understanding of the current industry. We don't build enterprise applications. We build relatively simple applications, that are virtually static sites. However, we are bogged down by the massive dependency management, spring configuration and painful AOP style framework issues. This coupled with supporting sites that are up to 10 years old.<p>I digress! I am thinking of quitting, regardless of currently having the next job lined up. What are your thoughts? I only have one and a half years of experience under my belt. However, I am constantly researching the web development scene and feel armed for a job as a ruby or even python web development. Is this move worth the risk?<p>Cheers HN!
Others have addressed your questions about Java & Ruby, so let me handle the job angle.<p>If you are <i>ever</i> unsatisfied with your job or your self-development, by all means move on. Life is short, and everyone deserves fulfilling and rewarding work. This is my advice regardless of profession; although it applies double for you, as this is <i>literally</i> the best job market we have ever seen for good people with technical skills.<p>That said, do not quit without having another job lined up if you only have a year or two of experience. Look around, read up on career searching, call some companies, figure out what you want, and then pursue it. Get a company interested in you and negotiate for the best possible offer. When you have an offer, give your two weeks notice.
Local job search on indeed.com
Java Developer - 218
Ruby Developer - 28
Python Developer - 24<p>If your local job environment is analogous to mine, I would suggest that you pursue a dual track.<p>Route 1: Keep developing your Java skills - even if that means you need to push yourself beyond your current employer's "simple applications." The nearly 10X difference in job availability suggests that having solid Java skills is income security even if it isn't very sexy.<p>Route 2: Like a couple of others have said, you should continue to learn one or more newer languages on the side and really develop your side projects into something that is an impressive demo of your overall development skills.<p>If you are hoping to get into more of a start-up environment, Ruby should probably be your focus on route 2. If you are into science and/or data you like go with Python.<p>This advice assumes that you have the bandwidth in your life to pursue both routes simultaneously.
Interesting you want to go ruby. Scala and Java are semi-interoperable. As is Clojure. At least they all tolerate the JVM and JVM related infrastructure (to various levels). Some of the frameworks interoperate more than the others. Ruby is a bigger leap than some other possible leaps.<p>Perhaps senior mgmt is micromanaging WRT language selection. Could be your boss micromanaging and he's throwing senior mgmt under the bus. Or maybe you're correct. Anyway the point is you need to make sure its merely the specific language you don't like. If you move to a new ruby using employer where everyone has to dress the same way and hold their coffee cup the same way, you might be really unhappy if its actually the micromanaging you don't like rather than mere language choice.<p>Finally aside from any micromanagement issue there's work style. I prefer nearly consultative, professional environments where deliverables matter and you don't tell someone 5 levels lower on the hierarchy how to tie their shoes. However its a perfectly valid business choice to run a place the other way, and have an unprofessional, general laborer, non-craftsman type environment. You need to explore your thoughts on this too, again, see above, if you think your dream job is ruby and they don't micromanage one particular aspect of your job, you may none the less hate the new job if what you really dislike about the current job is the general laborer / code monkey / unprofessional unskilled labor workplace.<p>Other people have already mentioned that language doesn't matter as much as architecture / design. A extremely rigid view of language likely implies an extremely rigid view of arch / design, yet another axis to think about. If your current employer is extremely rigid about language you may have not considered what it would be like to work at a place with more freedom, or even just a different set of equally rigid arch/design outlooks.<p>Interviews are a two way street and with little experience you need to learn more about a potential new employer than they need to learn about you especially WRT the above.<p>Good Luck and all that.
"However, efforts are thwarted by senior managements opinions. Opinions which aren't justified with any kind of evidence. It's just driven by their own personal taste / a lack of understanding of the current industry."<p>this seems like a very common issue these days. it seems like people in this industry reach a certain age and then cease to evolve and refuse to do anything new, which seems logically out of sorts in an ever-evolving field.<p>while its somewhat a mystery to me now, i can say its great inspiration for myself to not end up that way 10-15 years from now.
Overtime, its not the language you code that matters. Application architecture, design, database skills etc do. All this comes from experience, building large applications. I understand you may not have the opportunity in your current company to build those. You can start building small projects in your personal time.<p>You are just 1.5 years in the industry. Taking such risks early is not advisable. Don't be impatient, keep learning. For example, you can redesign and build the 10 year old sites in a new language or in Java itself.
If you know RoR is what you want to do then go for it, but prepare yourself before. Here are a few points to consider:
- how's the RoR job market in your area? are there openings for entry level?
- to some extent you can compensate lack of production experience with personal projects (maybe build something in RoR on github) or by contributing (either with software like bug fixes / features or by getting involved in the RoR community)<p>good luck!