DEV Community

KiLo
KiLo

Posted on

I retired and taught myself how to code

Who’d have thought at the ripe age of 70, I’d be coding; and what’s more, loving every minute of it.

I’m relatively new to coding. Okay, I did take a course in Fortran, and a course in COBOL at a local technical school in the late ‘70s. And, oh yah, there was that course in BASIC that I took in the ‘80s; but to tell you the truth, I never did get the hang of computer programming. The one program, however, I fell in love with was the spreadsheet Lotus 1-2-3, it was also a flashback from the ’80’s. I bought the book Applied 1-2-3, Creating Spreadsheet Systems for Others (Tim K. Nguyen), and after reading it I managed to create an application for the company I worked for at the time. I did this on my own initiative and on my own time, meanwhile saving the company a ton of engineering time. My efforts did not go unnoticed: I received a $2,000 bonus, which doesn’t seem like much now, but at the time it was.

Despite my initial success and interest, I never touched programming again for the next 30 years: different jobs, marriage, 3 kids, mortgage, need I say more. By the time I got to 66 years of age, I was thinking I might be retiring in a couple of years, and what might I be doing at home everyday (besides irritating my wife). The kids were adults. We were comfortable financially. I’m not big on traveling or cruise ships. I thought, Gee, I would like to learn how to code…but the big question in the back of my mind was this: WAS I TOO OLD TO LEARN? I wanted to prove to myself that an old dog can be taught new tricks.

One day I was in a Barnes and Noble Book Store, and a book caught my eye: Automate the Boring Stuff with Python, Practical Programming for Total Beginners, (Al Sweigart). I thought to myself, that’s perfect. I bought myself an iMac and started doing the projects in the book. I have to admit, it was tough going at first, but I hung in there. I soon started programming in Python.

Next, I tried using Python to create database centric web applications. I discovered Django and Python together could help me do that. The only obstacle was I didn’t know Django. That’s when I started exploring the world of the Internet. I discovered hundreds of beginner tutorials on Django and Python, and what’s more, they were FREE. I started doing one after the other. If I got stuck on one, I would keep working at it until I got it, or go on to the next, and then come back to the one I couldn’t get. I kept a journal of all the tutorials I completed or attempted, and what each tutorial taught me, and I kept notes on how I resolved certain recurring problems. Believe it or not, I completed close to 120 tutorials. Of all the Django tutorials I did, I’d say the best was The Mozilla Local Library Website tutorial. What’s more, on top of learning Django and more about Python, I also taught myself GIT (version control), Stripe (payment processing), SQLite, PostgreSQL, Javascript, CSS, HTML templates, Docker, Webhooks, Hosting, Numpy, Pandas, CRUD, just to mention a few. What I came to realize, and wished I’d figured out before going to university, is that now more than ever you do not need to go to university to learn programming. In this day and age you can let the Internet be your teacher.

I finally retired at 68 and never looked back. My wife wonders what I’m doing all day: the answer is coding. Being technologically challenged, she can’t wrap her head around the fact that coding is fun for me, plus the constant problem solving keeps my mind and memory sharp and active. You also have to be open to new ideas, which helps me be creative (not one of my inherent talents). This might sound weird, but every morning I look forward to sitting down at my iMac and exploring the ideas I have floating around in my head. At night I lie in bed thinking about the coding issues I came across and how I can solve them. My wife is happy because I'm not bugging her, although she thinks I’m turning into a geek, and the kids are just happy to see me doing something creative.

I've done a number of personal projects, but the two I get the biggest kick out of are my two web oriented applications: EntreQuick.com, a crystal ball for new business ideas, and ACEHouseHunter.com, a snazzy house hunting tool. I’ve got lots of ideas on the back burner that I want to explore; I just need the time to do it. At my age I like to remind myself of what Yogi Berra said, “It ain’t over ‘til it’s over.”

If you’re interested in teaching yourself how to code, here are my recommendations:

  1. Invest in a decent, up-to-date computer: Windows based, or Mac (my preference). Also set a spending budget for software/hardware purchases you might need down the road (e.g. larger monitor, code editor, hosting, connectors, decent keyboard, mouse, books, etc. )

  2. Purchase good beginner and intermediate books to start building a knowledge base in the language you want to learn. Look for books that are easy and enjoyable to read. Buy books as opposed to borrowing them from the public library; that way you'll always have them available as references when you need them.

  3. Keep a running journal of all the potential projects and ideas that interest you. You never know which ones you may want to explore in the future as you progress on your learning journey. I use a 9 1/2" x 6 5/8" wire bound business notebook (Cambridge by Mead), but any other good quality journal will suffice.

  4. Once you have read through the books, start doing tutorials, and more tutorials. If you select a popular programming language (like Python), you’ll find plenty of (free) tutorials on the Internet or YouTube. Persevere, but don't keep hitting your head against the wall. If you get stuck on one tutorial, move on to the next one, and come back to the challenging tutorial later. Remember to keep a journal of the tutorials you have completed, and what you learned from each tutorial. This information will be a valuable reference down the road.

  5. Do the good tutorials over and over again. Every time you do a tutorial you gain a better understanding of the concepts it’s teaching you. I like pushing myself by doing a tutorial faster, or blind without reading the notes.

  6. Start one or two personal projects. Go to your journal of potential projects and ideas and choose an idea that interests you and is within your learning scope. (You don't want to do something too easy, but you also don’t want it to be way beyond your present knowledge base). Ideally you’re looking for a project that will pique your interest and motivate you to learn more. This is where the real learning starts, because it’s something you want to do. Be prepared to spend hours googling Stack Overflow to overcome/resolve your problems and issues. For each project keep a journal of your thoughts, triumphs, and tribulations. Keeping a good journal for each project will be a valuable resource when you start other projects.

  7. Have a stack of 3 x 5 inch blank index cards handy. Every time you learn something you want to remember down the road, write it down on a card. Then pull these cards out and review them every time you have a spare moment (for example, when you are waiting for your wife who is in the grocery store, or when you are having a beer at night).

  8. As part of your routine, regularly review your journal of ideas, your journal of tutorials, your project journals, and your 3 x 5 index cards. Journaling is good value for your time, as months later you can see how far you've come, all the problems that you've overcome, valuable ideas and techniques that you've discovered.

  9. Once you've finished one project, start another. This is where the learning earns the biggest bang for the buck. Don't reinvent the wheel, copy other people's good ideas. The project will drive what you need to learn. And because you have a desire to learn, you will learn better.

  10. Use what you create. This places you in the shoes of a customer. I use my personal project EntreQuick.com to document and analyse all my new business ideas. I'm also interested in buying rental property, so I've been using ACEHouseHunter.com to document the strengths and weaknesses of prospective houses.

  11. And keep on doing it, learning never ends.

Good luck!

Top comments (0)