Sign up for our newsletter and get the latest big data news and analysis.

The Different Types of Programmers

Jesse_Anderson_ClouderaIn this special guest feature, Jesse Anderson from Cloudera writes about his perspectives on becoming a computer programmer including education, aptitude and other musings. As an extra bonus check out the tutorial video at the end of the article. Jesse works at Cloudera on the Educational Services team as a Curriculum Developer and Instructor.

Are professional programmers the result of getting a Computer Science degree or are there other routes to take? In reflecting back on the different programmers I’ve worked with, I’ve been surprised by the diverse backgrounds of programmers.

Don’t get me wrong–the vast majority have Computer Science degrees, but having a different degree and switching to programming is definitely the circuitous route to becoming a programmer.

One of the more common, non-Computer Science degrees is an Electrical Engineer degree. The Electrical Engineers I’ve talked to say they took programming classes as electives and enjoyed programming. Others say they’ve moved from electrical engineering to programming organically, as hardware is often paired with software to solve the issue. In their companies, there was a need for people with skills in both programming and electrical engineering and over time, they just stopped working on the electrical engineering.

Changing disciplines from electrical engineering to programming isn’t as huge a jump as other disciplines. They both share many engineering principles and practices. What about changing from a non-engineering background to programming?

Programming has a math component to it. This makes it easier for disciplines with a heavy math and algorithm focus to switch to programming. Two backgrounds I’ve found that often move to programming are physicists and mathematicians. The switch is easier because of programming’s focus on logic and algorithms.

Then there are the rules disciplines. Programming is about writing rules for your software to operate under. These rules dictate how your program will act given an input or create the desired output. These rules make it easier for doctors and lawyers to switch over. Both disciplines are used to learning and understanding the rules for their domains. Speaking of domains, doctors and lawyers require vast amounts of domain knowledge about the law or the human body. Programming also requires heavy domain knowledge. To write the software correctly, a programmer must become a domain expert to really understand and code the solution.

There are a few programmers who are closer to authors. If you give me an aptitude test, I’ll score closer to a Shakespeare than a Newton or Einstein. Programming for me is more akin to writing a story in code. I think of code as writing a story with an incredibly complex plot line. My code tends to have more verbose comments, method names and variable names. Reading through my code is like reading a (boring) non-fiction story where the subject dances through methods.

I was surprised to learn about people with music degrees switching to programming. It really shouldn’t have surprised me given that so many of my Computer Science degreed friends play instruments. Music is inherently structural and follows many mathematical principles. Musician and programmer, Hector Urtubia, says “being a musician has helped me to not be afraid about taking risks as a developer. The way I approach improvisation in music is as an opportunity to create something on the spot. It is not always going to sound perfect, but it is important to learn from each attempt. Likewise, code can also be ephemeral, like an improvisation. Great software is created by great teams. Ensuring those teams not only work in harmony, but have a great time doing it, can yield awesome results.”

These are just a few disciplines and degrees that I’ve found in the wild during my programming career. Don’t despair if your field isn’t listed here. I’m saying it is possible to switch careers to programming from another discipline. Switching from certain disciplines to programming will be easier than others. Look at the core attributes of your discipline. Are you often working with rules, domain knowledge and structure? Then it may be easier than you think to make the switch to programming.

HBase Tutorial with a Deck of Playing Cards

As a special bonus, see Jesse’s tutorial for how HBase works with a deck of playing cards. He covers the basic structure of a table and regions, read and write paths, and how HBase scans work. Enjoy!

 

Sign up for the free insideBIGDATA newsletter.

 

 

Leave a Comment

*

Resource Links: