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

General question about some of the basics courses

I have been doing the basics courses of both JavaScript and Swift in the last couple of weeks and I have to say that even though I can follow along in the videos pretty comfortably, in the coding challenges that follow I pretty much always have to look in the Community for previous answers.

Sometimes I cannot even figure out what it is that I'm supposed to do, in other words I cannot even start the challenges without looking through the Community for other students' responses. The questionnaires I suppose I do alright with.

Is it just me? Am I to "dumb" (although I'm not of a low IQ) to be doing programming?

Some of these courses move so fast that I don't feel that I get the chance to practice and repeat what I've already learnt in the tutorials. Does anybody else have any similar experience?

I'm thankful for all the respons I can get =)

6 Answers

Farid Wilhelm Zimmermann
Farid Wilhelm Zimmermann
16,753 Points

Noone is too dumb to program. In fact, nobody was born a programmer, except Jon Skeet (https://medium.freecodecamp.org/jon-skeet-the-chuck-norris-of-programming-ee5781c7e18a) ;-) Especially when starting out, it is really common to struggle even with basic things. At all stages of your programmer career, you might find yourself thinking that you are inferior to others, because lets be real - there will always be someone writing cleaner and better code than you are.

I experience a similar problem sometimes when solving algorithms at a platform such as codewars for instance. Even though I manage to come up with a really great solution, being presented what other people came up with often times feel like a minor punch in the gut. So you are definitely not being alone. The key here is two things: do not compare yourself to others that much, especially at the beginning. Everyone learns at his/her own pace, and even though it might take a bit longer for some to have it click, as for every skill - work and discipline outweighs a lazy talent. Which brings me to my second point - persistence! Programming is such a universal field with many different subject fields, that noone can ever manage toreally master it all. Some might be talented at solving algorithms, having a strong logical mind, while others might be better at writing clean, maintanable code. Some might become great UI-Developers, while other will find it easier to develop database architectures. Try to cover the basics, get a foundation in everything and then eventually specialize in a field that really grabs your attention. Always remember that a learning process is not linear, while it might be easier at times, the hard times and difficult assignments tend to be the ones we learn the most from once we push through the initial frustration.

Another "tipp": Dont try to remember every little piece of syntax and dont get frustrated if you dont! Even the most skilled programmers spent a lot of their time looking things up they once have learned, but forgotten over time. It is much more vital to actually learn "how" to program - or to think like a programmer, than remembering every little array method there is. This will especially hold true once you start with frameworks, as there is only so much information one can remember.

Good luck and dont give up Arm-Flex-smiley

Dave Harker
Dave Harker
Courses Plus Student 15,510 Points

Hi Farid,

While reading one of your observations I thought of this ...

Imposter Syndrome

I fully agree with that last comment too ... "don't give up"

Kind regards,

Dave.

I totally understand what you mean about not being too hard on yourself in the beginning. It’s something me and probably many others have to work with.

My problem is not that I’m not learning anything, because I feel like I do. My problem the “distance” between the videos and the code challenges sometimes.

Thank you so much for your advise, and especially about learning the basics of most of it and then picking a specialty.

I’ll absolutely press on =)

PS. I L.O.V.E. this comic strip!

Dave Harker
PLUS
Dave Harker
Courses Plus Student 15,510 Points

Hi Linus,

If you're not enrolled in the techdegree program I would suggest you make your own additional exercises and challenges based on the material you've covered up to that point. Coding and problem solving is all about practice (quality practice); the more you do it the easier it will become until eventually when presented with a problem your mind will immediately start working on potential solutions instead of hitting that wall of 'umm, I've got no idea how to solve this'.

Also, I'd suggest revisiting the learning material and also investigating solutions to similar issues on sites like stack overflow rather than searching exact solutions on these forums. You'll get more out of the training if you push yourself to work through the challenges until you discover the solution yourself, rather than having it handed to you (not to mention the sense of accomplishment that comes with that). Please don't misunderstand me, I'm not suggesting you don't seek help when you get stuck, but rather that seeking guidance will do more for you in the long run than seeking the exact solution (I hope that makes sense).

Oh, and to answer your 'other' question ... it isn't just you :) I also feel that way from time to time when learning new things but it's all part of the experience and makes the eventual accomplishment that much sweeter.

Keep at it ... you'll get there!

Dave.

Farid Wilhelm Zimmermann
Farid Wilhelm Zimmermann
16,753 Points

Haha this comic perfectly sums up a day in the life ;) Cheers for that

make your own additional exercises and challenges based on the material you've covered

Do you have any suggestions for how I can do that? Should I make them up myself (which I sort of do when I mess around with the code I’ve just learned) or are there other sites with code challenges where I can go?

Thank you so much for your answer!

Dave Harker
Dave Harker
Courses Plus Student 15,510 Points

Hi Linus,

There are sites out there with exercises/tasks etc. a quick google for "programming exercises" will certainly yield some results, and you can do many in just about any language ... however ... I'd suggest you make challenges for yourself. You know exactly where you're at, you know what you're strong in, and the areas you need to work on (definitely do work on your weaker areas).

