What does a programmer do? what makes a good one?

in #introduction7 years ago

I've been a software developer for 5 years now.

I get asked a lot from budding programmers what exactly a job in programming entails. I have also met a number of game development teams lead and ran by artists and designers, looking for developers. They often tell me it is like shopping for a product you know you need but don't know what it does.


The problem comes from the landscape, there are a number of drastically different domains; Website programmers, Game Programmers, App Developers etc. Hundreds of them.

Then in each of those fields there is specializations, in Web alone you can be a Backend Dev, an Api Programmer, a Front End guy, or a Full Stack Developer. Even that is not exhaustive. Full stack devs can be Mean stack devs, Angular devs, Asp.net devs etc etc.

This has a problem for both sides,many developers proficient in one area are scared of the others, picturing a long scary journey of starting from scratch.

The truth is though, Software is like most professions, craftsmanship outpaces all else. If you are proficient in one area, there is usually an exponential decay in the amount of effort to transition and learn other areas.

For example I started my career in Java. Java is primarily used in corporate applications. Slow and stable. College students hate learning it because it is rarely used in new projects today but is the core architecture behind big business. It is the the "legacy" language that will get most students their first jobs. (usually maintaining a badly written monster of a system).

After Java I moved on and taught myself C#. It took me 3 years to learn Java, 3 months to learn C#. From there I worked in everything from japanese banking software to british supermarket stock and statistic management software.

The pool of knowledge needed kept growing. I needed to learn how to make tablet applications, mobile apps (these are also written in java, so it may not be a waste after all!). Though that still wasn't it.

With Cloud computing, Software as a Service and other buzz terms spreading the next thing you needed to know was web tech. which is a nightmare. thousands of competing standards and practices, tools and libraries. Each company using a different one. It took me three weeks to learn Javascript. (not java fty!) it was around this time I learned software as a concept has a shape. If you learn to be an architect, learning to design a house vs design a cathedral may require some additional work, but you are not starting from scratch.

Javascript though is not enough in isolation. Web technologies come with baggage. You need to know html,bootstrap, json, ajax, jquery and depending on how modern you are getting, react, angular, webpack, underscore and a million other little libraries and frameworks.

You know what though? its fine. That concept scared me away from web work for a few years but when I had to learn on the job to get something done, It was fine. Took an additional few weeks but that was it.

After that I moved to Games and more specifically VR Development, but that is a story for another day,... I still haven't answered my own question.


What does a programmer do?

A programmer takes a clients request, a task or job, helps them express it as clinically as possible as a series of steps. then tells the computer to do them.

What does a programmer really do?

A programmer tries to write software such that when the client realizes what they want and what they want are not the same thing, that the software can support those changes with minimal cost, time and risk associated with it.


If you are looking for a programmer, don't be swayed by "years of experience", instead look for someone who is self educating. Software as a landscape changes monthly. If you want someone to produce good work, you want someone who cares about the code. You want them to be insanely passionate about the structure of your building so you don't have to.

You want a person so passionate about programming they learn a million different tools, platforms and languages because they enjoy it. 40 years in one field tells me someone is afraid of change, that they don't care too much about improving themselves and the work they deliver.

If you find a developer and they don't have the exact tools in their quiver that you need, that might be fine! It might only take them two weeks to be perfectly proficient in what you need.

It doesn't matter what code is written in, where it goes or how it is run. It matters code is written well and will stand the test of time.

Sort:  

nice post! I always admired the hard work and time you guys put in to your work. Upvoted and following.

Congratulations @jasonstorey! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

You published your First Post
You made your First Vote
You got a First Vote

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Coin Marketplace

STEEM 0.16
TRX 0.15
JST 0.028
BTC 54642.70
ETH 2317.98
USDT 1.00
SBD 2.33