| I'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. 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! |
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.