Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialMichael Williams
Courses Plus Student 8,059 PointsWhat best helped you learn how to code?
Hi everyone! I want to learn from everyone's learning styles and habits. So, I'm curious what sort of things did you do while learning to get to the level you are today?
For me, I watch the videos and take notes. If something completely baffles me, I'll watch again and/or head here, to the community. I sometimes try the MDN but reading that stuff is a specific skill in and of itself. But usually, if I'm sailing through the courses and passing the quizzes and code challenges because I truly understand (not because I guessed at writing the code correctly), I will only rewatch videos when I encounter a quiz or code challenge I just can't figure out. And from there, I head to the community if I still can't wrap my head around it. I've also ordered Eloquent JavaScript and am excited to augment my learning with that book (yes, I know it's free on their site, but I hate reading books on a computer screen).
3 Answers
Dane Parchment
Treehouse Moderator 11,077 PointsI do the same thing as you, reading books, watching videos, and taking notes. However, I also leverage this by building little apps with the information I learned, or try to find a way to utilize the information I learned in a programming project.
Another thing I do is read the documentation on the programming language I am learning so that I better understand it's ins and outs.
To get better at software development I also do a lot of Open Source stuff on GitHub. Which is either me reading through the code of a cool project and seeing how they did something, or actually fixing bugs or adding features to a project then making a pull request.
Finally I leverage all of this by learning mathematics, algorithms, data-structures, and design patterns so that I can build effective and efficient software.
Note that I have a computer science degree as well (working towards my masters soon), so I have a heavy math, computer, and science background. Currently I am working for a company as a JavaScript developer where I hope to use these skills to help improve their code.
Charles Badger
18,189 PointsThere are several things I do to augment my learning.
First, I watch lots of videos on a subject, not just the Treehouse ones. Sometimes it helps to see stuff from a different perspective, or sometimes I just need something drilled into my head several different ways before it makes sense.
Second, I look at other people's source code on GitHub. It's a great way to see how other people are approaching their code, and to learn new ways of coding. If I see something I don't understand, I google it or check the docs.
Third, I practice total immersion. I listen to podcasts and read articles relating to the subject I'm trying to learn. I spend about 25% of my day at work driving, so podcasts are a great way to hear people who know a lot more than me talk about subjects I'm interested in.
Fourth, I practice. I break projects down into small milestones, and work to achieve each one. Sometimes I'm successful, but sometimes I need to take a break and learn more before I tackle the next milestone. I at least try to write out some pseudocode so I can come back and understand what I was trying to do. If I'm not currently working on a project or on a break from one, I'll go back and refactor my code on old projects. I find a lot of times my old projects can be rewritten to to be more concise or to better apply best practices.
Fifth, I try to answer questions on the Treehouse community. One of the best ways to reinforce learned concepts, is to teach them to other people.
I've only been at this attempt to learn JavaScript for a couple months, but I've found myself learning a lot, and understanding more by putting into practice what I've mentioned.
Michael Williams
Courses Plus Student 8,059 PointsWhat kind of podcast do you listen to? Any that you recommend to a beginner who might not understand every reference talked about in the episodes?
Michael Cook
Full Stack JavaScript Techdegree Graduate 28,975 PointsI really agree with Dane Parchment, doing projects is a great way to learn. I personally do not take many notes, because I find that taking notes slows me down majorly, and I rarely go back and read them. Instead, when I have a question or forget something I usually Google it. And that is where documentation comes in. Reading documentation, especially the MDN docs, is hard. Like, really hard for a beginner. They are very technical, for sure. But bit by bit, by looking at them and reading them in conjunction with taking courses, over time understanding them has gotten easier, and they are an incredibly valuable source of information and understanding for you. So with that said, I learn by watching the videos, following along in the Workspaces, and really trying to understand concepts rather than focusing on memorizing bits of code or methods, taking notes, etc. Then, I either try to re-build course examples on my own with as little help as possible, or I think of my own project idea that gets me excited and I take a break from the courses for a few days or a week and I try to build it out. IMHO this is THE best way you can learn. Notes, sure, great. Watching videos? Fine. But building projects, or in other words actually using the concepts you learn in the courses is the sure-fire way to learn and to solidify. With each little project I do, I both solidify what I have learned in courses and learn new things by googling and reading documentation. But the reason why a lot of people don't take this approach is because just watching videos and taking notes is safe. It doesn't really challenge you or push you outside your comfort zone too much. But building a project is messy and frustrating. I say get frustrated, rip your hair out, and learn something. Happy coding!
Michael Williams
Courses Plus Student 8,059 PointsMichael Williams
Courses Plus Student 8,059 PointsCould you give me an example of a program you build along the way? I don't do this at the moment, but am interested in what you do for inspiration.
Dane Parchment
Treehouse Moderator 11,077 PointsDane Parchment
Treehouse Moderator 11,077 PointsStart with something simple, the "Hello World" app of programming tends to be a Todo List Application, so try creating one of those in the language you are most comfortable with. Even if it is just a console or text-based application with no GUI.
Things I have built while learning include:
These are just basic examples of stuff I did for fun while learning, just find something you like, and then just make a basic program for it. Don't try anything to complex of course, start small and then expand as you learn more.
For example let's say you are building a Todo List App.
Maybe you start by building a basic console app, that let's you create and view a todo list app. When you learn about I/O then you can then expand it to save and load a file that contains the list. Then when you learn about GUI development, you can create GUI for your app. When you get comfortable with creating websites maybe build a site for it. When you are comfortable with the back-end, try building an API for the app. When you learn about Databases then implement user accounts, registration, and instead of saving to a file save lists to a database.
You get the point.
Michael Williams
Courses Plus Student 8,059 PointsMichael Williams
Courses Plus Student 8,059 PointsThanks, Dane. That's helpful. I have an idea for a project that could be a nice little combination of the todo list and text adventure game. Essentially it's a thought challenger app that asks you what negative thought you have, then guides you through the type of thought it is (i.e. all or nothing thinking, predicting the future, etc.) and then reframing it in a more realistic way. In theory, it's super simple because it has an input to record the thought, then accesses the type of thought, etc.
Personally, I'm working my way up to learning about APIs and databases to learn create user accounts and registration. Of course, I'll continue learning after that, but that's my long-term goal for the moment, as I just want to be able to build things and tinker on the side. And who knows, maybe it'll open new doors for a career change if I get good enough and desire that change.