Struggling with the first projects

Hey FCC Folks,

Just a quick vent session here from a complete novice. I started FreeCodeCamp 11 days ago with no previous programming experience. It took me seven days, putting in two hours of work, to complete the HTML/CSS portion of the curriculum. Throughout that time there was one thought that kept coming back “You’re not going to remember any of this”. It seem like a lot of new information, and I knew that doing a one minute exercise wasn’t going to help me retain the concepts and terms.

Fast forward to the very first Responsive Web Design project and behold; my fears have come true. I have been struggling to put anything decent together. I can’t remember most of the stuff, and mainly just feel like I did something wrong.

No, I’m not quitting. This is something that I’m going to figure out. But let this be a heads-up to all of those who come in with no previous experience. You will have to google a lot, go back, re-think stuff, fail and do it again. There is no fast way to learning this stuff. Rushing through the exercises is not the answer. Stay strong FCC family! Don’t quit!

Any encouraging messages are welcomed :joy:
Happy new years to all!


You’re also going to feel like that when you start the JavaScript challenges, the Api challenges, the Data Viz… oh wait, thats not encouraging is it?! :joy: For real though, it is like that. But you are learning fast that its not about remembering everything, its about being introduced a concept, picking up research skills (and it is a skill to figure out what to search for to find the answers you seek) and apply those new concepts to complete the projects…all that combined is what helps reinforce your knowledge. The more you do this, through repetition, you’ll start to remember without having to look it up.

You wont remember every single thing btw…there is so much out there, in any one given topic even, that you arent even expected to have everything memorized. The stuff you do more often, those will start to stick in your mind. The less common stuff, you’ll probably end up looking up how to do forever…and thats okay. You’ll never not need to read documentation. The goal is to reach the point where you know theres a way to do something and know where to find that info…thats what matters.


Thanks for the words :joy:

I’m up for the challenge!


Hi Stketcher,

I totally get the frustration.
FCC could offer summaries, overviews or cheatsheets but it is better that you make them yourself because doing that will help you remember

A cheatsheet is a single large page, with all import words crammed together on a single sheet. For example: But I do feel that these sheets come in handy when you have already learned a lot. Better might be to make your own cheatsheet.

the responsive design challenges will ask you to work in codepen so use this platform to work on single bits of curriculum. :Make a list, make a form, make floating divs, do the same with flexbox, grid… This will be enjoyable and motivating and prepare you for the bigger work.

And last but not least, there’s anki: It’s a free program that is designed to help people study stuff with flashcards.
It is a little complicated at first but once you get into it, it is really helpful. It also uses ‘spaced learning’. It will tell you when you have to repeat learning things, it is quite clever.

Happy coding and greets,


Ah yes. This is why we have the googles.

Honestly though, practice is what will make you remember. When in doubt on how to do something, google it. You can do this, and every one starts here. Even a veteran won’t remember every single thing. Especially if you don’t use it all the time.

Some hints:

Open a github account and use Gists to save snippets of code you might use again and again
Do more: look up other tutorials, projects, take other courses before moving on so that it is solidfied in your brain
Don’t be afraid to redo a challenge, especially in the later ones, there are many ways to do things, I recently redid my javascript challenges using arrow functions where I could so I could better learn them.

good luck!


So every so often, I do this…

Story Time!

So I play classical guitar. It’s a thing. I play to Zen my mind, I play to relax myself, I play for fun. But I play.

But I didn’t sit down and start playing “Claire de lune”. I first had to teach myself what the strings were, and what the intervals on the frets were, and what the relation between the different strings meant.

I’d found a great book, written in 1886, about the “Carcassi method”. Great book. Love that book. Now I had to learn to read sheet music, as well as learning to read tablature.

My fingers bled, because I was learning to press on the very tips of my fingers. I was so frustrated, because both hands would cramp into claws, and I was slow at reading the music. It would take me a few days to read a simple song, and longer to get comfortable playing it.

But, as it happens, I was in a situation that gave me ample time without distractions. For the first year, I would spend four or five hours, seven days a week, struggling.

Now, I play for fun. I play guitar, and uke, and mandolin, and violin. I have a great time, and I still seek out challenges, songs I don’t know or instruments that baffle me.

End of story time

Coding, for me, is exactly like that. Without the bloody fingers, thank God.

