7 ms·
> Part of the problem is the sheer breadth of IT and software development today. 40 years ago, I felt like I understood nearly everything: I designed processors
by CodeMage 3y ago
> Part of the problem is the sheer breadth of IT and software development today. 40 years ago, I felt like I understood nearly everything: I designed processors at the transistor level, programmed from machine code through assembly to Lisp, Prolog, Pascal and other languages. Worked on projects from tiny to huge.
The saddest thing about the way this changed is that the barrier to learning is so much lower today, but what do you actually do once you've learned?
When I was a kid, there were no programming classes in school and I had to go buy books and magazines to learn how to code in BASIC or assembler or Pascal. But once I've learned a new trick, I could immediately do something with it and feel good about it. It didn't matter it wasn't something spectacular, it didn't matter it wasn't very useful, because it was mine and there weren't 1000 of other things just like it, available to me at a touch of a button.
Compare that to what my kid is going through. He wanted to try learning to code, so we signed him up for some classes where he learned some Python. Later, in high school, he took AP CS Principles and they taught him some rudimentary JavaScript. Now, in his junior year, he's taking AP CS A, where they're teaching him Java.
Thing is, what can he do with all that? He's surrounded by devices running code. Writing a toy program that fills the screen with "HELLO, I AM COMPUTER" does not feel like you just learned a magical incantation that makes this machine do your bidding. Writing some actually useful code is harder, and it feels pointless, because there's almost always an existing app you can have at a click of a button and it does what you thought of and probably better. Writing useful code that doesn't already exist -- like e.g. your own mod for such-and-such game -- is even harder than that.
> Any individual developer is going to be in a niche. Your web developer knows nothing of how to write ABAP, your SAP developer has no clue how to do embedded programming for a microcontroller, your real-time embedded programmer knows nothing of databases, your database admin thinks React is something to do with nuclear power plants.
To top off the irony, generalists are not being appreciated or sought much.
- liotier 3y ago> Writing a toy program that fills the screen with "HELLO, I AM COMPUTER" does not feel like you just learned a magical incantation that makes this machine do your bidding Find out what his favourite hobby or favourite game is, then demonstrate a little script... Suddenly the conditional branches and loops don't seem so abstract anymore !
- bluetomcat 3y ago> Writing a toy program that fills the screen with "HELLO, I AM COMPUTER" does not feel like you just learned a magical incantation that makes this machine do your bidding. But there's joy to be found in writing pointless and abstract programs. It's more about the journey and less about the utility of the finished product. Writing, for example, an ASCII-art drawing system that works on a big rectangular 2D character array can teach you so many concepts – from OO and encapsulation, through linear algebra, to file IO.
- SJetKaran 3y agoYeah, and perhaps use Linux where you can get into tiling window managers for example and tweak the system to your will. Or Emacs. Etc
- CodeMage 3y ago> But there's joy to be found in writing pointless and abstract programs. It's more about the journey and less about the utility of the finished product. Sure, and that's how you know you're really into programming. That's how I could tell my kid wasn't really into it, but rather wanted to try out this thing his dad loves to do so much ;) I guess that hasn't really changed: if programming is something that "calls to you", it will still "call to you" despite all these changes. I guess what I'm wondering is whether there's a "middle ground" we're missing. There are kids who will choose software development just because "it's a good career". I don't want my kid to take that path and risk ending up with a job that is absolutely devoid of joy, rather than trying to find something that would be more fulfilling. On the other extreme are the kids who are the way I was when I was a kid: programming is something that fascinates them regardless of whether it's useful or a good career, because they find joy in the act of programming itself. Does the middle ground exist? Are there kids who would actually be happy writing software for reasons not so banal as "it's a good career", but aren't in the "holy shit, this totally abstract and pointless thing I did was so cool" category either?
- drewcoo 3y ago> Writing a toy program that fills the screen with "HELLO, I AM COMPUTER" does not feel like you just learned a magical incantation that makes this machine do your bidding. No, but in the 80s, when the guy at Radio Shack didn't know how to stop it, it was still worth it somehow. What can your kid do to assert some goofy kind of power in today's adult world?
- CodeMage 3y agoThat's precisely what I was trying to express! In retrospect, I realize that the part you quoted might sound like I felt that toy programs like that weren't magical, when I was a kid. On the contrary, I'm trying to say that they don't feel like magic in today's world.
- saltcured 3y agoIsn't there is a similar spread for older technologies and crafts like horticulture/agriculture, textiles, ceramics, metalwork, printing, music, cooking... is this just evidence that software has arrived?
- Turing_Machine 3y ago> Writing some actually useful code is harder, and it feels pointless, because there's almost always an existing app you can have at a click of a button and it does what you thought of and probably better. Well, there are a lot of people who enjoy cooking, or gardening, or carpentry, or making their own clothing, or playing in a local softball league, even though there are many professionals with professional-level skills and equipment who can do those jobs better than they can. I think it's like you suggested in your later comment: you either have the bug for programming, or you don't. There are a lot of programmers nowadays who don't -- they just program to make a buck. Not that there's anything wrong with making a buck, but it's like the guy who flips burgers at McDonalds. He does it to make a buck, not because it's speaking to his inner need to be a creative chef.