Growing up in this generation affords many the luxury of toying with the idea of becoming a good professional programmer. Here the emphasis is on “good“.
As if you know, in the software industry, being a professional programmer does not mean you are good in any way whatsoever. There are loads of terrible programmers out there earning a living and that qualifies them to be professional.
It is true that many desire for a piece of the programming pie. This is especially true for those working their way through the school system as well as those looking for a career change or better yet, those coming out of retirement.
Whatever the case. We have listed down nine tips that will give you a leg up should you choose to follow them.
Ten Must-Dos for any Good Professional Programmer
1. Show interest. You MUST harbor some decent levels of interest in wanting to develop software, build a website, video game, malware, mobile app, or whatever it is you can conjure up in your imagination.
You need this because times come when being motivated may be a huge challenge. Depending on the project, the programming can be difficult so you do not want to be left with a sour taste in your mouth and get discouraged leaving regrate.
2. Read up on a bit on the software domain in which you intend to get involved in programming in. These could be anything from mobile apps, games, embedded systems, websites, Desktop applications etc.
A good place to start your journey to becoming a good professional programmer is Wikipedia. This will save you loads of time. You can brush through some of the things that your domain of interest entails through running through the pages on Wikipedia.
The reason you want to start on Wikipedia is that there are hundreds if not thousands of programming languages out there. Some may not be suitable for the task at hand.
3. After reading up on what domain you are interested in, you will have an idea of the languages which are ideal in that area.
Pick a simple programming language to get started with. In most cases, you want to touch base with the languages classified as interpreted languages, most notably, Python.
This will serve you better as a starting language rather than compiled languages such as C or C++. As a web developer, you might want to go even simpler with starting off with HTML5.
I also think every programmer regardless of this day and age should learn HTML5. It has many practical applications for programmers, designers and writers alike.
4. Read up on, and download the necessary tools you would need to get started with your language of choice. Most of the programming language tools are free on the net or have free alternatives. The complex languages may come with expensive advanced tools but as a beginner, you do not need any of that.
Do not forget to get good furniture. Yes! A good desk and chair will do wonders for you in terms of concentration, health, and good habits.
Make sure you have a good computer that is up to the task. It does not have to be the latest high-performance workstation unless you are doing something like 3D graphics, or other performance applications.
Most programming workstations do not need to have extreme hardware unless you want to run a few virtual machines to host other operating systems and programming environments on the same host workstation.
The most important rule is to avoid using dinosaur computers, obsolete software (operating systems) and hardware. The main reason is that they may be unbearably slow. They are vulnerable from a security standpoint. Modern tools may not be able to run on those relics from the past anyway.
We Kick Things up a Notch
5. One important thing to do here is not to get too lost in learning the programming language. Your goal is to become a good professional programmer. You need to learn the programming concepts, paradigms, the logic, and thought processes behind programming. Learn what it is about structured, functional or object-oriented programming is. Learn architecture such as Model-View-Controller etc.
You will be well assisted here in supplementing your programming practice by reading highly rated books (Amazon has plenty of these), tutorials and articles from various websites.
The above-mentioned sources cover these concepts in more detail to certain degrees depending on the source. All these are available online and can be found through all the major search engines and favorite bookstores and brick and mortar libraries.
Github will allow you to create, join and follow other great open source projects and it will allow you to get used to seeing how other programmers write code.
You can also join in and get actively involved in other open source projects that are not on GitHub. You will also learn how to use source control tools to manage your source code, especially when working in teams or collaborating on a project.
StackOverflow, on the other hand, is a place where you can ask and answer questions, as you continue to grow as a programmer. During coding, you will get stuck several times over the course of your growth and lifetime as a programmer. Nothing to be embarrassed about. We all went and still go through it whether we are a good professional programmer or not.
Should you have questions while at work, it probably had already been asked on StackOverflow. Furthermore, there are also comments and great answers surrounding the question for you to take your pick, evaluate and learn in the process.
7. Get an experienced senior programmer as a mentor. If you are fortunate enough to have a mentor it will be really valuable to have someone to guide you in your quest to become a good professional programmer.
Great programmers also hang out in places like IRC chatrooms so that is a good place to get in and find that willing person tolerate your newbie questions.
8. Learn a minimum of three languages. The more languages you learn, great! There are different programming languages for a reason. learning the different and similar approaches to solving problems will be well worth your time.
This will also help you in your future career endeavors. The reason being is that you will be conditioned to learn and pick up new languages with ease.
Remember, you do not have to be a master at all of them. In the least, you need to be a master of at least one language but have a working understanding of several others.
9. Endeavor to learn the C programming language in addition to the three talked about above. This will allow you to pick up the basics of the more complicated compiled languages.
C also allows you to understand how things work at lower levels in the computer (Closer to the “metal”). These include memory management and what it takes for performance, optimization, and more.
You can go ahead and learn a little of Assembly language and understand how it all relates to machine language, Assembly, and C.
Still, on this, move up to C++ and learn the modern concepts of the language (C++11 or later). C++ is a much larger and more complex language than C or any other programming language in existence.
It will, however, take you years to master. The good news is you can be a successful developer using C++ without being an expert.
Once you have a decent grasp of C and C++, you may want to dig into the core Java language or C# as more sane options to C++.
10. Armed with all the above tips, it is important to get down and dirty and do a lot of practical coding. Programming is more practical than theoretical. Do not shy away from making mistakes. We do learn from mistakes.
Code every day. Learn your programming tools well, be it your compiler, linker, Debuggers, Integrated Development Environment (IDE), Software Development Kit (SDK), Frameworks, host platforms, target platforms, or whatever may be.
Learn to reuse existing code such as those that are found in Frameworks, Modules, and Libraries whether they were written by you or other programmers. It will save you a lot of time, headache, and productivity.
There you have it. Follow the above steps and you will well on your way to being a good professional programmer in no time at all.