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?
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.
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!
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.
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.