by Wazzymandias on 7/20/20, 12:51 PM with 5 comments
I have upcoming interviews with companies I'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'm still worried about the day-to-day life as a Java programmer. Though Java has a vast ecosystem, I don'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'm worried my design and architecture skills may suffer if I use Java regularly for work.
In addition, I have strong interests in contributing to open source software in my spare time, and many of the projects I'm interested in are written in Go, C++, or Python. I'm worried about the cognitive effort it would take to balance this work when my day job is in a completely different language.
Looking for advice on how to deal with applying/working for a company that has great benefits but unappealing programming language that conflicts with personal projects and dealing with fear of skills worsening
tl;dr
- Learned Java in college, used Ruby and Go for work
- Dislike Java because of verbosity, syntax, overuse of OOP, and perception that it obfuscates and complicates software architecture & design
- 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
- Conflicted on following through with companies that use Java given language, personal interests, and fear of skills declining
Any advice would be much appreciated, thank you!
by PaulHoule on 7/20/20, 1:59 PM
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.
by chadcmulligan on 7/20/20, 1:09 PM
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.
by mikece on 7/20/20, 1:11 PM
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.