4 ms·
Maybe programming isn't, but perhaps finishing something is? Because while the hands-on-the-keyboard, moment-to-moment writing of code is almost certainly easie
by eropple 9y ago
Maybe programming isn't, but perhaps finishing something is? Because while the hands-on-the-keyboard, moment-to-moment writing of code is almost certainly easier than ever, actually making a thing out of that is nowhere near as simple as it used to be. Building a nontrivial thing in QBasic was really, really easy. Building a nontrivial web app--whether it's strict server-side PHP or strict client-side JavaScript or whatever--is really, really hard, requiring the consideration of a lot more stuff, and the failure cases are much bigger and much nastier.
- NortySpock 9y agoI do feel that one has to do some careful thinking and digging to find an appropriately sized project, library, and toolset before you can start working on a decent sized project you have a chance of finishing. It took me 5 years of screwing around with Java, Python, and C++ "I want to help humanity" projects before I found that I really should just write small game clones in P5.js for fun. I'm a new stepdad, and if I want to be motivated to work on side projects in my tiny amount of free time, it's going to have to be a game. Project: 80's game clone. Library: P5.js. Toolset: Notepad++, Python SimpleHTTPServer.
- JeremyNT 9y agoYou can make a rails app and run it in heroku within an hour into your first tutorial. You can get an interactive JavaScript environment in any web browser. I cut my teeth on c++ on lab computers. I was crap at it. The compilation and debug cycle was slow and frustrating. I couldn't Google for answers on anything. It's easier than ever to start programming, without any question, and so many batteries are included everything else is easier too. People in some ways do expect more from their software now, and to help deliver all that there are tons of open source libraries available that can feel overwhelming at times, but that's moving the goalposts. Somebody learning to code doesn't need all that just to get something basic and interesting working. If you're tasked with making a functionally equivalent piece of software now versus 20 years ago, it's better and easier in every single way.
- eropple 9y ago> You can make a rails app and run it in heroku within an hour into your first tutorial. How long does it take to actually understand what all of that does? I can claim to understand it, sure--but I'm also thirty years old and I've been getting paid for this stuff for the last fifteen. (Not, like, random POKEs into memory to make syscalls, for sure, but I understood why stuff like SCREEN 13 worked, along with the general constructs of the language.) On the other hand, I pretty much fully understood how QBasic worked and its interactions with DOS at age 5. I was able to parlay that into C and C++ and into understanding how the thin virtual machine there, simultaneously into PHP and Java and how those actually worked by relating them back to lower-level concepts I'd picked up... Cargo-cult monkeying about doesn't adequately, to me, replace understanding and insight--and "just make a Rails app and push it to Heroku" is fundamentally cargo-culting. If you don't understand how your tools work, you don't understand what you're doing. (I've written everything from CPU emulators to Rack frameworks to prove that I do understand what I'm doing.) I started doing that literally from the jump as a kid, and the systems were built so that it was something you could easily do.
- JeremyNT 9y agoIt's "and" not "or" here. The new easy highly abstracted stuff doesn't prevent people from digging deeper, it's just one more potential entry point. There is nothing stopping anybody from digging into lower level languages now, in fact that is also easier than ever with open source IDEs, free compilers, fast processors, ubiquitous documentation, and helpful communities too. The mere existence of a totally open source operating system like Linux and its ability to function on commodity PCs and embedded devices is huge. You can argue (and I believe this is the point of the article) that people don't bother going deeper because for most computing purposes interacting with very high level abstractions of really complex systems is sufficient (and indeed becoming the norm), which leaves users at a loss when asked to grok lower levels of abstractions. It's also true that there is now more complexity and there are simply more possible things to learn, making it less likely that any individual has the time to develop deep knowledge of all of the systems they use. Those assertions may well be true, but I'd argue they are not the same thing as it being harder to learn anything in particular. It's daunting, maybe, because of the sheer possibility space, but all of the knowledge is out there and the tools are better than ever.
- Will_Parker 9y agoBuilding a server-side PHP app is really not that hard. That is arguably the biggest historical problem with PHP. :)
- eropple 9y agoI don't agree. It took me multiple years to really wrap my head around building web pages (to say nothing of apps) in PHP. There's just too much h*ckin' stuff in the web that you have to be aware of and being able to build stores of relevant information is definitely in some ways easier--Stack Overflow exists--but in others, thanks to the volume of crap you just have to chew through, it is much more difficult.
- Will_Parker 9y agoOh, if you're talking about anything on the front end more rich than simple classic forms and full page reloads, I agree. It just wasn't clear what you meant by "non-trivial".