TAG | successful programmer
No, I don’t mean how to be a good programmer, but how to be a successful one. Although these two qualities almost always go hand in hand, but not everyone that can program will become successful doing it.
Keep up to date
I cannot stress enough how important it is to keep up with technology. Being in a field where things are always changing at a fast pace, you will not be able to keep up with everything, but you should do your best to keep an eye out for new things. Keep in mind that I am not suggesting that you have to jump on that next coolest programming language. Far from it, I am suggesting that you learn the basics, write a simple sort or binary tree.
If it is a new programming language, understand some of the basic concepts. If it is the next coolest touchscreen coffee mug, find out if it has an API. The point is not to know everything, it is more pertinent to know what is possible.
Be passionate
My career as a developer is not long at all, but I have witnessed many of my peers picking this profession for the wrong reason. While I was in school, I would see many of my fellow students take no initiative in learning anything outside of the classroom. I remember one occasion where a simple regular expression would have sufficed, the student turned into a recursive function that was 30 lines long. On top of that, they take no time in commenting their code or even bother to refactor their functions.
Unless these are extremely talented people, I cannot see any of them becoming successful as a programmer. You have to be passionate. Every line of code is written with the intention that it can be improved upon. If you find yourself copying and pasting, stop immediately and find a better way. Refactor your code, use good variable names, have proper white spacing, indent neatly. Everything should be done with a reason and not just slapped together.
A passionate developer will make his code clean and understandable. Learn to comment your code. “But good code should tell you exactly what it is that you are doing.” I have heard this argument many times, and I cannot say how wrong it is. Comments not only tells you what the snippet of code does, but it also tells you why it’s there. Many programmers do not comment while coding, which is understandable, but good programmers will almost always comment their code after they are done. Dot your i’s and cross your t’s, other developers you work with will appreciate it.
Have side projects
This should be included in the previous section, but I think it needs to be on its own.
Unless you work for a company that does not value employees’ contribution, creativity, and passion, you need to have a side project. A side project not only tells your (future) employer that you can program, but it tells them that you love to program. I have spoken to a few people for tips on how to look for job candidates, the common theme is that they always look for people that have projects that are not school or work related. They want to look for people who eat and breathe this stuff.
Even big companies like Google allow their employees to spend 20% to do things outside of their job description. Or 3M’s more relaxed version, their 15% culture, that allows their employees to do anything they want (side projects of course) 15% of their time. Successful companies realize that by enabling their employees to work on something they are passionate about, they get more out of the employee. As a software developer, the company you work for should allow you to be passionate about what you do. If you are stuck with a company that does not allow for it, you should seriously consider another job. Life is too short to waste it on a job that restricts your ability to grow professionally.
Read programming books
Why read programming books? Isn’t it true that computer technology changes so often that what you know today may not apply tomorrow? That is true in some sense like programming languages. Languages change from year to year or job to job. It is not true for other aspects like concepts. For instance, OOP applies in C++, C#, Python, PHP, and many other languages. Understand concepts and not syntax, although syntax is a plus but it is not necessary. This is why we read programming books, understanding functional programming and design patterns are much more important than any single language. Pick up a book, here are some of my recommendations,
The Pragmatic Programmer: From Journeyman to Master
Code Complete: A Practical Handbook of Software Construction
Head First Design Patterns
These books are not listed in any order since I feel that they are all equally important to read. I just started on Code Complete myself and I find it fascinating.
Communication
As much as programmers hate to write and talk, it is an important skill to acquire. If you are anything like me, your writing probably falls into the bottom (lower?) quartile. That is why I have decided to start up my blog again. It has always been my focus to use this blog as a way for me to improve my writing skills. If you have communication problems, you should do the same thing as well. Writing allows you to verbalize your ideas effectively. Since I am not a master communicator by any stretch of the imagination, I cannot help you much in this aspect. What I can help you with is this observation from my limited experience.
People, in the same job position, with better communication skills and higher vocabulary are nearly always approached first by their management. This results in more responsibilities and when given the opportunity, they are more likely to be promoted. These people are more likely to take on the role of a technical lead because they can effectively communicate ideas with the team.
If you have any ideas that can be improved upon, I am more than happy to hear from you. Or if you think that I am wrong I would love to hear your thoughts.
side projects · software developer · software engineeeing · successful programmer
