Besides age is not an indicator of quality of work, nor are college credentials. I’ve seen much older devs run circles around younger ones, and vice versa.
Even if you're right, it's not a great argument, because there isn't really a rational counter argument.
If the argument is based on a pattern you've seen before that's germane to the situation at hand - the "I've seen this movie before and it ends with regret and a data breach" argument - it can be much more convincing.
This sounds like you want the respect due to age alone.
The respect due to age alone is horrible. I wouldn't inflict it on my worst enemies.
The respect due to age and experience, on the other hand, is substantial, and something to strive for.
Back up your gray hairs :) with some relevant knowledge and the intelligent people will listen attentively.
This sounds like something coming from the advanced or expert beginner:
https://daedtech.com/how-developers-stop-learning-rise-of-th...
What I actually mostly do is saying "Doing X never works, because Y, instead I like to do Z because...", and it has reasonable success.
If it's two people arguing their own opinions at each other and neither one has relevant data where exactly do you go from there? The one with 2 years experience or the one with 15?
It seems ridiculous but I wonder if it would work.
Spot on. Ignore the popular framework of the month.
A lot of developers focus only on the surface (popular tools) and neglect fundamentals, algorithms, OS internals, how CPUs work, networks...
Of course if you aren't having trouble finding a job then you don't need to follow this advice.
The interview topics of on-sites are general enough and focused on principles, and, by far, the large majority of candidates are rejected for giving vague and superficial answers.
My experience convinced me that, as a candidate, I don't want to divide my time preparing and interviewing for many "typical" companies. I instead focus on very few interesting ones and maximize my chances there.
"shotgun versus sniper" if you will: you need one good offer, not 10 so-so ones.
Among other reasons, the typical buzzword-driven company is less likely to be an interesting environment to work in.
You won't apply to to 100% of jobs. So you already make a selection.
Some jobs are require highly specialized skills and knowledge. Keeping up with the framework-of-the-month costs time as well. Time you could have spent getting better at Linux kernel programming or Cobol.
The "framework of the month" is not "a requirement for 20-30% of advertised positions". The "framework of the month" requires a minimum of a year to get to that point and 2-3 years is a lot more common, even in the JS frontend space. By the time something gets to 20-30% penetration it's past that phase.
I've tried to keep one main language and work with something different each time. It creates diversivity in my resume but allows me to use my core anchor language to find a role.
How do you pivot to something brand new?
A mature engineer doesn't need to be bleeding edge. It's perfectly fine to merely be tracking technologies that have gotten to their high-growth phase.
The other thing I try to do is have coverage, such that even if I don't know a particular tech I have a story that says I can learn it easily. I've used enough DBs that I don't need to chase the latest things; I'm confident that even if I've never used a columnar database that I can pick it up quickly if I need it. I've used enough programming languages that I don't need to go chasing the latest one, because it is still frankly mostly a different spelling of things I've already used. And so on. So I don't need to go chasing everything all the time. I generally don't pivot into anything brand new, because within the domains I work in, there isn't much fundamentally new stuff left for me to pivot into.
(A lot of my recent growth involves learning how to do engineering while being more directly tied into the business and interacting with business people, and learning how to be an interface between business and tech, rather than more types of tech. I'm doing this from an engineering perspective rather than a "management" perspective, because it turns out there is quite a difference between the two once a company scales up enough.)
Once you have seen, say, 15 frameworks, it becomes easier to map a 16th in the coordinate space, and quickly learn it when needed by reusing the knowledge you already have.
I'll just add that the perspective of many years of experience brings clarity to many discussions.
= have you chosen tooling that is going to last five years?
= is the design as simple as possible or are we building a Rube Goldberg machine that will assert a life of its own?
= how are you going to train people / maintain the system? do we have a resource plan or is this a death march?
Hasn't happened to me, but I've had a couple older coworkers who seemed to be in that place, which just seems like such squandered experience.
It is squandered. It's one thing to know the right path based on experience. It another to be able to share that experience in a way that benefits others and helps them understand why it's the best choice. Nobody knows everything either, so having a real conversation can result in learning both ways.
I'm being a little hyperbolic here, but after a few decades in the industry it's kind of baffling how few novel ideas are in these new frameworks. There is even a trend to go back to server side HTML and SOAP-like APIs. The tech industry sometimes just looks like the fashion industry. But maybe I'm just too cynical :)
I won’t say I reconcile anything, but I get a chuckle out of it. Makes it easier to learn the new flavor.
As The Who said, “Meet the new boss. Same as the old boss.”
To add another example to the two you provided: how many different designs and implementations have you seen for pub/sub and message-based systems (topics/queues). I literally lost count. Even fucking Redis has an implementation!
They go back at least to the 1970s. (Remember Enterprise Service Busses in the 90s?)
Things are constantly improving, even if the road is winding. People just forget some of the horrors of the past. We used to have VB/VBA, now we have Javascript. We used to have Ada, now we have Rust. C++ has evolved.
Even C has evolved, in a kind of meta way: C itself hasn't evolved much, but the ecosystem around it has evolved a lot. How common was something like Valgrind back in 1990?
Whenever you forget how much we've moved forward, despite occasional setbacks, look at this: https://www.youtube.com/watch?v=fPF4fBGNK0U :-)
And, of course, there's also just the Eternal September effect with the vast majority of developers needing to learn things that the grey beards have already learned but have no succinct way to communicate (or just aren't heard over the roar of constantly greater numbers of developers with each passing year)
Do you mean things like Swagger?
[NB There have been few things I've hated more than SOAP]
Can you explain this? Anywhere I have ever worked (Fortune 500 orgs) I have always had an "at will" employment contract as a W-2 employee. They can fire me at any time for any reason. Furthermore, when budgets are cut typically the first group to go is the IT department, since they do not bring in any revenue, unless the company is selling IT products and services.
Has much less to do with software than strategy: maximize core competencies and minimize overhead.
And the IT budgets are different. Very different. On a related note, remember when some organizations had IT (and specifically web dev) under their marketing departments?
I keep reading that on Hackernews, so it must be true!
And besides, AWS has a stable API and a set of CLI tools to actually manage everything in the cloud without button pushing.
I am 29 now. Used Jenkins about 5 years ago because I couldn't find a much better alternative for a single-developer workflow, but it's a glorious pile of buttons that has 0 consistency and/or an API.
And they also look better.
For god’s sake, you could even use GitLab today. What does Jenkins give you? What is there to defend?
Secondly, to your point, there you go: https://stackoverflow.com/questions/17716242/creating-user-i... I'm pretty sure that the reason there is no REST API for it is because you're supposed to be using your favorite back-end (LDAP, AD, etc.), with which Jenkins can integrate.
It's quite disingenuous to complain about the Jenkins APIs, there are a lot of them. They're not perfect or designed necessarily like something you'd design in 2020, but they are there.
I used to work for motorola, engineers with gray hairs are gems, full of knowledge and always learning new stuff, eager to coach new comers. it unfortunately stopped when outsourcing became a fashion.
I'm old too, I kept learning everyday, delving into c++17 these days, and it just makes my day fulfilling.
Can you describe what you do/have done on your day job, and what you are doing on your side project to prevent boredom on day job?
I also like to try to get better at what I do as a developer. Mostly this is by reading books or taking MOOC courses. I think there is quite a lot to learn about developing SW well (because it is a really complex activity). So that also keeps me interested.
About eight years ago I also started blogging [1] about SW development. I've found that trying to formulate what I think about it has also kept it interesting.
I guess it is part of the learning.
- I love coding, and I still code every day. I have no desire to move into other roles (such as management).
- As for job security, I think it is harder to find a job as a manager than as a developer, simply because there are many more positions for developers than for managers
- Family-wise, it is much easier at my age, because my children are getting into their twenties now. Much more free time for me (including for work if I want), compared to when they were younger and need lots more attention (and being picked up from daycare)
- As for learning - that's one of the attractions of being a developer. There are always new things to take in, it never gets boring
- On the other hand, even if some things in programming are fleeting (the currently popular frameworks etc), there is a core of fundamental knowledge that you gain over the course of your career that will always apply.