Not enough understanding?

Hello there.

I keep reading a lot of people saying that they don’t feel they understand enough about what they are learning. And a see a lot of responses saying that is normal.

Usually, I see this posts when people start learning something new and do the projects.

I’m currently doing my 6th certification (Quality assurance) and I’m still feeling like I understand but don’t understand at the same time.

Since Javascript, I had to ask a (sometimes a lot) in order to successfully complete each project.

Now with Quality assurance I’m feeling much more lost than before, struggling to understand how Chai works.

How do you difference from “I need more practice” from “This programming thing is not for me”?

Anyone here that has been struggling constantly, feeling they don’t understand enough and end up finding a job? How long it took?

Assuming you’ve been making solid progess previously, which seems to be the case, it’s often just a case of how you’re being taught. It can simply be the case that for this one thing, this particular explanation doesn’t work for you and you need to look at something different for a little while – maybe a different tutorial, or article, or book, or video. Just something that explains the subject in a slightly way, so that maybe it then clicks in your head.

It’s literally just a set of functions that do this:

function veryBasicAssert(thing) {
  console.log(thing === true);
}

Where thing is whatever you want to check it true, ie does what you want. Like

function add(x, y) {
  return x + y;
}

veryBasicAssert(add(1, 1) === 2);
veryBasicAssert(add(0, 0) === 0);
veryBasicAssert(add(-0, 0) === 0);
veryBasicAssert(add(-1, 1) === 0);
veryBasicAssert(add(1, -1) === 0);
veryBasicAssert(add(2, 1) === 3);
veryBasicAssert(add(1, 2) === 3);

The library wraps this functionality up in such a way that it’s easier to write, covers all the cases you might want to check so you don’t have to figure them out, and lets you add a message it’ll print alongside the result so you can see which things failed and which ones didn’t

1 Like

Wait for advanced Node and express Chai is the easy one ^^.
I also recall this section being especially hard to complete. Its sections, especially the advanced node/express i had to revise several times, including during working on the projects. The said section has lot of things bunched inside it, several packages, which deserve sections on their own. Not only revising, i would look up their documentation pages and additional online sources. FCC is not thorough in all and every topic. Some things are only said, or mentioned, some are not even mentioned. The user should seek additional information, wherever he feels the shortage. If you are already that far in the curriculum, you are past the stage where you can say “programmingis not for me”, you already proved you can handle programming; its all about finding the right branch for you and investing enough effort. Like they say, fake it, till you make it. In a way, its true in the current context. While working on the projects, i would follow the lessons steb by step, use the work of other users as example and write my own code, not always created by me, but rather taken from sources, while i try to understand it as good as i could and also give it my own flavour and style. And you write like that project after project, until beside learning the syntax, you finally comprehand the logic behind it. Some things, we just have to learn by heart, until the point comes when we also reach the substance.

2 Likes

For me, when i things myself feeling like that, i often find it’s not the thing I’m trying to learn that’s the problem. You see, my mental model of learning all this is that it’s a massive jigsaw puzzle, but i know neither the number of pieces or the finished picture.

Extending that imagery, I’ll often fit a piece where i think it goes, the shape and colors seem close, and keep going. Learning more, finding more puzzle pieces, fitting other areas together. Eventually, i find i need to tie into that “close fit” one, but i can’t seem to for the new lessons with that one and with the surrounding ones. Something’s off, and if i force it, it’ll just get worse.

That’s my mental image. A concrete example might be learning basic javascript data structures and seeing arrays and objects one way, but then not understanding why we need useState in React when all we’re doing is updating an array - going back to basics and realising that my understanding of How javascript passes arrays and objects around as references was that jigsaw piece I’d misplaced. Reviewing that fundamental (and doing so by finding another resource that provided a different perspective) was key.

Not saying that that’s the issue here, but it kind of dovetails with what @DanCouper was saying. When i feel I’ve got a concept down, I’ll try to find a book or course to let me review what i know from another viewpoint. When i felt really comfortable with the basics, reading Dan Abramov helped me see some holes in my mental map. When i wanted to up my object programming game, Eric Elliott’s articles and book really sharpened my understanding.

Finding other resources to refresh what you think you know is a win win in a few ways. For me, my foundation is more solid; for the blogger or author, there is support and validation; for this community, not only am i better able to help others, i can pass along those same resources and expand that support.

So…how solid is your foundation?

I see. Apart from Freecodecamp, I do research on Google. I end up checking MDN, W3Schools, Stackoverflow, sometimes Reddit…
With documentations a struggle a lot sometimes, like for example: Mongoose. Sometimes I feel like I am reading a language I don´t understand. I´ve seen some videos on Youtube as well, of people with a lot of experience explaining how things work. I probably need to try and check a book, as I have never considered that before (I think in my mind is like a documentation that is very hard to understand).

Thank you a lot for the Chai explanation. I think I understand it, I’ll be definetly coming to look at this post when I start the projects. :grin:

1 Like

Thank you for you words! What you say makes sense, and I´ve been applying this a little bit during my learning path.
I actually started advanced node and express and it has fried my brain… I couldn´t manage to understand the first exercise, maybe I was too tired. I will try again.
As someone mentioned early, I will try with books as well, maybe that will help me on top of the other resources.

2 Likes

What you said made me think. I’m unsure of how solid is my foundation. I think I probably need to read the articles of the people you mentioned. In all the things I’ve done, sometimes I ended up finding things I don´t know, or finding that I misunderstood something and I thought I worked in a determined what and I was mistaken. Like that big time when I tried to do substring to an array :sweat_smile: Thank you for sharing your resources :grinning:

1 Like