What's the code for "Late Bloomer"?
November 7, 2016 4:48 AM   Subscribe

I'm 43 and want to learn to code for the fun of it...would love to hear from any non-coders out there who have successfully managed to do this. Can you give me an idea of what I can realistically expect out of this experience? Special snowflake details after the jump...

For what it's worth:

I'm an educator who doesn't have any professional experience with computers (or with programming), but I've always been that one guy in the group everyone assumes is REALLY good with computers. I'd chalk this up to my being able to search Google and follow directions, but most people are amazed with some pretty basic skills in PhotoShop and Excel...so let's just say that I can usually manage to get done what I need to get done on the computer.

After a little bit of research, I finally settled on the "Learn to Program and Analyze Data with Python" course series taught by Charles Severance at the University of Michigan. The first course in the 5-part series is called "Getting Started with Python," and I've been pretty happy with it so far.

I plan on finishing the course no matter what, but I'd really like to hear from anyone out there who has successfully managed to teach themselves the basics of coding. What did you get out of the whole experience (other than the mental workout required to keep with it)? What kinds of things does your basic knowledge of coding allow you to do that would have been otherwise out of your reach?

This is an admittedly open-ended question, and I'll be happy with a wide range of replies! Thanks for any and all feedback!
posted by richmondparker to Education (15 answers total) 26 users marked this as a favorite
Short answer: Figure out what your "itch" is, then write code to scratch that itch.
posted by Wild_Eep at 5:25 AM on November 7, 2016 [1 favorite]

Keep in mind, writing python is perfectly fine, but it's not the only kind of 'building your own tool through iterative puzzle-solving' programming. For me, it isn't exactly writing code that helps me day-to-day, it's knowing how to best use the tools that have already been written. For example, I'm able to perform magic on large text files because I understand how to use the 'grep' tool within TextWrangler. Similarly, I received the most utility from learning a half-dozen common Excel functions and conditional formatting.

There's more than one way to 'code'. Logical, structured, and organized thinking are supported by many different approaches.
posted by Wild_Eep at 5:32 AM on November 7, 2016

Like Wild_Eep, one of the big things I get out of a relatively small amount of programming knowledge is the ability to efficiently tidy my data. Lots of really simple and intuitive ways to do this in R, but I also know enough command line stuff lately to muddle through there, too.

From time to time I analyze large data sets for work. There are a lot of prebuilt tools for this, but a certain amount of fluency is required to get them up and running and structure queries.
posted by deludingmyself at 6:04 AM on November 7, 2016 [1 favorite]

Hi! I'm you, except female, so people don't necessarily expect me to have really good skills with computers. I did an introductory Coursera course on Python, and then I bit the bullet and started taking CS classes as a non-degree student at the university at which I work. I'm currently taking the intro to CS class for CS majors, and I'm trying to figure out what I want to do next semester. At the moment, I'm not getting anything out of it other than intellectual stimulation, but that's a big thing, because I realize that I really miss that and don't get it in quite the right way at my job. Another thing that I'm getting out of it is the confidence that I can hold my own in something that I sort of assumed I wouldn't be able to handle. I don't know if it's going to have any actual career applications. I suspect there is not a huge market for 43-year-old women with beginning CS credentials. But for the moment, I'm having a lot of fun, and I figure I'll worry about that part later on if it seems relevant.
posted by ArbitraryAndCapricious at 7:01 AM on November 7, 2016 [1 favorite]

The biggest thing I've gotten is the understanding of how computers and their programs work, or, more importantly, how they don't work. Think about baseball: if you've never played catch, or swung a bat, you can still enjoy watching MLB, but you won't understand why a particular player or team is so good or so bad.
posted by kevinbelt at 7:24 AM on November 7, 2016 [2 favorites]

I've observed personally and had it reinforced by a number of "how to be a great coder" blog entries that the ability to research obscure questions is often the #1 skill, so (rimshot) good at googling will serve you well. And really it's not trivial, there are some pretty deep dives into obscure terminology.

Where you can go is pretty huge, find a linux box or two (search for "tilde club" for some folks that give out free accounts). Amazon AWS give a FREE year of demo action, it's a pretty overwhelming wall of options but fire up an EC2 instance and you have a free VM to code on for a year. Get a tiny box, a rasberry pi or something and code for it, make a project. I found a VM somewhere in europe for $5/yr, the deals for computer access abound.

After python, look at another language at some point, a bit of C or Golang are good low level options.

Have fun, getting a tricky bit of code to run is one of the most satisfying things.
posted by sammyo at 9:16 AM on November 7, 2016 [2 favorites]

On the "cheap linux machine in the cloud" front: You'll find lots of deals at https://lowendbox.com for as little as $20/yr.

I collect cheap courses through sites like stacksocial; they're forever offering things like this "Learn to code" bundle for reasonable prices.

I basically taught myself coding and am working in the field. I use these courses to fill in the gaps in my acquired knowledge. What I got out of learning to code [aside from the career] is an orderly way of thinking through problems.

Note: I have no connection to either of those links.
posted by chazlarson at 9:30 AM on November 7, 2016

It will take years, and you will find, over and over, that the scope of the things you didn't know you didn't know has gotten much larger, but you can totally do it. Just remember nothing is magic about computers and put in the time to dig deep.
posted by jeffamaphone at 10:19 AM on November 7, 2016

Hi! My husband is a programmer. I started to learn to program a couple of years ago. Slow start due to having kids, but it has been a lot of fun.

I started with Python, too.

