General Discussion

The Wall

Hello ladies and Gentleman,

So far I've been putting hours and hours into learning to code HTML and CSS. Both here on Treehouse, as well as the few textbooks i bought and began to read. I'm constantly researching, and constantly reading as much information as I can to learn as much as i can about the in's and out's of Front End Development.

My problem right now is I feel like i'm just not retaining anything. I open up a Note++ document or even a Codepen pen to try and start... something and I just don't even know where to start...

Are these kinds of walls common and what are some ways to get over them /knock them down? Tips for helping to retain the knowledge? I feel like there's sooooo much to learn and I don't want to get discouraged because I really do enjoy coding, and i'm afraid i'm going to start.

Anyways, thanks in advance everyone!

Cheers!!

Steven Parker
Steven Parker
170,451 Points

For anyone who hasn't already seen it, this question is featured on a new Treehouse Show episode!

7 Answers

Steven Parker
Steven Parker
170,451 Points

I think that kind of experience is not uncommon, and the best way to approach it probably differs with each individual. But that said, what I would recommend:

  • Pace yourself. Don't give up, but don't try to do too much at a session, or per day
  • Study regularly. Try to establish a schedule of times/days you spend on it, and stick to it as much as possible
  • Use supplemental learning. Try to find other sources of similar material but presented in different ways
  • Stick with it. Take more breaks if you get too frustrated, but don't stop entirely.

Hopefully, you'll experience a "click" before too long where things begin to make sense, and the process will become fun (again).

I really hoping that "Ah-HA!" moment will come around soon, but you're probably right. I'm spending more than +2 hrs a day studying and watching videos i might just be overwhelming myself with too much, it probably doesn't help that i've gone from knowing ZERO code, to learning HTML, CSS and then starting JavaScript all in a months time-span!

Thank you for the insight Steven, i'll definitely keep all those things in mind!

Ari Misha
Ari Misha
19,211 Points

Hiya there! Yes , they are common. When i start out with a project, first i create a wireframe. A wireframe is simply a design of your vision. I suggest get a pen and paper, and draw your wireframe on the piece of paper. This psychology might sound stupid and old school but its extremely powerful. Now you've a wireframe and a clear vision, get to the coding part. Try to modularize your code as much as possible. Take a look at other projects on github. Thigh might give you an idea how your finished product should look like and it'll also expose good coding skills and best practices.

Thats how i get started with a project. But do not underestimate the first step of wireframes. It almost solves 40% of my headache for real. I hope it helped!

~ Ari

I feel like this is a really silly question to ask, but what do you mean "Modularize your code"? I've definitely found looking at other peoples code to help, but so far like I said i just keep getting stuck at that blank document that says, <DOCTYPE HTML>. I'll absolutely give wireframing a shot!! I'm a super visual person so i'd imagine that would help a ton!

Additionally, I am fairly proficient in photoshop, do you know if its still common practice to photoshop a mock website as a "Wireframe" and then go to coding? I guess photoshopping a website layout isn't so much a wireframe as it is actually MAKING a website hahah....

Do you have any additional tips as far as retaining all this knowledge? I feel like there is just SO MUCH to learn. So many properties, syntax, values, etc.

Thanks so much for the response Ari!!

Cheers!!

Ari Misha
Ari Misha
19,211 Points

jmyzzle hey whatever works you! If you wanna go for photoshop, go for photoshop. And Modularize means separating piece of codes on the basis of their functionality. Like lets just you have 5 pages on your website, and you're using sass and bootstrap and javascript and maybe some php for server side. Now all your HTML should go into one place and your css should go in separate directory and so is JavaScript files and PHP files. They all should have their own directory. And in the individual directory, your code should be modularized of basis of its functionality. Like if a piece of code represents all the like of a post , then it should have its own file.

The best way to approach for starting a project , is dividing everything in frames or components. The outermost frame should be approached first. And then make your way to lower sized components thats filling the bigger frame. You know what i mean? It makes sense all in my head lol. Happy Coding!

Ari Misha No that absolutely all does make sense and actually helps quite a bit!!

I really do appreciate you taking the time to help me out with this, i'm quite enjoying coding and i think its fun. I'm just trying to avoid that dreaded "This is too hard, i'm just gonna give up" from happening when I start getting overwhelmed with everything there is to learn in this vast "new world"!

Thanks again, and happy coding to you too!

Greg Kaleka
Greg Kaleka
38,979 Points

Hey Jon,

Just to add to the good answers here already, yes, this is absolutely common.