I struggled to understand the concepts at first. Struggled to understand loops, or branches. Started out without even the concept of functions or objects. Had no understanding of the DOM, and how that was structured.

Twenty-five-plus years later, I do this for fun. I’m trying to get back into the field, but time I spend here answering questions is a joy to me. It helps me to refresh my own knowledge and ideas, and it challenges me to push my own understandings.

It didn’t take twenty-five years, mind – the basics were there within a year or two. Now, it’s a matter of the languages themselves are evolving, and my knowledge is evolving with them.

Getting the challenges done in record time, or in a pretty way right of the bat, is not the purpose. Learning not only how to build pages, but how to research the bits you aren’t sure on, are both valuable skills. I often say to new folks, “Web dev isn’t about knowing what you need to know - it’s about knowing how to RESEARCH.”

I still find myself searching for articles on CSS patterns, or on “semantic HTML.” The information is there, and I take pride that I can now understand the stuff!

You’ll get there. Just mind you don’t get bloody fingers on the keyboard.


Happy new year Stketcher!

This reminds me of doing my first tribute page a couple years back. It was an ugly, atrocious mess. But I allowed it to suck because I knew it was a necessary hurdle to get over.

Sure enough, I go back once in a while to take a look at it and just laugh. Not in a demeaning way, but to realize how far i’ve come since then.

It may be hard to imagine now but one day (soon, if you stay consistent) you’ll no doubt be able to do the same. Just put the projects together the way you’ve learned so far, and know that most people go back and re-do a lot of stuff anyway.

Your confidence has so much room to grow, so keep at it!


I’m assuming you’re a witch. You’ve somehow gone back in time about two years and read my mind. There is light at the end of the tunnel - I’m three months into my first dev job. ymmv. My point is that it is completely normal to feel confused and overwhelmed at this point and it does not mean that you are not cut out for this. Everyone has different strengths and weaknesses, but if you work hard, you can do well.

Yup, completely normal to feel this way. Yes, it will get easier. Yes, you will forget things, but you will gradually learn them better and better - it will get easier each time. Learn how to research things - that is an important part of web dev. When confronted with a big problem, try to break it down into little problems and solve and test each of those.


No Joke, I bring my tablet to work just so I have an extra screen that’s always open to a few of my favorite reference documents and sites.

You won’t remember absolutely everything. What is important is not you remember how every single function/property/parameters of everything. You’ll remember the things that are essential because by the end of FCC, you’d have done it a hundred times. Like learning anything, capture the concept and principle, reinforce your learning and conceptual learning. Eventually you’ll catch a rhythm, an understanding of what’s really crucial and a cycle where you periodically relearn the same thing you thought you forgot.

Its a process


It’s okay to use google. No one can keep everything in their head, it’s too much. But you should know how to search for what you need and how to apply what you find to your solution.



Current beginner (noob) here. I heard a fellow coder on a podcast say a few weeks ago that he is “paid to be frustrated.” What I took away from that is, I’m currently paying to be frustrated haha.

I can attest to shedding a tear or two of frustration during the Intro to Javascript section. :joy:

Try searching for your questions on the forums. More often than not, someone will have asked the same question that you are currently face-palming on. Know your limits on how long to spend on Google and ask directly on the forums. People here are patient, they know what it’s like and they want you to succeed too! With that said, if the content doesn’t speak to you on FreeCodeCamp, try other websites for awhile and come back. Personally, after I got to the first Responsive Web Design Project (Build a Tribute Page), I said “nuh uh”, and went to Codecademy to practice Python.

If you are working on the Build a Tribute Page, I highly suggest on first getting the bare bones down, i.e. the tests that need to pass. I normally like to add design elements that make a piece of work stand out from the get go and I realized how much of a time suck that was going to be. Now, I have a plain as can be Tribute page that passed all the tests, mind you three months later and just completed today. YAY, still so excited lol!

Keep going, you got this and you are definitely not alone! :slight_smile:

P.s. Someone else recommended this youtube playlist on HTML: and a friend recommended this podcast episode on CSS:


“The only valid measurement of code quality is What-The-F**ks/Minute.” (Robert Martin) Quote found on

For the first leg of your journey, you say that out of bafflement and frustration. You will know you’re making progress when you start saying it out of amazement at that simple bit of elegance in code form.

