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.
As someone who's majority of studies include front-end work, I have spent most of my time with JavaScript. Considering it's my first language, I am not sure how this relates to other languages, but I'm sure they follow similar guidelines.
When initially learning to solve problems in JavaScript, looping over arrays was madness to me. I could barely wrap my head around the concept, let alone a nested loop... are you serious? The concept to me was mind boggling!
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.
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!
Okay, I understand, put in the work - but, where are you going with this?
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..
You can't put the finishing touches on something that isn't complete yet
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!
What's the solution?
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.
Are you saying I shouldn't push myself?
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!
My Final Point
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! :)
Top comments (15)
I dealt with impostor syndrome for months after I started my current job a little over a year ago - I came into a web application project/support lead role after years of working in various network support roles and very quickly felt out of my depth on many things. Due to my prior experience and educational background, the amount of new concepts was pretty overwhelming, and I felt like my teammates all knew so much that I'd never be able to keep up with or understand myself. I started to feel like I deserved neither this amazing opportunity nor the significant positive impact it has had on my personal life.
Over the past year, however, I've learned a few things:
1) always, always, always practice patience - most especially with yourself
2) IT'S PERFECTLY OKAY TO ADMIT YOU DON'T KNOW OR UNDERSTAND SOMETHING!!
3) never be afraid to ask questions
4) it may take some time to learn exactly what questions to ask - this is fine!
5) on a good team, your teammates are likely far more understanding of the fact that you are learning than you give them credit for.
Nowadays I still frequently run into things I don't know or immediately understand, but I don't suffer from impostor syndrome. I've learned a lot, and am confident that I'll continue to develop my skills and maybe even become worthy of the title of "developer" myself someday!
This is super awesome, I love hearing this! This is a great reminder for myself, and others, that the feeling is normal!
I love that too, it's okay to admit you don't know something! This could apply to so many things, in addition to programming! Thanks for sharing your experience, super motivating - keep up the fantastic work, wishing you the best! :D
Thank you - you too!!
Hey Dylan! This post is so true, while reading I felt like I wrote this post 😭😂. I mean every work explains what I felt and still feel, I am still not so good at problem solving and I legitttt do what you said - trying problems on sites and when I cant even think a way to approach the problem I check other students solutions and I legit feel the way you wrote - like How the hell am I supposed to think like that XD is it even for me? But I am working towards this problem. But true Imposter Syndrome is Real and I still deal with it on daily basis lol. But I just know Later or sooner I will get there 🤘 till then Let's keep Crushing it !👊🔥
PS: I legit made Dev.to account to comment on your post XD, I also like writing but never started a blog but I will do now, coz blogs like this helps alot and I would love to be that person to help others like your this blog made me realise I am not the only one Haha. People always say it will come with time and practice but it doesn't help much but your explanation kind of relieved me XD. Okay I will stop ranting now 😂Sorry.
You are doing really great ! Keep crushing it 🔥👊
I'm so glad to hear this, that's incredible! It's definitely easy to get inside your own head, so I'm glad this helps you get away from that mindset! I encourage you to start writing as well! It's a great way to clear your mind, retain what you've learned, and also it's really fun overall! Wishing you the best! :)
I've been doing this for like 15 years or so and it still happens to me. But this sentence on your text:
That's what help me most of the times.
Thanks for sharing!
Hey man, you really resonated with this post. Keep up the amazing work your doing and remember that through repetition of a complex task and the struggle it becomes easier and easier to understand. However, the unique factor is that as a programmer the problem is always changing but the core principals always apply. I have a lot of experience in programming and I can only imagine what someone who is completely knew must feel.
I personally suffer from Impostor Syndrome and it really does not go away you just have to keep telling yourself that with something as complex as programming most developers out there all suffer from that feeling that they might be the right person for the job. The key difference is they don't let those feelings stop them and that is one awesome takeaway I learned from attending Lambda School.
I look forward to reading more posts from you in the future. :)
So true, man! The problems really are always changing, and I've definitely learned that as long as you have secured the core principals down, you can definitely solve whatever you put your mind too.
Imposter syndrome will always be there, but not enough to hold us back from our goals - cheers to the rest of your journey, man! Thanks so much for the support, and wishing you the best! :D
I can't agree more.
In fact, I didn't even know the self-doubting feeling was called imposter syndrome until recently.
I felt bad at collage years ago all the time: I can never learn enough stuff to find my success, and look at all these smart nerds, they got it all, and I got nothing!
The truth is, I don't need to beat everyone to be successful. I only need to complete my own goals to win, one small step at a time. History:
The three steps above gave me a massive feeling of accomplishment. I gave myself tons of credits. My smart college friends must indeed be doing something else cool, but you know what, I got my own hustles now!
That's awesome! Super inspiring, love hearing about moments like this. Great work! Always striving to improve yourself, not comparing to the accomplishments of others. Thanks for sharing, got me pumped! 😄
You spoke about the issue of oneliners.
Incidences whereby a fellow coder solves a problem using a slick one line of code and i on the other hand deal with sphaghetti. Thats my story every day. One thing though that has has helped me scale up is staying in the community, building relationships with fellow devs, getting mentorships from a bunch of different devs, having my code reviewed etc.and finally reading as much code as I can.
Instead of books I now read code in my free time.
And my code keeps improving by the day.
As for imposter syndrome, does that ever really go away ???
I will continue to fake it all the way to the bank.
Nice experience, keep up the good work. That is my take: "no matter what, keep pushing forward; never give up, deal with the devils inside one at a time" 👍
Great way to put it Renato! I live by that mindset, never give up - and definitely, go ONE day at a time. Just need to focus on your current priorities and challenges and push through to the next. Thanks for sharing your thoughts - it really means the world! :)
Thank you for writing this article. It's reassuring and much needed ❤
Super pumped you got some value from it Ebrahim, that makes me happy! No matter where you're at on your journey, keep grinding and pushing forward - you've got this, man! Thanks for the support! :D