Whenever I hear "We need more programmers! Make more young people interested in programming! Teach programming at kindergarten!" I always get the urge to ask "What did you do with the old ones you had?"
Where are all those programmers you hired 5-20 years ago? Why is no programmer at your company older than 40? Why do you have *senior* software engineers that are 25 years old? What did you do to all those people?
If you can't take care of your employees, no wonder you never have enough.
@deshipu I think it's not JUST that (it is certainly also that). It's also that we (capitalism?) keep demanding that new software be written and don't want to spend time decommissioning old software. To the work burden doubles every however often, requiring the workforce to also double. Which it actually doesn't. I often talk about this in a metaphor where we (an engineering team, a company, an industry, a society) keep picking up new things, but very rarely put old things down.
@benhamill I was mostly thinking about the game development industry, where you are basically burned out after three years, unless you are very careful and lucky.
Maintenance is certainly a problem, especially since it's harder than making new things, but viewed as much less cool. You are a cost, not an investment.
There is also a third factor there, where most of the stuff we write these days never actually gets finished and is lost in the sea of startups — basically squandering all that work.
One will never learn programming before he/she learnt math. Programming is a high school thing, no need to rush it.
What? You code css? Never mind =_=
@gxtony I think that it's not an on/off thing. It starts with being comfortable with having control over the device, even if that is simple customization. So yeah, kids putting stickers on their stuff are beginning to get into programming. Then you can start using more sophisticated and advanced tools as you gain more knowledge and need more control. What tools you use exactly, whether the language is descriptive like CSS or procedural like Python, doesn't really matter that much. You can learn either.
Controling your device is more related to sys administration I think?
@DashEquals @gxtony @deshipu indeed, they pay to those who know math, but frequently don't know anything about problems they're applying tech to, then we get <the current state of medicine, education, public transit, accounting, etc automation and software accessibility>. coders not only need to know math. it frequently turns out to be irrelevant.
teamwork and being able to hear what your customers ask you to write. of course, good planning and being able to split a huge problem into many small problems and solve them separately. but math is irrelevant quite frequently.
I'm not sure how well this maps to others' experience, but I've mostly found that there are many different classes of "good at maths". I'm bad at mental arithmetic, and I can't do calculus, so there are definitely classes of programming that are closed to me. But there's something a bit more abstract in computing - and it has tripped up *every* junior web developer I've ever coached out of uni who didn't have a CS or maths background 1/?
Non-CS and non-maths people (I was one a few years ago) tend to treat programming differently in a way I can't quite define - but it was sorta like they didn't realise computering is simple. There's a sort of unwillingness to learn what things are doing under the hood, which usually left them using tools and systems that operated at the top 'layer' I guess? I'm struggling to verbalise it tbh. In webdev, it manifested as using jQuery for everything.
Maybe not unwillingness to learn ^ btw. More an expectation that the under-the-hood isn't learnable.
CS kids and maths kids tended to be a bit less likely to learn how to use one hammer and then treat everything as a nail.
Maybe maths is just one of the things you need a programmer on the team to know? One maths person, one social sciences person, one historian, one activist?
There are absolutely loads of different skills that make a good programmer in any particular field, and nobody can have all of them. Diverse skill sets in teams = good results.
4/3 because apparently I can't count.
@Chris i think it correlates with math knowledge, but i don't think there's a casual link. i don't know math (although i'm fairly good at mental arithmetic, don't see how it can be applied), i still frequently find myself spending too much time learning how things work under-the-hood (i kind of am a control freak in this field). though, i don't work with things like 3d engines that would require deep math knowledge.
@Chris i think there's a correlation between being interested in CS/math and programming. there're people who are in IT only for money, i doubt they're willing to learn underlying tech if they already get paid for what they know. they aren't interested in math either, so that's why we can make such conclusions. but maybe it's just a silly assumption of mine.
@leip4Ier @Chris @DashEquals @gxtony I used to think that only computer and math geeks were "real" programmers, because that's what i saw around me. Until I got more contact with some art communities, and then with the game dev scene. Turns out a lot of people want to use computers for their stuff, and sooner or later they realize they need to learn to program them for that, and just do it. They are often not interested in the computers, they treat them as means to an end. Still 100% legit programmers.
I don't like to try and use terms like 'real' programmers.
I think there's a distinction between systems programmers and UI programmers and sewing machine programmers and electronic music programmers, but that's (among other reasons) why I think there are lots of valid skills in programming besides maths / CS.
All of the above are valid but obviously not the same and tbh I don't know how to easily disambiguate them. Programming is a very overloaded term.
@Chris @leip4Ier @DashEquals @gxtony Totally! And between compiler programmers, operating system programmers, database programmers, text editor programmers, blog programmers, mastodon client programmers, platformer game programmers, first person perspective shooter programmers, third person perspective shooter programmers, and so on and on. Every single program you write requires distinct skills and experience. And once you have written it, it makes little sense to write it again, so you need new skills.
@DashEquals @leip4Ier @gxtony Nowadays computer programs are being used in so many areas of life, that just knowing how computers work is not nearly enough. Sure, you can be an excellent system programmer. If you also know math, you can work on some math libraries. But most of the time what you need is the ability to work with external experts in the particular domain, and to learn very fast. The latter is a specialty of younger people, the former of more experienced ones, so you need both in your team.
@DashEquals @gxtony @deshipu depending on the sphere, of course, there are some science-heavy things. but at the same time, i heard that for real research scientists (terribly) write their own programs, bc software developers are too hard to explain everything to (i'm not implying they shouldn't be, though).
@deshipu I do wonder where they go because I'm approaching my 40's sooner rather than later and starting to get worried.
@brianl They get burned out and find safe bullshit jobs doing the same pointless thing every day, most likely in middle management.
@deshipu @brianl I know one who left the industry to become a carpenter, and another who left to make knives.
That kind of work (using your body, still able to employ creativity, but with well-defined and documented physical properties of things like wood and metal) can seem very attractive after a long day(/week/month) of committee design meetings, fighting buggy frameworks you don't own, and other familiar nonsense.
@Tak @deshipu @brianl the handwork Trades are underappreciated but making a comeback; I would have loved to be able to go to the Elective-linked trade-school available in HS but by the time I even KNEW about it, all classes were full. as it is now, I'm doing all the gruntwork for rewiring my (90 year old) house
@deshipu and that's not even starting on the idea that we don't really need that many programmers in the first place! The only reason there are so many of us now is the woefully inefficient processes. Most of us basically constantly solves the same old problems over and over.
If you're older than forty, you're expected to be too much of a dinosaur to be useful any more. I'm 56 and having a hell of a time finding a new job.
@starbreaker @deshipu It's almost impossible. My father was able to, because it was blatantly obvious when he was fired and the company replaced him with a guy half his age at half his wage. The government lawyer got him a nice fat settlement. Proving it in hiring practices would require visibility into the company, and as a candidate I don't have that.
@deshipu "You can't have any new ones until you've fixed the ones you mistreated."
@deshipu Tons of companies are complaining how hard it is to find qualified Technicians, machinists, and engineers.
But they want a bachelors and 5 years experience, and the job pays 20/hr
@deshipu I'm one of the youngest devs where I am at age 31, our company tends to take care of employees benefits wise tho has only recently come around to investing more in training, etc. still, it shows that people stay working & stay interested if you make sure they're well cared for.
@deshipu It seems to me that programming has become not unlike aviation in WW1: the purview of cocky young people who can and will push themselves over the limit on a regular basis with no concern for their own well being, or the next day.
I'm glad I didn't go into programming when I saw my programmer friends gradually start being turned into Contracted "Employees" with no job security and one promising Contract got outsourced to a team in India at the last second.
@bamfic I thought that capitalism was about private ownership of the means of production. Maybe you meant corporate capitalism specifically?
@deshipu They don't want us old hands. We know our value and know enough to demand a living wage and reasonable hours. They want young programmers who still think they're immortal, still think they're going to get rich, and thus are less likely to recognize or object to exploitation.
@deshipu Usually, those people want to be paid a lot of money, are poor value as engineers and become managers or similar.
@johnribbon Why do you think they are poor value? Do you have any source on that?
@deshipu Poor value not because they're not good, but because they are too expensive. People in the later careers tend to want to be paid twice as much as younger engineers, but there are few applications where those engineers can deliver twice the value.
After all, it doesn't take someone with 25 years of experience, including knowledge of assembly, C, etc, to knock out a few nodejs endpoints.
@johnribbon I would really want a source on that, because it goes against my experience, so there must be something interesting going on there, and I think it would be useful to look at it closer. Do you know any research or maybe just statistics that would confirm it?
@deshipu Just my own experience and a kind of concensus among other people who have been in the industry a while.
It is certainly true that older professionals want to be paid a lot more. It's also true that much of software development is routine and not demanding of that level of experience. So there are fewer principal level roles because you just can't justify them from a business perspective.
That's all I got, no source as such. 🙂
@johnribbon I'm especially doubtful of the "much of software development is routine and not demanding of that level of experience" part — experienced engineers will just automate and/or generalize the routine parts and focus on the actually demanding parts of the problem, or move on to the next one. The idea is to solve problems such that they remain solved.
@deshipu Ok, but can an engineer with 20yrs experience, wanting twice the salary of a young engineer, always offer twice the value on every task?
I think not. Can they build a Jenkins pipeline twice as quick? Can they turn out an API twice as quick? Or write "normal" app code twice as well? Generally they can't because, unless you're working on the Linux kernel or something hard core, most problems are just not that hard. After, say, 5yrs, you can do most things.
@johnribbon You say this as if solving problems was just about writing code.
@deshipu The thing is, what experience does help enormously with is the task of picking the right problem to solve. There is a lot more value to be gained or lost by working on the right thing, than in doing the thing well. Even the best engineers working on something that nobody wants (happens all the time) provides no value. That's why a lot of experienced people become managers or product people.
Also, they get sick of those people telling them things they already know.
This Mastodon instance is for people interested in technology. Discussions aren't limited to technology, because tech folks shouldn't be limited to technology either!
We adhere to an adapted version of the TootCat Code of Conduct and follow the Toot Café list of blocked instances. Ash is the admin and is supported by Fuzzface, Brian!, and Daniel Glus as moderators.
Hosting costs are largely covered by our generous supporters on Patreon – thanks for all the help!