And, down the line, you’ll catch yourself saying it when you come across some client’s ugly hacky mickey-mouse fix for a simple problem. Y2K bug, anyone?


This is a great advice. I will start working on a cheat-sheets ASAP.

Thanks for taking the time to share your story!

I will keep going at it. One day at a time.

Your response, along with everyone else’s, really make me feel like I have come to the right place to learn about WebDev. This thread really shows how great of a community FCC is.

Thanks to everyone who took the time to encourage a complete beginner.


I don’t have much to add but just one thing: everyone searches the internet for content, information, and how to do things. There is no such thing as a master of programming. So don’t feel so bad. Even the brightest of programmers are constantly searching for things daily. Your mind can only hold what you use frequently. Everything else is compartmentalized to an easy-to-reach resource. This is the normal process of learning something difficult.

Eventually, the concepts you implement in your projects consistently will stick to your brain like muscle memory. And you will begin to build a working knowledge that you can rely on. But you will always have to search for how to do something. In fact, there is a running joke that software development can be thought of as someone who knows how to generally code, but more importantly how to find out information quickly that they do not know (stackoverflow). Learn how to ask the right questions and think thoughtfully how to solve problems given the framework available to you.

You have a basketball, a court, and a hoop. There are many ways to put the ball in the hoop for a point. But you must consider the problem, landscape, and tools/framekwork you have to solve the problem.

  • Are you tall?

  • Are you fast?

  • Are there obstacles in the way?

  • How can you circumvent the obstacles?

  • Which method uses the least amount of energy?

  • Which methods are repeatable, maintainable?

Anyway, the analogy doesn’t work perfectly, but the point is you solve these problems similar to other problems. I think people get caught up in the idea of “coding” and think somehow the problems are different. I would argue if you approach coding problems in a common-sense fashion as a problem and a set of tools you have to solve the problem, the task will become simpler as you can break it down.

My 2cents. Keep coding!

Edit: just realized I said I had one thing to add, but then ended up typing way more. :joy:


Thanks for the awesome response!

1 Like

I can understand how it feels to go through this phase.

I literally left coding thinking that I could not become a coder. But I don’t know, my situations made me come back and learn again.

The first design I created using HTML & CSS was the ugliest shit I had ever seen. Lol.

I just continued with it never to stop again.

Each time I learned something, I kept one thing in mind, that I’m not a designer or a developer until I create even a small site.

If you have done with the HTML & CSS, go out of FCC & create something using HTML & CSS.

Open paint on your desktop & create a design for yourself that consists of some simple designs.
Save it & Code it.

Once you’ve done with it, reward yourself with a pat.

And once you’re done with all the above stuff, get down to JavaScript, you’ll literally post another question with “frustrations overloaded.” Lol

Take care
Happy learning.

Hey man. It’s okay. 5 years ago when I began going to college and studying computer science, I was struggling with coding. I went to office hours to get help from my professor, but he got impatient and told me to quit. I told him I wanted to be like the others in class, and I had to work harder than others in order to catch up. He told me hard work doesn’t get you anywhere. I got offended because my roots are ingrained in hard work. I told him, “Well, all my family and I know is hard work. I descend from people who worked in the fields, and their hard work got me here, and that means a lot to them and me”. I left his office hours and grinded. I continued to work hard because I wanted to prove him wrong and prove to myself that hard work does get you somewhere. I’ve done research in computer science. I’ve had 2 internships at two amazing companies. My words of encouragement are that your hard work will pay off. You gotta keep at it, even when you begin feeling like you maybe going nowhere. You have to tell yourself at those low moments to keep going, to keep pushing through because there’s gonna be a time when you look back and realize how far you come. The amount of knowledge and skill you will have in comparison to the beginning of your journey will be far greater. Just keep telling yourself that, and you will become great. Other words of advice: if you get stuck feel free to ask questions. It goes a long way asking for help. Also, take a look at people’s solutions for the exercises if you’ve spent 30mins trying to solve one. Take breaks to rest your mind. Watch YouTube videos of people coding in HTML and CSS. If you don’t understand a tag or CSS properly, google it and a link to W3schools should appear. When you follow those links, read a little about either the tag or CSS property and most importantly, look at the examples. They’re so helpful. Good luck on your journey.


Web Development or Software Development is Not a Race, it’s a Marathon.