Skip to main content

Command Palette

Search for a command to run...

My Honest Experience with Programming: Times I Felt Like Quitting

Published
7 min read
My Honest Experience with Programming: Times I Felt Like Quitting

I am going to be very honest with you all in this article; this is like a monologue I am writing for you all, so that just in case you are on the verge of quitting programming, you can read this and perhaps change your mind, and also know that you are not alone struggling in this competitive world of programming.

How It All Began

To begin with, I never knew that programming would become my passion. Never. I vaguely remember starting with learning Scratch in school, and used to be amazed as to how blocks of code could do big tasks like a sprite speaking, or motion, or how those blocks could contribute to big things like games, stories, etc. I used to bury my nose in my Computer Science textbook, learning things like Input-Output Cycle, CPU, uses of a computer, and so much more.

But times changed, and I started learning Python. Apart from learning that along with HTML and CSS in school, I started learning coding on my own since I was fascinated by how fast coding had become popular and a dream profession for all, and I was curious to know how to write code in such a way that it helps in building complex things. So I remember opening up YouTube and starting to search for tutorials that teach coding. Then, I found pure gold - a marvelous channel called SuperSimpleDev that teaches web development from scratch so simply and easily. I got so excited when I was able to write my first JavaScript code that created a pop-up on the screen that said “Hello” to the user.

But that happiness was short-lived. This may sound stupid to you, but I never knew that finding errors and fixing it while coding (debugging) could be so complex and frustrating. The hard part of programming, which can only be discovered by the coder, is always debugging, and when I uncovered my first error while learning to code JS, thankfully, after a lot of thought, I was able to fix it. But when the second error came, well, I would love to tell you that I was able to fix it, but sadly, that was not the case. I gave up JS. I gave up programming entirely for a few months, because I was so angry at that error, and had the impression SuperSimpleDev was cheating on me or something (no offence).

Years passed and I remembered hearing that one of my classmates was learning Visual Basic, and upon hearing it, I recalled the short time I spent in learning JS. Guilt boiled up inside me, and I reproached myself for quitting that course, just because of a stupid error I was unable to fix.

The Transition

I decided to start off simple with my coding journey, and swore to myself that whatever happens, I will not give up programming because I knew that I could do well in it, and no matter how many errors, self-doubts or pain I would have to endure, I would have to think of it as part of the process. I grabbed a few notebooks, opened up Notepad in my laptop for taking notes, and returned to YouTube to search for a coding course, this time with a fixed aim, on Python.

I was lucky enough in this phase since learning Python from YouTube was not as disastrous as learning JavaScript earlier. I learnt the ABCs of Python from a splendid channel called BroCode, which continues to be popular and loved till this day because of its crispness and simplicity when it comes to teaching concepts.

My self-confidence soared, I beamed with pride when I saw the Python code I had written after each session. I thanked God everyday for showing me a path — the right path in this second try.

A Landslide in Life

Months later, I heard about CS50, a course taught by Harvard University, from a relative of mine. I found its home page in EdX and was delighted to see it. Without thinking, I stopped BroCode and enrolled in CS50x, and immersed myself in watching the lectures, understanding the material, and solving the problem sets. But again, I saw struggles and self-doubt overpowering me at times. I kept reminding myself of my promise, and although it kept me going for a while, I was tested badly when I reached Week 3 in CS50x.

I was staring at my messy C code, and fighting an inner battle. I had not gotten a full score in that assignment (a mere 16/27). I knew that in this part of the course I had to be kind to myself and not expect a full score, because I knew that it would exhaust me mentally and physically. So I literally ploughed through the course, my mind begging me to stop, and me sternly telling my mind to co-operate.

But I gave in when I had reached Week 5. I had literally given up when I was doing the final assignment of Week 5 since I wasn’t able to pass a single test in check50 and I was broken inside, since I didn’t have any solution to the coding problems I was facing, and very stupidly, copied code from an outside source, disobeying the academic honesty.

That incident in life is something I will never forget. It’s been so many months, but that mistake I made had literally shattered my confidence. Yes, I know I am sounding sensitive, but honestly, I am sure many of you must have gone through this phase, so called landslide, right?

The Healing

My guilt was boiling when I looked at the beautiful CS50 certificate I received in the end. I am currently doing CS50P, and let me tell you, this course is a lot simpler than the one I did earlier, but not easy throughout, I do have to go through struggles in the middle, but that incident was a warning for me to not do tough things in life by cheating.

I now understand why school authorities always punish students gravely when they cheat in exams. It’s because the staff know how valuable the knowledge they are getting by writing exams will be helpful for them in this world in future, and how much damage they are doing to themselves by cheating and not attempting to write answers on their own. And the knowledge isn’t the only thing useful — it’s the struggle too. The struggle is something that can weaken you when you are facing it, but also give you a heap of confidence, as you are able to tell yourself that:

Hey, I did it. I solved something difficult.

And I did make a grave mistake by cheating in CS50, because by doing that tough assignment, I would have gained not just knowledge but the confidence post-struggle as well.

So, my geeky peers, read whatever I have written carefully, and remember: Programming is like a roller coaster. There will be good days and bad days. There will be days where you will be leaping in joy about your room, delighted that you have solved a problem set. There will also be days where you will be broken and crying, seeing the encrypted-looking error messages in your IDE terminal, with no clue how to fix it. But the clue will come. It will surely come. Just have the belief that you are capable of solving your issues, and look forward to the joy and immense satisfaction you will experience once you have sailed through those stormy waters (in this case, the debugging struggle).

And, let me add, if — God forbid — you have made a similar mistake to mine, don’t beat yourself up. Our mind makes us do idiotic things at times to protect us from harm because of pressure, but it’s our job to become the master of our mind — not its slave. Your life is in your hands — and the choice you make with your life is in your control too.

I wish you all the luck in the world with your programming journey. Make the ship you are using to sail through the stormy waters of your programming struggles strong. Don’t let your ship get a large hole in its body so that it doesn’t sink, and make sure that its sails are in good condition too. Take care of your ship — do not let it sink.

If you know deep down in your heart that you love programming, don’t sacrifice that love by quitting. Struggle is part of learning every skill, and don’t let it overpower you by quitting. Keep going, and know that there are millions of people behind you, also struggling — but still persevering.