Categories Of Programmers (by Areas Of Expertise)

So many new guys are getting into programming in Nigeria these days. Problem is; programming is a very wide field and it is shameful that people lump it all into one field that fits their prejudice depending on whom they are. Job descriptions are not helpful either. You see people demanding for 5 in one ALL THE TIME! This article, tries to discuss the different paths available to programmers, (as I perceive it) so that beginners can identify early on, which suits them, pursue it, and become good at it. Rather than stretching themselves thin, trying to master everything.
GUI Guy:
A graphics User interface programmer is important in every software team. Without him/her, your software will always look incomplete. Not only do they know how to use graphics tools like photoshop dexteriously, they also know where to put images, understand the process of making 9 patch images, and once you describe a software to them, they visualize how it will look…and visualize something beautiful too
Graphics programmers know html and css in and out. You may think you know these languages too, till you meet a graphics programmer. I once met a guy that wrote a page solely with HTML and css. The things this page was doing! No one would have believed javascript was absent on that page. Javascript and jquery are usually under their belt too.
Aside from the web, they have GUI technologies like Swing, Windows Forms/WPF, android xml e.t.c under their belt. All you need do is visualize it and they will bring it to pass.
The interview process for a graphics programmer should be VERY VERY DIFFERENT from other types of programmers. The competitions for graphics programmers are different too.
Hardware Guy:
This guy programs microcrontrollers and they dare not disobey. His toolset includes C and assembly and raspberry spi etc. This guy knows his platforms in and out. He knows the tiny differences between Windows machines and Linux machines. He shies away from high level langauges and stops at C++.
The interview questions for this guy should be clearly different too as he will be best suited for server administration duties..
Technology Guru:
I see a lot of them on programming section. They know about 13 languages, know enough graphics design to get by with templates, know and code on several platforms. This type of programmer is very productive.

They know several ready-made technologies. That is their strength. Once you ask them to foray into virgin fields, they flop. For instance, they know how to use the internal sort function in their languages of choice. But can they implement it? They understand arraylists well but can they create one on their own?
The technology guy has too keep learning as his relevance is tied to his toolset which is always changing.
There is nothing wrong with being a technology guy. In fact, most business will do great with just these category of programmers. But this is the reason why many African coders will never get employed at google. They are great coders. But core-tech companies like google do not need technology-conversant guys. They need guys that will define the next generation of technologies which brings us to the next category.
Competitions for this category of programmers should be different than that of other types of programmers.
Algorithms Guy:
This guy’s way of thinking is greatly different from every other person’s way of thinking. Given a set of problems, they examine them, run through them in their computer brain, and churn out answers that work, then they go on to recreate the process using code.
These guys are usually very good with mathematics too. Their skills are language agnostic. They may even work with only one language.
Algorithm guys are never out of employment. All they have to do is head out to topcoder.com, establish a reputation, and WALAA! top notch tech companies are after them!
Algorithm guys do not need to be constantly under fire to learn new languages. Many coding competitions are based only on determining who is best at algorithms but this is not fair. You cannot expect a GUI guy to beat an algorithms guy at his own game. No one ever compares the GUI of an algorithm’s guy to the UI of a GUI guy.
Most software designed exclusively by algorithm guy’s are usually console based, or have shitty GUIs.
Games Guy: For some reason, everybody seems to understand that these guys are different from other programmers. No one ever mentions it, but the demarcation is there. I wonder why?
Anyway, these guys do what their name suggest:…make games. They work with Unity and other game engines. The advanced ones amongst them know a lot of math and can inplement their own game engines.
A Games Guy will beat you hands down any time the competition is about fluid graphics or simulation.
In conclusion, these groups of programmers are all talented and respectable. Lets stop mixing them up and making some people feel deficient while they are actually good at what they do.
Have i excluded or mixed up certain categories? I will love to know what senior devs in here think via comments please!

No comments

Powered by Blogger.