Consider Ruby on Rails. It was the most beginner-friendly way to create a web app when it was popular, but the very things that made it that way - opinionated design, sacrificing speed/correctness/scale by using Ruby, "batteries included", and a cultish fanbase that drew new users to it - made it the target of justified criticism from experts who wanted flexibility, type safety, speed, lightweight design, fewer CVEs, and fewer annoying fanboys. Flash came under fire for similar things: performance issues, poor UX when used in the wrong place, constant security vulnerabilities, being a proprietary standard.
These are actually good criticisms! There's no shadowy cabal who arranged feigned outrage over flash vulnerabilities, people were genuinely upset that a proprietary piece of software was turning their browser security into a sieve and stopping screenreaders from working. The criticisms just failed to ask why it was so popular with beginners anyway.
From personal experience, and from the (continuing) weekly HN "Hiring" posts that are looking for Rails devs, Rails is popular because it allows you to build an MVP for an entire product or company over a week. It gets rid of all the distractions when it comes to assembling the perfect stack and just works. It's not perfect by far, but, like Flash, it allows you to shortcut the technical work and get right to the creative work.
Software is one of those spaces where there is an incredible amount of capital invested in making things easy for the lowest common denominator.
There are so many resources for people of any age and background to learn practical skills in this field. There are summer camps where 7 year old kids learn to program.
I'd say if you really want youth interested in technology, you basically need a "montessori model" for computers. I don't believe that's likely to happen in school; you need funding, which requires measurable results. There's also too much bad stuff on the internet for schools to run that risk at that scale.
There are two rough classes into which I would break "tech guys". The first is the sort who enjoys it for what it is. Shaves yaks configuring his system, tries out new languages for the heck of it, that sort. The second has a perfectly respectable career in software, and enjoys other things when he comes home at five p.m. I'm not saying one is better or worse, but at seven years of age, you'll only have the few of the first type _really_ interested. Type two will often switch to a different toy once frustrated (i.e. upon a serious bug). You can't expect everyone to derive the same level of marginal benefit from just playing with tech.
Type twos necessarily better or worse, but we don't put kids into "plumbing boot-camp" at seven expecting them to develop life-long passions. Maybe a few will, but not many. To put it another way, you'll get a lot more kids into architecture letting them play with legos free-form than handing them a kit and saying, "Build this model by following the instructions."
There's no question to me that early exposure and encouragement makes all the difference in educating kids. I can't understand why we're not engineering experiences in all these different fields for kids to build real stuff that can eventually turn into a trade. If you're a kid, even today, and you want to learn an adult trade young, your options are still pretty much just artist or programmer.
If there was a way to start doctors or lawyers young, maybe it'd make a difference. As a kid, I knew one girl that was a hospital volunteer, and she ended up going to Africa as an adult to try and make the world a better place by helping others. People don't realize how activities in formative years really stick with kids.
Instead of giving kids meaningful work, we're raising a generation that's going to be great at self-promotion and fortnite.
Our entire school system is wrong. :) I am working on it. We force parents to go to school and that is wrong.
The key to rapid education is teaching the correct subjects. All science is functionally math. Physics is math and chemistry is math. Music is math. All written homework is functionally English. Art is functionally understanding of light and shadows, which is best taught through photography. Photography decouples ability to render (drawing) from ability to compose. Until the child is fluent at algebra and written English, teaching other subjects except for athletics relies on the child's innate talent or, more likely, their parents.
In other words, you cannot swap all time for study of english and mathematics and expect to simply achieve twice as much in english and mathematics.
Learning 45 minutes at a time is silly. It's far more effective to master one concept at a time.
Logic comes with math. I haven't fully thought it through, but my initial goal is to eliminate the need to rely on parents to do well in school.
> The first is the sort who enjoys it for what it is. Shaves yaks configuring his system, tries out new languages for the heck of it, that sort. The second has a perfectly respectable career in software, and enjoys other things when he comes home at five p.m.
I have found out that these are not in opposition at all. In fact, workplace that holds you in 80 hours a week largely prevents trying out new tech. People dont stay long because trying out new toys. If they do, then they are being dishonest with employer, honestly. They stay long because of stress, pressure, disorganization, etc.
The conflation of the two really not logical, it does not even makes sense. Why cant you go home at 5 and "try out new languages for the heck of it" wherever you feel like? Should you even try out that new language production project? (you should not)
This is true for _education_, however the design of the tooling itself, as well as the purely code-based interface with which we like to rely on (no WYSIWYG or visual creative tools) is what makes it creatively difficult
Compare the experience of making some HTML5 canvas game to making a song in modern day DAWs. In the latter there has been so much investment into improving the workflow and the quality of the software to make the creative experience smoother. In programming, almost no effort is put into the creative experience, outside of niche fantasy terminals (e.g. PICO-8)
But these kids, the clever and curious ones, they'll find this on their own too, and truly many more cool and free things to create stuff with online. A few years back, they were all over these free github student developer packs, especially the credits for a Digital Ocean droplet server, which they used to host sites, minecraft servers (IIRC) or Discord bots.
...perhaps you mean the countless drag-and-drop code-free frameworks that enable people to create apps without writing code? Or that a basic Swift tutorial to do just that takes about 15 minutes, including downloading Xcode? I just can't understand this confused nostalgia.
90% of apps can be replicated as web pages, which are far, far easier to program and deploy. Frameworks do add a lot needless of complexity for little benefit. The reason is not a "test of worthiness" though - the purpose is developer lock-in and make it as much difficult as possible to switch to the competing platform. The only way to win this game is not to play
Although when people start arguing that programming a web page is easy, it really brings home how awful modern programming is, and how long it has been since there was widespread usage of really decent and simple RAD tooling.
Or if one shells out to Delphi, RemObjects, Xamarin, Qt.
Ironically, actual embedded devices are far easier to program, with Arduino. You type your code in a window (with all boilerplate and build system abstracted away) and click a button, and boom it's compiled and uploaded and running. This is because it was designed to be easy to use - ostensibly to teach young people, but in practice it means lots of hackers use it too.
Yep, it's never been easier