I’ve been at my self-challenge of learning to code for a few weeks now. I figured it was time for some self-reflection on what I’ve actually been doing, because I’ve been doing a lot of different things including online tutorials, human interaction, reading, and self-reflection. Part of me feels really good about what I’ve been doing, and part of me feels concerned that I’ve going about this in the wrong way. Is this how it always feels when you decide to learn something completely foreign and hard?
So far, I’ve played with lots of different strategies for learning. I really like bulleted lists, so I’m just going to make a whole bunch that detail my attempts at learning to code:
Online Learning
- Tryruby.org tutorial (15 minute tutorial, made it all the way through)
- Fun, extremely stylized with whimsical little pictures and prompts
- Codecademy JavaScript tutorial (10 hour course, made it 10% through)
- Good little descriptions of fundamentals with easy little prompts
- Codecademy Ruby tutorial (10 hour course, made it 10% through)
- Good little descriptions of fundamentals with easy little prompts
- Turtle Academy Logo tutorial (13 out of 17 lessons complete)
- Fun, easy, vintage cool
- Kahn Academy Intro to JavaScript: Drawing & Animation
- Videos, little practice prompts
Reading
- Book: Why’s Poignant Guide to Ruby
- Fun, whimsical stories that guide the experience of learning Ruby
- Handouts and Powerpoint slides from “JavaScript 1 & 2” classes at the Denver Library
- Simple, useful tools to have in front of me as I explore JavaScript
- Every blog post I can find that is relevant
Human Interaction
- Engaging in conversations with Husband (He’s a programmer)
- Answers my questions, gives me tips and advice, offers context for what I’m learning
- Engaging in conversations with other friends who know about coding
- Gives me a chance to “talk the talk” and listen to others’ experiences
- Attending “Learn to Code” Meetups at the Denver Library
- Puts me in a room with a diverse bunch, all of whom are doing and learning different things
- Helps me put things into perspective
Self-Reflection
- Writing blog posts
- Gives me a chance to process what I’m learning, and get feedback from the few who have found and read my posts
I’ve been questioning if I’m doing the right thing by going back and forth between all these different ways of learning, and can see it from two different angles.
- Programming 101:
- By exploring coding in all these different ways, I feel like I’m learning a lot ABOUT it, but not learning to actually do very much.
- I’m learning that different programming languages have the same vocabulary (strings, variables, expressions, arrays, functions, loops, conditions, etc.) I have a very basic understanding of what these things are and how they look similar and different in different languages.
- All the different resources increase my vocabulary about coding, and help me see how Ruby and JavaScript relate.
- One neat thing I noticed is that it took me a couple days to get 10% through the JavaScript tutorial, and only an hour to get 10% through the Ruby tutorial. This might be because Ruby is easier, but it might be because the experience of doing the Javascript tutorial made understanding the concepts easier.
- I’ve gained exposure to the culture around coding, and given me a chance to talk about it in lots of different ways.
- Writing this blog gives me a chance to process my learning in a written form, and writing has always been something I enjoy. I consider my blog posts to be like my course assignments.
- Programming ADD
- I wonder if I’m jumping around too much, and if it would be better to choose a path and stick to it.
- I feel like I will need to choose a path and stick to it at some point, but wonder when I will know what that path should be.
- I have apprehension that learning about different languages all at once is a trap for a beginner. I wonder if I will start to confuse myself too much at some point.
- Sometimes I stop doing one tutorial because it starts to feel too hard. Then, I boost my self-esteem by moving onto another, which gives me another easy beginning point. I wonder if I’m doing myself a disservice by bailing on “hard”.
Conclusion:
Well, my conclusion is that I’m not sure, but I think “not sure” is an ok place to be. Whether it’s Programming 101 or Programming ADD, my bulleted lists make me feel like I’ve actually done a lot in a few weeks. Thus, that makes me feel good, and I know that feeling good about learning is half the battle! As I was writing this post, it occurred to me to Google “Programming 101”, and the first link I found was to an article on Lifehacker.com, called “Programmer 101: Teach Yourself How to Code“. The article says this:
A common pitfall for beginners is getting stuck figuring out which programming language is best to learn first. There are a lot of opinions out there, but there’s no one “best” language. Here’s the thing: In the end, language doesn’t matter THAT much. Understanding data and control structures and design patterns does matter very much. Every language—even a simple scripting language—will have elements that you’ll use in other languages as well and will help you learn.
That is good enough for me for now. I’m going with Programming 101!
Find an example program that something reasonably interesting and start to modify it using what you have read about. You have to do this. There is no other way. The only way to learn programming is to do it. You will find that you will get syntax errors, these are incorrect ways of writing the code, and when something at least starts to work and then dies you have run-time errors. These are more difficult to deal with.
Have you done a “Hello World” program? make it say something different. Make it say it twice, three times, as many times as you like. Figure out how to enter numbers into the program while it is running, but above all stop reading, for a while at least !
LikeLike
Find an example program that DOES something…. word missing
LikeLike
Thanks for the good advice! I don’t know about stopping reading though…the “Why’s Poignant Guide to Ruby” is pretty darn great! 🙂
Have you read it?
LikeLike
It certainly matches my experience that the particular programming language isn’t very important. I think that programming is a matter of looking at problems in a particular way, and while you need a language to write in, that’s kind of independent of what you write in.
(Granted, some languages make particular problems unusually easy or hard: you’d have to be daft to write an ordinary differential equations solver in Logo rather than Fortran, and crazy to write a script that processes a big block of database entries in Pilot rather than PHP, but that’s why I say ‘kind of’ independent.)
LikeLike
That’s good to know! I think I’m starting to understand a tiny bit about the “particular ways of looking at problems”, as I’ve gotten far enough in the tutorials to be asked to solve some problems. I can do it…slowly…but not well enough to be able to analyze the ways I’m thinking. It’s an interesting place for me to be!
LikeLike