I've been able to read his code and understand it more and more. I can follow a little when he talks about work. I understand why he gets absorbed into coding and sometimes misses time passing. Common ground that brings us closer together.

I can appreciate the complexity of things run on software. I have a slightly better understanding of security. I've also always liked having at least some knowledge of how the things I use work.

There are also a lot of awesome learning tools out there. Coding- can be used to make tools to teach people how to code. It's kind of nice. The benefit of continuing to learn all the time is also pretty valuable.
posted by pearshaped at 10:27 AM on November 7, 2016

I'm not qualified to work in software, but knowing a bit of Python and being "good at googling" comes in handy sometimes.

A recent example: When I ran into a spreadsheet full of addresses, some of which have been mistyped as "1234Whatever St", I didn't immediately know what Regular Expression to use, but I could figure it out from an online cheat sheet. When I needed to put those addresses through an online form, I took a few hours to learn the Selenium library and wrote a script that automated most of the click-and-paste work by controlling the browser.

To do fly-by-the-seat-of-your-pants coding like that, I've found that I need:
1) A basic grasp on programming concepts. You can't code much in Python if you don't understand control flow and Object-Orientedness.
2) A rough grasp of the language. I may forget the details of Python's exception handling procedure, but I know when it's the tool that I need.
3) The ability to read API references. Major programming languages have libraries or modules that can do just about anything, but documentation can be pretty cryptic. If you can make sense of the API reference, though, you're set.
posted by sibilatorix at 10:59 AM on November 7, 2016 [1 favorite]

do you know how to use the command line? if you have access to a mac (or better linux - anyone have success with linux on windows 10?) then you can can really do a lot neat stuff that is technically programming, but is referred to more as scripting, and you can go down that rabbit hole for pretty much however long you want. i have been a programmer for a long time now, but it's a rare week when i don't have a task that requires fixing something that way.
posted by lescour at 12:02 PM on November 7, 2016

Coding = control

Knowing how to code means I can control my computing environment in ways that non-coders can't. I can make my tools bend to my will! I have a bunch of repetitive tasks to do in Excel? I can write some VBA to do it for me! I need to scrape some data out of a report? I can write up a little thing in C or Java to do it for me!

I teach at a college, and I don't like the way our course management system handles certain tasks. I have the vocabulary to not only communicate what exactly I don't like and why, but I can provide specific suggestions on changes. And if no one else likes my suggestions, I can just implement my own extensions for myself.

I just recently decided that I hate all the podcast apps I've tried, so I'm going to make my own that does exactly what I want it to do.
posted by SuperSquirrel at 5:45 AM on November 8, 2016

In addition to the practicalities, I think learning to write code, like learning many other things, involves learning a new way of thinking that you may not have used before. I really liked that aspect of it, especially once I got into the computer science side of it. Learning about NP completeness, then writing a genetic algorithm and watching it iterate was really mind expanding for me (with the disclaimer that I was a teenager at the time, so pretty prone to having my mind blown)...
posted by rhamphorhynchus at 10:02 AM on November 8, 2016

I did this and am also a late bloomer.

Pour some coffee and just keep coding (vs thinking about coding). Keep going with your course. If you start to find yourself curious about how to solve problems with code, new questions and challenges will present themselves.

Join an IRC chat or get out to a meet up or something where you can try pair programming if you can.

Many people told when I was first starting that which language you learn doesn't really matter. I thought it was a ridiculous assumption at the time, but now I totally see that to be true.

Great if you start now to instil habits like resting your eyes, checking your posture, and sleeping part of your routine.

I did find it changed my brain and influenced ways of thinking. But I'm still not sure that was a substantive effect or just akin to that thing that used to happen after you played Tetris for too long and you start trying to stack the world into rows and columns.
posted by OlivesAndTurkishCoffee at 10:22 AM on November 8, 2016

Best answer: I started with Python and I am a teacher, too.

For me many of the benefits have already been described above (control, knowing how stuff works to make more informed contributions to discussions with real techies, being able to wrangle large amounts of data in ways Excel doesn't make easy...).

Here are some practical concrete examples:

I made a Python program (with a GUI) that made writing my semester reports about 5x faster. My school mandated comment banks (for standardisation / quality control reasons), but wanted us to use this program with a horrible interface. It meant manually clicking menu trees to expand them and then double-clicking comments so they pasted into the comment window. For each student, all the menus collapsed. I estimate I had to click 25 five times per student, for maybe 100 students or so...painful! My program read an excel spreadsheet I'd put data in all year, and automatically generated the reports for me. No clicks, same reports!

A couple of years later we transitioned from one LMS to a new one. There was no bulk export feature on the old one for extracting resources. We were expected to right-click-save-as each file and re-upload them to the new platform. I am click-phobic. I wrote a web scraper that downloaded all of the files in all of my courses and saved them into sensibly named folders. I shared that with my colleagues and didn't have to pay for coffee for the rest of the year :)

Nowadays, I've moved away from Python to Javascript so I can build my own web-apps. I've learned a lot from Free Code Camp, to the point where I can basically make any web-app I think is useful. I tend to not like a lot of education software because they are often made by developers that don't really understand the work flow of teachers and students. Making my own means I can tailor what I make to the exact use cases I need. It's pretty liberating, and a lot of fun.

The other benefit of Free Code Camp has been the community aspect and the Meet-Ups - I've gotten to know lots more people that are into coding as a result, and it's been a real encouragement for me to keep growing!
posted by man down under at 1:07 PM on November 8, 2016 [3 favorites]

« Older YA novel involving immortality via drowning   |   I may give away my problem dog to a shelter, how... Newer »
This thread is closed to new comments.