This is a concept that I'm realizing more and more each day, and while it may only be relatable to a couple people, I think it is an import thing to remind yourself of.
I pushed through those beginner struggles, as everyone does: variables, loops, new syntax, the old way of doing things, the newer way that was just introduced, arrays, objects, strings, numbers - everything! This was all new to me, and it was overwhelming!
I slowly began to grasp it; however, when I tried to implement what I learned... I was stuck!
Looking at problems on various coding sites, I was blown away at how people even knew where to start when solving a problem. I would look at forums, read what people were saying about the problem, and after consuming hundreds of solutions to these challenges my mind was overloaded like a jelly donut!
The point I'm getting at is: Imposter Syndrome.
Everyone deals with it, I still deal with it. I began to feel extremely unmotivated to even attempt solving these problems. They seemed like monstrosities! How would I ever understand a logical solution to such a challenge?
What I learned was that things will come around. Slowly, but surely. If you study, implement, try, fail, break, fix, make a mess, and clean up - things will start to click, but you have to put in the work!
The problem I faced was that once I learned to solve problems.. It wasn't good enough. I would read other's solutions and saw cleaner, more concise solutions. It was unmotivating to say the least!
Yes, the problem was solved, but someone else did it better!
I'm assuming a lot of people don't feel this way about solving code challenges; however, if you do. Here's what I realized..
This concept could apply to a variety of things, but in short, I would spend more time thinking about how to solve a challenge in the absolute cleanest way possible, that I wouldn't even solve it at all. It was silly!
In the back of my mind, I would refuse to use a
for...loop because I knew there would be a way to use an array method instead, resulting in cleaner, fancier looking code.
While I did realize that it's nice to push yourself to strive for clean, concise, powerful code - you can't always solve a problem like that right off the bat!
Take time to jot down the steps you need to solve a problem.
- What is the problem asking you to do?
- How does the data need to be manipulated?
- List out several ways that this could be achieved.
- Which way can you understand how to implement?
I feel it's extremely important to push yourself to solve a problem with the method that you can actually envision working. When I solve a problem, I'll take a moment to stop and think. For example, say the problem requires looping around the array, I'll think about the variety of options there is to loop through data, and choose what seems appropriate to me.
Don't get hung up on choosing the right method, sometimes half-way through the problem it clicks - "OH!, I should actually be using ________ instead!".
Yet, this epiphany wouldn't click in your mind if you were still stuck at the drawing board trying to plan out the perfect solution.
By all means, I believe strongly in pushing yourself. It's great to challenge your skills and put yourself to the test.
My point is - simply solving a problem is good enough, when you're learning. Give yourself the credit where it's due. Solving any challenge, especially your first few is extremely satisfying. Cherish that feeling, feel proud!
However, if you tend to have a mind like my own, where simply solving it isn't enough at times, then I strongly encourage you to push yourself! Strive for a better solution. Try using a different approach. Maybe solve it in a different language if you know several - there's always ways to push yourself to the next level!
To this day, I am still going over old challenges and polishing them up! There is always room to grow and improve. However, now I have a bit of a healthier relationship with these situations, and I am glad when I can simply solve a problem - Spaghetti code, and everything involved!
I always look forward to polishing up my code, and trying to reduce my code down to a one-liner, super fun!
As I originally stated, this may not apply to everyone, but I'm sure there are a few individuals who can relate to this mindset!
Learning to code is not easy, in fact I am still learning every single day. Always learning new things, constantly pushing myself, and attempting to venture out of my comfort zone. During the process of learning a new skill, like programming, it's extremely easy to be hard on yourself for not being the best, but that's okay! With practice, repetition, and consistency, you'll get there! Yet, it does take time.
So, be sure to give it your full effort! Push yourself, try your best, take a break, come back with fresh eyes, put in that extra 10 - 15 minutes, you know more than you give yourself credit for! And most of all, have fun! It's code! It's probably one of the most enjoyable puzzles to solve!
I'm curious to hear about everyone else's challenges they've encountered while learning to code, and what helped them push forward! Feel free to comment below, I'd love to hear about your experience! :)