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 trial

General Discussion

Kenneth Milota
PLUS
Kenneth Milota
Courses Plus Student 178 Points

How do people really learn to program?

I am a graduate student at Walden University for IT: Software Engineering. Nearly all of my work is done online through text book and answering questions on the assignments along with a few applications to go with it.

However, I don't know if I'm really learning much of anything. Do programmers really learn this way? Watching videos online, doing practice exercises, and eventually they will learn to be a professional developer? I don't communicate with anyone in person on how to complete these assignments or projects, the tutoring sessions at the school aren't all that helpful, the assignments don't seem to be geared towards learning new skills, and the professors of the courses generally aren't that helpful.

I'm learning with Java. I already know how to create classes, objects, and methods and how to call them. Part of the problem is that a lot of the tools you find to learn a new concept are not practical in the sense of giving a real life example of how the method is actually used. Such as when learning how to do arraylists, I had no idea what I was really learning, because I don't believe developers sit around making lists of their favorite fruits and vegetables, and putting them in alphabetical order.

I'm just so frustrated that I don't understand what I'm doing, and the problem really is not at all about how much time I'm putting in. It's that the time ends up being unproductive, because it's not as if I can just skip that part and go back to it later, because other methods and objects of a program are pretty much useless if you skipped over the initial parts of the program. I just don't know if I should drop out or change my way of doing things.

I am able to do the tasks when watching a video and completing a practice exercise, but when it comes to putting them in a program, the knowledge really doesn't help, because I don't know how to make use of what I learned.

Simon Coates
Simon Coates
28,694 Points

it's at least a start that you haven't confused parroting code with having a good grasp. In terms of what you can do working alone, i'd suggest deciding where you want to take your java (web, desktop, android) and take some courses on those. You'll see the basics in more practical lights and maybe the immersion will help. But you can't teach yourself stuff you don't know. You could maybe study a bit on a specific framework and then try and locate intermediate (ideally high quality) java code and get a sense of the design decisions and patterns being used (take notes on the big ideas / decisions). I'd note that it takes most people a while to start thinking natively in OO (so the fruit examples aren't as pointless as they might seem).

If you want to talk to actual java programmers about the issue, then maybe try stack overflow (see if there's an existing question). It would probably help to get specific advice from someplace where hundreds of advanced java programmers who have solved that precise problem. You can tag active treehouse lecturers in the hope they might respond. Or advanced, community-active treehouse users might have non-java specific advice (eg. Jennifer Nordell , Steven Parker ). (I think treehouse notifies people if you tag them).

You could also get a free trial and take a look at https://www.pluralsight.com/courses/learning-program-better-programmer . Might give you some ideas.

3 Answers

Ari Misha
Ari Misha
19,323 Points

Hiya there! I dunno much 'bout Java but as a learner and a software developer, i can relate to you. Its not easy and its certainly not easy to get your hopes high and then get disappointed when you dont understand few things regarding certain course. Nobody can perfect a single language. But thats where Docs come in right? I stick to the docs and experiment in the console before writing a function or a class. I practice Algorithms everyday or an hour. But what i have is a target and a vision that i want to learn and what i see myself as. And i stick to it no matter how hard it is. I read blogs, i listen to podcasts, watch youtube videos , go to meetups, practice Algorithms. Dont compare yourself with someone else coz as a programmer you need that willingness to learn. Dont think about whatchu havent learn yet , think about whatchu have achieved and learned. Just to the target and dont care about results. Atleast what makes me push(pun intented lol) everyday.

Happy Coding!

~ Ari

Kenneth Milota
PLUS
Kenneth Milota
Courses Plus Student 178 Points

The problem with Stack Overflow is when you ask a question, most of them are jerks about it. They rate your question down if it they think it's a newb question or they don't like the question. I can't really ask them anything on there anymore.

Simon Coates
Simon Coates
28,694 Points

Yeah. If you look around on stackoverflow (or stackexchange) you can often find an answer, but posting questions is a minefield in which you're going to shut down for duplicates, the question being unhelpful, vague etc. However, even with a question being shut down, you might still get some well meaning professionals being helpful eg (https://softwareengineering.stackexchange.com/questions/34890/how-to-learn-java ) . But it's bad enough that some of the treehouse lecturers actually warn students about it.

Steven Parker
Steven Parker
231,248 Points

:bell: Hi, I got Simon's alert.

It sounds like you might benefit from doing some anaylsis on a complete program. Find something shared on Github or otherwise online that does something practical that you relate to, and test your knowledge by seeing if you can modify it to change how it works or add a new feature. That may give you a better feel for your learning progress than any of the teaching exercises do. It might also identify specific concepts and/or syntax elements you still need to learn.