News for hackers. Stuff that matters.
Re:Aging programmer by StevePerkins on Saturday September 24, 2022 @11:00AM (#32963238)
I'm approaching 50. Just a scant decade away from being old enough to tap my retirement accounts and have the OPTION to retire. These next couple of years look like they might not be fun, but overall it looks like I'm actually going to make it.

For most of my career, I've been told (and I believed) that I would probably get forced out of a hands-on individual contributor role as I aged. During the late-2000's, I even had an early midlife crisis and earned a law degree, expecting that I would need to make a career change into IP or something. That hasn't been the case.

What I think people missed is the compounding effect. The supply and demand for computer programmers seems to double every decade (maybe the interval is even shorter). With each doubling, the older cohorts become a smaller and smaller share of the whole. People look around and think, "There aren't many older programmers here", and base predictions off that observation. However, the more accurate observation would be, "There have been A LOT of younger programmers added here!". I don't believe that it's actually a zero-sum game, though.

I don't know if this human resources cousin to Moore's Law will continue indefinitely, but it's certainly held up through my career. Even when it inevitably slows down, I think that just means you'll see the age cohorts balance out more over time.

Re:Aging programmer by pyuser583 on Saturday September 24, 2022 @03:26PM (#32965797)
I’ve seen a lot of older programmers. They can wind up working as a team of one because they’re productive enough to do the work of an entire team.

I’ve seen this a lot. Hire older dev. Older dev has decades of experience. Older dev creates new product from scratch in a couple weeks.

Another issue is that mentoring is focused on junior devs by senior (6-8 years of experience) devs. So you’re less likely to have a senior dev (6-8 years experience) mentored by a dev with 20 years experience.

Re:Aging programmer by justrudd on Saturday September 24, 2022 @04:43PM (#32966391)
I’m kind of in this boat. I’ve been doing this for 25 years now (jeez). Mentoring a dev with 6 to 8 years experience is a pain in the butt (yes. I know. Not all of you).

While I’ve got a pretty good memory, a lot of the times I don’t have a direct or complete answer for their question. I’ll have a tingle of a memory that is similar to their question. So I’ll give them that as a starting point and tell them how I’d approach the solving the problem. But they get frustrated that I didn’t solve their problem immediately. That I can’t point them at a blog post of Stack Overflow answer.

But a dev with 1 to 3 years experience? They’ll take that non-answer and run with it.

And I get it. The 1 to 3 probably has 1 maybe 2 tasks they’re working on. The 6 to 10 (to 15) has probably a half dozen things they’ve got to keep track of. Researching is probably pretty low on their list.

Re:Aging programmer by malthuswaswrong on Sunday September 25, 2022 @01:05AM (#32969085)
I'm working with a junior dev now and the phrase that I keep repeating is "slow the fuck down". He's completely frantic with the copy and paste. I'm watch him google something, click the first link, paste the code into his project, and when it doesn't work he's on to the next link, paste, repeat. He doesn't even back out the changes he made the first time that didn't work.

I spent hours fixing his code and hand it back to him and it's broken again in a week.

I had to wash my hands of it. The only advice he's getting out of me now is to follow a single tutorial all the way through until he gets that one tutorial working and then compare the tutorial to his code. I'll answer specific questions, but I'm not going to try to mentor him until he's ready to receive the wisdom.

Re:Aging programmer by csomar on Sunday September 25, 2022 @03:31AM (#32969620)
This seems to be what modern software development has degenerated into. In the future, it'll be monkeys playing roulette with Github copilot until something compiles/executes.
Re:Aging programmer by 411111111111111 on Sunday September 25, 2022 @04:06AM (#32969721)
No, it's not. They're just inexperienced and it will stop/become more thoughtful as they're gaining experience and learn how the pieces actually fit together.

The reality is that half of the tutorials and answers you can find won't work. Either because they're doing something entirely different or because they're for a tool/framework that's deprecated the functionality.

A beginner won't be able to tell this simply because none of the pieces are known to them.

When a person with more experience finds these tutorials they'll likely know within seconds if a given answer or tutorial is even remotely applicabe, which enables them to be much more thoughtful about what to do.

You'll potentially waste weeks on trivial tasks if you're hellbent on actually fully understanding something right at the start, and if the beginner does this the more experienced ppl will complain how inapt they're.

Honestly, you both just sound like toxic people in that regard and should not be allowed to work with total beginners. Which is fine, but the issue really isn't with the pupil that's just clueless. They need somebody to give them a tutorial and guide which is applicable and they'll learn how that piece works, now keep repeating that until they've got a basic understanding of the system and only then can they work on their own

Re:Aging programmer by justrudd on Sunday September 25, 2022 @02:08AM (#32969315)
That sucks. I wish I could say I’ve never had one of these. And luckily I haven’t had one go as badly as yours. The main one I recall is when I had a good manager at the time, and he noticed the amount of time I was spending with the junior. So my manager took it over until they got to more meaty issues that required discussions with me.
Re:Aging programmer by mike_ivanov on Saturday September 24, 2022 @06:19PM (#32967047)
While I’ve got a pretty good memory, a lot of the times I don’t have a direct or complete answer for their question. I’ll have a tingle of a memory that is similar to their question.

The same. Especially under pressure. Which makes it virtually impossible for me to pass an oral technical interview.

Re:Aging programmer by BurningFrog on Saturday September 24, 2022 @07:36PM (#32967575)
If you've done good work for a few decades, you have tons of former coworkers willing to hire you.
Re:Aging programmer by mike_ivanov on Saturday September 24, 2022 @09:20PM (#32968120)
Yes, they refer me to their corporate recruiter and what happens next is "sorry, that's how the process is, we can't change it" :-)
Re:Aging programmer by justrudd on Saturday September 24, 2022 @08:38PM (#32967921)
Agree completely. Reach out to prior managers that you respected and would want to work with again. In the past decade, I’ve worked with the same manager across 3 different companies. All without a loop.
Re:Aging programmer by agumonkey on Wednesday September 28, 2022 @02:00AM (#33004702)
Interesting.. do you have pair programming sessions in your company ? to accelerate routine problem solving ?
Re:Aging programmer by quickthrower2 on Sunday September 25, 2022 @12:14AM (#32968890)
I have 20 yoe but happy to be mentored by someone with much less. There is too much to learn out there, so good chance the less experienced engineer can help me too.
Re:Aging programmer by malthuswaswrong on Sunday September 25, 2022 @01:08AM (#32969098)
There is too much to learn out there

It's crazy. I sometimes get the itch to learn a new language like Rust, but I haven't even come close to reaching the bottom of all the languages I already know. They are inventing new things faster than anyone can acquire them.

Re:Aging programmer by mmsimanga on Sunday September 25, 2022 @06:09AM (#32970121)
To add it's not just languages. I was once assigned to teach Cognos a BI tool that's been around a while. I was given the instructor's manuals to go through. It was then I realised how incredible sophisticated the software was and I also realised most people didn't even use 50% of the software's capabilities. I have found the same with text editors and IDEs. You can use an editor for five years and still continue to discover new features.
Re:Aging programmer by saurik on Sunday September 25, 2022 @07:19AM (#32970382)
I have been programming for over 30 years now, and one thing I consider myself an expert in is bash... hell: the (original) author of bash is someone I have known well and used to work for, and he considers me an expert in bash (which is probably another example of this in and of itself), and I once spent a couple months writing my own bash-compatible shell replacement for various reasons with him on the sidelines cheering me on.

Well: I have recently been teaching programming to a 10-year old kid, and this morning he told me about the syntax {X..Y}, which expands to the range of characters between X and Y. I have likely typed {0,1,2,3,4,5,6,7,8,9} a thousand times and now I know you can write {0..9}. I was floored and have it on my todo list tomorrow to see if that is a new feature or if I simply somehow missed it in the man page--which I thought I had carefully read multiple times and which I additionally have skimmed many times--consistently for decades :(.

Re:Aging programmer by greyhair on Wednesday September 28, 2022 @02:57PM (#33011783)
This. Completely. I have 38 yoe but I still encounter young people with fresh ideas. Keep that open mind. I have met some old engineers that turned into grumps (don't be one of them) but most of the older technical people I work with regularly find joy, both in their work, and through their coworkers.
Re:Aging programmer by w4ffl35 on Saturday September 24, 2022 @01:22PM (#32964705)
the thing that gets frustrating as i age are interviews and code challenges. i'd really prefer a certification that proves i can do xyz which i take once (per year? in my life?). then just decide if you like me based on personality and communication.

i have over 200 repositories etc. its redundant, and random code challenges that differ from employer to employer prove next to nothing.

20 years ago it was the norm for interviewers to ask brain teasers / riddles in interviews ffs.

edit: perhaps this is my own personal struggle as I did not attend University.

Re:Aging programmer by kbcool on Saturday September 24, 2022 @07:42PM (#32967610)
I'm an older engineer too and I am very aware of how frustrating this can be for techs of all ages so I made our screening test less fizzbuzz, do my work for me and gotcha questions and more real world, challenging, engaging and most of all interesting.

Examples include: How would you solve this at a high level, here's some code we know is broken, how would you both fix and improve it etc.

After all, both parties are being screened.

The other upside is that we also get to gauge communication and analytical skills not just production line coding.

Even after doing this, over the years I have seen a good 30% refuse to do it or just ghost at this point for whatever reason. Afterall, I've done it myself a number of times.

Re:Aging programmer by malthuswaswrong on Sunday September 25, 2022 @01:20AM (#32969140)
over the years I have seen a good 30% refuse to do it

I'll do reasonable take homes, but I'll often pass on interactive coding sessions. I don't like coding in a browser, and I use my dev tools as a major crutch.

"Why did you store that value as a string instead of a long?"

"Because it's a string from standard in and I have no idea what bullshit inputs there will be so I can check it before casting it."

"But the user story said it will be a number."

Well if I had more than 15 minutes maybe I would have been able to gain confidence in the input. Something like that comes from many years of experience getting burned yet it's considered a negative mark. Some of these places are actually selecting for recklessness.

Re:Aging programmer by sgerenser on Sunday September 25, 2022 @08:19AM (#32970648)
A take home that can be done in an hour or two is fine in my book. It’s problematic when they assume way too much background on the part of the interviewer. I had a take home from a small local embedded devices company want me to write a 2D DCT algorithm from first principles in C (absolutely no use of external libraries or code copied or based on any existing code) and I noped out pretty quickly. Unless it’s something I’ve done before, doing it honestly without consulting any existing code would probably take me days.
Re:Aging programmer by w4ffl35 on Saturday September 24, 2022 @09:59PM (#32968295)
This sounds like a well refined process. DM me ;)
Re:Aging programmer by scarface74 on Saturday September 24, 2022 @02:18PM (#32965252)
As someone who is very “certified” when it comes to cloud, I can tell you that certifications mean absolutely nothing and can easily be gamed. I went through the certifications route only as a guided learning path so I would know what I didn’t know. Anyone can pass a multiple choice certification. I got my first AWS certification without ever logging in to AWS.

But it was never to get a job or a promotion. I was already the Dev lead at the company working on an on prem system and they wanted to “move to the cloud”. I just wanted to get an overview of the landscape.

As far back as 2000, “brain dumps” of MS certifications were a thing.

Re:Aging programmer by moondev on Saturday September 24, 2022 @06:13PM (#32967004)
You can't game the cncf k8s certs. It's also an interesting indicator to see what date it was awarded. As in yesterday or 3 years ago.
Re:Aging programmer by scarface74 on Saturday September 24, 2022 @06:55PM (#32967318)
So I’ve heard. If someone passed the K8s cert, you expect them to be somewhat competent. If someone honestly studied for AWS certifications without experience, you expect them to be conversant. I have nine of them now (out of 10). But just so I can be conversant. It’s definitely not prove competence in areas where I don’t have real world experience.
Re:Aging programmer by cortesoft on Saturday September 24, 2022 @10:17PM (#32968363)
I have avoided this problem by not interviewing anymore. Every job I have had after my first one has been going to work with someone I worked with before, and they recruited me so I didn’t have to do any formal interview process.

It has worked for me so far in my 15 year career.

Re:Aging programmer by greyhair on Wednesday September 28, 2022 @03:54PM (#33012427)
I have had to interview for jobs, but the four jobs I have interviewed for since 2000 were all in response to requests to join companies, either from friends, or (once) from an internal HR employee (and to this day, I have never found out who gave him my name).

So the interviews were more about finding out if I would fit within the team than hard technical interviews. People knew me, and knew what skills I brought to the table.

Your network matters. And if you think it doesn't, stop, think again. Your network matters.

One final note. I have interviewed people. Never oversell yourself on your resume. Don't put down that you are an 'expert' at this or an 'expert' at that, unless you really are. Because you just may end up being interviewed by someone that is. And nobody, absolutely nobody, is an expert at fifteen different unrelated things. Don't do that. I have been doing this for 38 years, and I am pretty good at about five things. And those five things that I am good at have changed on a regular basis since the day I started.

Re:Aging programmer by weatherlite on Sunday September 25, 2022 @08:11AM (#32970602)
Dang those are amazing connections. Even with good connections I can only get my CV to the top of the pile and maybe some more leeway from the interviewers (which is a lot!), but never was I just skipped through the whole thing and gotten an offer.

You have some good friends are they are high up the chain I guess.

Re:Aging programmer by cortesoft on Sunday September 25, 2022 @07:01PM (#32977304)
Well, I have only had 3 jobs after the first one... I tend to stay at places for a while. My first company was shut down suddenly by the parent company, and I was recruited by a consultant we had worked with to join a startup he had joined.

I then joined the next company when the people who started that company started a new one.

When that startup failed, I was going to take a break and maybe start my own company, but a guy who had worked for me at the failed startup invited me over for margaritas and to check out his new company he had joined, and next thing I knew I had accepted a job offer.

I have been at the last job for almost 10 years.

I now have a ton of connections from people who I worked with and they then left the company. I am sure if I was interested in getting a new job, I could put some feelers out and have some offers right away. I have had people try to recruit me, but don't have much interest in leaving my current place.

I don't think my experience is that unusual. It is so hard to find good talent, sourcing from people you have worked with before is extremely valuable.

Re:Aging programmer by closeparen on Sunday September 25, 2022 @08:58AM (#32970879)
I think interviews and code challenges have to be be decentralized and unscientific. Assessing likelihood of success in a software engineering role is genuinely difficult; any single well-known credentialing program is going to generate experiences of its graduates being incompetent in the wild. And then no one will trust it anymore.

People's own interviewing styles aren't any more valid, of course, but they operate at small enough scale to escape the kind of scrutiny that a standardized test would attract. People also don't like to admit they're wrong, and might be applying a kind of halo effect to colleagues who have passed their personal interview questions. Whereas people love to dunk on prestige, and will eagerly seize on anything they can count against someone with a prestigious credential.

Re:Aging programmer by iepathos on Saturday September 24, 2022 @06:00PM (#32966911)
I've interviewed people with computer science phd's from schools with good reputations that couldn't program worth a damn when it came to some simple algorithm and practical coding questions in person so, I don't have a lot of faith in certs/degrees for this.
Re:Aging programmer by quickthrower2 on Sunday September 25, 2022 @12:17AM (#32968911)
Computer science PHD is to professional programming what a food science degree is to being a head chef: the wrong credential to rely on, even though it sounds related and is somewhat transferrable.

It a small company not specialized in education and examinations can set a test and deduce if I am good enough to code, then this can be standardized. And there could be many certs: 1. can code, 2. can code c++, 3. understands multithreading … and so on.

Re:Aging programmer by iepathos on Sunday September 25, 2022 @02:52PM (#32974664)
I could see this being ok if the certs were retaken regularly. Passing a cert at one point in time doesn't mean you've retained all the knowledge that cert is suppose to assess after some time has passed. This is essentially what TripleByte does for its process to find good engineers for startups.
Re:Aging programmer by quickthrower2 on Sunday September 25, 2022 @08:46PM (#32978082)
I think "can this person even code" certs can be like a driving license, and last a long time. More specific skills yes should be renewed.
Re:Aging programmer by mike_ivanov on Saturday September 24, 2022 @06:24PM (#32967085)
These types can't usually think clearly under pressure. Besides, answering coding questions is very, very different from inventing those algorithms. It's a completely different way of thinking. That's why.
Re:Aging programmer by sureglymop on Saturday September 24, 2022 @08:13PM (#32967783)
But does that mean they're bad programmers? I don't think so at all. As a young person, we grew up with the internet so we're conditioned to just know the "pointer" to the information and then have to google/search for it. Now I've learned all the algorithms and data structures at uni too and passed the exams but what remains are the names of them and roughly when they are needed. It may be unfortunate but that's what it is like to study nowadays. It's all about cramming everything into your head and passing. Distractions absolutely everywhere and anxiety that we won't live up to and have the lives our parents had.

Now i for one dislike leet code and coding challenge interviews. I think it's silly, plain and simple. What i would look for instead if i was an employer would be curiosity. Nothing is more important than insatiable curiosity. A curious employee will learn everything about your whole stack in the first week... just out of curiosity. And if they do hit a leet code like problem during day to day work you best believe their curiosity won't let them rest until they've solved it, be if with prior knowledge and experience or without.

Re:Aging programmer by LtWorf on Saturday September 24, 2022 @08:50PM (#32967974)
Once at an hackaton a computer science phd student ended up in my team.

He was unable to execute a .py file.

Re:Aging programmer by Cd00d on Sunday September 25, 2022 @12:53AM (#32969042)
Why didn't you help your teammate?

A PhD doesn't mean that a person knows everything. It means they made progress in understanding in a narrow area. Might not have included Python.

Re:Aging programmer by LtWorf on Sunday September 25, 2022 @02:43AM (#32969431)
He was beyond help. That was far from being the only issue.
Re:Aging programmer by Cd00d on Sunday September 25, 2022 @11:57PM (#32979234)
That's judgemental. Collaboration couldn't have hurt.
Re:Aging programmer by LtWorf on Monday September 26, 2022 @01:46AM (#32979814)
I could spend a day doing the hackaton project or I could spend it teaching basic computing to someone who thinks himself an expert and is unwilling to learn. But I can't stop time, so can't do both.
Re:Aging programmer by weatherlite on Sunday September 25, 2022 @08:12AM (#32970609)
> this.

It's almost certain some of then (maybe most of them) would have fared just fine if they were left with the problem alone, not in a high pressure setting like a job interview.

Re:Aging programmer by iepathos on Sunday September 25, 2022 @04:06PM (#32975496)
I agree pressure can play a part, but thinking clearly under pressure can be a very important skill to assess in a candidate depending on your company. For a high growth startup, there is often a lot of pressure to deliver effective code quickly. I also think retention of knowledge plays a large part.
Re:Aging programmer by chadcmulligan on Saturday September 24, 2022 @06:54PM (#32967312)
I'm currently working on an old cad sort of program, its a mess, 20 years of kludges. Working on it is hard - you have to keep all this stuff in your head and I keep saying why the f did he do that, as expected really. Recently I had to add a new bit and use some computational geometry algorithms, it was like a step into a clear dark pool, everything was ordered and nice, which is probably the world of the phd.

I don't know how you test for the ability to do real world stuff - I always think of doctors, they have a system of proctoring they've developed over the years, where you're judged by your peers and rated accordingly and even then its not 100%. I think this is the only way to do it in real life, but I don't know if programming will ever get to that point, it probably will be necessary sometime - when everything is driven by computers.

Re:Aging programmer by w4ffl35 on Saturday September 24, 2022 @09:09PM (#32968061)
what about open source github repos that i maintain etc.? i think that's more valuable that a code challenge
Re:Aging programmer by derangedHorse on Saturday September 24, 2022 @01:42PM (#32964919)
No the general sentiment is that the interview process for software engineers suck but almost no one wants to take a chance trying to develop a new way to interview. It’s somewhat understandable though since devising a new process can’t be to people focused less you inherit too much bias from the interviewer, nor can they be boiled down to a objective metric or else people may fall into inflexible dogmatic practices that use metrics that don’t directly or accurately measure a candidates ability to perform the job applied for
Re:Aging programmer by PheonixPharts on Saturday September 24, 2022 @02:29PM (#32965375)
> almost no one wants to take a chance trying to develop a new way to interview.

I'm guessing your in the under 40 camp, but interviews did used to be better.

In the early days of the startup explosion interviews where much better. The biggest signal at the time was having an active github profile or otherwise existing portfolio of code. The strongest signal back then was serious contribution to any open source projects (strangely today that almost seems to count against you). It also wasn't required that you had these, but they were a very strong signal.

Interviews were largely technical conversations, to see if you understood the concepts, and even more importantly, it was okay if you didn't know. I remember being asked a question about TCP vs UDP. I didn't know much networking at the time, and explained what I knew about TCP but admitted my understanding of UDP was basically non-existent (admitting ignorance used to be a huge plus back then). The interviewers then explained how it worked and asked if I could explain when and why this would make for a better solution than TCP. I answered about the obvious application to media streaming and passed. Interviewers didn't care that you knew everything, they wanted to see how you think.

Even the original predecessor to our current leetcode nightmare, fizzbuzz, was never supposed to hard it was meant as a basic sanity check. There were some devs who had just followed the flow at some big bank and literally couldn't code on their own. Fizzbuzz was just to make sure that given a blank page you could implement basic code.

Of course as tech started to boom, so did the bootcamp/interview industry. People were trained to do fizzbuzz, instructed how to create a github repo filled with meaningless, half started project (or forks of other projects), and people where told how to flood OSS projects with minor pull requests so they could claim to be contributors. Then companies wanted to be like Google and have hard white board challenges.

Then you had a generation of engineers that never knew any different and largely had forgotten (or never known) how to assess technical competency anyway than through a series of hazing rituals.

Re:Aging programmer by majormajor on Saturday September 24, 2022 @07:55PM (#32967678)
Fizzbuzz as a predecessor to whiteboard DS/algo problems was different than my recollection, so I did some digging.

2007: this is when I first encountered fizzbuzz as an idea https://blog.codinghorror.com/why-cant-programmers-program/

2005 article linked from there: https://www.joelonsoftware.com/2005/01/27/news-58/

That second article is interesting in this conversation because it's main contention is that the vast majority of any applicants to any position you're trying to hire for are going to be terrible.

Which is the phenomenon seen by others as well and discussed in Atwood's 2007 one.

They don't really talk about the Google style DS/algo problems, so yeah, seems like those became popular later.

But it suggests the hiring experience for companies has long been awful.

The sort of experience you had - a good conversation about a detailed relevant technical area - is something that I've never personally found common when trying to hire. Most candidates still aren't great if you're looking to do even moderately greenfield development (even if not particularly interesting - just being able to put together a decent scaffold of an idea).

Leetcode - the site - is an interesting phenomenon because it's full of problems far harder than any I've seen in practice at FAANGs and similar. Stuff I've encountered in the real world seems to fall into the Easy or Medium buckets.

After being at a BigCo and hiring some people who aced whiteboard coding and failed on simple everyday things, though, I certainly would never again use something like that as the only factor.

Re:Aging programmer by yu3zhou4 on Saturday September 24, 2022 @05:31PM (#32966696)
> The strongest signal back then was serious contribution to any open source projects (strangely today that almost seems to count against you)

Would you mind sharing why contribution to open source might have a negative impact for an interview?

Re:Aging programmer by technion on Saturday September 24, 2022 @07:35PM (#32967571)
People in several enterprises have told me having a visible open source profile would represent a cultural fit issue.
Re:Aging programmer by speed_spread on Sunday September 25, 2022 @08:04AM (#32970571)
"You're too independently motivated to work here."
Re:Aging programmer by bigDinosaur on Sunday September 25, 2022 @12:14AM (#32968892)
They...wouldn't be wrong.
Re:Aging programmer by Arubis on Saturday September 24, 2022 @02:01PM (#32965103)
That’s truer and truer the more generalized the position/hiring pool. “Developer at GiantCo” will end up doing leetcode interviews by default. Cofounding as a technical founder will be pretty much all about personal fit. Between these two extremes is a wide continuum (smaller companies, tech positions at non-tech firms, freelancing, consulting…) that’ll have different processes for finding a fit between someone with a problem and someone proposing a solution.

If you truly hate the way interview processes have run for you, it’s worth considering if you feel strongly enough about it to seek a different fit in the market. You might not, and that’s fine! But alternatives do exist.

Re:Aging programmer by w4ffl35 on Saturday September 24, 2022 @01:59PM (#32965080)
i think it should be like this: can code / do whatever is being hired for + understads what we're building? hire. doesn't do a good job? fire.

its actually based on personality + a convoluted code challenge that has no bearing on the actual job.

Re:Aging programmer by dominotw on Saturday September 24, 2022 @02:10PM (#32965171)
I think Leetcoding is a worthy investment for career. Why not .

I understand that it feels like its waste of time with no practical use but the upsides are that they make job hopping trival because you know what to expect and feel confident.

I think its a tiny investment for big returns. unparalleled to any other activity you could invest your time in.

Re:Aging programmer by ChrisMarshallNY on Saturday September 24, 2022 @04:35PM (#32966335)
> unparalleled to any other activity you could invest your time in.

Huh. Never heard that before.

I invest my time in writing "shippable" code. Even my "farting around" projects are done in a manner as if they were to be released by a Fortune 50 company.

That means that Every. Single. Line. Of. Code. that I write is "ship" code. There are a number of projects that I've stopped working on (I archive them, but leave them out there), and a few that were never really meant to be sent out to fend for themselves, but I still make the effort to write tests and documentation for them.

I'm so used to delivering software, that I've almost forgotten what it was like to play around; which is actually a bit of a shame. It could easily be said that I "take things too seriously." I can tell you that my employers liked it, though.

My GH Activity Graph is solid green, and I wouldn't dream of "gaming" it. I don't especially care whether or not anyone thinks I'm "l33t." I'm an old fart that has no intention of working for anyone, ever again. I write code for myself, and that I want to see. Most of the folks that I care what they think of me, have no understanding of my tech work, and that's fine.

It makes me feel good to make good, well-tested, well-documented, well-architected code that solves problems.

I guess you could call me a "completionist." I like to finish stuff.

Re:Aging programmer by shakezula on Saturday September 24, 2022 @05:49PM (#32966834)
I have to agree with parent comment. Leet code interviews, while sometimes obnoxious, are still good exercises. I have learned a lot of nuanced takes from a leet code interview with an interesting question.
Re:Aging programmer by ChrisMarshallNY on Saturday September 24, 2022 @06:39PM (#32967193)
OK, fair 'nuff.

Right now, I'm working on a data parser for a backend API that fetches a JSON response, using the built-in NSURLSession stuff, turns it into a Swift Dictionary, then I sort through that Dictionary, and emit a bunch of Swift struct instances for use by the API consumer.

The reason for this, is because the API that I wrote about seven years ago, is giving us performance problems. I wrote about that in this comment[0].

The NSURL stuff has all the sockets and whatnot, as well as all the transport stuff. I've written that stuff before, but I guarantee that the deep geeks that wrote the system have done a far better job of optimizing that stuff, than I ever will.

The JSON parser (built into the OS, but I may think about maybe licensing another one, if this doesn't do what I want) has all the recursive-descent, tree-crawling stuff in it, so I don't need to worry about that. Since this is a multi-threaded system, almost every school algorithm is worthless, but I guarantee that the deep geeks that wrote the system have done a far better job of optimizing that stuff, than I ever will.

I want to get the hell out of this API, as soon as possible, and return to writing the UI stuff that will make my app sing.

The API is being developed as a standalone SPM package that will work on all the Apple systems (iOS, iPadOS, MacOS, WatchOS, and TVOS). The one that it's replacing only worked on iOS. No excuse. I know better, now. I'll also be structuring this to be a lot "swiftier," and more "reactive" than the original API.

The app is a native Swift UIKit app. It's a big mofo. At its peak, it was over 40 screens, but I'm trying to get it down to half that. I've been working on it for a couple of years. It's had a couple of pretty massive pivots, in that time.

UIKit is a big framework. It takes years to learn. I'm looking forward to SwiftUI, but SwiftUI is not at the point, where I'm comfortable committing to a project of this scope.

I've been working with UIKit since 2012. I barely understand it, and they keep adding new stuff, as fast as I can learn it.

Swift is an excellent language. Like every language, you can get the basics down in a few weeks, but it takes years to get the advanced stuff down.

I've been working with Swift since 2014 (the day it was announced). I speak it without an accent.

The project I'm working on has been a wonderful masterclass in Apple iOS development. I also wrote a fairly massive PHP backend, but that was years ago, and it is, I guarantee, not as cool as a really good PHPista could do. That said, it works great, is maintainable, secure as hell, and fairly well-structured for scaling and extension.

The app is gonna be great. Its approaching ship (still a ways off, but we can see the harbor lights, from here). I've been releasing it on TestFlight since it was a month old. By now, I've probably made over 800 TestFlight releases to the team. That's how come we can be so confident in the UI and the Quality. It gets banged on a lot.

But maybe I'm doing it all wrong, and I should stop working on this to practice leetcode.

[0] https://news.ycombinator.com/item?id=32921823

Re:Aging programmer by Tolexx on Sunday September 25, 2022 @04:07AM (#32969732)
>But maybe I'm doing it all wrong, and I should stop working on this to practice leetcode.

Junior here and not as experienced as you are but I resonate with a lot of what you have written so far. I'm more of let my work and projects speak for itself. I also hate leetcode or code challenge kinda interviews. So far I haven't have to take any to get a job and I plan on never taking or doing any. If I see that an interview involves such I will reject it. I can accept a decent take home assignment or technical questions in areas that I will likely encounter on the job.

Re:Aging programmer by tomduncalf on Sunday September 25, 2022 @07:11AM (#32970337)
Just be aware that by doing so you are ruling out a huge swathe of companies, typically the ones who pay much more than the rest [1]. It’s fine to do so, money isn’t everything, but I think it’s worth being aware of the trade off. FWIW I think any reasonably competent developer can master Leetcode to a good enough level in maybe a few months (outside of work)… The Manning Grokking Algorithms book is a nice simple intro.

[1] https://blog.pragmaticengineer.com/software-engineering-sala...

Re:Aging programmer by weatherlite on Sunday September 25, 2022 @08:32AM (#32970708)
Bad move imo. You're only a junior, you have your whole career ahead of you. You're ruling out more than 50% of companies by deciding not to do live coding on an interview.
Re:Aging programmer by weatherlite on Sunday September 25, 2022 @08:25AM (#32970673)
> But maybe I'm doing it all wrong, and I should stop working on this to practice leetcode.

You're not "wrong" per se. If you want a pure Swift job it would be very reasonable if the hiring company tested you on your very broad and deep Swift knowledge. However, if you ever wanted to do anything else job wise you'd be screwed. Leetcode gives you a chance to become a Java/PHP/C++ dev somewhere. That's the only plus for me. I'm mostly a Ruby/Rails dev experience wise and I get a real chance at different stacks because their hiring process is Leetcode (or something of the sort) and general design questions. So sure I'll never know as much about Swift as you but I do think that a hard working engineer who takes his craft seriously can pick it up and become productive in a couple of months. Not an expert, productive. I can join your company/team and then someone like you can make sure my code doesn't suck. For many companies that's good enough. Others can't or don't want to mentor anyone for more than a week or two so they only accept someone who fills all the requirements of their stack. Mostly startups, and in general not my cup of tea.

Re:Aging programmer by shakezula on Saturday September 24, 2022 @07:06PM (#32967409)
> I speak it without an accent

I love this, and I’m stealing it. it’s a perfect description of competency in a language, imo.

I absolutely understand the emphasis on shipping, and i actually have recently come to lament some of my unshipped projects lately (I’m in a phase of finishing instead of starting projects myself, and sometimes have felt like I haven’t gotten to ship anything in my software career, but that’s another story for another day) but part of the core skills I attribute to allowing me to finish are the same ones leet code interviews helped me polish. how one works on a low-level data structure is one of the core aspects of software engineering i examine in a new hire.

What I think I’m trying to say is, I don’t mean to stop working on shipping a project to focus on leet code toy problems, but rather that a lot of leet code interview problems have given me better insights on how to focus and solve problems im trying to ship. I have found great value in going back and rehashing leet code interview problems and turning them into tiny libraries after i was given them. So much so that I’ve turned it into an exercise. I’ll have to write a full post about it sometime, but writing tiny libraries has been one of the best things I’ve done for my technical skills.

Re:Aging programmer by ChrisMarshallNY on Saturday September 24, 2022 @07:37PM (#32967585)
> I’ll have to write a full post about it sometime,

I'd read that.

> but writing tiny libraries has been one of the best things I’ve done for my technical skills.

I do that all the time. When I get to a bunch of code that I think has reuse potential (like, say, a backend connection SDK), I break it into a standalone GitHub repo, set it up as an SPM package, and give it The Full Monty for testing and documentation. The testing code usually dwarfs the implementation code, and the documentation is...well, you can see for yourself. Here's a few of the packages that I've written: https://riftvalleysoftware.com/work/open-source-projects/

I usually take a few days off the main project, write, test, document, and release the subproject, then re-absorb it into the main project.

Re:Aging programmer by throwyuno on Saturday September 24, 2022 @06:55PM (#32967320)
If you’re looking to get hired as an individual contributor somewhere else, maybe you should. But judging from this and other posts of yours, you’re not, so you’re probably not doing it wrong.

It’s just that when interviewing, it can few easier to evaluate some algorithm puzzle than to figure out what it means and whether it’s true that “the app is gonna be great.”

Re:Aging programmer by ChrisMarshallNY on Saturday September 24, 2022 @07:40PM (#32967602)
Well, that screed I wrote, is a fairly typical "geeky conversation" that can be invaluable, in an interview.

I used to hire pretty senior-level engineers. They would be writing C++ image processing pipeline code, to some insanely exacting standards.

My technique was usually to get them relaxed and comfortable, then start asking them for stories about the projects they've worked on. It was always a joy, when I could get them to start chattering, like the post above. I would look at the enthusiasm, and the passion, as much as the technical detail. I'd love hearing them talk about discovering problems, and how they addressed them.

Re:Aging programmer by lawgimenez on Saturday September 24, 2022 @07:57PM (#32967691)
I currently started a basic iOS project with SwiftUI and it is just utterly painful to work with. I kinda hate mobile development because of this reactive roadmap shit. Why would anyone code a UI. I’m old now and I realized I’m getting resistant to changes.
Re:Aging programmer by ChrisMarshallNY on Saturday September 24, 2022 @08:05PM (#32967738)
I started off, writing device control stuff.

There's a lot of similarity between that, and UI work.

I trained as an artist, way back in the Paleozoic Era, and that gives me "airs" about things like graphic design, and data presentation. I've spent a good part of my career, unlearning that crap. I'm usually best off, leaving the defaults in place, if possible. I write about that here[0].

I think that UI needs to be treated as seriously as possible. It should not be an "also" thing. I think it needs to be the starting place for the work, and I tend to develop UI pretty quickly, in my work.

I feel like SwiftUI still needs a lot of fine-grit sandpaper. I have every confidence that it will get there, but I don't feel confident in committing any project at scale to it.

[0] https://littlegreenviper.com/miscellany/the-road-most-travel...

Re:Aging programmer by lawgimenez on Saturday September 24, 2022 @08:49PM (#32967966)
Thanks! It was well written. Makes sense, I came from Android development and UI/UX is really important to get right the first time.
Re:Aging programmer by jasonm23 on Sunday September 25, 2022 @05:17AM (#32969971)
> but it takes years to get the advanced stuff down.

Obligatory ask, bullet list of "the advanced stuff", please?

Re:Aging programmer by ChrisMarshallNY on Sunday September 25, 2022 @05:29AM (#32970008)
I’m not really up to doing that kind of write-up. However, I did write this series[0]. Some of it might be a bit “dated,” but it probably has what you want.

There’s an excellent book[1], called “Advanced Swift,” by Olle Begemann, and Chris Eidhoff, that gives a far better breakdown of the more intricate parts of Swift than a simple bullet list.

Like many languages, Swift is a deep rabbithole. Heck, you can get lost, just in the way it handles strings[2].

[0] https://littlegreenviper.com/series/swiftwater/

[1] https://www.objc.io/books/advanced-swift/

[2] https://flight.school/books/strings/

Re:Aging programmer by tomduncalf on Sunday September 25, 2022 @07:06AM (#32970314)
I think you’re missing the point of the parent post. In terms of an investment in your career, if you’re optimising for money, it’s hard to argue that learning to do Leetcode can have huge returns. Whether it actually makes you a better developer is a different issue entirely
Re:Aging programmer by ChrisMarshallNY on Sunday September 25, 2022 @07:36AM (#32970450)
> I think you’re missing the point of the parent post.

It's also possible that I didn't "miss the point."

They did ask "Why not". It may have been rhetorical, but I pretended that it wasn't.

Of course, like all these types of things, I have my own approach. It's fine, if others don't want to do things the way that I do, but I'm not into playing "Me Big Man on Campus" games. I just talk about the way that I do stuff, and my own approach.

For me, I can't even imagine "job hopping." I stayed at my last job, 27 years.

If "job hopping" is someone's idea of a career, then I guess leetcode is the way to go.

But if we want to stick around, that means that we can't just have a veneer of competence. We need to actually have it.

Re:Aging programmer by scarface74 on Saturday September 24, 2022 @02:21PM (#32965291)
Even though I had other means to get into BigTech and still stay hands on technical, if I didn’t, I definitely would have spent 3 months “grinding leetCode” to get a six figure increase.

I’m lying, I would have hated working for any large tech company as a software developer after spending decades at small companies.

Re:Aging programmer by weatherlite on Sunday September 25, 2022 @08:20AM (#32970651)
Totally agree with this, although I do see some more alternative methods used by non FAANGS (e.g with f5 it felt like they actually tried to determine my actual knowledge as a SWE). But solving a few Leetcodes every now and then (even outside of interviewing season) is probably a very profitable habit.
Re:Aging programmer by sgerenser on Sunday September 25, 2022 @08:11AM (#32970600)
In theory that’s what TripleByte was supposed to be, but it didn’t really work out in practice. At best being screened by them got you past an initial screener call but you still had to go through the full gauntlet of interviews at most companies. Then they realized they weren’t making money and started doing shady stuff with personal data: https://news.ycombinator.com/item?id=23279837
Re:Aging programmer by twblalock on Saturday September 24, 2022 @12:29PM (#32964171)
Also, programmers are paid better than most people and early retirement is often possible. A lot of programmers don’t need to work into their 60s.

In my own case, when I have enough money to retire it’s going to be hard to convince me to keep working.

Re:Aging programmer by JackMorgan on Saturday September 24, 2022 @01:16PM (#32964629)
I know quite a few engineers who simply no longer need to work ever again, and are working just for "funemployment".
Re:Aging programmer by ecpottinger on Saturday September 24, 2022 @02:40PM (#32965445)
The difference, an engineer is told what to build and tries to do that.

A programmer is told what to do, and half way thru development they have the boss show up and say 'I just read of this brilliant idea in BusinessWeek, lets add/change the code to do .....".

Re:Aging programmer by collyw on Sunday September 25, 2022 @06:41AM (#32970227)
Except it's usually more "I just read about fantastic technology X, we need to use that". Ignoring the actually problems we have and whether technology X will solve them in any way at all.
Re:Aging programmer by chucksmash on Saturday September 24, 2022 @05:50PM (#32966845)
Funemployment is when you are not working though
Re:Aging programmer by ambrose2 on Sunday September 25, 2022 @05:15AM (#32969962)
I guess there’s both fUnemployment and Fun-employment
Re:Aging programmer by hmlongco on Monday September 26, 2022 @01:50PM (#32986050)
I've been playing... (I mean, I've been) working with computers for decades.

My basic philosophy is that I'd probably be sitting in front of the silly thing anyway. Might as well be paid for it.

Re:Aging programmer by twblalock on Saturday September 24, 2022 @04:29PM (#32966290)
I would probably try to do that too, but one bad week or month, and I'd be done.
Re:Aging programmer by ransom1538 on Saturday September 24, 2022 @01:19PM (#32964663)
"For most of my career, I've been told (and I believed) that I would probably get forced out of a hands-on individual contributor role as I aged."

Programmers are in a bubble. Head over to the local grocery store. The person bagging your groceries is 63. There is no retirement plan for him - as well as most Americans. These "old" people will end up working until 70, on their feet. If I can find someone to pay me to write CRUD apps all day in whatever hipster framework, I am fine with that, no complaints here. Beats working at HomeDepot.

Re:Aging programmer by soulofmischief on Saturday September 24, 2022 @01:56PM (#32965059)
A bubble as in we are not cognizant enough to recognize the benefits of investing in our skills and education so that we aren't bagging groceries at 63, or a bubble as in we should not expect our current ratio of compensation vs skill to hold out forever?
Re:Aging programmer by hindsightbias on Saturday September 24, 2022 @03:15PM (#32965697)
I had an office mate whose dream was to retire to the tools desk at HD.

While brutal, there is something to working later from a health perspectice. When I was young, retirees played tennis and golf but I dont see as much of that in my cohort.

Re:Aging programmer by granshaw on Saturday September 24, 2022 @05:20PM (#32966617)
Snide all you want about it, but the country club trend provided community and physical activity
Re:Aging programmer by therealdrag0 on Saturday September 24, 2022 @07:20PM (#32967489)
I’m only in my 30s and starting to find the idea quite attractive.
Re:Aging programmer by hindsightbias on Saturday September 24, 2022 @08:24PM (#32967837)
That’s what I said.
Re:Aging programmer by rstuart4133 on Sunday September 25, 2022 @02:25AM (#32969369)
I'm the other side of 60. Quit my job and took up contracting after the founders of the firm I had been employed by for decades sold out to a firm maybe 100 times the size. I stressed out wondering if I could still cut it with the young guns.

I was contracted to create the backend for a SaaS platform, from scratch. It runs on AWS, using a lot of AWS services, and is django based. The thing is - I'd never used AWS before, nor django. (I'm not sure how they chose me, to be honest.)

Picking all this new stuff up at my age it's nowhere near as easy as it used to be. But the process of writing software is not just learning libraries - and the rest I have down pat now. I immediately set designing the data structures and databases, wrote a spec based on those structures and got the spec reviewed before I started (I had to pound the table to make that happen). Then head down, arse up writing code as fast as I could. I had to deliver it all without an AWS platform to run it on, or a front end to drive it - but you don't get to my age without knowing a thing or two about unit effective testing.

Then after delivering, I was told it had all been changed by the UI guy, so massive refactoring. Unit tests are worth their weigh in gold when that happens.

All the while I was told I was talking too long, which ramps up the pressure and self doubt even more. (But with me muttering - what did you expect when change the UI I had based the spec on without telling me, ffs.) Boy do you lean on unit tests when that happens.

Then the first code drop, which was few tens of thousands of lines of code done in a few months. Which if you crunch the numbers, was 20% of the size their existing code base, delivered by one guy, in 5% of the time it took several people to develop the existing thing. Bug rate after unit tests was below 1 bug per 5k LOC.

Turns out they were begrudgingly impressed by that. So right now it seems I still can match it with the young guys. Yes learning new stuff is harder and slower, but I make up for it very efficient software methodologies honed over decades, which when I can apply them for a few weeks straight leave them in the dust.

The way I feel now it seems when I'm 70 pulling that sort of stunt will be impossible, so I don't have too many more job changes left in me. But at 50, you have a while to go yet son.

Re:Aging programmer by milesvp on Saturday September 24, 2022 @11:44AM (#32963747)
The number I saw was something like every 5 years the number of programmers doubles. So half if all devs have less than 5 years experience. And since most new devs are more likely to be closer to college age than retirement age devs tend to skew younger than 40 (probably by a lot).

https://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html

Re:Aging programmer by topkai22 on Saturday September 24, 2022 @12:37PM (#32964243)
I ran numbers from the BLS on occupation data a few years back. If you look at the number of programmers 25-35 in 2000 and the number of programmers in 2020 aged 45-55 you see a real and substantial decrease in absolute terms. The decrease is much larger then other professions, so its not attributable to a cohort just exiting the workforce in general.

There is also a massive increase in the number of 25-35 programmers in the same time period.

My interpretation is there are definitely forces that push against older programmers staying in or re-entering the profession, but they aren’t as severe as they appear to be just looking at the raw numbers. Generally, programmers who want to remain the profession are going to be about to, but it is harder to be a programmer over 40.

Re:Aging programmer by mockingbirdy on Saturday September 24, 2022 @01:08PM (#32964549)
Here's [1] a data analysis looking into the phenomenon: "Professionals with higher cognitive ability drop out of STEM careers earlier and faster", "High-ability workers are faster learners, in all jobs. However, the relative return to ability is higher in careers that change less, because learning gains accumulate"

[1]: https://whoisnnamdi.com/never-enough-developers/

Re:Aging programmer by Retric on Saturday September 24, 2022 @01:20PM (#32964666)
Some of this is how easy it is to transition from programming to something else compared to other professions. Jumping from building some piece of software to being the expert on it or managing programmers to managing projects etc.

This is especially tempting if someone’s skills start to diverge from what’s in demand.

Re:Aging programmer by AmpsterMan on Saturday September 24, 2022 @01:46PM (#32964967)
https://www.bls.gov/ooh/computer-and-information-technology/...

The number of "jobs" added doesn't quite double, but if we think of it as "for every 4 that retire, five take their place" it would definitely feel like what you're saying.

Re:Aging programmer by bdowling on Monday September 26, 2022 @12:31AM (#32979445)
> I even had an early midlife crisis and earned a law degree

Same. In my case, I paid my way through law school doing software development contract work, which paid better than entry level lawyer work. Now I do a mix of software consulting/contracting and IP technical expert work (patent/copyright infringement analysis, claim charts, etc). I enjoy doing both kinds of work, though I really enjoy legal writing and I'd like to get more into IP litigation, writing pleadings, motions, oppositions, etc.