Frustrated with the process :(

Hey campers.

Today I got truely frustrated for the first time since I started my FCC journey.
I have no coding or mathmatical background whatsoever, but I thought if I put in the hard work that should not matter.

I roamed thorough the challenges, feeling good. Every once in a while one was more challenging, but I managed to understand it all. In the past week I am learning properties. I thought “ok, this is tough, I am not sure I’m getting everythin I’m doing, but at the end it’ll all make sense” - which was ok, till I got to this challenge:

after struggling for a while, I looked at the solution, and realized it demanded combining a lot of what I’ve learned so far. I also realized that I was not at all in the direction of solving it!

I don’t understand the logic, I don’t get intuitively where should “if” or “for” go, where should I use a dot, and just what’s what in general.

ahhhh!

should I freak-out? maybe coding is not for me? :frowning:

Please help…

1 Like

Firstly, don’t worry about it at all.

Coding is hard. Thats the simple fact of it. It takes time, it takes effort and it takes dedication. You cannot write yourself off due to the fact that you don’t understand something, or can’t work a particular problem out.
When I was in college, I was studying Computer Science. There were a lot of people much smarter than me in that class and my confidence took a massive hit. I was taking much longer to do anything, and generally was having a hard time. I never followed it through and went to University and I do regret it sometimes.
Ten years since then and I am learning again. I am still finding it tough at times, but I am enjoying the process rather than worrying about how I am doing! Thats the key and secret I think.

I actually found more help in purchasing Colt Steele’s bootcamp. A video walkthough of everything and lessons helped me visualize it more than these tests.

3 Likes

I’d like to offer you a personal story.

When I was in highschool, I was horrible at math. I squeaked by grade 9 advanced math with a 50% and probably only because the teacher never wanted to see me again. So in grade 10 I took “general” math (the three levels were basic, general, advanced). I screwed up much of my highschool education through truancy and apathy and flunked out of grade 12. But then I got a second chance. I moved to a new province and set my sights on graduating. I needed to take grade 11 advanced math in the fist semester so I could take grade 12 advanced math in the second semester but technically couldn’t take it because I only had grade 10 general math, but I begged and pleaded with the principal and he made an exception. So I stayed every day after school for the extra help and I did every homework exercise multiple times until it stuck in my brain. That year, the year I graduated highchool, I got the highest mark in my school on a province-wide math contest and an A in grade 11 advanced math.

Coding is like that. You have to do the exercises over and over until they’re second nature. Work the challenge until you pass, then erase the code and do it again and again until you can pass the challenge on the first click. Then do the next challenge the same way.

Coding is about starting with a few essential tools in your kit and using them well. I can tell you I’ve solved almost every one of the “Basic Algorithm Scripting” challenges with a nested FOR loop. Your code may not be pretty or elegant to start, but you can use those tools to solve problems. And through reading you’ll discover new methods and built-in functions that you come across and go, “Hey, I could have used this to solve that problem last week.” So you add that tool to your kit. And that’s how you get better at coding: Repetition and reading, baby.

10 Likes

I felt this a lot when I was solving the algorithm challenges. What you’ve got to remember and understand is that you should not feel bad for having to look up a solution if you genuinely can’t solve it. You’ve become aware and have learned about various programming concepts that, yes you should be able to put into practice… However putting it into practice is a whole different ball game from just learning from a tutorial. This just takes time, dedication and patience. Don’t quit now. You’ve made it further than you ever have so far, always remember to think of the big picture and remember WHY you started this whole thing in the first place. Obstacles like this are bound to happen.

Just because you couldn’t solve one algorithm, that does not mean you are not cut out for coding. There are other challenges I’m sure, that you have been able to solve yourself leading up to this point. Hell, even professional programmers wouldn’t be able to make a career if it wasn’t for Stackoverflow!

You got this. Keep going. Be patient. Take a step back. Forget the algorithm challenge for a while and always try to see the wood for the trees. One challenge you couldn’t solve doesn’t defy your ability to become a programmer, especially if this is a career you really want to get into. You have an entire lifetime to become a master.

Take it easy.

3 Likes

maybe coding is not for me?

this quote from the begining of eloquent javascript really helps me when i start feeling like this.

" It is up to you to make the necessary effort. When you are struggling to follow the book, do not jump to any conclusions about your own capabilities. You are fine—you just need to keep at it. Take a break, reread some material, and make sure you read and understand the example programs and exercises. Learning is hard work, but everything you learn is yours, and will make subsequent learning easier."

this video is also really good:

I’ve recently come to the realization that some [vb]loggers/boot camps really are selling dreams when they make it out like we can become developers overnight/within 3 months or whatever lol. programming is no joke but I have this feeling that if you can make it and actually become good at your craft - it’ll be well worth it.

All the best

10 Likes

This right here is a perfect place to focus. Learning these individual aspects, practicing them over and over again until they feel intuitive. Now you might not know the exact character for character code you’ll need for any given challenge or exercise at first, but you’ll definitely be able to at least break the problems down into pseudo code and go from there.

Like “Okay I need to make a comparison here…If this thing is true or false → this thing happens. I’m going to need to check for this other thing too so…Else if this other thing is true or false → this other thing will happen.” Or “I’ve got a bunch of data I need to look over…okay I’m going need a loop then, which one should I use? Is it an array? Well then I can use a For or a forEach loop for starters…”

The key thing is knowing the parts and what they do and how to use them in different ways. Imagine it’s like having this box of tools and someone telling you to fix a car engine. Without knowing what does what and how you’ll just end up scratching your head. But if you know “Well I need to check this connection…right I can use this specific tool for that…” The solution becomes far less cryptic.

Personally I’ve been going over specific concepts: working with arrays, objects, building functions, utilizing ES6 methods, working with variables, right now specifically I’m trying to wrap my brain around regular expressions and how to work with those.

Btw, I also recommend Colt Steele’s Bootcamp, it’s a great well-rounded course. For example, in one lesson he mentions that there are two situations where you need to use bracket notation over dot and that’s when your property key starts with a number (1 : apple) or if there’s a space (fav color : blue). I’ve also found in my studies that if my call includes an argument from a function I have to use bracket over dot (return myObject[argument];)

But just practicing with making an object, filling it with key pairs and then trying to call to different ones really helped me get a grasp on what works and what doesn’t. Especially when you get into working with more complex objects that have sub arrays or sub objects in them, or the other way around when you have arrays filled with objects.

2 Likes

FreeCodeCamp is good with showing you the syntax…ie the words & how to construct sentences but doesn’t go into depth on explanations that will allow you to write a good paragraph or novel with that syntax.

I would recommend going thru one or both of the vanilla JavaScript courses recommended in this guide below. It will answer the why questions and provide deeper understanding.

I recommend coding all examples, exercises and projects in any Udemy course you purchase & they are cheap. $10-15 USD.

Update: In response to the recommendations for Colt Steeles course I can attest to it being a good well rounded course but if you want more depth and quality pick a course from the guide listed below. The JavaScript courses for example are 20 & 34 hours respectively and they are very high quality & comprehensive. Colt’s course doesn’t come close to that.

Colt’s course is akin to a buffet. It’s decent and filling but not the best for individual area’s of content.

2 Likes

You are not on your own, believe me. Im have still this issue and currently having a job as front-end developer. There was a moment, last year that i accepted that i should stop with that “ooh i am not good enough attitude”. When you accept that and start coding and practicing you will enjoy it more and you will learn better.

Goodluck!

1 Like

That’s because it’s a beginner level introduction to a lot of subjects used in the field. Understandably Colt can’t go into the depth each subject deserves because otherwise it would be a massive course. But he still lays an easy to follow groundwork for beginners and brings a lot of interesting methodology and experience to the table. And I think that’s worth having in addition to courses that dive deeper into the material.

1 Like

My article on learning basic OOP quick and easy: https://medium.freecodecamp.org/intro-to-object-oriented-programming-oop-with-javascript-made-easy-a317b87d6943

If you need to do something over and over again, use a for loop. Need to append the items of one array to another? Use a for loop. Need to decide which array items to add? Use an if.

1 Like

My favorite rationale for learning is “Programming” is an entire school of thought that is hard and must be learned over a period of time(which could be long, depending on the person) and “Coding” is just the tools we use to use for programming. Just because you can code doesn’t mean you can program, and that’s not at all meant to discourage you. This sh*t is hard. It takes time, and you’re not going to become an expert in a year. Just take a breather, take a break, punch a pillow. You got this! :slight_smile:

I also try to listen to music while I code. Most of the time with little/no words. There’s plenty of 24/7 “radio” channels that play that kind of music on YouTube, but if I’m doing something where I don’t have to think too intense just regular music should do. Personally, it helps alleviate stress, boosts my mood, and helps with my creative process. :slight_smile:

2 Likes

I agree his course is beneficial but I don’t think it’s the best for individual area’s of content. If money is an issue get Colt’s course for $10-15 USD but for most people I would recommend getting the best course for each area of content.

You might spend more money & time but will come out better.

1 Like

Yeah I think comes down to a.) where you are in your learning and b.) what your budget looks like. When I started Colt’s class I was just getting my feet wet with JS so it was a perfect intro for me. Plus I personally enjoyed his teaching style. I’ve tried another strictly JS focused class on Udemy and it just felt so disorganized and slap-dashed in how concepts were introduced that I regret purchasing it. Ah well, live and learn :wink:

