Programming Myths About Coding

November 2nd, 2016

There are various myths about coding, but is it really that hard for beginners? In today's post, I talk about some programming myths and why some of them are false.

Over on LinkedIn, I wrote a post about 5 Steps To Starting Your Programming Career (and Three Ways To Become The Best) and received a variety of comments from interested individuals.

With an entire list of languages (which I'll get into later) at your fingertips, there's no better time to get into programming.

But some beginners are skeptical about coding. Don't I need a special skill? What classes should I take to learn programming? What courses are available?

There are a lot of myths flying around on the Inter-webs and I thought we'd address a few of them today.

While some individuals see coding as waving a magic wand, some people downplay the amount of work it takes to write a truly effective, maintenance-free system.

"It's not Rocket Science"

Before we start into the myths, I want to explain that while some people have the aptitude for programming, some do not.

Early in my career when I was young and naive, I was talking to a Senior Analyst about the details of an application we were writing.

The details of the application seemed simple and should've taken only a week to finish.

I said, "This should be really simple. I mean, hey, it's not rocket science...

He quickly replied back, "No, it's computer science."

The "simple" details took over 3 weeks to write and put in place.

Whoa!

As I've said before, nothing is ever easy

The morale of this story is when it comes to writing code, you can write something extremely fast, but in the end, it's a balance between science and art. Sometimes you need to see the forest through the trees.

So let's get into the myths, shall we?

Do I need to have a math degree for a programming career?

This is the most common question I'm asked from developers who are just starting out and it's the biggest myth around.

If you are looking into developing games, I understand there are a number of coding engines out there (like the Unreal engine which is free), but understanding mathematics like Algebra and Calculus is required when working with PoV (Point of View) angles and collision detection along with X-Y-Z axis.

It all depends on the type of programming you want to focus on in your career.

Gaming, AutoCad, and Financial Analyst (Think Excel) are just a couple that come to mind.

For writing business applications, utilities, web sites, or databases, a basic math degree is enough to move you forward in your programming career, but it doesn't have to be your major.

The characteristics of a developer include logical reasoning, problem-solving, creativity, and a lot of patience along with a mastery of your primary language with a general knowledge of design patterns.

As a woman, should I get into programming?

Absolutely!

I've worked with a number of women in my career and each one of them has shown a higher level of development along with a strong understanding of programming architecture.

Truly amazing women (I'm talking about you, Josie, Carey, Shivani, and Amanda, you F# wizard, you!) and I respect each one of them and consider them an equal (or better) when I have a programming issue.

For the women debating whether coding is right for them or not, try to find the language that best fits your career choice and start using it in your free time.

It takes time to truly understand a programming language and it's idiosyncrasies. If you don't like it, drop it and move on to the next language.

I absolutely believe this is the best time for women to learn how to program.

As a matter of fact, the National Center for Women In Technology reports 25% of professional computing occupations in the 2015 U.S. workforce were held by women...and it's growing!

The amount of programming jobs continues to grow every year as the demand increases for even more people to become code-savvy.

So definitely dive into programming. It's not going anywhere anytime soon.

Should I Use "If" Statements If They Add Complexity To An Application?

During the same time period regarding that "Rocket Science" comment, one of my friends and co-worker said his brother made the comment

If you were to create a truly object-oriented application, it would have no if..thens in the code.

At the time, I called bullshit. Again, I was naive.

Now, as I look back to 1994, I realized he may be right.

There is a term called Cyclomatic Complexity and Wikipedia defines it as a software metric that defines how complex a program is by the number of branches in the code (i.e. if..thens and switch statements).

For example, if we use a customer object to determine if the control is enabled or not,

if (customer == null)
{
    enabled = false;
}
else
{
    enabled = true;
}

We've all seen this type of code. Each section of code in the true and false block will increment the Cyclomatic Complexity since there are two branches.

It would be better to write this code.

var enabled = customer != null;

The less if..then or switch statements you use, the more developers "may" understand the system better.

Maybe this is why I have issues with Switch statements <shrug>.

Learning A Language Takes A Lot Of Time

Once a developer finds their "comfortable" language, they feel like they can write anything thrown at them. They can conquer the world.

Until that time, you need to experiment and try out some new languages once in a while.

It also depends on your career.

...and on and on and on.

Since there are so many career paths and choices, some web technologies are the obvious choice for this connected world, but there are a number of Microsoft technologies you can strive for as well.

Once you have a career path, it's time to focus on the languages that interest you the most.

If you look at the TIOBE Index chart (also refer to Programming Language Popularity Chart), you'll notice the top 5 are Java, C, C++, C#, and Python in that order with JavaScript closing the gap at #6.

Since JavaScript is the lowest common denominator, it would seem the most logical to learn if you wanted to get into web development. Learn JavaScript first so you can appreciate the underpinnings of every single MV* frameworks out there written in JavaScript.

The bottom line is that you don't need to learn every single language out there to become a programmer.

  1. Understand the concepts of one language.
  2. Experiment with ones that intrigue you.
  3. Stick with the ones that accomplish what you need.
  4. Become comfortable with your "go-to" language when one doesn't provide enough to reach the finish line.

Once you grasp the concept of a for..loop, it is essentially the same concept across every other language you encounter in your career. As I've said numerous times, a language is a language is a language.

It WILL get easier to learn new languages...once you understand one or two.

I'm Too Old So I Can't Program Anymore

My grandfather always said that age was up in your head.

I know..I know so long as the body is willing, you can do whatever you put your mind to.

In my mind, there is no such thing as "too old."

I guess my point to older developers out there is to always be learning and continue to be passionate about your craft.

Programming is more that just throwing code at a "digital canvas" and seeing what sticks. It's more than that.

It's your personal experiences and wisdom you've learned over the years through the school of hard knocks, the design patterns and practices, database considerations, scalability, usability, JS frameworks, performance issues, web services, SOA and web APIs.

ALL of that!

I understand there is a lot of competition out there, but over those years of work, you have tenure in your career. Valuable years of experience.

You also have contacts.

As you moved through your career, you made contacts (using LinkedIn, riiight?). These contacts, whether they be recruiters or co-workers, know how you work and understand your potential, what you've focused on in the past, and what you want in your future (you could tell them, they know you!) ;-)

I always have a list of top recruiters in my LinkedIn account who I keep in touch with and vice-versa. If they treat me good, their "stock price" on the Danylko stock exchange goes up. If they don't assist when needed, they slide down my list.

But don't always rely on recruiters (although the good ones do help in a pinch).

Always keep your skills up-to-date and your contacts active on LinkedIn and you should always have something in your field.

Conclusion

I hope this post has brought some light to some of these programming myths.

At 46, I've been programming for over 25 years professionally...

...and I have no intention of slowing down or stopping anytime soon.

If you have confidence in what you do, passion for your craft, and enjoy accomplishments through code,  it's not considered a myth.

It's a gift.

I hope my fellow coders out there feel the same way as I do.

Do you know of a programming myth that needs debunked? Post your comments below.