Programming Has Nothing To Do With Code

Problem Solving in a Nutshell

I meet new developers and future developers quite frequently. They fret over what languages to learn, who’s right in today’s latest programming holy war, and if they can afford a degree.

None of those things matter.

Programming isn’t writing code. Programming isn’t picking a framework, or language.

Then what is it?

Programming is problem solving. There is no other innate talent and/or learned skill more important to the profession of Programmer (or Software Engineer, or Application Developer, etc., etc., etc.).

As a Programmer you must learn to look at a problem and break it down into it’s components. You must identify the constraints and other requirements. You must dig into the requirements and understand them.

The next step is formulating a big picture of the responsibilities you have been given. If you’re just working on a small chunk of bigger functionality, you must look at the whole project and make sure that what you’re doing is inline with the rest of the project.

And we still haven’t written any code.

The tools, languages and utilities you use are probably defined by your environment. You should be at least proficient in them to be effective, but your understanding of the problem leads to the correct code being written. Given a proper understand of the requirements will lead two developers to deliver the same functionality (but their code will differ due to personal preference and experience).

So, don’t get caught up in the Great Language Holy Wars. In the end they don’t matter. Teams will settle on the technology that best fits the standards of the company, requirements of the project, capability of the technology, and capability of the people implementing the technology.

If you are new or are looking to enter the software development field, your first priorities should be deciding what type of work you want to do (web, apps, database, services) and where you want to live. The technologies you use will fall in place from there. If you are applying for a job at Google, learning specific technologies will get you in the door faster. If you are applying for a job at Microsoft, the same thing applies. If you are applying for a job in an accounting firm, the same thing applies. Making your decision on what programming language to use is dependent upon knowing what you want to do in your career. The job postings in that career make the decisions for you, but none of it matters if you aren’t a problem solver.

Now, using the technologies you enjoy will help your quality of life, and can even influence your job hunt. Just know that Programmers are all different people with different wants and needs, but you all have the same job description: Solve problems.