1 Like

I go through this constantly while learning. Constantly thinking that I just suck, and thinking that maybe I’m bad at this, but somehow… i push on, and on, and on, because I’ll be damned If I give up. Every now and then you get a little “win”, you feel clever and awesome and then it’s back to feeling like “geez, this is hard stuff”.

I just look at it this way, I want a developer job, and will not give up no matter how hard it is. Other people have done it before me, a lot of them with lower “intelligence”, a lot of them with higher “intelligence”. I don’t know where I am on the scale, it’s tough to figure out, but it doesn’t matter to be honest. What I know is that it’s a definite fact that people worse than me and better than me have done it before me. And if they can, why the hell not me?

You just do it, and do it, and do it, and do it until the job gets done.

1 Like

Coding is something that i worked really hard at. I didn’t understand a lot of stuff until i started building different types of things. Somewhere along that process I had a eureka moment and everything made sense. I am a firm believer of coding everyday to build things. Just make up your own project ideas and make them happen. For example, I couldn’t find a time app that i liked, so I built my own, exactly like I wanted it. Hope that helps.

3 Likes

One virtue which has gotten me this far in the programming world is patience

When I first started out, every challenge pass the HTML and CSS objectives was… challenging. To the point it would take me days to find a solution even with help. Know that you think of it, it was every challenge.

But what got me through it was having the patience to deal with my lack of knowledge and stubbornness.