Having been learning to code for more than a year, I have a few tips I’d like to share with those of you just getting started. These include things that have worked well for me from the beginning, along with practices I’ve adopted over the past year and a half that have made my learning smoother.
Prepare to succeed
When I first started with Treehouse, I wasn’t prepared to learn as much as I have. In fact, I’m still surprised every day when I progress more, learn something different, gain insight, or come up with an alternate solution to a problem. I have managed to meet some brilliant developers through Treehouse who are always willing to share a different perspective, great tip, or learning resource. The amount you can learn with a little motivation and a modicum of discipline is astounding.
The amount you can learn with a little motivation and a modicum of discipline is astounding.
In fact, the amount that you can learn can also be a bit overwhelming. The great thing about learning online is that you get to choose your own pace, your study material, and (to some extent) your instructors. That freedom also comes with a certain amount of personal responsibility. Ultimately, you will have to decide on how to order the information you’re taking in. Suddenly, your mind will clutter with inspiration for future projects, ideas about how to solve a problem or even things you might want to research. You will start receiving Treehouse badges and points, completing challenges, and potentially helping others. You should experiment with different methods of recording links, resources, and stray ideas that you have on the go. There’s a good chance you’ll need them again. If you are anything like me, you might feel like you’ve gone on an information binge.
Treehouse has a fantastic email notification system that provides a wealth of information, including responses to questions you’ve asked, upcoming courses, badges you’ve earned, and more. While you can turn off email notifications, I highly recommend that you don’t. Instead, I’d suggest that you do what I did a couple of months after joining Treehouse — create a free email account that you use only with Treehouse. While you’re at it, subscribe to the Treehouse blog with that account. That way, you can have a searchable record of all the things mentioned above and a sort of informal journal of your progress specifically about your school. I have found this immensely helpful.
The journey over the prize
I began my journey with Treehouse in 2016. On the day I started, I did something both brilliant and entirely accidental. I set a goal for myself to have fun and learn as much as I could. That’s it. That was my giant goal. I’ve had fun, but I’ve altered my other goal to include making real world projects that I can show off.
I didn’t envision a reward, nor did I set a “prize” at the finish line. That, apparently, was the smart part. Although I had no idea at the time, science was on my side. A researcher at Princeton University, Sam Glucksberg, has investigated the effects of incentives and found that incentives may increase performance in physical tasks. However, tasks that require even rudimentary cognitive skill will be harder for people offered incentives. I can highly recommend Dan Pink’s TED talk on this subject, which he calls “the puzzle of motivation.”
Programming is a highly cognitive skill. While I understand the temptation to set a reward for yourself, science would indicate that you’ll have better results if you don’t. Instead, I try and set a goal for something I want to accomplish or learn specifically related to my coding education. Try and enjoy the journey and thrill of having met your goals. Worry about the “prize” later.
Reinforce instead of force
Some days are just horrible. It seems like everything that can go wrong has gone wrong. You might get done with the end of your typical day and feel like you’re frazzled, tired, and can’t handle anything but watching television. Maybe you’ve been curled up on the couch for three days eating chicken soup and drinking orange juice because you have the world’s worst cold. Now discipline comes into play.
It’s important to be firm with yourself, but also kind and reasonable. Some days just aren’t ideal for absorbing new material. In the beginning, I forced myself to do the recommended steps from Treehouse no matter what, but then I remembered that they are simply recommendations. I know myself and my life best. What I found when I forced myself to do the new material was that I would, almost invariably, be lost the following day, as I would’ve forgotten the majority of what I learned the day before.
My tactic when I had a rough day? Reinforce instead of force. Instead of forcing myself to absorb new material, I’d go back and open up a small number of challenges or quizzes I’d completed before. I would challenge myself to redo them, and if I had forgotten what a word meant or how to do something, I would review the documentation, even if I didn’t fully understand it. Was I able to complete it more quickly? Was the terminology feeling more familiar? Were the instructions more clear? Most of the time, I could answer these questions with “yes.” It also meant that when I was ready to take on new material, my foundation was just that much stronger.
Learning to be specific
I’m sure many of you have heard that computers are dumb. They are. You have to be precise and detail-oriented on a level you might not even know exists yet. Imagine that you are sitting on your couch with your friend. You say, “Could you get me another cup of coffee?”. Your friend responds with “Yes” and continues to sit quietly on the couch. If this were your computer, we would expect this behavior because you haven’t said what you meant.
You’ve only asked them if they could do this, but you haven’t asked them to do it. You can have a computer do the fanciest mathematical calculations you can imagine, but if you never explicitly tell the computer to display the results on the screen, it won’t.
Ideas are bigger than details
If you’ve picked a programming language to start off with, don’t feel trapped by that decision. Treehouse makes it relatively easy to switch between tracks at any time you choose. While programming languages may seem rather alien right now, they do resemble written and spoken languages in at least one aspect — the idea is the same.
Imagine this scenario: I walk up to a group of non-English speaking people and say the word “tree.” None of them know what I mean. I then show them a picture of a tree, and they suddenly all understand. The idea of a tree has not changed. It’s how we convey that idea to others that changes. This principle is also true of programming languages. Many things that you learn in Java will be applicable in C#, Swift, Python, PHP, and others. The main difference is the details in how we write them that change.
Ask for help
The Treehouse Community is full of amazing people. If you’re reading this, then the Treehouse Community probably includes you, too. There will likely come a time when you get stuck on a challenge or a quiz. You may even just want some generic advice. You can post a question to thousands of your fellow students, and a good portion of them would love to help. Don’t be shy about asking for help when you need it. I’ve seen students apologize for “disturbing.” You’re not disturbing anyone, I promise. There seems to be a “pay it forward” attitude among those who ask and answer questions inside this particular community. I have now answered hundreds of student questions. I do it not only because I enjoy it, but because others have answered my questions, I learn from it, and I’m hoping that the person I’m currently responding to will go on to answer questions themselves.
Don’t fear the documentation
You will often hear the instructors tell you to read the documentation. This advice is excellent. However, looking at the documentation for the first time can be intimidating. In many cases, the format seems very formal and unaccommodating for new users. I’d be willing to bet that most of us just starting out have felt that way. Some of that is entirely understandable as they’ll likely be using terminology you haven’t even heard or seen yet. My suggestion is to get in the habit of looking at it even if you don’t understand it. My experience has been that documentation becomes more readable and less intimidating as your knowledge base grows.
Learning to code is great, but learning to learn is essential. These are some tips and tricks I’ve picked up along the way, and I’m hopeful that by sharing them, your learning will be even more productive from the outset than mine.
[Tweet “Learning to code is great, but learning to learn is essential.”]
Jennifer Nordell is a Treehouse student, moderator and valuable member of the Treehouse Community, where she has helped answer hundreds of students’ questions. Jennifer has an incredible drive to learn and has racked up over 100k points since learning with us. We were so impressed by Jennifer’s incredible progress that we asked her to share her valuable experience and advice with other aspiring developers. You can read her inspiring story here.