Then I got good at Java + Spring
Then I got good at React + Redux
Now I gotta get good at Python + Django and the damn magic it does.
Next I gotta get good at Scala.
It is frustrating. And I feel that had I spent 10 years in any of those I could really make amazing things in each one. But instead I feel like a generalist. Jack of all trades.
And that's just the last 5 years. Before that was dozens of java frameworks, knowing differences between 4 different databases and wielding sql like a master, and more.
The worst parts are:
- Front-end engineers are looked down upon while I LOVE coding in React + Redux + ES6js. Wish it was TypeScript.
- React changes damn near daily.
- I really want to deeeeeeep dive in a tech but I feel lots of FOMO that if I don't study a hot new tech I'm screwed. (Except Vue. Vue is the same paradigm as Backbone / Ember)
- I have a kid, time is limited to learn new languages.
If you know js and web standards then anything on the frontend is just a new application of the same ideas. If you know a bit of networking and a bit of operating systems then web development in python/django/Scala are all just interesting new ways to say basically the same thing.
If you know the specs then you don't need to find out about technology by following 100 different blogs.
Occasionally there will be new fundamentals to learn but you'll be ready because you won't have a backlog of relearning framework X's new way of saying "hello, world".
It's better to be a good programmer that's deeply experienced in a domain, then a great scala developer that doesn't understand the domains he's working in.
I'm more in the distributed space so I know elixir and scala very well with actor model and distributed coordination tools in my toolbelt. I'm not the best scala engineer but I can get shit done and it will be correct and work through all of the pathological conditions because I've seen a lot in this area. If you asked me to build a webpage I'd fall apart but I'm good at that specialization and have all of the tools I need to work with the technology I know today, and to build on to learn whatever technology is needed tomorrow (eg I've been working with elixir for a year but I'm extremely proficient at it because of my 6 years of akka experience)
They were still teaching this shit at my school in the 90s. Encouraged you to take COBOL II because "there's so much old code around you'll always have a job" (left out the part about a job you'd rather kill yourself at).
Peter Gibbons was updating code for the Year 2000 switch over.
The CS school within the state school in this city is sponsored by one of those companies, and they still teach (2018!) COBOL as a course req--obviously as a way to train up talent--but the fact that it's still taught today boggles the mind for me as a web developer learning something-newJS every week.
This is basically why I continually fail to make it as a web developer, at the times I'm forced to try. Even though I enjoy the work just fine, I don't have anywhere near the passion to keep up with every new framework on my own time.
I work for a competitor to General Dynamics in practically the same field (as close as you can get in 2018) as Mr. Ray Livesay.
Counting the acquisition, I've been with the same company for 11 years, having worked my way up from being a technical writer to programmer to systems engineer.
When I wanted to transition from programmer to systems engineer, I went to school to get my Master's and the company paid for most of it.
Sometimes I feel like an alien, reading about other working programmers and engineers, because everyone here has their own office, has worked here for years, is happy, enjoys great benefits, the company promotes from within, and encourages professional development.
But then I go to our "competipartners" and their offices are set up the same way, their benefits are within a marginal twist of a dial up or down here or there, and when I go to trade shows I see the same people with the same employer polo shirts year after year after year.
The only reason I'll leave my employer is if, in a couple of years after I transition to "senior" systems engineer there isn't a position on a contract or program that will support my labor category.
Maybe aerospace is the field you want to look at getting into? There are no "rock star" programmers, just people who work 9-5.
It is not really appealing to most younger folks because we aren't a bunch of "hip young urban professionals" with MacBooks clustered around a communal workspace in a downtown startup incubator in a converted loft/warehouse lit by faux edison light bulbs in iron-pipe light fixtures with a pinball machine and some scooters in the corner.
We're a bunch of old dudes in a generic office park. And we're paid in "lots of money" instead of "a little bit of money with tons of stock and a promise".
I recently went to a startup but I don't know if they will make it, and I would love a company with private offices and a bit of stability. But I'm afraid I'll be left looking at the other companies left i haven't de-FAANG-ed yet. What is the name of your company?
Stock is not pay. As the old saying goes, "A bird in the hand is worth N in the bush, where N is a value that people whose profession is to guess the value of N cannot guess the value of."
It's not, but it'd also be foolish to ignore that RSU's can be fairly easily exercised and translate into real money. It's probably more accurate to say that the stock isn't worth the face value, but RSU's certainly does have value at public companies.
"I have an offer from OtherCo. But I'd like to stay here. Could you match it?"
"We don't negotiate salaries."
However, it also sounds extremely expensive to run a business with everything you described. It might only be possible because you appear to work in the group of large corporations that exist off of a government contracting system that has been criticized as being fundamentally broken. Projects cost way too much, take too long, and are frequently late and over budget anyway. I've heard a lot of that has to do with the government constantly asking for changes and asking for too much, but whatever way you slice it the only reason it works is because it is basically non-competitive. Does your company create successful consumer products?
Spacex is aerospace too, but they are disrupting their industry. I wonder if all the engineers there get their own offices and stay in the same roles for years, with the same technology.
I don't have enough experience to know which works best, letting engineers become professionals in their niche, making the business not very adaptable but having some deep strengths, or moving fast and breaking things, being adaptable and fast moving, but have some crappy code gluing things together that will need replacing in a few years.
I just started a new position, I have to learn at least 2 new languages (on my own time) which I need to be proficient in basically immediately. My very first project was, fix something in this new project which uses a new language, you have 3 days. And I felt lucky to have been given 3 days instead of 1 so I could learn the language. And then dozens of new frameworks and complex tools, complex and evolving architecture. In 2 months I will have my first week as being the point person to fix anything that goes wrong in production. And I feel like this is ok, this is normal.
I wonder if most engineers now are just permanent amateurs hopping around between tools and projects, learning just enough to make it work without breaking, but not knowing how to build things properly. How many years would it take to really become expert in that language? Even if you focused all your time on that, by the time you have mastered it another language will have come along to replace it, or the language itself will have been transformed into something new.
If you stay still and become an expert in something you run the risk of losing your relevance and not being able to get another job in just a few short years. 25 years? Will the company you work for even be around in 25 years? Doubtful.
Then again, back then they didn't have Stackoverflow and all the resources we have now that make it possible to learn so much so quickly.