6 ms·
Code to joy: learning to code in middle age
- Barrin92 8y agoVery well written article. I think everyone can definitely emphasize with the confusion that comes with having to dig through APIs and tooling for the first time. When a friend asked me to teach him some python the most stressful part for him was setting up the editor, understanding the command line and how an API worked as well. Like the author he grasped fundamental python pretty quickly. I think there's still no really good solution to make the whole process appealing. You can have people write puzzle solutions which circumvents the API and documentation issue but doesn't produce a real project, you can give them an IDE which avoids the command line but doesn't teach much and often is too complicated for a simple script, and so on but there's always some nasty issue for beginners in the process.
- noonespecial 8y agoThe Lazarus IDE short circuits most of these problems and can quickly build some very "real" feeling apps that can solve real problems for people just learning to code. It is object pascal (with the attendant quirks) but it seems to be code-ish enough that people can transfer on to more modern languages without too much fuss. https://www.lazarus-ide.org/ https://www.lazarus-ide.org/
- cylinder714 8y agoJeff Duntemann has uploaded a draft of his upcoming ebook, FreePascal from Square One, a revised version of his earlier books on Turbo Pascal and Borland Pascal: The book’s mission is to be what Assembly Language Step By Step is to assembly language: An absolute beginner’s tutorial on programming in Pascal. This includes people who have not yet learned what programming is and have never written a line of code in their lives. http://www.contrapositivediary.com/?p=4034 http://www.contrapositivediary.com/?p=4034
- mathnode 8y agoI don’t think it’s a coincidence that after reading BASIC article on the currently front page; I went and downloaded freepascal. I will give Lazarus a go later on if I get into pascal again.
- baby 8y agoI'm trying to teach my gf how to do python and I've been using this website in order to avoid setting up a terminal+IDE: https://snakify.org/ https://snakify.org/
- Bromskloss 8y agoWhen I run the tests, am I supposed to get an indication of whether my attempt passed or failed the test?
- baby 8y agoYup!
- Clubber 8y ago>For the very first time I began to suspect that coding really was an art, and would reward examination. It certainly is. Back in the day, software developers were called "authors." >BookOmatic9000 That's ... just ... horrible. Yea, naming things is tough. Anyway, good luck. I've been doing it since 3rd grade in the 80s, and it's still interesting. Except Javascript; that's the opposite of interesting.
- thelastidiot 8y agoI second the comment on javascript. I hate the language so much I keep hitting refresh daily on webassembly to monitor its penetration. Javascript is just a joke and like everything that makes no sense it gets the votes from the industry.
- cjmoran 8y agoHm. Have you taken the time to learn all the new features and develop something with them? Most people who work with JavaScript these days seem to like it quite a lot, myself included. Since ES6 released it's become a solid language with a few strange quirks, whereas it used to be a crappy language with a few useful features.
- linkmotif 8y agoES6 is really nice but it’s still JavaScript so it’s untyped and therefore much less pleasant to work with at any kind of scale than, say, Java+IntelliJ which is like butter. Not sure which static typed languages will be WebAssembly-able, though? Go? Rust?
- joepie91_ 8y agoJS isn't "untyped", it's dynamically typed. And this is absolutely not a problem at scale if your development practices are up to scratch - or at least, not a bigger problem than the myriad of other design tradeoffs that every major language has to deal with. Static typing is massively overvalued. It has non-zero value, but it's a tradeoff with other things, and the amount of importance that people tend to place on it is absolutely out of proportion with the actual value it provides. EDIT: This extends beyond just 'static typing', as well. The design of programming languages is an exercise in tradeoffs, and people rarely take the time to understand the tradeoffs introduced by their pet language feature, instead presenting it as some inherently ideal thing where any language that doesn't have it must therefore be bad.
- giblaz 8y agoThe error in the author's code seems to be better described as an "unnecessary function call" than a "stray parentheses". I spent more time looking for that stray parentheses than I should have before noticing the call to .title(). Very good article though.
- lozenge 8y agostr.title is a method, the code is correct - it's the fixed version.
- japhyr 8y agoI had the pleasure of meeting Andrew Smith (the author of this article) at PyCon a few weeks ago. He was really interesting to talk to. He said he was interviewing one of the people who walked on the moon a while back. The guy stepped out of the interview to take a phone call, and when he came back he said he just learned that one of the other men who had walked on the moon had just died. Andrew reflected on this, and recognized that these men are dying and soon there will be no one left alive who has walked on the moon. He decided to track down each of the people who were still living who had walked on the moon, and hear their stories firsthand. The premise of the conversations was, "What do you do after you've walked on the moon?" He wrote a book about it, called Moondust. I haven't read it yet, but it's in my Amazon cart at the moment.
- Stratoscope 8y agoYou might want to read the one-to-three-star reviews before ordering. If they are to be believed, Moondust is less about the astronauts and more about Andrew Smith.
- mwcampbell 8y agoI wonder if a guided introduction to JavaScript, restricted to just the good parts and using some tools such as a linter to enforce that, would have made it more approachable to the author. Maybe use TypeScript in strict mode, along with a project template for a minimalist framework (e.g. Vue). I loved Python for years, going back to when I discovered it in the Red Hat Linux installer in 1999. But it seems to me that Python has been sliding into irrelevance for a while. Even now, 10 years after the introduction of the ihone App Store, I don't know of any mature way to develop a mobile app with a native UI in Python. The same goes for using Python in the browser. So for the things that most people actually want to do with code, Python is relegated to the server (assuming there is one), and they have to learn something else anyway. So, might as well start with the something else that will get you the farthest.
- nicoburns 8y agoPython has huge relevance in data science, which is a vast and growing field. It isn't going anywhere.
- Bromskloss 8y agoHelp! My mother has expressed an interest in learning programming. How do I do this best?
- Doxin 8y agoFor people without a specific goal in mind I'd recommend getting them set up with the Python3 turtle module. It's fairly self-contained and allows for immediate results. Additionally it's very easy to nudge people when they are using the turtle module. e.g. after introducing loops ask if they can draw a square using only one forward() and one rotate(). after introducing functions you can ask if they can make a functions to draw N-gons. what happens if you try to draw a 100-gon? etc etc. After use of the turtle module is comfortable python offers no end to possibilities in other areas. That said, "best" is surprisingly subjective when it comes to programming, so feel free to go a different route if that feels more appropriate.