How do I know if I am going to be a great developer? I am struggling!

Michael Choi
7 min readApr 26, 2020

--

Photo by Priscilla Du Preez on Unsplash

If you just started learning how to code and are struggling, I understand that feeling. I’ve been there also.

I’ve learned how to code when I was 11 years old and when I reflect back, I really really struggled. I spent probably hundreds of hours tweaking my friend’s codes before I even realized remotely what I am doing. I dabbled with my friend’s codes and merely copied and pasted a lot of his codes, changing some numbers here and there to learn how things worked.

It took me weeks to even understand how if/else statements really worked, how you could use arrays to build games, and how functions really worked. I have also spent months trying to understand how pointer worked and it was super difficult.

My friend on the other hand, who learned programming when he was about 7 years old, was a genius and he would whip out a whole new game from scratch in a single day! We would hang out, and in a single evening, he could whip out a game like Street Fighter, a small RPG game where the player could go up/down/left/right, visit homes, fight monsters, etc. I would then copy his codes and study his codes for what seemed like months, always wondering if I will ever get to his level one day.

Watching my friend, it seemed like everything was magic. For codes that I spent days trying to troubleshoot, he would look at it and in seconds, know exactly what was wrong with my codes and how to fix it. Watching him was amazing but also I must admit that I was jealous how smart he was and again had this dark feeling inside me whether I will ever be good enough.

All of this happened while I was growing up in Korea. Then about two years later, I moved to U.S. During that two years, I kept coding even though I was no near as good as my friend. Now, a few interesting things happened during those two years.

One is that after about 6 months or maybe even about 9 months of coding every day for hours each day, I had a breakthrough. Somehow, my brain got re-wired and instead of thinking the normal human way, I started to think like a computer. My brain started thinking in if/else statements, loops, arrays, functions, etc. This switch was dramatic where the day before that moment, I couldn’t really think like this and all the sudden, somehow, my brain was re-wired and I could think this way.

Whereas before, I couldn’t really imagine something and in a single attempt, create what I desired, after a few break-throughs like this, I was able to get closer and closer. In each aha moment like this, it almost seemed like I got 10 times better than the previous aha-moment. After a few of those, by the end of my two years, I could think of something and I could in a very short amount of time make what I imagined a reality. This was a very interesting experience for me.

There were many nights where I have wrestled with how to build something for days and while I was sleeping, somehow my brain figured a potential solution, which caused me to wake up suddenly, try that out on the computer, and being surprised/awed that it actually worked. This brain re-wiring process I think overall took at least 12–18 months and possibly even longer.

Fast forward, I ended up moving to U.S. when I was 14 and kept programming. I continued to make some computer games when I was in high school including games like Tetris, Final Fantasy, and some 3D animations that I tried to using some math that I learned.

In college, I also took a few computer science courses. What was interesting was that because in a way, I paid my dues through years of struggle, and as my brain was already wired to think certain way, all the CS courses were so easy for me. I didn’t struggle and when I saw other CS students who were struggling with algorithm, it reminded me of my days when I was also a teen and struggled with trying to learn how to code.

Fast forward, I’ve come to found a coding school that fortunately has grown to now help thousands of people each year. Now, whatever I can think of and imagine, I know I can create, because I have done this over and over again. It hasn’t been an easy journey and definitely not a short journey, but it has been a rewarding experience.

Why am I sharing this story with you?

I think there are a few lessons here that if you’re willing to listen, I would like to share.

Insight #1: Learning how to code takes time, lots of time…

Learning how to code is a lot like learning a new spoken language. Your progression doesn’t grow linearly. It’s not like each day you study Russian, you get better 5% each day. It’s like you don’t feel like you are getting any better for months and all the sudden, somehow your brain gets re-wired and all the sudden, what people are saying makes sense to you!

I too had this experience when I moved to U.S. When I came to U.S., I didn’t speak English that well at all and nothing that teachers or classmates said at school seemed to make any sense… I was devastated. The first 4 months of school was really difficult and I slept only a few hours each day trying to keep up with homework for my classes. My first semester, I did so bad that my brother had to talk to one of my teachers to find a way where I wouldn’t fail the class. Then summer break happened where for three months, I basically just played and de-stressed. What was interesting was that after the summer, when I went back to school, somehow my ears “opened” and I could understand what people were saying! It was almost like the light-switched turned on. Learning how to speak English better took me years and I still struggle to this day, but it was an interesting experience to see how my listening skills for English was 0 for months and all the sudden up to say 80–90 all the sudden.

Learning how to code is really like this too. When I reflect back in fact, my coding skills and my english skills had a lot in common. For days, I felt like I wasn’t going anywhere. I felt like I would never be good enough. But I persisted and everyday I was exposed. Then all the sudden, my brain was somehow re-wired and what I couldn’t do what seemed like just the other day, now I could do.

What this means for you is that if you have just tried to learn how to code and you haven’t spent anything more than 6 months, I think it’s too early to give up. Learning how to speak an entirely new language (whether it’s programming or spoken language) takes time and on average, I think it takes about 6 months of every-day practice before your brain is re-wired.

Insight #2: Each aha moment will make you better

I have written another article while I was at Coding Dojo about this topic, so you may be interested in reading that article also. In essence, when your brain goes through this “re-wiring”, you end up thinking a lot more clearly and more logically. Reflecting back, I think I had 2–3 aha moments like this before I could program at the level I am currently at. Again, this learning is not linear and when you have these “aha-moments”, your ability to program will sky-rocket. Please don’t give up as your “aha” moment may be very near.

Insight #3: Please don’t be judgmental including being judgmental on yourself.

Maybe it’s because it took me so long to learn English (compared to other people I’ve seen) or because it was so hard for me to learn to speak English very well, but when someone is judgmental and judges whether someone is a great developer or not, especially when that person just started to learn to code (which in my mind is anyone with less than 1,000 hours of pure coding experience), my body cringes.

To me, when someone evaluates a new coder and says whether you’ll be a great developer or not, is really similar to taking a two year old and based on their speaking ability at that moment judging whether that baby is going to be really smart or not. It’s a non-sense and some people just bloom late. A baby who speaks English when he/she is 18 months doesn’t necessarily mean that baby will grow to be smarter than a baby who spoke a sentence when he/she was 30 months old.

While we have learned not to be judgmental on kids and children, it’s sad to see many judging others including oneself on one’s potential.

If someone spoke to me when I was 14, a few months after I’ve immigrated to U.S., and told me that I would never speak English that well because I am not as smart, I would have been devastated. The sad thing is I probably would have believed in that person.

Anyway, whenever you find someone judging pre-maturely on one’s potential including whether someone would be a great developer or not, please think back on whether you would say the same thing to a two-year old baby. Just like how a baby has unlimited potential, given proper environment, I do believe everyone can learn how to “speak” coding also.

Concluding thoughts

I am proud to say that I think I am now a really good coder. It took me years and a lot of hard work and patience, but now I too can “whip out” games in a single day. :) . I am proud to get to this level and I am also glad that I had people who supported me and encouraged me, and also grateful that I didn’t have people around me who told me I would never make it. After all, I think I learned how to be a great programmer. It just took me longer than some other people.

--

--

Michael Choi
Michael Choi

No responses yet