Ignore the fad tech, get a good, serious, bulletproof base in actual computer science -- I mean, LOW LEVEL stuff--, that will help you learn ANYTHING computer related quickly, and continue surfing that wave with whatever tech you fancy might actually be useful to make you sellable in the future...
Instead of listening to you and I (age 50) there are some young people who would rather claim that basic/low-level/first principles knowledge is irrelevant.
I've never been 'age discriminated' before
I have. These coder-bros I was interviewing with accused me of Googling the answers and started in on the complete condescension. (I was doing the classic dynamic languages programmer thing and writing a quick script to answer their question programmatically.) Nothing fundamentally age-discrimination about that. It was how they spoke to me and treated me after that. Sometimes I still get mad or sick thinking about it. One thing I've learned, when people are projecting things on you which contradict the facts, that's a big symptom of bias.
The problem is that it's hard to bring your years of experience on an interviewing table.
Some older people I worked with (I'm 40 now) were well respected by the others, because they prove time and time again that their experience is really valuable on all kinds of stuff, both low level details and high level strategies. To show this in an hour is difficult.
Although I was once able to do it, and was hired. They asked me a typical OO inheritance questions with a base class Animal, and derived classes Dog and Cat, and then let them "bark" and "meow". I knew were it was going, so I said "There will probably come more animals after this, so what I would do is drop the inheritance and move into a data-driven approach, where the specific animal behaviors can be defined in a config file, without needing to go through programmers have to compile a new exe every time". They liked that response, although that was probably not the standard answer that they were looking for when interviewing juniors.
And basically such things are your job as a senior anyway, to look into the future and steer the short sighted solutions that juniors come up with.
These coder-bros I was interviewing with accused me of Googling the answers and started in on the complete condescension
I'm really sorry about that man... I guess young people tend to feel like they own the world. I'm 27 and I believe I have been raised outside this toxic bubble (I got a lot of shit from my parents, I never thought I was somewhat special just for the sake of it, I only felt special after achieving goals, I always felt necessary to them though, regardless of achievements). I believe younger people are raised like they are too special, the promise of a better world, the ultimate legacy of their parents and that tend to go over their heads, specially after a historical period of unprecedented growth in which my parents and I believe their parents lived (60s through 80s) in which they prospered.
Young people tend therefore to believe they inherited their parents achievement and they can only go forward. I feel lucky I don't share that and I would love to be your coworker and learn from you.
> Instead of listening to you and I (age 50) there are some young people who would rather claim that basic/low-level/first principles knowledge is irrelevant.
Yes, that sounds like the normal "folly of inexperience" -- it comes from people who don't yet have enough experience to know that they don't know as much as they think.
There's a reason that people (in any field) with less experience tend to be more certain of the correctness of their judgement than people with more experience. The more I learn, the more I realize how little I know.
> Sometimes I still get mad or sick thinking about it.
I think back on instances like that as dodging a bullet. Can you imagine the hell that actually working with those people would have been?
Instead of listening to you and I (age 50) there are some young people who would rather claim that basic/low-level/first principles knowledge is irrelevant.
It is irrelevant to most jobs and no I am neither young nor inexperienced. I first started programming in the 80s in 6th grade doing a combination of 65C02 and x86 assembly language and I spent my first 12 years professionally bit twiddling in C - first on DEC VAX and Stratus VOS mainframes and then on x86 PCs. Later I maintained a proprietary compiler/VM used to write apps for Windows Mobile.
It is irrelevant to most jobs and no I am neither young nor inexperienced.
Just as one example, the basic level of algorithms, where one could realize when they're creating a O(n^2) routine, is relevant to just about every shop I interacted with working for a language/VM vendor. I found it disturbing, the number of times I could play the hero just by knowing that much.
I've worked in shops using C, where I kept bumping into workers who hadn't the foggiest idea how a C compiler might work, and it not only showed in their code, it even showed in management decisions. (Long story short: The application literally had 100's of re-implementations of linked list.)
I've interviewed recent grads from top-tier schools with near 4.0 GPAs, who try and tell me things, like adding a pointer to a struct incurs zero memory use. Then I ask them how much memory a pointer would take up, and they can't give me any kind of answer. (Or ask me a relevant question for more info, so they can answer.)
All this stuff could be avoided if there was just a certain level of basic background knowledge. They're like car mechanics who don't know the first thing about electricity. There's a certain level of background that can keep you from inconveniencing and hurting yourself. You don't need it most of the time, but when you do, it can save you a lot.
How much is really relevant to the average developer out there writing a bespoked internal app that no one will ever see outside of a company or yet another software as a service CRUD app?
I think I’ve had to implement one complicated algorithm that was low level and not a complex business requirement in years and that was the “shunting yard” algorithm to convert a string algebraic expression to a number as part of the parser for the compiler I was maintaining.
Most developers could go there entire successful career without ever knowing how a compiler works.
How much is really relevant to the average developer out there writing a bespoked internal app that no one will ever see outside of a company or yet another software as a service CRUD app?
Only a smattering. I could cover just about all of it in 2 nights of instruction. However, that doesn't mean the students would have mastered and internalized the concepts to the point where they'd make the right realizations when they need to.
I think I’ve had to implement one complicated algorithm that was low level and not a complex business requirement in years and that was the “shunting yard” algorithm to convert a string algebraic expression to a number as part of the parser for the compiler I was maintaining.
Right. Most of the time, one implements simple algorithms, using hashmaps and "vectors" as building blocks. But first principles knowledge can also make one better at that.
Most developers could go there entire successful career without ever knowing how a compiler works.
(Their.) Right. Most people can manage. Just like most mechanics can manage to muddle through learning as they go. But why not have mechanics learn basic knowledge about electricity? They do, because that kind of 1st principles knowledge can save people from pain. The same applies to CS/programming. Also, the knowledge itself is pretty neat. A lot of people get pleasure from learning it and being able to understand their world in a deeper and more nuanced way.
People going to top-tier 4 year universities, getting a 3.75 GPA, but coming out with no more than a glue-crud-apps-to-cookbooked-machine-learning/buzzword-of-the-day-library level of knowledge just strikes me as a colossal waste and colossal rip-off. It's also people becoming the victims of low expectations. I know that kid who tried to tell me that a pointer doesn't take up space could well have learned that stuff, if his program had just had slightly higher expectations. I'm reminded of schools who track certain kids into learning nothing more than what's necessary to balance a checkbook. That's killing young minds with the bigotry of low expectations. We're probably already at the point where some say asking kids to learn enough math to balance a checkbook is asking too much. Something about that strikes me as selling people short.
In my market, a major city in the US with a reasonable cost of living (ie a five bedroom/3000 square foot house in a good neighborhood in the burbs can be bought for $350K), the average framework developer who can push out a CRUD REST API in Node and can throw together a website with Bootstrap and React can make about $120K in a few years out of college and live a nice comfortable life and is well above the median income - I don’t think that’s doing too badly and certainly not “low expectations” based on salary.
I think back on instances like that as dodging a bullet. Can you imagine the hell that actually working with those people would have been?
That's very true, but it has changed my attitude for the worse about interviews. The particular situation where someone can take facts and reality itself away from me (not really in reality, but in terms of the outcomes of the immediate proceedings) is like hell itself. The possibility of that lurking, because I am indelibly "marked" by my age is awful.
I don't think you were "age" discriminated here my friend, it's likely you were just skill discriminated -- sometime it happens -- something you think is terribly easy and boring might come out as completely "wow" to some -- some people take it well, some, don't. Don't let that drag you down, remember the other thing I've posted in that thread: THESE people failings are what will keep you employed to fix them in the foreseable future :-)
I remember a while back on a guy who was raving about my code setting a (as boolean) flag with "done++;" -- he thought it was such an awesome idea. OH YEAH.
I don't think you were "age" discriminated here my friend
I think I definitely was. The attitude of one guy changed when he was looking through my resume and realized how old I was. There's this condition and particular set of reactions that accompany people getting strangely willing to believe you did something bad, even when they have scant or incomplete evidence. I grew up someplace where we literally had to drive 50 miles to visit friends of our approximate ethnic group. It's something that's familiar to me.
Why would you have that far of history on your resume? I only have 11 years worth of experience on my current resume and my year of graduating isn’t on there either. No one cares about my C programming experience on mainframes in the mid 90s nor my C++/MFC/COM programming up until 2008.
How easy would it be to get another job? That’s kind of the point. I found one or two C/MFC jobs back then but dozens of C# and Java jobs that I wasn’t qualified for.
If I need a job now, I want to be able to call my list of recruiters and within the next week have dozens to choose from and 3 or 4 offers which has been easy to do between 2008-2016. When I was looking in 2017, there were more companies looking for Node and full stack developers paying what I was looking for than C#. I happened to find a job that needed my combination of C# and architectural experience, but the pickings were getting slimmer.
So now, as much as I hate it, I’m going down the full stack JavaScript road because that’s where the opportunities are, and filling in a few gaps that will let me be an overpriced “digital transformation consultant”/“cloud consultant”, etc. (Yes I die a little every time I say those words).
One skillset is about getting a job fast if needed the other is by getting one that pays more. It’s about optionality.
When you are still trying to be a software developer in your 40s you can't afford to not keep up. Companies are far more willing to let younger people learn on the job than older, presumably better paid old developers. They already stereotype us as not being up to date, no need to reinforce it.
Instead of listening to you and I (age 50) there are some young people who would rather claim that basic/low-level/first principles knowledge is irrelevant.
I've never been 'age discriminated' before
I have. These coder-bros I was interviewing with accused me of Googling the answers and started in on the complete condescension. (I was doing the classic dynamic languages programmer thing and writing a quick script to answer their question programmatically.) Nothing fundamentally age-discrimination about that. It was how they spoke to me and treated me after that. Sometimes I still get mad or sick thinking about it. One thing I've learned, when people are projecting things on you which contradict the facts, that's a big symptom of bias.