A List of Advice for Aspiring Programmers

Sadman Kabir Soumik
5 min readMay 13, 2020
image source: pixabay

1. Frustration

If you see codes and apps that look super complicated, and makes you depressed that you are not that skilful, then please remember those who develops such complex apps have practised decades to produce such kind of apps. All you need is stick to the learning process and make yourself a better version than the previous day. The difference between a master and a beginner is well utilized time.

You will make mistakes. Just don’t be ashamed. We will have buggy apps, and that is normal. Even products that come from Google,/Apple/Facebook engineering team have are not bug-free. SpaceX rockets fail to launch, and Amazon servers crush even with the topmost talented engineers and scientists working in the team. Making absolutely garbage product is also okay in this coding world. These garbage codes and apps will lead one day to a great product.

2. Break down the problem into smaller atomic problems

There is no such thing called a big problem in programming. It is always a set of tiny problems that forms that big problem. Break it down. This is the most fundamental skill a programmer should have. You don’t have one big problem, all you have hundreds of small ones. Think independently for each small problems which will assist in solving the big problem easily.

3. Analytical thinking

As a good programmer, give more time on problem-solving or analytical thinking. This will help you to develop complex algorithms to solve a problem faster.

Don’t get stuck in programming languages and tools. As a beginner, it’s easy to see the languages and tools are the most significant skill, but it’s not. Most of the languages have similar principles. Learn to think which will enhance your analytical ability, and the tools will fade away into the background. Just stick to one stack of tools until you become proficient in it. Do not switch languages and tools frequently. In my experience, this leads to more depression as you will not be expert in anything.

Think of it like a car. If you can drive one brand’s car, you can drive other brands’ car as well. Here, the important thing is to learn driving.

4. Don’t get distracted

Don’t make things complicated than they need to be. People easily get distracted by others. Suppose, person X is learning mobile app development, and suddenly s/he noticed X’s friend learning web development. So, X gets distracted and confused about whether s/he will learn web development or mobile app development.

Programming world has a wide range of work opportunities. You can do lots of things, e.g. iOS/Android development, Web (front-end/back-end), Game development, Machine Learning/Data Science, AR/VR, System administration, Network Engineering and many more.

It is okay to explore everything while you are an undergraduate student if you have not found your favourite area yet. But at a certain time, you need to determine in which area you want to be expert on. Because it is quite impossible for anyone to be an expert in every field of Computer Science. Once you decided what you want to be, do not get distracted by seeing other people’s cool projects.

5. Clean code

Write clear and readable codes along with comments. It will help you to understand your codes even after a decade and let other programmers know what you did. Give meaningful variable names, functions/methods.
Make sure you don’t write one code twice in the same project. Make your codes modular so that your codes become reusable.

Don’t be proud if you write a whole logic in one line which makes the code difficult to understand for many people. Write code in a way that it is easier for others to understand.

6. Object oriented

Point 5 brings us to the use of Object-Oriented programming (OOP). By using OOP, we can provide modularity to the code. It makes a programmer way more productive, improves code maintainability, and data security. Most importantly, troubleshooting. When the codebase grows very large, it becomes challenging to find the bugs where it actually occurred. If you follow OOP principles, it’s easier to spot the bug, as all the objects are bind to a specific class. So, when an error happens, you know where look at.

7. Linux

In the following article, I have explained why Linux is a better operating system, especially for programmers.

8. Take notes

Have you just learnt a new technique, and you are thinking that you can remember that for the rest of your life? You are wrong. You will forget it within one month.

Write down notes on everything you learn. If you don’t want to write a blog on it, it’s okay. But maintain a git repository where you can write down stuff on a markdown, even with the useful code snippets that solve any particular problem.

Backup every code you write in git repositories. If you don’t want others to see it, make your repositories private, but still push every code in git.
Your code stored in a local computer can be deleted at any time by any system crashes.

9. Team up

The skill of collaborating with teams is as important as your programming skill. In industry, you will never work alone. You should learn to listen to your team members, respect them, and have the mindset of accepting any suggestion on code which is better than your ideas is one of the most significant skill you can have to work in the industry. Otherwise, no one is going to like you despite whatever the skill-level you will have.

10. Math

If you build your career on web design/development, you might not need that much mathematics. But, if you want to work in disciplines like Data Science/AI/Machine Learning, Cryptography, you will need to know lots of maths to understand the underlying algorithms. Math is something, which will categorize you between average and best.

11. Ask questions

When you’re in doubt, always ask. You never know what others in your team know. Never under-estimate anyone.

With regards to the point above: don’t ask stupid questions. Look it up on google before you ask people around. There are good chances that someone else has had the same question before and already asked it online. You’ll get your answers there.

12. Understand what you copy from internet

When you copy something from internet, make sure you understand what you are copying. Just don’t stop if your copied code solves your problem. Make sure you understand the code. That will make you a better programmer.

Author

Sadman Kabir Soumik, Machine Learning Engineer @ Chowa Giken Corporation
Connect with me: LinkedIn

--

--

Sadman Kabir Soumik

Artificial Intelligence | Cloud Computing | Back-End Engineering ☕️☕️