The Difference Between A Programmer, A Hacker And A Developer
I hear the word ‘hacker’ and quickly memories flood of fast paced action movies like Swordfish. I also picture various African politicians with foot-in-mouth syndrome claiming someone hacked their twitter and posted all sorts of abusive or hilarious content. Also cyber security articles teaching me how to avoid online hacking of my bank accounts. The internets though, give me a totally different definition. One more broad and inclusive of non criminal forms of digital hacking.
So, what is a hacker? Well, first we’ve got to build a foundation for that story.
One of the chief jobs of anyone working in the tech space is to solve problems. This important work of taking our problems and writing out digital solutions is also referred to as coding. Thus, coder and programmer are considered synonyms in the tech space.
Hacker- Now, here’s where it get’s interesting. A hacker is a coder/programmer who creates programs by combining a bunch of existing code (written by other) in a short period of time. Some are self taught, others formally trained but all are considered extremely creative and preferring a lack of structure in the process of building. They basically have an idea and ‘hack’ something together to make it work; they significantly modify existing systems to get them to work differently ie change their functionality. Programs created this way are often considered poor, shoddy and unmaintainable. Even when they’re successful some need to be completely rewritten in original code to be able to be expanded. It’s been explained to me that this may not mean that the work was poor but that the creative process of the hacker is hard to follow for many, more structured developers.
A coder builds a solution for the problem while a hacker uses an existing solution to solve the problem. The hackers solution (the hack) is normally not obvious to everyone so bring a hacker requires some creativity. Quora
Developers are more structured in the way they write the code and are almost always formally trained degree or masters holders in their field. They do their creation of mostly original code in a prescribed manner that sets out to solve a specific problem from a simple specification of what the program should do: what inputs it gets, what data it uses or updates, and what outputs it makes.
As the image above shows, there’s a lot of intersecting between the developer and the hacker. A lot of the time the distinction is in whatever role the programmer is playing at the time. A lot of coders I know write programs to solutions other people already came up with and have to follow their specific instructions on the flow of functions as a day job. This is what mostly pays the rent; creating code for applications and websites for other people. That doesn’t mean however, that they leave their creativity behind. They will often have side pet projects of their own that they will build to solve problems no one else has.
The term hacker has been popularized/maligned by Hollywood to mean the illegal breaking into the ‘source code’ of government or corporate ‘mainframes’ for random acts of crime ranging from terrorism to identity theft. However, most hacker who do this sort of hacking, where they try to break into software or reverse engineer it, do so for the legitimate reasons of either trying to make the website or software stronger and more secure or to build something more useful off it.
Hacking may seem more fun and dangerous and thus infinitely cooler but not all problem solvers are tech savvy and we all appreciate the coder who takes our ideas and build us the amazing products and tools that are ultimately changing lives everyday.
Top comments (1)
Great article @duancenhanoi