I know what you mean about 'messing around with code' but honestly what I think you'll gain the most benefit from is planning out some projects for yourself that will include what you already know and maybe a little that you don't. What I mean by that is - don't be worried if you've got an idea for a project but think, 'oh I don't know everything needed to make that site or that application yet' ... there are lots of resources and lots of people (on forums like this) who are happy to help. In short, giving yourself a project/a goal and working toward that is going to be much better than just messing around with a simple and singular concepts when you're trying to solidify your knowledge.

Also remember that while learning to code is a bit of a race (learning syntax doesn't take too long) learning to be a software engineer (a creator and a problem solver) is more like a marathon. So pace yourself, and keep at it. You'll get there :)

Happy programming,

Dave.

This is great advise! I’ve already started on those long term projects, btw =)

Thank you so much!

James Churchill
STAFF
James Churchill
Treehouse Teacher

Linus,

I'll echo what others have already said here: it's perfectly normal to struggle when you're learning something new. You're not alone!

Sorry to hear that you're feeling like the distance between the videos and the code challenges is too great. We strive to provide code challenges that appropriately challenge students, but sometimes there's room for improvement. Getting feedback from students is invaluable to us, so we know which code challenges could use some tweaking. If you ever have feedback on specific code challenges, we'd love to hear it.

Practice is a great way to deepen your understanding and improve retention. Have you discovered the practice sessions available in our library? Here are the practice sessions available for the JavaScript Basics and Swift Basics courses:

Practice Basic Variables, Input & Output in JavaScript https://teamtreehouse.com/library/practice-basic-variables-input-output-in-javascript

Practice JavaScript Math Methods https://teamtreehouse.com/library/practice-javascript-math-methods

Practice If and Else If Statements in JavaScript https://teamtreehouse.com/library/practice-if-and-else-if-statements-in-javascript

Practice Basic JavaScript Functions https://teamtreehouse.com/library/practice-basic-javascript-functions

Practice Manipulating Data in Swift https://teamtreehouse.com/library/practice-manipulating-data-in-swift

Practice Using Operators in Swift https://teamtreehouse.com/library/practice-using-operators-in-swift

Also, we've been working on a series of videos about how we learn. I think you'll find these videos to be educational and inspirational.

https://teamtreehouse.com/library/how-to-learn

And lastly, a bit of advice: once you've had a chance to explore JavaScript and Swift (or any other languages that look interesting to you) you might consider picking one to focus on; at least for awhile. Join the beginning Treehouse Track for that language (https://teamtreehouse.com/tracks) and give yourself some time to fully immerse yourself in that language.

Good luck with your coding journey and thanks for being a Treehouse student!

Thanks, James

This is a great response! Thank you so much, James!

No, as a matter of fact I didn't know that there were that many different practice videos here. I will definitely go through them (the ones that you've listed) and try to find more either here or on other sites. That is precisely what I feel that I need.

I hear what you're saying. That is a bit how I was thinking with the Swift Tracks both the beginner and the intermediate ones, but it's hard when someone says you have to know all the languages or when someone else says you should focus on one in particular.

I suppose I'm just gonna focus on what I want to focus on and what I believe in, and let the chips fall into place. I'm still very much of a beginner =)

Again, thank you so much, James!

If you can ask the question about whether you are smart enough to learn to code, then you are! Learning to code is a bit like learning to play piano from someone who speaks a foreign language. You are actually learning two different things as you go along & stretching both sides of your brain in ways its probably never been used before, so yes, its totally natural & common to feel a bit stressed, lost, frustrated & overwhelmed for quite a while, so don't give up just keep doing it. Eventually, this bit & then that bit will start to stick & things will start to fit together.

As for retention, I think the number one thing is to redo & review the lessons - over & over (3 times is not too many) until you feel ready to move on. I don't know when or where the idea came from that one time through a new topic is enough. When I learned to play clarinet, I was told to practice a song until I could play it through 3 times without an error. In learning to code, if you create something & after closing the project you can't recreate it (or something very close to it) by heart, then do it again, & keep doing until you can. If that means rewriting a Java program 5 times, that's fine. If you were learning a foreign language, you would never think that repeating sentences and phrases over & over again until you said them right & in the correct context was odd.

Learning to code is also learning a foreign language. Each language has its own syntax & composing in Java is totally different from composing in Ruby for instance even though both are object-oriented languages. You want to get beyond sounding like Tarzan & Jane in each language you use and that takes time. Many coders never do.

Here on Treehouse, you can use the Library function to look for everything on the site related to a topic or language and see all the exercises & courses related to that. Beyond that, there is Google, but that can be even more overwhelming, but you will know when you are ready for that.

Some people might have suggested you start with an easier topic than Swift, but if that's what interests you then just stick with it & learn each other topic as needed, ONE AT A TIME like making a 1000-piece piece puzzle. It's a big time investment but well worth the effort and you will feel awesome when you start to see the whole picture as it gets created, piece by piece.

Thank you so much for your support, Clion!

You are most welcome. This is what the community forum is all about coding is hard enough, why do it all by yourself when you have friends here who will help you get unstuck?

Just keep asking those questions here, especially when you feel like there is a big skip from the lesson to the activity. We can help you figure it out, your questions & answers will help the next person, AND they will provide the feedback needed to improve the courses as they are updating courses all the time.