Learning How to Code, but Slowly
Learning how to code is a massive undertaking. Even saying “how to code” is vague enough. A while back I told myself that I am, in fact, going to learn how to code, whatever that meant. I took on a couple algorithms, watched some videos, even figured out what an IDE was, but I didn’t seem to be learning fast enough. I decided to take a bootcamp prep course to help speed up my process. It was a 4 week intensive learning Javascript basics through algorithms. It was fantastic, and by the end of it I was already on my way to becoming an actual developer! is how I wish I could end this post, but all too obviously, it does not end here.
It went from “reverse a string” to “fibonacci using recursion” real quick. The endless hours I put into how these things work seemed to get me nowhere. I would finally feel like I understood something only to have a code challenge or new project immediately remind me that no, I do not understand something. It took me a long time, while simultaneously trying to block out the noise of self-doubt, and attempting to ignore the development community constantly reassuring beginners that “it might not be for everyone”, or “you think that’s hard wait until you learn. . .”. It all seemed so daunting. Eventually I did learn enough to get into, and graduate a bootcamp. Now I’m on my way to becoming an actual developer! is still not how this going to end.
Everyone who makes the decision to take on the challenge of coding as a career is told about imposter syndrome. It’s persistent at all times, and it makes trying to learn that much harder. You see peers learning algorithms for tech interviews at unbelievable speeds. You say to yourself “if I can just be like them” and you say “I’ll try to learn 10 new algorithms a day, and I’ll be amazing at them in no time!”. You are wrong. You cannot learn 10 a day. You try. You fail. You hear that “it’s not for everyone” voice again, even though you have been working hard and sacrificed a lot just to get to where you are now. Now I’m on my way to becoming an actual developer?
The most basic algorithms are easy for a reason. There are a few steps, and only a couple good ways to go about solving them. You can grasp how they work. Once you start adding complexity the steps and ways of solving grow exponentially (there’s probably an algorithm for that). It’s easy to memorize “empty variable, loop, += to populate said variable, return result”. You don’t need to know why it works it just does, and that’s the key difference, it’s not how it works, but why. I could tell you how a ball rolls down a hill, but I could not tell you the actual physics behind why it does, but I could probably figure out a bunch of other problems if I did (i.e. why a large flat object won’t roll down a hill).
I want to be like those peers I spoke about. I want to do 10 algorithms a day, but that’s not the way I learn. I need to know why before a concept finally makes sense. I decided that if I can’t do 10, I know I can do one, and instead of just finding the right answer, I would look at as many answers as possible. If one way doesn’t make too much sense, perhaps a different approach points me in the right direction. Suddenly, as I approached a mock technical interview, I wasn’t so nervous. No, I still can’t solve a lot of algorithms, and yes the nerves will always be there, but truly understanding a handful of complex ones allows me to think on my feet. “I haven’t seen this problem before, but I know I have used a specific function to manipulate data similar to this.”
It takes time, and a lot of patience with oneself, and it’s fair to say that anyone who has just learned how to reverse a string is on their way to being an actual developer. The hardest problem I’m still working on to date has nothing to do with coding at all, but learning what the best way to learn for me is. It’s ok to take it slow, regardless how much pressure your under to learn everything right now. It’s not a race, and it’s better to understand why than how in the long run. You got this. Happy coding!