Learning To Program Is Getting Harder (slashdot.org)
theodp writes: While Google suggests that parents and educators are to blame for why kids can't code, Allen Downey, Professor at Olin College argues that learning to program is getting harder . Downey writes: The fundamental problem is that the barrier between using a computer and programming a computer is getting higher. When I got a Commodore 64 (in 1982, I think) this barrier was non-existent. When you turned on the computer, it loaded and ran a software development environment (SDE). In order to do anything, you had to type at least one line of code, even if all it did was another program (like Archon). Since then, three changes have made it incrementally harder for users to become programmers:
1. Computer retailers stopped installing development environments by default. As a result, anyone learning to program has to start by installing an SDE -- and that's a bigger barrier than you might expect. Many users have never installed anything, don't know how to, or might not be allowed to. Installing software is easier now than it used to be, but it is still error prone and can be frustrating. If someone just wants to learn to program, they shouldn't have to learn system administration first.
2. User interfaces shifted from command-line interfaces (CLIs) to graphical user interfaces (GUIs). GUIs are generally easier to use, but they hide information from users about what's really happening. When users really don't need to know, hiding information can be a good thing. The problem is that GUIs hide a lot of information programmers need to know. So when a user decides to become a programmer, they are suddenly confronted with all the information that's been hidden from them. If someone just wants to learn to program, they shouldn't have to learn operating system concepts first.
3. Cloud computing has taken information hiding to a whole new level. People using web applications often have only a vague idea of where their data is stored and what applications they can use to access it. Many users, especially on mobile devices, don't distinguish between operating systems, applications, web browsers, and web applications. When they upload and download data, they are often confused about where is it coming from and where it is going. When they install something, they are often confused about what is being installed where. For someone who grew up with a Commodore 64, learning to program was hard enough. For someone growing up with a cloud-connected mobile device, it is much harder. theodp continues: So, with the Feds budgeting $200 million a year for K-12 CS at the behest of U.S. tech leaders, can't the tech giants at least put a BASIC on every phone/tablet/laptop for kids?
1. Computer retailers stopped installing development environments by default. As a result, anyone learning to program has to start by installing an SDE -- and that's a bigger barrier than you might expect. Many users have never installed anything, don't know how to, or might not be allowed to. Installing software is easier now than it used to be, but it is still error prone and can be frustrating. If someone just wants to learn to program, they shouldn't have to learn system administration first.
2. User interfaces shifted from command-line interfaces (CLIs) to graphical user interfaces (GUIs). GUIs are generally easier to use, but they hide information from users about what's really happening. When users really don't need to know, hiding information can be a good thing. The problem is that GUIs hide a lot of information programmers need to know. So when a user decides to become a programmer, they are suddenly confronted with all the information that's been hidden from them. If someone just wants to learn to program, they shouldn't have to learn operating system concepts first.
3. Cloud computing has taken information hiding to a whole new level. People using web applications often have only a vague idea of where their data is stored and what applications they can use to access it. Many users, especially on mobile devices, don't distinguish between operating systems, applications, web browsers, and web applications. When they upload and download data, they are often confused about where is it coming from and where it is going. When they install something, they are often confused about what is being installed where. For someone who grew up with a Commodore 64, learning to program was hard enough. For someone growing up with a cloud-connected mobile device, it is much harder. theodp continues: So, with the Feds budgeting $200 million a year for K-12 CS at the behest of U.S. tech leaders, can't the tech giants at least put a BASIC on every phone/tablet/laptop for kids?
can't the tech giants at least put a BASIC on every phone/tablet/laptop for kids?
If a kid can't load a free BASIC compiler app...........then.... .well... I don't really know.
All computers these days come with a web browser. Modern web browsers include rich debugging facilities. It's never been simpler to start writing programs. You can start with simple text output and progress all of the way to 3D OpenGL graphics or 2D vector and composited raster graphics with the canvas.
I am TheRaven on Soylent News
There's loads of easy ways in. Shit, scripting excel is a fine place to start.
My fave is processing.org - those cats have made something special.
No more tricky than programming a sinclair or a commodore. But the potential is considerably more potent.
The big thing is that all the documentation you could ever want is there at your fingertips if you're willing to look for it. The resources available to a self motivated person that wants to program are beyond fantastic.
Or maybe just look on the web? Jeez...My first programs were on a TI calculator, there are a million easier (and better documented) learn-to-program web sites out there now. Here's a Basic site, just as an example: http://www.calormen.com/jsbasi...
Have you read my blog lately?
If someone just wants to learn to program, they shouldn't have to learn system administration first.
I disagree with that. Being able navigate your hard drive and install programs is more important than being able to code, and should come first.
And yes, you are right. But you are not seeing it for what it is: part of the general complexity growth in all things that must eventually lead to some sort of collapse. Programming is harder, but EVERYTHING is harder. And it will become harder and harder until there is a "Black Swan" of some kind collapsing everything.
E Proelio Veritas.
That's what I was thinking too - it's not that programming as a whole has become harder, just a lot more diverse and specialized. Yes learning to write some scalable Erlang/Mongo based server application is harder than what we had to do growing up. But they don't have to start there, and if they get really into programming they can go there if they want which is better than what we had when I was a kid (we used to have to compile with a *preprocessor* step you young whippersnappers).
Even if you didn't like Javascript, there are things like Scratch and Apple's Playgrounds. Yers they hide some detail but it is not at all detail you need to know anytime soon before you get to really advanced stuff.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Ironically, the hardest thing I can think of for a _total_ newbie is drilling down through all the layers of abstraction to show what actually happens. I'm in IT and infrastructure-as-code is the same way. We have a nice easy way to program things, but it's so divorced from something that actually happens. Everything new lately has been a layer on top of another layer with the hope that it will make things easier.
An example from my world is Azure Resource Manager. At the core, it's a RESTful API that takes in JSON configuration files and tells Microsoft's cloud back-end what needs to be configured. ARM is almost a language in its own right, and it's nearly impossible to write configuration files without some guidance. So, someone at Microsoft wrote a Node.js wrapper on top of ARM that I found out about the other day (Azure Building Blocks.) So, you have an ARM framework, written in a JavaScript framework, sending commands via insert-your-language's SDK to a RESTful interface that hides unfathomable levels of complexity behind it!
The push to wrapperize everything is going to get to a point where some levels of complexity are permanently locked away. People who are totally new and starting out at Node.js or a similar framework will be able to make things work, but they won't know _how_ they work.
I'll make one "get off my lawn" statement -- we've overloaded HTTPS to perform way more duties than it was ever designed to do, and chosen to write applications in browsers running JavaScript, which was also never meant to do anything nearly as complex as it does. This is why you have the endless parade of new frameworks, wrappers, etc.
People from the 50s would say the same thing about your life and not knowing how woodworking, plumbing, electrical wiring, cars, etc worked.
Your life is built on abstraction. How well do you know how most of the machines that run your life work?
I'm sure some polymath will come in here proclaiming they own a homestead, repair their own cars, build their own silicon chips, et al but the reality is that for you to get any depth in a subject you have to neglect the depth in others.
I learned to program on Hypercard at ~14. Scratch and NodeRed look like great modern day equivalents for the same age. A 14 year old doesn't need to know how to bit bang with assembly but a high level introduction may lead them down the road of wanting to know.
My first computer was a Radio Shack Color Computer. It came with two great tutorial manuals for coding in Basic.
There is a lack of material written at that level. Almost all I write in, anymore, is in Vbasic and Vensim (Systems Dynamics, I realize it is a bit obscure). Vensim has a great walk through; However, most of the manuals are either too complicated for beginners; or they don't take the user to the point where thy can do something productive.
As a teacher, I would love to find something, a bit more applicable than hour of code, that will keep my students engaged and leave them with applicable knowledge.
Programming didn't get harder, using a computer just got massively easier. How hard is it to go to a site like http://www.compileonline.com/i..., choose a language, and start learning? If kids can find pornhub they should be able to find this if they are so inclined. People need to face the fact, not everyone will enjoy programming, and not everyone will be good at it.
Nowadays you can get pretty much any niche program you need. In last millennium access to programs was much harder, so sometimes you had to figure things out yourself. That means that people now have less need to dive into the technical details about eg. printer drivers and configuring them. Now you just download the latest driver from the manufacturer, or perhaps it worked out-of-the-box because the driver was included in the OS.
I'm not saying it was better in the good old days. But you did have the need to be a bit technical when computers didn't do everything you wanted. And that gave some people the push to going deeper and making programs.
Car analogy: it is harder today to become a mechanic, because the engine is typically just a big inaccessible block. No more easy access to spark plugs, carburetor, or adjusting the choke. Is that sad? Maybe.
Some of us grew up with those command line machines and we still know command line to this day. Plus programming - you had to write your own software back then and it meant understanding how to break problems down into codeable pieces.
I had an Apple ][+ and I ended up in the computer industry. I don't really agree with this article. I had many friends at the time who know how to CATALOG and BRUN but I'm the only one who went on to be a developer. The reason why I got interested in developing is because my dad would buy Byte magazine and we would enter machine code programs together. This got me interested in 6502 and later C (when I got an IBM XT). It was only one or two years after the Apple ][+ came out that disks started to get formatted with the 'HELLO' menu-based entry screen anyway, I guess later when IBM XTs came out it was command line again but again that period was relatively short before windows took over.
I guess the point here is that making technology easier to use is nothing new. It has always been just the people who want to know more who look under the hood and learn.
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
I get the feeling that programming may not yet be within these people's grasp
"When I first heard Daydream Nation it quite frankly scared the living shit out of me." -- Matthew Stearns
Why the sudden push for kids and newborns to know how to code? .... Like this will miraculously improve their life later on...
I think that they're completely wrong and that learning to program is so much easier today than at any point in history.
First of all, there are a wealth of online resources that anyone can access with a web browser than there are loads of them that are freely available. There are loads of websites, videos, etc. dedicated to learning programming languages. Some like Python or Java have such an abundance that it's almost difficult to be able to determine which to use. On top of that, there are plenty of websites like Stack Overflow that are dedicated to answering people's questions, so you can even get by with learning on your own outside of a classroom and still be able to get some feedback and mentoring from more experienced programmers.
Development environments are easy as hell to install. You can a one-click installer from Oracle that will install and configure the JDK and an IDE for you. Most languages don't even need an IDE at all and just require running a script you can bang together in any text editor. It can't get much easier than that. Similarly, most kids figure out how to use a GUI on their own through trial and error. Their parents certainly didn't teach them how to become proficient computer users. Cloud computing has made things like Scratch possible where children can learn programming concepts and share their programs with friends and others. I fail to see the merit in any of the points that they make.
If programming seems hard, it's because it has become so widespread that we're trying to teach it to everyone instead of as in previous generations where people mostly seemed to seek it out and dedicate their own time and efforts towards it. It looks like the past was more successful because we don't see the people who tried and failed in the past. The old generation that seems to understand it more intuitively or didn't struggle as hard are the survivors of far more niche group.
I finally started playing around with Raspbian and it's a great OS that addresses all of the above.
It has multiple IDE's built in like Node-RED, Scratch, Python (Thonny). A command line terminal is built in as well as apt-get.
Coding is difficult for most people not because of the layer of obfuscation in modern computers and devices. It's difficult because it requires a certain mindset to understand - logic, spatial reasoning, mathematics, are all required to code well. Most people don't have it - which is why most people don't code, or become engineers or scientists. There's nothing wrong with teaching kids to code a computer in BASIC or Python or whatever - but it won't stick with most of them because they likely will never have to do it in their professional lives.
Even people with all the requisite skills still struggle to code well - like most of Google's or Microsoft's employees.
For someone who grew up with a Commodore 64, learning to program was hard enough. For someone growing up with a cloud-connected mobile device, it is much harder.. Wow. Who knew?
Programming jobs are the easiest jobs in the world to ship offshore; most software can be written literally anywhere in the world. STEM education is still important, but you're better off training for a career like medicine or pharmacy where you literally have to be in the same room with your customer -- those jobs can't be offshored! Also, automation is going to take a lot of jobs away... shouldn't automation eliminate programming jobs too?
I've abandoned my search for truth; now I'm just looking for some useful delusions.
Step one, see title.
#DeleteFacebook
...which hides the framework, and lets the user use simple calls or commands to do advanced things like outputting text or graphics to almost any TFT/OLED/LCD screen you can imagine (small form factors usually, we're not talking HDMI screens here).
And it's almost like having a Commodore-64 on a chip, lots of I/O ports, way more forgiving on the inputs/outputs than the 6526 ever was (touch this one and you'd literally say goodbye to an expensive I/O chip), the interface is ugly...but easy to use, it's free aka gratis, it's open, it's got a huge community with tons of drivers for basically any hardware you want drive/throw at it/use with it. I put a complete weather station together in 2 hours, didn't even have to find software for that, as drivers and libraries are available for almost every sensor/screen out there. It's almost like combining a commodore 64 with lego.
I won't count Raspberry PI into this "easy" category, because albeit the raspberry is cheap, it's far from easy for kids to get started with, and if they do - the learning curve is hideous as it's almost as complex (hardware wise/programming) as a PC. With the Arduino range (especially the Nano V3 one's that can be had on ebay for a couple of dollars) are so ridiculously easy to use that your kid (or you) will be up and coding in minutes with actual real life results instead of having to learn endless libraries and code just to actually make an executable that will actually do something useful or meaningful.
And if we look at how many gazillion Arduinos are sold on ebay by random (often totally clueless sellers that have no clue what an arduino actually is), it's literally selling like it's hot - all the time. That's gotta count for something.
What this world is coming to - is for you and me to decide.
Cars have become easier to use (GPS, stick shift is a rarity, who changes their own oil anymore). The technical innovations underlying today's vehicles certainly makes it harder for users to become mechanics. A person may be introduced to the intricacies of car repair/maintenance by a friend or relative, or by taking a training course. I don't believe making cars more mechanically accessible is going to significantly increase the population of mechanics. By and large those who become mechanics have both a knack and passion for it.
... microsoft has made an idiocracy through getting rid of the command line based section of the OS as it's own thing largely. Old operating systems like MS-dos and other programs like games, etc should be required part of any computer course so they actually learn to trouble shoot computers and actually have a course in computer history. Some enterprising company should really make a whole virtual machine that emulates what it is like to run early computer software and configure a virtual computer inside a vm to teach these kids.
Those of us who grew up to program had to read the dos manual and put in the hours. It wasn't really that hard because it forced you to learn how your computer actually worked to some extent. They didn't need total electrical engineering type knowledge but at least you had a clue what your machine actually did. The fact that "programmers" are becoming idiots may just be a reflection that dumber people are going into programming. Those of us with a genuine interest in computers put in the hours because it was a hobby first long before it became a job.
They are on to something, but have it *completely* backwards. Learning to code has never been easier. At the same time, using a computer has become much much easier as well. Part of the barrier to entry of older computers was the need to know something about the computer. That barrier to entry has been removed, and people aren't learning about the machines they're using.
I don't know what the answer is. It doesn't seem correct to intentionally make computers harder to use. Perhaps moving away from the mindset that a computer is an appliance *looks at Apple significantly* would be a decent place to start.
I think it's easier. I'd kill for Google and YouTube to get answers and tutorials when I learned BASIC. All I had was my C64, the programming manual and curiosity. Complete games were just a wall of text, even those that were actually readable and not just lots of PEEKs and POKEs to memory addresses. The difference is that the software I looked up to was also made by one or few developers with rather crude graphics and sound. Particularly something like Lazy Jones with lots of mini-games, I could make something like that. Today I play Overwatch and it's like this would take me 1000 man years and a bunch of art and music talent I don't have. You can't have that kind of motivation today. And I think games was the only thing I cared about when I was like ten. I don't see that I'd be making any other kind of apps with interest.
Live today, because you never know what tomorrow brings
Lua isn't an issue. In fact I'd suggest that Lua serves kids today better than BASIC did in the early '80s, as it provides a better intro to modern, more maintainable programming. The modified Lua of PICO-8 also does a good job of exposing the internals of the VM underneath. Probably the only issue with PICO-8 is that it's a commercial platform that's not pre-installed anywhere except on the PocketC.H.I.P. (which is also a great little computer for kids to play with and learn from).
Programming on a computer is easy enough to set up. But how do you program on a phone or tablet? Last I heard Apple forbids programming on their phones. I don't know of any way to develop an app on an Android phone either. You can't even script at the command line because there isn't one.
(T>t && O(n)--) == sqrt(666)
... A 14 year old doesn't need to know how to bit bang with assembly but a high level introduction may lead them down the road of wanting to know.
And that's it in a nutshell. I get asked all the time how I learned to do the stuff I do... if you WANT to do something and you have an internet connection, you will find what you want and learn how to do what interests you. Along the way you should discover your limitations, and if you are a motivated person, how to stretch those limitations into challenges. Challenges should lead to growth. Alas this is where things seem to be broken for some people, the "If you can't do it that's OK" mantra that has been used for the last twenty or so years.
What we need to teach is "If you can't do it, figure out another way, if that fails, ask someone that already learned what you want to know".
The problem is teaching a wrong attitude about accomplishment...
You have the right to remain sentient. If you give up the right to remain sentient, you will be elected to public office
It's way easyer. The incentives may be lower, that's for sure. Unreal tournament is way more fun than going through the first bits of coding, but getting into programming is easyer.
You need an editor and a browser and perhaps an active internet connection and your good to go. All this is bog standard these days, you can even do it on a phone.
We suffer more in our imagination than in reality. - Seneca
I am a happy nerd.
I love my nerd world, my nerd friends and colleagues. But there are simple stuff that doesn't go trough our thick skulls. It never came to your minds people do not learn to program simply because they do not specially desire to do so ? They do not consider it an important skill, they have no curiosity about "how it works in the inside" and often consider an electronic device that needs any intellectual effort a poorly designed device.
I loved my commodore 64. I learned to program a little bit on it. But it is because i was curious and educated by parents that encouraged that trait. If we lived in a world where computers were ubiquitous but similar to commodore 64's, they would not learn to program because you have to to make a C64 work. They would buy consoles.
I have similar conversations with some of my nerd brethren about maths. I mean, the few ones that more or less realize that most people know very little maths. They speak about the difficulty of some abstract concepts, the quality of the teachers, the small number of math hours at school. But they do not get that most people do not desire to become whiz kids. Eventually they find them annoying, or pedant, or arrogant. They are not curious and are not raised to become that way.
They may be embarrassed by the social consequences of their ignorance. But it is a pecking order question for them, nothing more.
Same kind of reasoning when talking about why people are not athletic while they have an able body like everyone else, etc...
When people genuinely value learning and knowledge and achievement, then children learn. They don't complain about it being too hard, they talk about how it was hard but they put in the effort and learned it anyway. Or they talk about how they put in the effort but they still weren't able to master the material, but they were able to accomplish something else instead. They encourage each other.
If you want learning, then value it socially. When you have conversations, are they about how you learned a new skill? Or about how someone else learned a new skill and how good it is that they did? Probably not. You talk about what you value. Don’t expect others to value what you don’t value yourself.
Hypertalk made the whole process of creating a usable program of significant complexity quite easy--easy enough for an early grade school student. Apple really, really didn't know what they had.
Or maybe just look on the web?
Indeed. Programming has never been easier. Here is how you start:
1. Type "scratch.mit.edu" into your browser
2. Start coding
Maths, more maths and maths.
Basic, ada, pascal, logo.
Study, learn and pass tests. More learning, more computer time.
People who could learn, wanted to learn got computers. People who could afford computers to learn. That was what the cost of a computer did in the past.
Programming is not getting harder. People with no skills and no ability to study are expected to use computers, robot GUI kits now.
Kits, computers, new GUI software is been provided along with support. The results show nothing better is happening with computer education after all the decades of tax payer and private sector support.
Find out who can study, pass a test and do math. Support the people who can do math and then the results will reflect the past generations of great results.
Domestic spying is now "Benign Information Gathering"
I agree that the C64 was certainly a great place to start, but in those days computers were fairly useless and the games pretty crappy by our standards. Go a bit further back and all was more so.
Therefore you could make a little program that might actually do something cool. Plus computers were a novelty so making them do anything was cool.
If you started to get a bit serious you could reasonably make a game or a program that others might use. Not a blockbuster, but something interesting. Get 5 friends and spend a few months and you might actually make something worthwhile that made money.
Fast forward to today and there is no novelty, everyone has a computer in their pocket, and short of finding some bizarrely unfilled niche you aren't making anything useful alone and in short order; and if you do, you are probably just using some crass tool that simplistically pounds out an app or other "programming" like wordpress.
And as far as you and 5 friends making something in under a year, good luck with that. There are exceptions, but not that many.
This all boils down to reward for effort. With my Vic-20 I could put in little effort before it started to reward me. Thus I was hooked. Give the same zillion years later me visual studio 2017 and I don't know where I would begin. Maybe it would be rewarding enough. Maybe not. Printing my name over and over again would impress my friends decades ago. I don't know what I would have to create these days to impress them.
When you powered on the Commodore 64 (or computers of that age).. sure you were in a 'development environment".. a terse prompt and a blinking cursor.. period. There was no help, there was no internet, no youtube, there was no browser. You were on your own with no easy way to get help.
20 years ago. Buy a book:
https://www.amazon.com/Structu...
Learn to program.
Today. Believe it or not it is still possible to: Buy a book and learn to program!
https://www.amazon.com/Structu...
Contrary to popular opinion, people did learn things in the days before web-enabled-group-assignments. Now we have teachers ready give you the answers to any hard questions so that your sense remains at permanently elevated levels.
Back it the day, it was as easy as typing this into your Commodore 64 when it booted up:
10 PRINT MY SISTER IS A BUTT
20 GOTO 10
RUN
Bingo, you just wrote your first program, and got the satisfaction of annoying your little sister in the process. I bet that most people's first program looked something like this as well if they started in the 1980's.
Now, you need to download and install something like Python on your Windows PC, probably getting prompted by a few scary looking security prompts along the way, and then write something with a more complex syntax to get a similar "MY SISTER IS A BUTT" result. So, yeah, the barrier to entry is higher now.
LOL!!! Look, I myself learned to write code in BASIC on a CP/M system, but really folks... it ainâ(TM)t 1984... Python or something OO at least, please... teach folks to write an Android app or something... BASIC lol...
Even that's not as easy as the Commodore 64 era, since you need to open a web browser, go to the URL, give Chrome permission to run Flash, wait for the IDE to load, and then do the tutorial.
On the Commodore, you just need to turn the computer on, and get a BASIC interpreter prompt.
The only difference is that today you can do with programming immeasurably more than you could in the past when pac-man was state of the art. Building the same level of software has to be simpler today using modern tools.
I don't think SDE availability is a big issue, Linux usually has gcc installed by default, XCode is fairly easy to install on Macs, and I'm sure Windows has lots of easily installed stuff.
I think the issue is GUIs, but not for the reason he thinks. To the current kid a program isn't a real program without a GUI, and GUIs tend to be a lot tougher and more annoying to write. It just makes the gap between what a new programmer can accomplish and "real programs" that much bigger.
I suspect the best approach for a new programmer is scripting. Just yesterday a friend expressed a desire for some bizarre set of image transformations and within an hour I learned enough ImageMagick to fire off a python script. This is partly a consequence of being a command line user, but you can automate a lot of tasks with scripts and are you are honing your programming skills at the same time. OpenSCAD is a good way to pseudo-program if you have a 3d printer. I suspect there are a bunch of games with scripting interfaces as well.
Though for the windows user for whom the Command Line is still a foreign land I think phone apps are the easiest gateway. There's a lot of tutorials where you can get a "real program" with a graphical interface with very little effort. The main downside is that kind of coding tends to be a lot of interfaces and API calls which aren't as much fun.
I stole this Sig
1) Git is horrible for introductory usability. Just today I saw a tweet from a veteran programmer who complained about not remembering how to roll back a commit and needing to Google it.
2) Overly complex object libraries. No, you don't have to inherit 12 different levels. And "Hello World" should not be a hundred-line program.
I was a programmer and DBA for many years. I learned on command line interfaces, so I have a good understanding about directories and files. Even with that knowledge, sometimes I find it hard to find files in a GUI system. I currently use a Mac. If I use the Terminal program, I sometimes have a hard time locating the files. I can do it, but it is often a pain. I also have the same problem when using windows systems.
Likewise for my Android phone. Moving a file from my Mac to my phone or vice versa is a real pain. Then opening the app, and finding the file can be a frustrating experience. If I save an attachment from email to my phone, again finding it can be pain. There is no excuse for it being so hard.
Run flash? That's a big fail right there.
When cars and aircraft were first invented, someone with modest mechanical talent could modify or even build one in their garage. Now they are so sophisticated that its very difficult for a non-expert to make any useful improvements.
Going back further, when people used dug-out canoes and rafts, a little training would let someone build a boat. Later it became a job for experts.
This may just be what is expected for a mature engineering field.
BTW - people *can* do home-made modified cars, planes and boats, but its generally at a hobby level and the skills are not that closely related to what is needed for commercial systems. This is similar to learning program rasberry pi, or similar.
Any language like Python or Javascript comes with tons of libraries. I also grew up in the C64 and did some easy BASIC programming. Opening and reading a text file? no clue. Doing that with Python? open( "blah.txt","w").
There's also this thing called the internet now. It's been around for the public for almost 25 years. If you want to learn how to program, just google it.
Try learning BASIC with a reference book and no internet and see what happens when you want to do something different than reading in some input and printing "Hello World".
While that is true, I was teaching myself X86 assembly at just about that age. I had already learned several flavors of BASIC and some basic C at that point.
I'm a programmer (started on TRS-80), and I'm helping my 17 years old nephew learn to program. We've done a little of everything over the last few years, but recently we watched Ben Eater's 8 bit computer series on youtube, where he literally builds a computer from logic gates and simple chips on breadboards. He does an incredible job of explaining how computers work, and I think anyone learning to program would benefit from his series.
When you start with a false premise, the rest of what you say is suspect.
I was a programmer when the Commodore 64 came out, and I'm still a programmer today. So I think I'm reasonably qualified to comment on this topic.
There is in fact an increasing gulf between computer users and computer programmers, but TFA has it completely backwards. It's not getting harder to code. There are two (and only two) factors at work here:
1. Computers have gotten substantially easier to use by non-programmers. My parents wouldn't have been able to do anything with my Commodore 64. But they can use a modern computer for normal user-level tasks just fine.
2. The expectations of what software should do has increased substantially, which means programmers need to be able to create much more complex code to meet minimum baseline expectations. At the same time, though, modern software development has rapidly evolved over the years and now offers better tools, better frameworks, better access to information and documentation, better back-end services (e.g. "the cloud"), better debuggers, and a whole host of other improvements that allow one programmer to do more than they were ever able to do before.
I will concede one point here: programmers today need to be familiar with a lot more different things (e.g. frameworks) than the days when they had literally no frameworks at all. That said, programmers need much less depth in their understanding of those various pieces, since documentation is literally a mouse-click away in nearly any decent IDE.
Also, it's called "IDE". This "SDE" acronym is just bullshit and demonstrates that the author of TFA is a bit light on actual industry experience.
People who say "sheeple" have about as much sophistication as an AOL user, and in fact are probably actually AOL users.
The problem isn't that learning to program is getting harder, it's actually slightly easier. But the approach to teaching it is wrong. If you want to teach the mass of students (a bad idea, by the way) then you need to introduce them to programming with something like Scratch, or Logo and turtles. The assembler level is totally the wrong place for anyone these days. An IBM 7094 or Z80 or I6502 was relatively simple. Even the M68000 wasn't too bad. But modern processors are just to complex to be a reasonable starting point.
Now for a motivated subset of students Python or C (or Ruby or, perhaps, Go if there's ever a decent introduction) is reasonable. C will give them a better understanding of how computers work, but Python will let them get interesting results faster. It's a trade-off. If you could get anyone to use it MIXX would be a good place to start, but that's going to require a lot of external incentive. If you want to really understand the basis of programming, build a FORTH or Lisp interpreter in C. But that still won't introduce you properly to concurrency, unicode handling, graphics, or even objects. Programming is a lot wider now than it used to be, and it takes a lot longer to master...most people never do master all of it. I'm really weak on graphics programming. (Well, I started on Fortran IV, and even character strings were strange. To me they were fixed length byte arrays, but just try to map than onto a Python3 string.)
So there's several issues. One thing is picking the right entry point. This has to be varied with the student. Another is limiting your expectations. Very few kids, perhaps none, are going to master all of programming. And the ones who do will spend a decade doing it. But they can learn to handle particular areas fairly quickly.
One nice book for that that I ran across recently was about constructing mazes in Ruby. It used libraries to make the graphics simple, and focused on the maze algorithms. That would be suitable after they already had some basic knowledge.
I think we've pushed this "anyone can grow up to be president" thing too far.
I only agree that learning to program is harder in our days because languages are more complex and tools as well. E.g. persistance annotations etc.
One the other hand: ... who cares?
1) is wrong. Worst case you have to download an IDE, there is nothngi to install. Linux and Macs come with IDEs/programming languages pre installed, e.g. Python.
2) is wrong. Modern IDEs give you information, what exactly would they hide? Folding away doc comments?
3) what has that to do with programming? And we all know where the information os going to: FB and NSA. Where it comes from is irrelevant, most of it is either fake or tits
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Starting from functional abstractions is not actually harder than starting with ones and zeros. I've known plenty of people to jump straight into higher level functions without ever writing a for loop. I vastly prefer the person who only knows the higher abstractions to the person who writes C in every language.
Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
So, you with your telepathy *knew* he meant "silly nonsense" instead of verbal spew leaking onto a keyboard?
[No] It's getting dumber.
Abstract concept after illogical process.
Teach people how these machines really work and kids can do it.
You're kind of on the right track.
It's not that programming is significantly harder, it's that good programmers need to have the ability to learn how to think logically and critically, which in the modern US "education" system, such skills are anathema. Not only are the skrools not teaching critical-thinking skills, those skills are actively dis-incentivized and even outright punished in some cases.
Today's US high-school seniors in many regions are being taught only about 50%-60% of the amount of stuff I learned in 6th and 7th grades, hardly any history or civics, and all the rest filled with SJW "socialization" bullshit and learning to feel and vocally accept guilt if you're a cis white male.
Programming is not harder, people have intentionally been dumbed-down by those in power over education such that they simply are not as capable in general as people once were. Ranchers don't want educated cattle that can oppose their agendas. It has a few downsides, but hey, that's what H1B and offshoring is for, right!?
Strat
Progressivism (aka US 'Liberalism'): Ideas so good they need a police/surveillance-state to enforce.
Need the quotes for every version of BASIC that I know of. I don't remember if C=64 print command accepts space-separated variables, but you didn't define them, and even if you did, Commodore basic requires a dollar sign to indicate string variables.
There was a POKE command that would disable RUNSTOP+RESTORE, meaning that you could call your sister a butt, and not be able to stop it, short of a power cycle.
--Jim (me)
And some 14 year old was hunting and gathering. Not everyone learns the same or at the same rate. We learn time and time again that 'one size fits all' doesn't ever work.
I wasn't "properly" introduced to Assembly until a college controls course where we made a PID on a 68k. The goal wasn't to do assembly, it was to make a PID. But that was the motivation (on top of a grade) for me to get into assembly.
I think you're confusing what's easy for you with what it would be for somebody starting out or a public school teacher who's setting up a programming course.
Take a Grade 8 teacher, which is a good age to start programming, who's training specialty is English, French or History, can send an email on a board supplied system, make a powerpoint or word file (or Google equivalent) as well as a FaceBook post on their phone and tell them they now have to setup a Raspberry Pi, support it with the students in the class, learn how to use the file system and now they can start programming.
This isn't a theoretical example, somebody following your line of thought convinced the Toronto District School Board to buy several thousand (I've heard 8,000 and 80,000) Raspberry Pis for grade 1-8 classrooms and, two years later, maybe a couple of dozen of them are now being used.
The only successful thing that was done was to convince teachers and the board that it's hard to teach programming using Raspberry Pis.
Mimetics Inc. Twitter
I agree with a part of your statement, but what's missing is giving students a chance to see what programming is and whether or not they like it/can do well at it.
What's needed are platforms that appeal to all students to at least give programming a try and work at a level that all teachers can support.
Mimetics Inc. Twitter
Basic of today is Python. It's decent for beginners.
Back in the 80's computers were a lot simpler and you could assert full control over every aspect of them - and discover the actual limits of them. All you had at that time were information provided in the manuals, either for the computer or for the chips in the computers and by others - and often shared in computer magazines.
But the problem with computers today is that even if you have the computer with even Linux installed on it you don't have full and total control over the computer. With Windows you have even less control over your computer and can only do what the great leaders in Redmond decides you should be doing. Also look at the Management Engine that is completely outside the control of the person owning the computer. And there's a huge amount of functionality that's provided only if you sign a NDA and pay a huge amount of money. The UEFI is also adding constraints to computers today that weren't an issue in the 80's.
Today the best bet is still regardless of stated above to do development work on Linux, at least there the ability to access the code of others for learning still exists and you can make your own mistakes. The environment that's most similar to what could be experienced in the age when teenagers and even younger were starting with computers is probably the Raspberry Pi and Arduino.
What we miss today is also all those small teams of programmers that made for the time really awesome graphic demos on Amiga and PC in ways that really looks good even today. Some of that was done by "cheating" by modifying the color palette instead of just drawing the full picture over and over again. But why waste CPU cycles on redrawing a whole picture for recurring graphics?
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
I can see Javascript being a good way to be introduced to basic programming for the reasons that you state.
The problem with Javascript is it's terrible execution model for catching run time errors (it basically doesn't which makes it harder for students to see and debug their mistakes), it's event driven execution which doesn't work in a way that follows any other model and going from simple programming to even using it in web pages requires a step function in understanding and learning that requires a lot of time.
Mimetics Inc. Twitter
You forgot the quote marks.
10 PRINT "MY SISTER IS A BUTT"
20 GOTO 10
RUN
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
When demand was low, the handful of people for whom programming was exciting were all that was needed. Now, demand is very high, and learning to program will be quite difficult for the masses need to fill this demand.
Well, that's not really true at all. I had a small library of programming books; some specific to my home computers, some general programming books (Introduction to Algorithms is still one of the great programming books of all time), not to mention generalist magazines like Byte as well as pretty much every home computer or at least line of computers having its own dedicated magazine. Yes, it wasn't as convenient as Google or Youtube, but help was there. There was also a local computer club in my town, which meant a couple of times a month, and if I was really in a bind I could usually call up one of the smarter guys, who were always happy to share their knowledge.
I mention elsewhere that my crappy TRS-80 also came with a very good manual with an excellent introduction to programming, and I know there were some very good books for programming on C64s and Apples and the like.
The world's burning. Moped Jesus spotted on I50. Details at 11.
Like many others, here. I once wrote commercially useful software "Lessor II "that booted off a 5.25 " floppy. The original floppy floppies! Don't want to draw flames by identifying which standalone, language it was written in. Many could boot from the A: drive and a ROM'd motherboard (ahhh... "Motherboards"...sigh) It solved a business problem and licensed for over $1,000. Recently I have tried to develop within the newer Frameworks environments, and found it frustrating to developing with NPM,always downloading some knucklehead's newest contribution to an already good enough to begin development codebase. Watching some communities flaming amongst themselves and chasing the newest cool makes coding like watching two drunks play eightball.. they scratch so often you begin to wonder if they will ever get all the balls to stay down in the pockets. And when the cloud goes down; only needing 115 V. A.C to do useful computing will seem as robust as cockroach biology!
"Knowing everything doesn't help..."
No, Computer Science programs in school are ruining it. Their idea of "programming" is "what the fastest way to solve (X)", when (X) is an already solved problem that we could all just go look up. Or, alternatively, they'll give you a specific name of an algorithm, and ask you to reproduce it. How many people memorize every single array sorting algorithms by their names, and can reproduce them purely off memory?
In the real world, these are already solved problems, AND those problems are very well documented, AND we have direct access to this documentation while on the actual job or doing hobby work at home.
But when programming is brought into grade school, this is where the focus is. Why? Because there is where the university focus is. Why? Because it is easy to test on. That's it. It isn't critical thinking, which is what programming REALLY is all about. It is just about instructor's laziness to come up with testing requirements for students. And then this very same mentality is used for job hiring processes too.
When I learned how to program? We were still in the DOS and Windows 3.1 era. DOS came bundled with QBasic. And what did QBasic come bundled with to help learn how to program? Not a bunch of CS algorithms, but instead it came with Snake and Gorilla, a pair of games you could easily load up and instantly play. Wanted to change the color of the banana? Just start reading the source code and start playing around with it. Wanted to mess with the field layout? Same thing. It was simple. It was fun. It was engaging. It was exciting....
But, it isn't something that could easily be tested. So educational resources shifted away from this style of learning.
On the Commodore, you just need to turn the computer on, and get a BASIC interpreter prompt.
And then what? A prompt is useless if you don't know what it is, and don't already know BASIC.
Web programming interfaces are drag-and-drop, with plenty of sample code and Youtube tutorials for almost anything you can imagine.
I volunteer at my neighborhood school. We teach Scratch to 4th graders, and most of them are able to write their own programs in the first week. The 6th graders use Python, which is easier to learn and use than BASIC, and only about 20-30% are writing original code the first week.
VIM is too good - start with an editor like Edlin or a pure Basic interpreter where you do the editing in the interpreter by utilizing the line numbers.
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
Programming is probably becoming harder because computers are far more complex than they were in the days of Commodore 64. In order to be a good programmer you have to understand how to write software that can take advantage of multi-processor and multi-core systems. The article is wrong that programmers should not have have strong system administration skills. True masters of BSD and Linux are both competent systems admins and developers. Good developers must understand how their computer operates. In fact, I would go as far as to argue that anyone that aspires to software development should first become a competent system admin. If you do not know how your computer operates, performance tuning, good security practices, etc., how can you write good code - you end up with stuff that is riddled with security holes and memory leaks.
Well, Apple has been putting Python on all Macs since about forever, and I would maintain that Python is as easy as, and in many respects much better than, most versions of BASIC. Of course, to run it you need a terminal, and most Mac users don't even know they have Terminal.app, much less what to do with it. You also need an editor, and while vi/vim is also installed, it's not the most beginner-friendly editor around.
Stephan
Before you can program anything useful, you need to learn to program. The C64 still has the advantage.
#DeleteFacebook
I think something like QBasic should have been bundled with Windows and installed by default not unlike other basic utilities like Calculator (calc.exe) and Notepad. Installing it after the fact is not ideal but acceptable too. There were a lot of quick and dirty bits of work that people could throw together in a few lines of BASIC back in the day. Kind of the point of a computer is to have it do tedious repetitive work with only a few instructions.
But don't forget, every PC, tablet, and phone has a JavaScript environment installed.
“Common sense is not so common.” — Voltaire
High School/Jr. High
10 PRINT "HELLO WORLD"
20 END
First year in College
program Hello(input, output)
begin
writeln('Hello World')
end.
And so on ...
https://www.gnu.org/fun/jokes/...
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
"On the Commodore, you just need to turn the computer on, and get a BASIC interpreter prompt."
If it involves any disk IO there was a hell of a lot of "waiting" involved.
Atari, on the other hand was substantially faster. Hell, the Atari tape drive wasn't much slower than the C-64 disk drive -- but it could also play an audio track through the TV speaker as it loaded.
Oh, how I miss the Atari vs. C-64 wars...
Yes, the fundamental tool of the programmer is not ones and zeros, but abstraction. Both binary math and functional abstractions can be used as the basis of computation, but if you are going to focus on one to the exclusion of the other, then learning functional abstractions will serve you better in the long run. How computers work is incidental to the mathematics of computation, and a university course should be teaching you far more about the Church-Turing thesis than bit-banging.
Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
Damn kids.
When I was a kid, if we wanted to program anything, we started by getting an account, then we found our way to the card punches.
Don't assume your single data point is all there ever was.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
The US Education system does not reward critical thinking skills, maybe it actually does a lot to discourage it. Here is an example. Until my 11th grade year, I was always taught history from a text book. My 11th grade history teacher actually said that he refuses to use history books because they water down and distill history to one point of view and that they discourage critical thinking. In fact, he opened our eyes to the fact that history is taught from a single perspective, the white, male one. This made me finally understand why sections on outright Native American abuse and ethnic genocide was relegated to small blurbs inside the book. The text books all taught American History from the manifest destiny, white male superiority perspective. History came alive for me that year because he really and truly taught it from as many different angles as possible. Instead of relegating the Cherokee Trail of Tears to a small blurb that we had to read, we dove into it head first. We were assigned readings by research historians on the topics instead of reading some distillation calculated to indoctrinate a the white male superiority particular way of thinking. In most classic textbooks, Andrew Jackson was a storied hero. More accurate accounts portray him as being quite a bit more human: i.e. theories he suffered from alcoholism and that he was a scoundrel being not of any great upstanding character. Furthermore, the readings he assigned did not paint the Cherokee as perfect and they have done some things that are abhorrent too. The best way to encourage learning is to foster critical thinking. Critical thinking makes learning exciting.
Result:
C and at least 2 assemblers should always be among the first 5 languages. Otherwise it's too late, might as well only learn Java.
Add a 'Lisp like' to the first 5 and you don't have much room for pure learning languages. Select carefully.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
I need TP too.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
What? Autocomplete and reflection from libraries/webmethods is a huge learning aid at all stages.
As always: Languages are easy, libraries are hard. You should pick up languages in a week, after the first dozen. Libraries can be almost as fast, if you've seen it all before and don't have to memorize the new deckchair arrangements.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
You could have made it more essy by providing a link people could click on :) :)
Muhuhuha!
But that would be to easy
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
And they are all harder to find than writing your first '10 print "hello"' one you calculator/C64
Going from not having a clue about programming to writing your first simple line in any language is by far the hardest and most important step when it comes to programming.
The rest is breeze compared to that.
I think the rest is harder--not for any of us since we know how to do it, but for someone learning to program, debugging is incredibly frustrating and a huge barrier to entry.
Even that's much easier, primarily because (1) stackoverflow and (2) there are MUCH better IDEs than there used to be.
Still, kids may get frustrated more easily. Being a programmer takes a certain amount of being stubborn in the face of unparseable errors.
Real lawyers write in C++
But how do you program on a phone or tablet?
Try AIDE on an Android tablet.
Last I heard Apple forbids programming on their phones.
Since you heard last, Apple has loosened the policy, allowing things like Swift Playgrounds for iPad.
Actually I think that people who use the word 'coding' have no clue about computers and software anyway ...
You overvalue the utility of low-level abstractions, and your own knowledge. "Knowing about computers" as you have defined it, is not as important or as useful as higher level abstractions. If things were otherwise, we would not have bothered to invent higher level languages. Further, the computers you describe are merely computing toys, extremely limited in expression and ability. If you reduce what can be done to the level of PEEK and POKE, then you can indeed say that your system is simpler, in the same way that a tricycle is simpler than a car, but PEEK and POKE are not going to help you build web pages, or anything else of interest.
Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
The fundamental problem is that the barrier between using a computer and programming a computer is getting higher.
No, it's not. It's never been easier. Visual Studio is free, for Windows development. The Android SDK, free. GCC and Linux development, all free.
In the era you're referring to, you had to pay Microsoft quite a hefty sum to get your hands on their C compiler. Linux didn't exist. Development for computers was never as difficult as the early days. And I'm afraid referring to the BASIC interpreter on the C64 doesn't count.
1. Computer retailers stopped installing development environments by default.
And for good reason. Those development tools and environments are costly in terms of storage. Most people don't use them. Why waste all that space on something 99% of end-users won't ever touch. This is a good thing.
2. User interfaces shifted from command-line interfaces (CLIs) to graphical user interfaces (GUIs). GUIs are generally easier to use, but they hide information from users about what's really happening. When users really don't need to know, hiding information can be a good thing. The problem is that GUIs hide a lot of information programmers need to know. So when a user decides to become a programmer, they are suddenly confronted with all the information that's been hidden from them. If someone just wants to learn to program, they shouldn't have to learn operating system concepts first.
Really? Someone shouldn't learn about the environment they're intending to develop code for? This is so stupid I don't even have words. It's kind a given, if you wanna do development, you need to be a power-user first, and understand the underlying systems if you ever hope to manipulate them into doing something. This is soooooo wrong. Couldn't be any further from the mark.
3. Cloud computing has taken information hiding to a whole new level. People using web applications often have only a vague idea of where their data is stored and what applications they can use to access it. Many users, especially on mobile devices, don't distinguish between operating systems, applications, web browsers, and web applications. When they upload and download data, they are often confused about where is it coming from and where it is going. When they install something, they are often confused about what is being installed where. For someone who grew up with a Commodore 64, learning to program was hard enough. For someone growing up with a cloud-connected mobile device, it is much harder.
If a person had a basic understanding of the operating systems they're intending to develop for, it being remotely located is a non-issue. This is just dumb for dumb sake. This doesn't even belong here. It's irrelevant -where- your application is running, be on your machine, someone elses, or a remote (Cloud) server. It's all computers. You should be learning the basics so these new concepts are easier to grasp and understand.
Bottom line: Whoever wrote this is brain-dead. They don't know anything about computers or the software development cycle. I'd be surprised if they ever did anything other than load Archon on that C64 he's getting all nostalgic about.
1 - It's just a few clicks to install a modern software development environment like Visual Studio, Xcode, NetBeans, whatever. If you can't get past that, you're probably going to have problems. Besides, that, there's already a development environment installed on any computer - just fire up a web browser, and you've got a basic interpreted Javascript programming environment.
2 - I learned C++ a few decades ago using Turbo C++. Never knew what was happening on the command-line, and didn't really care. Saved me a lot of fussing about that sort of thing, allowing me to focus on learning the language. Working from a command-line prompt doesn't magically make the job easier. It's just a different way of working.
3 - Most programming in general, even today, has jack-all to do with cloud computing. But the web has made getting good information about a hundred times easier than it used to be - not to mention for free. Overall, I'd still call it a win.
I think the author missed a big one. It's not that graphical interfaces make programming harder - in fact, I think the opposite is true. But programming for GUIs is harder than writing a simple command-line app or utility. I also think much more is expected of modern applications, and they're much more complicated in general, simply because they DO so much more than they used to.
So, yes, it probably takes longer to get up to professional speed, but it doesn't necessarily mean it's harder to learn how to program in general - there's just much more to learn about the environments you're programming for. Several decades ago, computers were vastly simpler than they are today, and so yes, young programmers now have a lot more to learn.
Irony: Agile development has too much intertia to be abandoned now.
You can very well have a Software Development Environment without having an Integrated Development Environment.
GCC + a crappy text editor is a SDE, but it most definitely is not an IDE.
I guess an interactive python interpreter and nothing more could also be considered an SDE but not an IDE
That was my first thought. If an inspiring programmer can't install a program using a simple GUI installer, then It's going to be a very rough road to writing "Hello_World."
If your dad was an engineer, good for you. Also good for you if you were some kind of Savant or if you had a well stocked library or the dude at the computer store wasn't just some pimply faced teen but knew stuff.
For the rest of us we kinda hit a wall on programming after the limited information we had was exhausted. It was '93 before I got my hands on copies of Computer! Gazette and learned that machine language was a thing. My teachers were all pretty useless too (and I went to a tech themed "magnet" school).
Nowadays I can open a browser, start typing in stuff like "How to make games", find Stackoverflow and away I go. Learning to program is way, way easier.
Now, getting a _job_ is way, way harder. H1-Bs + outsourcing means programming jobs are impossible to get without a 4 year degree (at least in the States).
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
And then what? A prompt is useless if you don't know what it is, and don't already know BASIC.
Then you open the programming book that came with the computer. When I got my first TRS-80 Color Computer 2 in 1985, it came with a two hundred (approximately) page book describing how to use the computer and program it in BASIC.
Like the C=64, the computer booted, instantly (seriously, a couple hundred milliseconds), into a BASIC-ready command prompt. Then the excellent manual walked through programming it. Nothing since has reached that level of easy. Once IBMicrosoft took over, computers became increasingly newbie-unfriendly.
So yes, the article is correct to a large degree. That being said, though, kids nowadays are born into a technological saturation to the point where most of the things they need to do to begin learning to program come fairly easily to them. It may not be as easy as the Color Computer/C=64/Atari days were, but it's within their reach with a little assistance.
But to drive the point home: back in the 80's, kids could do it all with NO ASSISTANCE WHATSOEVER if they were interested. The whole home computer paradigm revolved around that notion.
Just stop. You can't be serious. Memory allocators? Memory interrupts? Memory pages? Seg faults?
The C64 had a flat 64KB RAM directly accessible by the CPU. Really simple, none of the things you're talking about. Also, what you're talking about is for ADVANCED USERS and some of those things for x86 processors only. We're talking about people who are just learning how to program, basic concepts like variables, arrays, that kind of stuff. You can't go from zero to 100% instantly. The basics - stuff you now take for granted - have to be learned.
We're talking about kids learning to ride a bike and you're talking about the complexities of a formula 1 engine. Just stop.
#DeleteFacebook
A good deal of the problem described in the original post -- lack of any sort of IDE -- appears to be mostly Windows-specific. Macs come with Python, Perl, and vim installed. Most Linux distributions come with all of those. Heck, most Raspian distributions for the Raspberry Pi come with all of those (one of the first things I did when I fired up my first Pi was to write and run "Hello, world!" in all of C, Perl, and Python, without installing anything extra). The Python standard library includes a GUI. Tcl/Tk may be a terrible GUI, but you can learn to open windows, add buttons, listen for events, etc.
Fuss at Bill Gates, or whoever's in charge these days.
That is EXACTLY the kind of thing I used to do in the beginning! It's like you were there. It's amazing how messing around on the computer back in the day has turned into a full time profession now, and I'm fairly certain that it would never have happened if I had to go out of my way to do it. It was all right there, and dead simple.
If only you could see what I've seen with your eyes
Then you open the programming book that came with the computer.
How many 10 year olds could understand that manual?
How many 10 year olds can understand an animated tutorial for Scratch?
back in the 80's, kids could do it all with NO ASSISTANCE WHATSOEVER if they were interested.
For a very small percentage of intelligent self-motivated kids, I am sure that was true. But it is EVEN EASIER TODAY. Barriers have gone down.
All I ever did on my TRS-80 was type in programs from a book that did silly animations. I learned nothing from it
Get a lot of job offers for writing assembly?
Programming is a trade. Learn the languages that are in demand. If you're a woodworker you want to know how to use the tools of a modern woodshop, not how to do everything with antique tools
I started out on the C64 back in 85. The fact that BASIC was basically staring you into the face first thing when you turned it on, compared with reasonably interesting examples in the manual; probably played a big part in getting me hooked on code. Today there is so much more to choose from, and the information is much more accessible. I remember saving money to buy very expensive programming books from one of the students in school who ran group orders from a catalog, and copying Turbo C++ from the school software library. Downloading Python and hitting a tutorial sure is easier; and Stack Overflow, for all its faults, saves a lot of time. Everything is more complex today, that's the biggest issue from my perspective; it's more difficult to get traction.
And PS is a relatively intuitive shell (for newcomers).
I find it odd that the author mentioned the problem of GUIs hiding information, when generally they can provide much more information density than command line. Even if you manage to get charts or graphs from a CLI interface, you are still limited in resolution and color space... delimiting elements like lines can be much finer and even take advantage of subpixel rendering in a GUI.
The problem is when a GUI doesn't provide any way to make the info accessible--not whether it is easy to find. But it's not like the CLI specifically solves this issue, many CLI applications do not make all information within the scope of the application accessible.
All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
So, with the Feds budgeting $200 million a year for K-12 CS at the behest of U.S. tech leaders, can't the tech giants at least put a BASIC on every phone/tablet/laptop for kids?
$200 million is a token amount to pretend that action is being taken. It is less than $4 a year for each student. There are about 56 million K-12 students in the U.S. Multiply that by at least 50 to get near $200 per year and we might start seeing "programming" take baby steps towards becoming a basic skill as it should.
...and by "it", I mean the conclusion about "putting a BASIC on every device" - there are some good points here:
Not knowing what a browser is happens to be one of the recurrent, quasi-omnipresent aspects I am faced with on the many instances I provide tech support. Even for my somewhat most tech-literate solicitors. I no longer even hear the "oh you mean Internet Explorer/Chrome" so much - it really is not knowing there is a program where you put www urls in and get a page. People are to used to link clicking and glorified bookmarks on a desktop icon. Those are well and good for the elder, but when I see little kids on my environment do this, it both makes me feel old and makes me feel we are in for a dumb generation.
Another one that really stuck was about the "where is this stored/installed?" Android/iOS, Chrome (extensions), MacOS, Windows and even Linux are becoming very seriously addicted to this "app ubiquity" and transparency through centralized, curated, SANCTIONED store systems, so much so that newcomers fail to figure out unavailability of a program is, most of the times, internet connection. Or worse, they can no longer remove resource-heavy apps themselves because they couldn't figure out they're installed and/or running in the first place. It's stupid, and it's a lot more serious than missing out on programming - it's missing out on self-awareness and self-support.
But well, there will be more jobs for us enthusiasts and pros.
lol. You mean the bar has gone done. Like in a pole vault. I can pole vault over a 3 foot barrier. Hell! I don't even need to use a pole vault.
Kids overcame what you describe as "barrier", so it wasn't a barrier. It just set people apart, like they should be. It's the same as a medical school entrance criteria based on MCAT score. If you can't memorize a bunch of mumbo, jumbo to get a good grade on an MCAT test, then you're not worthy of attending medical school.
Is that a roll of dimes in your pocket or are you happy to see me?
Are you a programmer today? Think before you answer that question. You may be working with computers, but I doubt you'd be considered a programmer.
Is that a roll of dimes in your pocket or are you happy to see me?
Consider access, how many people actually had access to the TI versus the number of people with access to a PC today.
It isn't really about the tools. The truth is the tools are cheaper and more available than ever. Eclipse CDE and g++ for example. Computers are cheap and available as well. Want to learn? You have all the information you want online.
What it is really about is complexity and expectations.
Back in the C64/Atari/AppleII/TRS-80/Coco days you could understand the systems. It was also possible for a single person to write a game or utility. Today people expect more and the systems are more complex. A Pi is more powerful than the workstations and minicmputers I lusted over as a kid.
Would it be great if Microsoft included Visual Studio? Sure but that is not the limiting factor? No. Now all the cool little SBCs out today are really cool options and very much like the old C64a
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
yes, while funny it hits the spot. It had never been easier to program than with these computers. I myself had a Tandy imitation). When the machine was turned on, all you could do is program in basic. backing up a program was tougher (audio tape!). Today, we not only have the the task of finding the programming language but also which version and which tools. Even for well groomed programming languages, textbooks are rather quickly obsolete, often not so much because of language change but because libraries change.
I love reading other peoples work, and to see how they design a solution to a problem. Some brilliant coders out there.
[($)]
Found the problem. Programming on your mobile device? Please. That's like trying to have a dinner party inside your kitchen's trashcan.
That Commodore was a desktop device. Today's equivalent systems are also desktops: Linux, mac, both come with pre-installed Python, among other things. Hugely more powerful than the author's Commodore SDE. You want it on Windows, it's one free-and-easy install away (or maybe it's pre-installed now, haven't used newer Windows OSs... you'd think it'd be there, because duh, but anyway it's not like it's hard for it to be there.)
Ask one very basic question "how can I write a little program" get one easy answer "go here, download X."
Seems to me that if you can't navigate those waters, you're going to drown trying to take a leak in your toilet before "learning to program" becomes a problem.
I've fallen off your lawn, and I can't get up.
The entire summary is about how using a computer has gotten much easier, widening the gap between users and programmers.
Yes, they should, if only to know where the hell they're writing their output files.
Yes, they should, because computers multitask now and a program simply cannot be allowed to stomp all over the operating environment as it could in the DOS days.
No, it's not. It's that the population of computer users has widened enormously while the population of people that want to program has not widened by the same ratio. It's exactly as hard to learn to program now as it was then -- you can just program vintage hardware or emulations thereof if that's the point. Or you can write in QB64, which is no harder than Qbasic was and in many cases is far easier.
How is the Riemann zeta function like Trump rallies? Both have an endless number of trivial zeros.
Your Commodore 64 example doesn't show that it was easier back then, it only illustrates that there weren't any "users" back then. If you wanted to use a computer, you had to become a programmer.
In those days,it took a lot more effort to create anything useful. There were no libraries to do things like Zip/Unzip files, perform encryption, display windows, use fonts, establish an Internet connection, send an email. You had to write all this stuff yourself if you wanted it.
These days, the typical user doesn't know how to program. In those days, such people simply didn't use computers.
Using computers, and programming, have both gotten much easier.
HP calculators got a rap as "hard to use" because you needed to learn to enter operands first and then the sequence of operators rather than using infix math. But once you wrapped your mind around that - and it's not difficult - the sequences of operators you had to enter just to use your calculator were really already programming. All you had to do was enclose the operators you'd enter in double angle brackets and store that somewhere, and BAM, you've created a program.
Spreadsheets, HyperCard, and good macro systems all have some of this same element - merging use and programming, making normal use more powerful and programming more accessible.
We should be looking harder at how to bring that kind of success to broader problem areas and modern platforms.
Mine was on the sharp touchscreen EL-9650.
How strange, I did Z80 assembly on the TRS-80 at age 12, one program I wrote copied any program tape, even the "copy protected" ones with initial loader section to then load different baud rate main section. Motivation and interest make the difference in whether someone with a computer learns something
I would say that the "we had to learn to program because we only had BASIC" trope has been largely disproven. There were at least 10x as much computers sold that booted into "just BASIC" to the number of computer professionals that era spawned, not to speak about the number of people that were exposed to computers in that time through friends, schools, libraries etc.
Everyone that could afford a computer back then knew just enough to load the game, it was treated like a password in that way, most people now that owned that computer would have a vague recollection of what it is they had to do.
I remember learning programming in classes going from first grade (LOGO) through the end of my education (Turbo Pascal and C) - yet there is no glut of programmers my age.
Custom electronics and digital signage for your business: www.evcircuits.com
Sure, the C64 was the perfect development system for teaching the self-driven programmer.
Now stand back and remember how many SELF-DRIVEN PROGRAMMERS you knew? There were maybe a dozen of them in my entire high school class - of 430 students!
This despite being born right before the era of the C64/VIC-20, and being required to buy TI-82s in high school. Those are the two easiest platforms to program on that were invented at the time (one the perfect desktop development environment, and the other the perfect portable for killing time programming in class).
So, as long as you don't mind settling for the top 3%, we can easily supply the world based on tough self-driven programmers.
But our needs have grown way beyond that, so now we need something EASIER TO USE than the old standby.
Man is the animal that laughs.
And occasionally whores for Karma.
Conspiracy theory much?
I can't say about the US, but I actually work in the education sector in the UK. The biggest problem I see in education here is 'teaching to the test.' Grades have become the goal above all others, so much lesson time is spent on endless practice exams. The curriculum is followed to the letter. Curiosity is discouraged, because it leads to students 'wasting time' learning things that are not on the test - or worse, learning things in a way that does not maximise their exam score. Logical and critical thinking is not something that can be easily graded in a standardised exam paper. Science focuses on memorisation of tables of facts, maths focuses on solving the standard exam form questions over and over. Even english lit is about learning the appropriate notes on each study text, the key points that must be mentioned to get marks.
There's no grand scheme in play to make the students stupid. Just a lot of teachers and administrators who realise that if their students don't get better grades than the school down the road, it's their job on the line.
I remember, when I was very young, my father's car. It was an old car even then. This car was so old it had a choke. Operating it required monitoring of oil temperature. Just starting the thing up could only by done by someone who knew how the engine worked, the effect of adjusting air-fuel ratio and the changes in performance of the engine with operating speed and temperature. It frequently had minor mechanical issues which he had to diagnose and repair - congealed gunk in the oil sump, a drained battery after leaving the headlights on, a slipped fanbelt, ignition timings thrown off by general wear, misfirings due to spark plug age.
This was the microcomputer of cars: It did what it needed to do, but it needed a skilled operator able to invest a lot of time in learning to use their tools. People didn't want to go through all that, but they needed cars, so they learned.
Now look at a modern car. Reliability has improved to the point that hardly anything ever goes wrong. Even if the user does something silly like leave the headlights on, the onboard computer will shut them off again before the battery is damaged. The ECU constantly monitors engine state and automatically adjusts it for optimal operation. The driver is happy: They can drive to where they want without needing to spend hours studying a manual, learning the theory of operation, and becoming familiar with all the quirks of their particular model.
The downside is that when anything does go wrong, the driver is utterly helpless. They may be vaguely aware that there is a thing called a 'piston' in that engine somewhere, but that's the depth of their knowledge. They have no hope of fixing it. The car is designed to reflect this too, as the space shuttle console of dials is now reduced to a single 'check engine' light. When it breaks down, which isn't often, they need to go to a professional.
That's where computers are now. They have advanced in user-friendliness to the point that the user need not know how they work in depth, and the user does not want to know. It's a good model, but it discourages curiosity too. The inside is a black box, sealed away behind that 'check engine' light - or the software equivilent, an easy-to-use graphical interface that shows the user only what they need to see to accomplish their task.
"Just stop. You can't be serious. In the era of the C64, you had to write your own memory allocators to do anything interesting."
That's one of the reasons we have such shit security today. People don't understand these fucking concepts and think they can just spam shit code all over the goddamned RAM stack and things like garbage collection and 'safe coding languages' will magically fix everything.
You can't be fucking serious.
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
"How many 10 year olds could understand that manual?"
I had no problem understanding the TI-BASIC programming manual when I was 6.
That was in 1988.
Today's droolers? I don't know.
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
But they've also gone up. I'm British, but there is a big difference between children today and those in the mid 80s when I started teaching. There's an instant gratification requirement combined with a desire to persist. So for example, when I started, you could produce a list of instructions on (say) how to program, a bit like some of the BASIC manuals and virtually all the kids could do it. Some might get it slower than others, some might zoom ahead, but they all had the concept of 'reading and following instructions'. Now, it's a minority, you get choruses of things like "what do I do ?" and other demands, which are really about limiting effort i suspect. They've probably learnt from parents and early schooling that if they whine they will be helped rather than being encouraged to persist at a task. Most non teachers of a certain age would be amazed how inefficient education is in terms of time spent learning things.
Maybe, but a lot of people typed in programs and then wondered how they could make their own animations ...
Coding for minimal systems avoids waste. I started off with 256 bytes of RAM. Lucky me. What it teaches you is that resources ; CPU time, memory, storage are finite. You cannot just scrawl it in Java or C#, chuck things around like there's no tomorrow and sulk about the garbage collector or insufficiently powerful computers when it runs like a dog. Many times as a professional I had to sort out messes written by theorists, who were using ridiculous amounts of memory or slow algorithms. BASIC has many defects, but it can be a *lot* better. You American folks mostly had Ataris and Commodores. We in the UK were moving towards more structured BASICs like the BBC Micros, which still wasn't fabulous but had long variable names, procedures with parameters, locals, repeat loops and so on. No real data structures, but far closer to Pascal than the CBM 64s BASIC was.
Same here in the UK. There is also zero persistence. Children are pretty much encouraged to screech for help at the first hint of a problem. Following instructions is terrible. Nuclear Power is my favourite example. We learnt about things like alpha and beta and gamma radiation, energy released by nuclear fission of certain elements and so on. We knew - sort of - how a Nuclear Power station worked. Nowadays they can tell you all about the environmental effects and so on but have no clue what is actually going on. We knew radiation was dangerous ; our Physics teacher keeping his sources in lead lined boxes on the end of a long pole kinda gave it away.
We used to type in programs from magazines and then wonder why they didn't work.
Most of the time we'd spot the bug. Probably learned more than if it'd just worked.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
It's so much easier to learn to program than it used to be that I can't even. Just all the help you can find, both documentation and actual humans who will answer your questions, is totally transformative.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
This is off-topic, because you don't learn much from using a library or framework, except for perhaps that most of them are utterly useless.
Essentially if you follow that argument you'll get something like Web developers who often have no idea what they are doing, but do a lot of it. I've once asked the developer of a web app with a particularly anoying bug (you cannot copy text field, every time you select something, the selection will be empty again) why that bug even exists, after all web browsers allow that by default. He openly answered that he had no idea, he was just using a framework.
Yes, you can now easily click something together simpler than in the 1980s, but what have you learned then?
It all depends on the type of programmer you are looking to breed.
To me, it looks like we are heading in the direction of extreme compartmentalized programming. You only need to know how your code relates to the other parts of the project. You learn more and more about what your specific role as a developer is. Then you are used to duplicate that role from project to project. Understanding the detailed ins and outs of the entire system, would then be kind of a distraction. That was one of the goals behind OOP. We are not totally there right now. But unless you are blind, you can see that this is where we will be going. For the sake of "security" systems programming will become a very esoteric art, and not what we commonly refer to when we say programmer. If you look at the closed nature of most devices used today, you see that the average user is very seperated from the OS. For all intents and purposes most UIs are not much different than a webbrowser. Soon that difference will not exist. The system will present the use with a UI that connects them to a cloud stored userspace. You will have that same userspace from device to device, and will not have access to that userspace without a network connection (network based workstations basically). Your device will have a high powered GUI and the cpu crunches local JIT code like javascript or python does now. But all of that code comes from a cloud like service. So development in large, will manly take place in very high level programming environments. Essentially programmers will be basically writing scripts. There will still be people writting compiled code. But more and more we are going to see scripting as the default meaning behind porgrammer.
So to understand how to write scripts, you just need a very limited knowledge on the systax used to write in the scripting language you are using, and the commands relevant to the task you are performing. So you could walk in knowing almost nothing about programming, and write a simple GUI or task, and what you need to know most is how to access the information that provides you with the commands you need. In a more specific and complex senario, you'll need to know how to work with a database or utilized a graphics engine.
I totally agree with the article. But that is because I mean something less modern when I say programmer. I'd like to see systems where you still have the freedom to poke and peek memory. But I'd also like "user" to mean someone that can compile their system to their specific CPU in an architecture family, and administer what running services they do and do not need running in the background of their system.
Assembly is how programmable computing units work. Once you learn how computing works, learning a new language is easy. A language is just a problem domain specific short-hand for assembly. It only took me a few days to catch up in SQL to specialists who had been doing it for a decade or more. I may not have known all of the details of replication and other specific features, but I was better at writing high performance queries, debugging query performance issues, and architecting schemas. I also have the benefit of not needing to use server traces or query plans to figure out why a query is running slowly. I just pretend that I'm the query planner and based on the information supplied, what decision would I make about combining the sets.
SQL is just short-hand for set manipulation. I just think how I would solve the issue if I was writing a custom program in ASM, then I translate that into SQL. Easy-peasy.
I do this for all languages. Once I understand the problem the language is trying to solve, understanding how the language works is trivial. There is rarely more than one good way to solve a problem. If I can solve that issue myself, then my solution is probably the same as whomever implemented the language. I am coming from the angle of performance. Understanding some languages is not useful because maybe they're just scripting languages where I don't care about performance, just a main goal of quickly clobbering together code to get something done.
Mine all had the same mix of Basic programming books. Also, even if you did find a book you needed software. It wasn't until GCC and the like that compilers and assemblers were free. A good assembler would be $200-$300 bucks (adjusted for inflation). The books needed to make good use of it could be another $200 bucks easy. And that assumes you never get stuck _anywhere_ because if you did odds are there wasn't anyone there to help you out.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
I was that person. I think you're all forgetting about the fact that the manual didn't contain anything about programming in basic. There was no internet. I remember when I bought my first IBM XT and sat there looking at the C prompt and not knowing what to do. I couldn't do anything until I went to the store and bought a book, of which there weren't many. Learning a new trade is never "easy" so I really don't even know what this rant is about. I disagree with the entire thing. It's never been easier for someone with the drive to write code that actually does something and looks good at the same time.
Macs come with a Python environment. Not PyCharm, but the command line environment. Fire up the Terminal app and type "python" All Linux distributions come with the Python environment pre-installed. Fire up the terminal app and type "python" On Windows, fire up your browser, type "python download" and you can have a Python environment installed in two minutes. Not as easy as having the Apple ][ boot into FP Basic or MS-Dos boot into a command line environment where you only needed to type "basica" or "gwbasic", but it's close enough.
Today's droolers would be fine. They are as smart or smarter than we were. The advantage we had back then was the computer wouldn't do anything unless you programmed it.
Play Command HQ online
the visa work is usually done by the company you work for.
Who cares about the requirements or amount of paper work?
The company I work for, as such a company might prefer hiring a citizen or permanent resident instead of a foreigner precisely because of the paperwork.
Regardless what IDE I use I can debug just quite fine.
When a call into a proprietary library doesn't do what you expect it to do during debugging using your IDE, what steps do you take to determine why the call isn't doing what you expect it to do?
you can have those IDEs on a desktop
Is an IDE worth the price of a desktop to someone who does not already own a desktop because he regularly uses a smartphone and/or tablet to satisfy all of his other computing needs? If so, how can I convince people that this is the case?
and for Android there are no viable IDEs either that run on android devices.
In what way is AIDE not "viable"?
Simple programs like that can easily be written as a batch file. And those run any real computer (but not on tables and smartphones).
Oh, easy.
Let's do Discord versus Camfrog. Minus encryption and chat history, Camfrog actually offers more in a smaller package, and if they did add in encryption and chat history, it would STILL be smaller versus Discord (47 vs 55 megs currently.) Camfrog wrote a lot of their own libraries and code instead of using slightly-customized bolt-on crap like Discord uses. Good enough Paltalk bought them out then
Wake me up when Discord can do thousands of videos at once as an actual chat room, like Camfrog, with actual TV+ quality and framerate.
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
There is no US educational system. There are many systems with some commonalities. The instances I am familiar with rewarded intelligent thinking. I don't know where you live, so I can't comment on the schools there.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
The ability to type fast is way overrated. The ability to think and have typing come out of the fingers without further mental ado is extremely useful.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
If it involves any disk IO there was a hell of a lot of "waiting" involved.
Kids these days...you lack patience...
I learned basic in high school back around '74. A classroom full of kids used three teletypes that were connected to acoustic modems. We'd dial up the local community college (where the actual computer was), and put the phone onto the modem. We'd wait for the prompt, and if we had a program ready, we'd feed the paper tape into the reader on the teletype. The printer on the teletypes was capable of 10 characters per second, and by my senior year they were replaced with new models three times faster. It was a challenge to do much more than things like blackjack, tic-tac-toe, and the occasional complex program like lunar lander. Since people weren't so concerned with instant gratification back then, watching the teletype spew out your answers ever so slowly wasn't a big deal...not that we had a choice. In our school of ~2000 kids (grades 10-12), you could pick out the geeks...they were carrying paper tape wrapped into a roll or figure eight.
Just another day in Paradise
You had card punches?...Rookie ;-)
Just another day in Paradise
This, only in the early 70s on a teletype! Thanks for the laugh!
Just another day in Paradise
By 'card punches' I ment swiss army knives. The we used to cut holes in cards we made from recycled newspapers, while living in the middle of the road and eating ice cold poison from cracked plates.
We took turns being the card reader, CPU and printer.
If you tell that to kids today, they won't believe you.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
Yup...I was briefly trained on repairing them, but never actually did work on em. Helped build an Altair 8800, worked on 64k Data General Nova's, teletypes, IBM Selectrics (connected to computers), made my own "flip-flop" out of components in tech school, and had more experience with vacuum tubes than I care to get into. I was lucky enough to have a high school that taught digital electronics & logic back in 74-75, and then mostly slept through the training I got from the AF on computer repair...nothing new.
Just another day in Paradise
I know a dude, one of his prized possessions is an almost cherry card punch.
Apparently a bay area city thought they'd be screwed if there's broke, so bought a brand new one in the mid 80s (super genius). 10 years later, he bought it at surplus, don't know why (neither does he). Punched less than 100 cards.
I wish I had one of the banks of solenoids style electric typewriter/printer conversions. I'd have bought it too, but I didn't own an electric typewriter.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
Nice. I don't have anything quite so good, but a couple of my prized possessions are HP and TI's first calculators, a Mac 512k (unfortunately sold my original 128k)...along with my Toshiba Beta VCR, Lafayette Quadraphonic receiver, and a five cartridge 8 track player.
Just another day in Paradise
Only thing I've got (worth mentioning) is the prerelease, developer version, of the original Amiga. Most of the docs too.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'