How to be an Effective Programmer
Note: Everything I write here is just my personal opinion. There is not any Hard and Fast rule to get better, except learning, implementing and not giving up.
Blogging:
It's not about how many programming languages you know or which language you prefer to write your Billion Dollar Idea. It’s more about how to present your Ideas to coworkers. Blogging is a good way to better your communication skills and convey your message to the world. Remember! Blogging is not your primary goal. Your primary goal is to improve your communication skills. So does not matter how good or bad you do, just keep doing it. You will defiantly get better but don’t let blogging get into your mind. Remember the purpose.
Why Should you work free:
All good things are free. Almost all Servers are running on Linux, and it's free, Apache is good for hosting websites and it's free. Many services are services that are built by people like us and donated to people like us as open source. Open source is a Huge community, by contributing to it you will not only do something good for society but also connect to a diversity of people around the world to learn from them. and you can also show off your work to your next company.
Sharpen your Saw:
You can get an old saw and start cutting trees. It will take you 2–4 hours to cut it OR you can take 20 minutes to sharpen your saw and cut the tree in 1 hour. It's up to you, but I will prefer the later. Before you start typing code just take a look at the approaches and then choose the most efficient method. Make sure you have your tools ready and sharpen before jumping into your IDE.
Go Fast if something comes in way turn:
Google started building chrome in 2006(rumor started in 2004) and released it to the public in 2008. On the other hand, IE production was slow and now it's gone. Google started the production and went as fast as they can go. When they find something on the way they just turn their ride and find another path to reach the point. The strategy was “Go Fast and if something comes in the way turn”.
Multitasking Myth:
Some people think they can do multiple things at a time and it will increase their efficiency but it is not true. It has been observed that Multitasking reduce the efficiency and IQ level of a person by 10 points(double that of Weed). Multitasking makes you stupid instead of a genius. So remember the Golden Rule “One Problem at a time”. It does not mean you can’t work on multiple projects at once, just remember when you are working on one don’t think about the other.
The First Rule of Programming: It’s Always Your Fault
Yes, there can be a bug in the next version of your favorite IDE. But before coming to that conclusion, just re-read your code. And then re-read it again. It's OK if it’s your fault we all make mistakes and fail daily (as programmers that’s the only thing we do 😁). But before you start thinking about tools just remember there can be a mistake in your Code. Get another mind to read your code. Ask a coworker to work with you and figure out the problem.
Best Code is NO Code at all:
Code is your worst enemy. The more your code is the more complex your software become for the developers that follow you. It does not mean you don’t write code. Write less amount of Code. So, Code is not your enemy, you are, when you write 100 lines of code to find even and odd integers in an array. So Code less, Code Clean and Code as it’s an art.
Learn to Read the Source:
Documentation always has been a weak suit for developers. Documentation never tells you what it actually does and sometimes documentation is not enough. In that case, you should know how to read Source Code and figure out what it does and how it does. Read it, refactor it — if needed — and understand it like a wizard. It will not only help you with your software but also help you to understand the libraries you are using
Control your Code:
Hackers know one rule
If it is Running on your Machine, It’s your Code.
And you must know your code and control your Code. So when you have spare time, grab the source code of vsCode from GitHub and start reading it, if you find to improve it, implement it, use it for yourself or create a PR so you can be a Open Source contributor.
Solve your Problems by yourself:
A lot of time, we ran into a problem and then ask our coworker to help. It’s a good thing no one should code alone. But before you ask your friend. You should try to explain the problem to yourself. In most cases the problem is simple and can be solved by just looking it from a different point of view.
Know “Why” are you building:
If the Goal is clear, path become easy. When you are building something always think what you are building and why are you building. How will it impact the society and how will I introduce it to society. Who will use it and How will it help the user.
Performance is a feature:
Performance is a feature in software. A delay of 1 second in Google search results can cause 20% of internet traffic. So for Companies like Google, Amazon, Apple and Meta performance is a big issue to look at. This issue can be resolved by better hardware, compressions, Data Structures and Algorithms. Always Love your users and give them the best you can, best performance, best UI and best supporting system.
Solve the Problem, not the Language:
It’s easy to find a Coder, but not Problem Solver. A person who can code in Python but can’t declare a variable in JavaScript is not an efficient programmer as compare to a person who can solve coding problems regardless of programming language. As a programmer, we should think about problem solving and not about writing code in a particular language.
How to Hire a Programmer:
Hiring a programmer is a difficult task. Once you hired a person, your company and its product will start depending on it. But remember we can not judge a person completely in just one or two interviews. Portfolios are good ways to see a person capability. Other than that, you can see LinkedIn and other Social media platform to see how a person is performing and contributing to the developers community. As OOP was a good concepts to work in past, but we know OOP is not the future. Now more languages and Designs are using functional approach to solve problems.
I have seen a company hiring a fresh graduate for position that required 5+ years of experience and he performed very well. So I will say
Years Experience is a myth…
One person required 6–12 months to get comfortable with a language. That should be the only experience required for a Job after that one must be hired on the bases of their social and problem solving skill.
Team Work:
They say, “Team work is Dream work”. Whole team must work together to achieve the goal effectively and more. You don’t have to Love your every coworker. Just work with them because you depend on each other.
Leader must be able to explain every expect of the project and the best way of explaining is leading with Example.
Having a email list is a good thing. But It will better thing if a leader start with a suggestion instead of an order. Instead of Ordering, leader must go to the programmer desk and suggest him to do. There is no way he say NO.
“Love thy neighbors”, encourage them and help them in their tasks as well. Collaborate with them you will not only earn some respect but some knowledge as well.
Code reviews is a bad thing. One person write code and other tries to find mistakes in it. It is not a healthy working approach. On the other hand, Pair Programming is healthy way of achieving the same results.
Your Batcave:
Preparation is the half victory. Make sure you have suitable equipment for the work, a good PC, Keyboard, Mouse and comfy chair. Multiscreen increases your efficiency by a good extent. Lightening is also an important component of the workstation, Dark Theme is a good choice for both IDE and Room, but all dark is also bad. There should be a good lightening. Too much light and too much dark. Anyway its a personal choice.
Think like User:
When you are developing a software thing like an User. This will give you a good perspective of what you should you build and where should you present something.
UI is the application:
Most users care about Easy and Simple UI. Three seconds delay with loader is better than One second delay with a white screen. User don’t care about how much features does backend has. They don’t care about if it takes 0.5 seconds to load or 1.5 seconds to load data. All you have to do is make sure User stays on the page until data is loaded.
These a few things that I think will help us to become an effective programmer, I am looking forward to all your inputs. Feel free to give you suggestion.
Happy Coding… 😊