Standing out in the world of Software Development is never just about being able to write good code, it is also about working well with other programmers.
Everyone who earns a degree in Computer Science will learn about things like Data Structures, Algorithm Analysis, Big O notation, and so on. But the one thing we fail to learn as developers is how to collaborate. Of course, Hackathons and Programming Competitions do exist to help remedy this issue. But what about those who have never been to one before? This post will provide some insight on the realm of collaborative programming and how you can discover your own programming paradigm.
Hes the kind of programmer everyone looks up to and is the expert on just about everything. He spends his nights hacking away at this project that kinda started during a hackathon and is now this fully fledged idea capable of several million dollars in funding. When asked, he says that coding just came naturally to them. **cough-bullsh**-cough**. He is The Prodigy, wanted by all but seldom an extrovert or social person.
Me: How about Java, are you good with that?
You: um thats the one with the IDE right? [unsure] Eclipse…?
Good god…how you have come this far is beyond me. You are the one who is the least wanted person for a code review. Best Practices for you become Worst Practices for us. But we see that you have a good heart and approached us with good intentions. So we keep you onboard but kinda wish you had enough drive to learn more and turn some of those bad practices into to decently good attempts.
The Chaotic Programmer:
This one is a very special case. If it can be avoided, avoid them. The Chaotic programmer is the person who, within a team of very talented programmers, can get a lot of work done in a very destructive manner. In some cases, they will use abstract variable names instead of coherent names. They might create extra code files that serve no purpose except for himself. And worst of all, the flow of their code makes everything unbelievably hard to read.
So what do you do? You end up having to hold multiple meetings with them just to have them explain everything. They are able to get the job done, but perhaps reading a book on Best Practices could help.
They get the job done, and are not willing to explain their code to you. And you cannot possibly remember the last time they took a break or stopped coding. The desk life was truly their life. In some cases, they decide to save a lot of their work for the very last minute. They can get the job done, but not without sacrificing time and health. They are a “Marathoner” and always do their coding for days at a time.
Oh its “XXX”, quick, HIDE! If this is you, then you are the fanboy. You do finish work on time but damn do you rant and talk about all the awesome current breakthroughs and acquisitions by the tech giants. Bless your heart for being so informative but please try to tone your excitement down a bit. Perhaps blogging should be your next hobby rather than stalking your prey at the office.
And thats it! There are of course more kinds of programmers. And I really do encourage all the work that everyone contributes to a project. To be honest, the best of teams are a mix of the above. Its best to have a diverse skillset that a collection of fanboys who never get work done.