People responded awfully well to my last post, 3 ways to drastically improve your programming skills on your own. Since there are many things you can do to improve independently, I decided to add 3 more things you could do to develop your Programming skills. These suggestions are expected to be more hands-on and to get you actively thinking.
3 Ways to Drastically Improve Your Programming Skills On Your Own
1 Solve Problems Logically
Programming skills are supposed to solve problems. Many people get too hung up on the intricacies and syntax of a specific programming language. While it’s important to know various tricks you can do using a programming language, it’s better if you could actually solve a problem – even if it means going a little bit old school.
I will never forget the day I sat down with one of my friends, Michael. The plan was to do a peer coding session. He had 5+ years of programming experience so I was buzzing. As I reached for my bag to get my laptop, I looked over to Michael. He neatly placed his notebook on the table, then his pen, but no sign of a laptop. I was dumbfounded. That day, we spent about 45 minutes understanding the logic before he pulled out his laptop and spent around 15 minutes coding. It was my biggest programming breakthrough.
Solving a problem on paper is like sharpening your ax before cutting down a tree. It severely enhances your programming intuition. Other things you can do to develop your programming intuition involve:
- Picking out the key information in a problem statement to understand the possible routes you can take, your constraints, and the end goal
- Solving problems without using or thinking about code first
- Identifying the situations in where your solution fails and its implications
- Deliberately seek to solve problems every day
It’s quite easy to fall into the habit of diving straight into code. I always used to tell my friend that I could write the code if you told me the answer to the problem, but I couldn’t come up with the actual solution myself. His pen and paper process significantly helped me. Solving problems on paper before writing code is a good habit and as you get better, the time you spend solving problems will reduce significantly.
2 Learn Data Structures & Algorithms
It’s easy to put things off when you are self-taught. For example, I bet you’ve avoided the dread of learning Data Structures & Algorithms (DSA). Guilty! We have all done it, and some very experienced programmers argue a good case that understanding DSA is not always necessary to solve real-world problems. Besides, it’s complicated. Why would I want to complicate my life more than it already is?
Look, I’m not saying that you can’t become a programmer if you don’t know DSA. You can probably go somewhat far in your programming life but the truth is subjective and debatable. However, what is unquestionable is that becoming a BETTER programmer involves having a good understanding of DSA.
The reason is simple. DSA strengthens your logic; it develops your intuitive logic muscle – if there is such a thing. Take a look from the algorithm’s perspective. Algorithms are merely a set of steps that are followed to solve a specific problem. We all use algorithms every day, but typical of tech nature, we used a really complex word to describe our simple morning routine – wake up and get up, do 5 push-ups, take a leak, brush teeth, go to the gym, etc.
The data structure perspective is no different. This phenomenon merely describes how the inputs and outputs are going to be presented. Using the aforementioned morning routine example, the initial state of my toothbrush will affect how I will brush my teeth. If I had to find bristles and attach them to a wooden stick myself then the processing I would follow is different from if I purchased a toothbrush from the local supermarket. The main gist with data structures is that different formats of data demand a different type of processing.
You may decide to pay for a course to learn Data Structures & Algorithms, but YouTube has some very great teachers. And, you can practice your skill by taking on some challenges on HackerRank: 1) Data Structures 2) Algorithms.
3 Write Pseudocode
If you’ve ever read a research paper about a machine learning algorithm, you’ve probably come across pseudocode. In some respects, Pseudocode is a type of programming language but its syntax is universal. Thus, all coding logic can be written in pseudocode and easily translated into another specific programming language.
Wikipedia describes pseudocode as
"a plain language description of the steps in an algorithm or another system".
Essentially, pseudocode is structured in a way uses the structural conventions of a typical programming language but is intended to be read by humans instead of a machine. It serves as a method for detailing your thought process to others instead of to a computer. This is the catch!
It’s not as hard to detail your thought process to another person, right? They say the best way to learn is by teaching. Therefore, we can start by using pseudocode to imagine we are teaching our thought process to our imaginary friend. Once the intricacies are drawn up, it is much easier to translate your thought process to a language that a computer could read.
How To Write Pseudocode is a good place to start learning more about pseudocode.
Final Thoughts
Focusing on things you can control is the key to building your programming skills. You can control how much effort you put into developing your skills. Evaluate the current amount of effort you put into becoming a better programmer and that would give you a rough idea as to why you may be struggling. It also helps to identify where you’re struggling (i.e. is it syntax issues or logic) – this will give you a clearer indication of what you need to work on.
Thanks for Reading!
If you enjoyed this article, connect with me by subscribing ** to my FRE**E weekly newsletter. Never miss a post I make about Artificial Intelligence, Data Science, and Freelancing.
Related Articles
How To Cultivate A Programming Habit