One thing that I try to do as soon as I learn a new concept, here on Treehouse or elsewhere, is to do the thing they're teaching me, and then immediately apply it to something slightly different. For example, if you learn how to build a navigation bar, and the teacher walks you through building it with a logo and link to the home page on the left, and main page links in the middle, go to codepen and build exactly the same thing, then build a slightly different variant. Maybe put the logo on the right (gasp!), or style the links differently.

The idea is to generalize the knowledge you're gaining. The more you do this, the easier it will become to apply individual skills to various projects.

I also recommend reading this post on why learning code is so hard and the fact that you're likely to be frustrated for a while (maybe even more than you are now!). If you can, you should embrace the frustration, because it's necessary, will always happen (even once you're an "expert" you will experience frustration, just with more complex problems), and leads to learning :blush:. However, you definitely should take breaks to avoid burnout. More and more, I am realizing that I come up with the best ideas and ways to solve problems when I am away from my keyboard, anyway.

If you can embrace the frustration because you live for that rush that comes with solving a hard programming problem, you've found the right field.

Good luck!

Cheers :beers:

-Greg

Greg Kaleka

Everything you said was extremely helpful, especially taking new concepts and applying them to a codepen and tweaking it. I went ahead and read that article you linked and whoa...between yourself and the article alone, that pretty much gave me the answer I was looking for and i'll probably end up reading it through a second time.

Thank you so much for the response, I really do appreciate it!!

Cheers! :beers:

-Jon

FatCat McChubbyCheeks
FatCat McChubbyCheeks
Front End Web Development Techdegree Graduate 32,292 Points

Hey Jon:

I found two things helped me retain HTML/CSS knowledge. First is working on a real project. If you can find a friend or small business that needs a website built (even a WYSIWYG like Squarespace or Weebly that lets you do custom CSS), it will help you whittle down the information you'll be using in practicality, instead of stockpiling a bunch of theory. You'll also explore and grow your own style which is cool, and can rake in some skrilla from the project.

The second was the Techdegree program here at Treehouse. Throwing down $200/month was just enough motivation for me to work more consistently on my education than when it was only $25/month. I noticed a definite improvement in retention because I was working on it daily and if I delayed, I was loosing money. My main wall was JS, and there were a few late nights, but I went from 0 to functional because of the Techdegree program. Pricey, but worth it for me.

Take it slow and easy at times too. If you feel like your exerting too much, try to let your mind be more absorptive. And have fun! Make some cool stuff on Codepen that is more artsy than business-y just to play with the boxes and colors and functionality.

But if you're main thing is not knowing where to start, it might mean that you need a practical project to provide some creative boundaries and expected outcomes. Hope that helps man!

I just saw that! Awesome!! Glad i could help contribute to this awesome community!! :D

Grace Cee
Grace Cee
1,656 Points
  • Not an answer but also an experience*

Hitting the Wall, How Other Treehouse Students Learn, and Behind the Scenes

This has come at a very opportune time at this point in my learning. I am currently between The Cliff of Confusion and The Desert of Despair. It was a joyous "honeymoon" so much so that I've shared to friends and family about my success in coding. And yes, also guilty of imagining myself a good developer and all the goodies that come out of it! Then comes the fading light, the blank stare as you try to code but there aren't even straws to grasp. I'm in my early 40's trying to shift gear (and career) so as to have a better future. And I began to doubt my capabilities in learning, thinking I might be too old, or that it's not cut out for me, and the stress of depleting resources (kaching-kaching!)! This article(s) and community experiences have renewed my hope that someday I, too, get that "A-ha!" moment. Thank you so much and looking forward to making it to the end!

Cheerio!

There is no exact time frame. For the majority of HTML and CSS I picked it up really fast (grid and some more abstract things I still am learning). JavaScript I reached a point where I could do work but I could only do what I was instructed to do. Honestly it took a year or so of working in the industry day in and day out before I got it. PHP took me longer.

I understand the "wall" very well though, it is a point I am at myself primarily with Android development. If someone says "build a list view" or "make a recycler view" or "make a connection in the background thread" I can do those things. However, if I want to build my own project, where do I begin. Do I need a recycler view or a list view? Do I need to make a connection to something or can I do what I need directly in the Android API. I haven't reached that proficiency to move forward. I just have to trust that if I keep practicing and checking out different examples of the same lessons I will eventually grasp the "why" and not just the "how".

Keep at it, you will get it. Believe me its a great feeling when it finally clicks.