How to suck a little less at programming...

Ayush JaswalAyush Jaswal
8 min read

In the era of AI-generated articles, I have decided to forsake my sanity in the name of authenticity. Please take whatever I have to say with a pinch of salt!
— Me, probably regretting this decision later.

Well, if you are at a stage where you have no idea of how even programming works, then this post probably isn’t for you. It’s good for someone just starting but has no experience with programming practices, or modularity, why you should care about others while writing stuff, and most importantly, how to build or work on big projects.

Before starting, I must tell you that whatever I am writing is based on my experience and personal biases. Though most of the things I am about to present are widely accepted ideas, I do have a few insights I learned throughout my 4 years of college, 2 internships, and by building many small projects and many big projects in multiple domains, such as Web development and AI.

Tip 0: Just f**king start

Don’t just stand there watching videos about which language is the best and which one you should learn to make an infinite amount of money. There is no universally best language in the world. Every language ever created was created because there existed a shittier version of its spiritual predecessor that sucked at a particular job. There are always people who claim that Python, Go, or Rust are the future of programming, not knowing that 90% of the internet uses C/C++ one way or the other. More than 80% of space work runs on C/C++. Over 95% of the internet uses JavaScript(no matter how trashy it is). The majority of large organizations are heavily reliant on Java. And there’s a guy in some corner of the world who uses assembly to write games.

The best language is the one that gets you started. So just pick one and learn it. However, it is advised that you pick an easy language in the beginning. And the most intuitive one that I’ve come across is assembly. Like it was created in the 60s, don’t ya think you are more advanced than people from that time? Ok, jokes aside, Python is indeed an intuitive and easy language, so it is generally advised to start with it. However, I recommend people start with C as it will help them learn a lot more about the computer architecture and how data is stored and accessed. It’s just a suggestion, anything works, though.

Tip 1: Write bad code

When you are just at the beginning of your journey, you should not care about what you are writing, especially if you are working on small or personal projects. The only thing that should matter to you is to be able to implement what you have decided or thought. If you spend too much time thinking about how to write good code, then you’ll miss out on how to write code at all. Write code, bad code, ugly code, poor indentation(don’t if you’re using Python😛), poor spaces, poor everything. Write everything in one file, make a separate file for each controller, your variable names don’t need to make sense, and your function names don’t need to make sense; what should make sense is how your code runs and executes. You should be able to dry-run your code and achieve the desired results, even if the script looks bad and is hardly understandable.

Tip 2: Write good code

Contrary to my previous suggestion, this tip holds only if you have been through Tip 1. You need to learn to write good code. Once you know how your tools work and how you can use them to build things you desire, you need to learn how to maximize efficiency and modularity. But why do we even need to learn to write good code?

  • A good code allows you to make your solution/process understandable to others. This will help you in bigger projects where you have other people collaborating and contributing to the problem.

  • A good code allows you to write less redundant code. You should only define your tools once and use them later as much as you want. If you have to build Python every time you want to build something in it, then it’d be doomsday for the entire Silicon Valley.

  • It will allow you to structure your project efficiently and intuitively. Models go into one place, Controllers go into another, so on and so forth. Everything you create has a category, and you structure your code base according to these categories.

  • It looks beautiful

Now these things will come to you little by little, piece by piece. You can’t just wake up one day and write a 100% modular code, with perfect formatting, that is understandable to everyone and looks beautiful. And that is why you need to write a lot of bad code before you write good code. When you write bad code too many times, you will realize the importance of writing good code naturally. So, please write a lot of code, and build a lot of things before you decide to hammer yourself in the toe with the responsibility of modular code and collaboration-worthy code with GitHub Actions and an email service for a simple to-do list.

Tip 3: Don’t use AI

If I were to give this tip to people from a decade ago, they would’ve assumed me to be a madman. There is a recent study done by MIT on “the Impact on our brain using ChatGPT,” and as I expect you to already know, it’s not good. AI has eroded our critical thinking ability. Not that I am saying it’s not beneficial, sure it is for many professionals and people who already know how to code, who know their stuff, and the ins and outs of their job. But to someone just starting, this serves as a lobotomy on their programming brain. When you have a personal assistant that spoon feeds you solutions, with exact code to replace, and with the ability to solve complex tasks, it makes you reliant on an entity that never lets you learn how things work.

A decade ago, people had technologies way worse than ours, and they still got the job done. They had no ReactJS or NodeJS to write code, they had to build stuff from bare bones. And people suffer from bugs and problems all the time. But they figured out ways, they skimmed through the internet to understand the problem and the underlying cause before figuring out the solution. If a solution gets thrown into your face every time your project snarls, then you can never learn the art of figuring things out. You need to learn how to read documentation, and how to use Stack Overflow, and when nothing works and you’ve spent a day or two on the issue, then and only you are allowed to ask AI(though I’ll still suggest you try figuring it out with your friends).

Tip 4: Don’t follow mAsses; Keep evolving

In the early 2000s, there was a dotcom bubble. Everybody wanted a website. Everyone thought web development was the future of programming. In the early 2010s, people started building mobile apps. Everybody wanted an app. And currently we are in the early 2020s, and boy-oh-boy, what a start it has been. Everybody wants to integrate AI into their application in any way possible.

Sometimes when you open the surf the internet, you get a strange feeling of missing out. Like you are behind everyone, and everyone has somehow mastered AI and is now building AI apps and earning millions. Therefore, there have been a myriad of people who are exploring, learning, and building AI that will help them land a job. Not caring about the fact that maths is the last thing they understand, what the hell is even a transformer, and believing they know how to code generative AI by making a ChatGPT wrapper.

Surely AI is a booming field, and it will help you land a decent job, but that is only because the current job market desires it. It’s the new trend. And trends change, sometimes in years, sometimes in a night. You can never predict what new trend will pop up, so the best thing is learning how to adapt and not follow the masses. It’s a simple math of economics, if everyone starts doing AI, then isn’t it natural that there will shortage of web developers (and please don’t say that AI can build websites, please).

Eventually, even this trend will die out and something new will emerge, maybe quantum computing, or who knows what. So, the best possible way for you to be job-ready is to be able to adapt. Enter a field, learn it, master it, and give it your all. Once you master it, you will eventually know its cracks, these are opportunities, and they will allow you to stay ahead of the curve by expecting the unexpected. As the field evolves, so should you. But to change your field completely because of the job market is advice even Ryan Gosling wouldn’t give. Grow into your mastery, don’t hop around like a rabbit. Rabbits don’t win races, turtles do. Be a turtle.


If you suck at programming then it’s not necessarily your fault. Sometimes, there are other things wrong as well—environment, peers, or even teachers. There are some factors in your control, the knobs you can tweak and adjust, but people you can’t.

Try tweaking the knobs you can adjust to write code that sucks a little less, and the ones you can’t control, are probably not worth caring about. Have command of your strengths so well that no weakness can affect you.

I hope that this article provided some insights about strategies and stuff you can implement to become a better programmer. Hope you will benefit from it in any way possible!

0
Subscribe to my newsletter

Read articles from Ayush Jaswal directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Ayush Jaswal
Ayush Jaswal

I write code 🧑‍💻. I like coffee ☕. I like turning coffee into code💡!