It's no surprise that people struggle to memorize everything they can do in a programming language. While some individuals can remember pages and pages of documentation and draw a problem's solution straight from inside their mind - the average person can't. Particularly, those who are fresh and new to the world of code, similar to myself.
I've grown to learn that expecting yourself to retain every bit of code that ever existed is well... impossible!
So the question arises: What's the solution?
Understand that you can do it, not necessarily how to do it
The possibilities of what you can build with code are practically, well... endless! Anything you could envision to create with code, you most likely can. I've mentioned in a past post, that when learning a new language, it can be extremely exciting, and overwhelming, at the same time. It's important to review documentation, and view examples of code, that demonstrate what can be done with these languages/new concepts - but don't attempt to remember every single bit of information! These concepts can always be reviewed at a later point, when you need to implement them, but initially just absorb the idea of what it can do.
This plays such a large role in my current studies as I'm diving into React.js. There are so many possibilities, countless ways to pass props, create new state, intermingle components - it's definitely a lot! It's like one huge puzzle!
I've learned there is so, so many things I can do with React, and while I couldn't tell you exactly how to do it - I am aware that the possibility exists, and that's what's important.
Seeking out code you need, when you need it
Similar to speaking to someone with a different native tongue, you may understand what you want to say, but aren't sure how exactly. This applies to programming languages, as well!
When I first started studying programming, people referenced Google as the "ultimate tool". At this point I was thinking:
- Yeah, I've used Google for years... what's so new?
Then the realization hit: It's not what you search, it's how you search it. Whatever answer you're seeking, it's there, you just have to find it!
This ties back in with my point of knowing what you want to say, when speaking to someone, or coding a new language. Don't worry about remembering what brackets went where, or if it was a comma
, or a semicolon
;. It's so easy to mix up whether you are supposed to use parenthesis or curly brackets, and it's also such an easy fix! It takes two seconds for a quick search to find the answer.
Yet, I found myself guilty, several times, of fretting over having the perfect syntax. If it breaks - it breaks! What's important is you know what you're trying to do, now you just need to remember how to do it!
Where do you start?
Understanding this, it can definitely be overwhelming, but also confusing. I know I was definitely unsure of where to start when people said: "Just build!". Ultimately what I learned is:
You will never be ready to build, what you want to build, so just start.
If I had a dollar for every project I've built where I didn't run into issues, didn't have to search for something, didn't have to ask for help, and didn't have to backtrack and re-do some work... I still wouldn't have a dollar!
Making mistakes is part of the process. It's part of learning, growing, and improving your skills as a programmer. Learning to troubleshoot and debug your code is more powerful than someone saying:
Oh yeah, I've had that problem, all you have to do is _________.
I really encourage you to try and solve the issues on your own. Struggle through it. Mess up. Break your code. Start the entire project over. When it comes to learning something new, like coding, repetition is your friend. Do it over, and over, and over, until you feel comfortable.
How to implement it?
Find something you want to build, and start! Don't think twice about it. Try. Fail. Try again. When you get to a point where you're unsure of how to accomplish what you're trying to do, take the time to research your problem. Break it down in chunks. Figure out how to solve each chunk. Then, troubleshoot how to tie it all together. Don't worry if you forget how to write a
for loop, or can't remember what a higher-order function is returning. Refer to documentation or guides, and jump back in, until you meet your next challenge.
It's a slow process at times, but it's entirely worth it. At the end you'll come out feeling more comfortable, and filled with tons of new ideas to work with.
Will you remember how to do everything? No.
However, you have references. Look back at past projects now. Research for answers on Google. Read through forums. The answer is there, you just need to find it.
Top comments (7)
I think this goes for senior coders too because let's face it if you aren't currently in a process of learning, you are stagnating. As languages and frameworks evolve the optimal way to do things also changes. So if you remember roughly how to do something, you can google-foo your way to the latest, cleanest way of doing something.
Well said! I agree!
Good article and completely agree. I hang out on /r/learnprogramming a lot and see many posts asking "how to learn" or "how to start", to which I think the answer is usually start building something no matter how simple.
It might be a little painful, and there will be a lot of Googling, but I think that's the process.
Totally! There's much to learn from researching on your own and struggling through it. I'm a huge believer in that process making you a better problem solver.
“Understand that you can do it, not necessarily how to do it” true, I think too. But it’s useful know some algorithms too.
“Making mistakes is part of the process”, a true like 42 :P.
So, I think that less is useful in programming. Maybe knowing programming != know the language, right?
That makes sense! I definitely agree knowing some algorithms and such, is of great use. Mostly referencing when you are first beginning, things such as loops, and variables, and passing data, can be confusing for those who have never been exposed to it. A lot of friends, including myself, have gotten hung up on remembering how to do something, that sometimes we forget that you even can do it, in the beginning, haha!
Just do it!... Yes, you can!