Many others in creative pursuits do the same, including advice, articles, mentorship, tutorials, videos, screencasts, and many other things: artists, musicians, writers, non-software engineers, cinematographers, carpenters, and others.
Or to put it another way, if you like the process of taxonomy and description that goes into programming, you might well enjoy the process of taxonomy and description that goes into teaching it too.
I would drop the "software" and just keep the engineering.
I also think it's important that it's virtually free to practice software engineering. All you need is a computer and your spare time.
First you need a shit load of equipment: Soldering station, Scope, Multimeter, Power-supply, Function generator, and so on...
Then building something and testing it costs money. PCB manufacturing is pretty expensive.
Finally debugging and crashes are not free like the software. If you made a wrong connection, then the PCB goes to trash. If you screwed up the Voltage, probably your components will blow up and go to trash too.
And all that are on top of the computer and bandwidth.
Now I'm scared.
Of course, bad programming will never do the same damage as a building that collapses, a bridge that folds in two, etc. But it can do damage enough: harming lives, enabling crime, and costing businesses a huge amount of money.
There are also a lot of free in-person clubs and meetups for these things in many communities.
I think that's true of most professions. The difference between software engineering and most of the other examples you listed is that software engineering does not require any formal education or training, unlike law, medicine, or other engineering disciplines.
I think it's generally a good thing that the field and the profession are accessible, but I frankly also would prefer if there was a bar/board exam or a similar certification process to make sure practitioners are all up to date on issues of accessibility, privacy, security, etc., which do lead to concrete negative consequences if neglected. I think this is a case where it'll never be perfect, but as a trade we owe it to the people who put their trust in our work.
It does make getting into the career harder, but I don't think those changes would make software engineering no longer self-teachable.
That's a lot of junior engineers. We're vastly outnumbered by juniors and complete beginners.
If you aren't helping juniors, you'll fast run out of seniors to work with.
Perhaps it's their culture that still lives on.
I think your perception of what other professions do might be limited by your own experience, though. Just to go in order:
Legal: My aunt is a lawyer and volunteered her time in a legal "clinic" where people with landlord/tenant issues could come in and get advice for free. She also worked some of her professional time on cases where the clients did not have to pay, a practice that is common in the legal industry, called "pro bono."
Engineering: There are a wide variety of student and volunteer activities that are well-supported by professional engineers on a volunteer basis. For example one of my coworkers volunteers his time evenings and weekends to help "coach" a high school robotics team. And you may have heard of various other engineering challenges like popsicle stick bridges or egg drop competitions.
Medical: Several friends have transitioned into working in the medical field through free opportunities, primarily by volunteering with local rescue squads and first responder teams. These teams are typically supported/led by some folks with professional medical training, but anyone can show up, volunteer their time, and get medical training.
Ultimately, to work in these fields professionally, folks need to get a credential of some kind, and that might cost money. That's not true of a lot of software development right now.
But I think that is primarily because computing is such a young industry right now. All industries start out that way. There were times in history when you did not need a credential to work with the law, or to design machines, or to treat illness.
But as these professions had a larger and larger impact on society, society imposed higher and higher expectations on practitioners... expectations which required more formal structures to satisfy.
I predict the same thing will happen to computing technology, at least at the high end. It's already true in some areas like life-critical embedded systems. You're not going to get a job writing code controlling the ISS after doing some free online tutorials.
Even here in the UK, taking a GDL and LPC/BCPL is a very expensive proposition. There are no real free resources, if you want even a sniff of it you are putting down serious cash. I know because I looked very hard at doing it, and opted out partly because of the perilous costs involved.
The engineering example is very different: helping high school kids take nurture an interest in engineering is definitely a common volunteering trope. I'm not sure it's the same as giving potential practitioners free professional training.
> I think your perception of what other professions do might be limited by your own experience, though.
Politely, I do not think you should be making that assumption about strangers on the internet.
In the legal space there is a ton of free information and resources out there, and plenty of ways to work personally or professionally with the law that don't require a JD. For example part of my job is to advise colleagues on contracts and IP issues. I have no formal legal training; I learned on my own and have built up trust in my ability based on demonstrated competency. Not that I'm some special flower; I know other people with similar responsibilities.
Of course we also have actual lawyers on staff, and I'll never be able transfer to that role without shelling out some $$ because it is a formally defined credential. By definition there's only one way to become a lawyer.
Conversely, the lack of formal credentialing in software development makes it hard to evaluate the quality of the "professional training" that is available for free. If I go through the COD3 curriculum linked up top, what job can I reasonably expect to get? I don't think COD3 is comparable to a 3-year post-graduate degree in law.
The free-for-all that allows for open-ended innovation also allows a lot of open-ended promises about the value of free things. And because they're free, there's not really any accountability if the promises fall short. I don't think this is a bad thing; but it does make it hard to cleanly compare it to more formally credentialed industries.
Whats the link to it? Google search doesn't bring anything up
And what about teachers generally? Isn't teaching an important skill that deserves remuneration? Doesn't offering free tuition drive down the value of teachers? Should these people be improverished for (one) sense of "societal progress"? I'm not sure I can agree.
However I am definitely sure that the statistics show that the highest paid professions in this country require lots of licensing and schooling, which carry non-zero costs for obtaining.
Software engineering does not exhibit this same behavior, or at least if it does, it is orders of magnitude less. I don't see many blog posts on how to do appendix surgery, for example.
Of course kids are into influencing in any generation. I was commenting on what they're into now.
This isn't a criticism, neither of the "help others code" movement, nor more insular industries. It's just a very unusual aspect of our field and I wonder where it comes from.
For instance, can you imagine reading any of these?
Show LN (Litigator News): Learn employment regulations to become a paralegal
struct3r5.com: a free online curriculum for budding structural engineers
Paying It Forward: If You're Not Mentoring a Junior Mathematician, You're Not a Senior Statistician
dmackenzie/ipcurriculum: a curated list of resources to help students of Intellectual Property law
Introducing a new Programme of Mentorship with Veteran Cardiologists for Non Medical Students