
Ask HN: Career advice with respect to programming language - Wazzymandias
I&#x27;ve been working for four years as a software engineer after graduating college with a Computer Science degree, where most of the core curriculum used Java. However for work I ended up using Ruby on Rails and Golang.<p>I have upcoming interviews with companies I&#x27;m interested in that largely use Java. I feel very conflicted about this because when I first interviewed for companies and tried whiteboarding in Java, I failed miserably because I was so slow and the syntax was so verbose. I later switched to Python but I&#x27;m still worried about the day-to-day life as a Java programmer. Though Java has a vast ecosystem, I don&#x27;t particularly enjoy working with that language. I feel like Java inhibited my ability to think holistically in terms of software architecture and design, and I&#x27;m worried my design and architecture skills may suffer if I use Java regularly for work.<p>In addition, I have strong interests in contributing to open source software in my spare time, and many of the projects I&#x27;m interested in are written in Go, C++, or Python. I&#x27;m worried about the cognitive effort it would take to balance this work when my day job is in a completely different language.<p>Looking for advice on how to deal with applying&#x2F;working for a company that has great benefits but unappealing programming language that conflicts with personal projects and dealing with fear of skills worsening<p>tl;dr<p>- Learned Java in college, used Ruby and Go for work<p>- Dislike Java because of verbosity, syntax, overuse of OOP, and perception that it obfuscates and complicates software architecture &amp; design<p>- Have a strong interest in contributing to open source projects written in Go, C++, and Python. Worried that Java day job will make this balancing act of programming languages much more difficult<p>- Conflicted on following through with companies that use Java given language, personal interests, and fear of skills declining<p>Any advice would be much appreciated, thank you!
======
PaulHoule
I started programming in Java when it was in beta and thought it was
revolutionary at the time, I was right. Personally I like Java. I think you
can improve your quality of life dramatically in most cases by swapping out
Eclipse for IntelliJ. You have to make peace with POM files, and find your own
answers to boilerplate.

I have always followed the market when it comes to programming languages. I
have often started a job without any experience in Language X (like that Java
job above) and usually gotten up to speed in 6 months or so.

I had some bad experiences with Python circa 1999 but around 2015 I saw a lot
of demand for Python work with some involvement in "data science" \-- Python
got a lot better. However, Javascript in all it's forms is rolling like a
freight train in my environment: I got took off a Python project to move onto
a React project then wound up at a small unit of a large company on another
react project.

I have spent little time personally w/ Ruby and Go but I think they are
competitive. They all have a lot going for them but they are all full of
footguns which become increasingly obvious as a system becomes bigger and
complex.

------
chadcmulligan
Why are you applying for Java jobs? It sounds like you want some reasons to
not do it :-). Java is just a language, and I agree with you, its not very
appealing with its factoryFactoryFactorys and so on, but it can pay well, but
there are other jobs around.

As for interfering with you're side projects - I've used multiple languages,
after a while changing between them is pretty easy. I liken it to people who
know multiple human languages, they can switch effortlessly between them,
programming languages are a lot more similar than human languages.

~~~
mikece
Almost all computer languages were developed to deal with a particular problem
or issue, so they bring a set of abilities best for dealing with the "main
problem" with them. In the case of Erlang it's massive concurrency; Rust is
aimed at memory safety; Ruby at programmer joy; Java at filling billable hours
for contractors (I kid... sort of). By knowing several languages you
assimilate different programming philosophies so when the question comes up of
how to write something brand new and you suggest programming language X, if
you're a polyglot you're going to be able to give a ten to twenty minute
impromptu presentation on the specific merits of language X given the problem
set rather than just say "I saw it mentioned on HN last week and it seems
pretty hip."

~~~
chadcmulligan
Sorry, I'm not sure what you're saying - OP was worried about Java jobs, maybe
I wasn't clear, but I was just pointing out there are other jobs than Java
jobs, and I concur Java isn't my first choice for anything, though the money
can be good.

------
mikece
More than anything else: be honest and be yourself.

Emphasize your knowledge of programming, the cool things you've achieved in
C++, Go, Ruby, and Python, that you might be rusty on the syntax of Java but
it's not a foreign concept and can be productive almost from day one.

And maybe do some Java practice in the mean time? Maybe build something like a
tinyurl clone in Spring (Boot) and post it to Github as "refreshing my Java
skills" projects.

