Efficiency

You might be here because you are trying to become a programmer, trying to improve yourself as a programmer, or you have a programming interview tomorrow and you are totally screwed.

 Regardless of any of this, you can see the common theme in the stories above. That is, you are a piece of trash. Seriously.

Think about what you did...

Thankfully, I am here to set you down the right road. I will take accolades, money, or job offers. I know, I know, I am too good to you. What can I say, I am a giver.

 The first thing you should know before you know how to program a line of code should be the things on this page. It will come with a grain of pepper. That grain is, you should not try to optimize too early. You are going to write inefficient programs, likely for the rest of your phenomenally short career. But, if you try to make something perfect before you write it, you are never going to build anything, or anything worthwhile.

A Look Ahead

Terminology

For the future, this section will cover general basic topics. If you have experience, let's say you know what Big O is, then good for you! You can skip it, probably. Though, judging from the resources out there, you may want to look over it anyway, since my explanation is going to change the world of programming forever.

I will cover what N is, and some basic math, since I know that not everyone can be expected to know all of this, and even if you know it, you have never heard anyone like me explain it to you.

Big O

An analysis of how programmers measure the efficiency of their programs. New programmers often play code golf, solving problems in as few lines as possible. This is incorrect. Code golf inteferes with readability, which is important factor. While readability is good, when it comes to truly measuring your program, runtime is king. A company does not care how short your solutions are, they care how much of their resources you are going to require.

Run times

Learning the basic formulas for how long a task takes, and how to determine how long a task will take, when it does not fit into the cookie cutter pattern I have laid out.

NP Complete and Dynamic Programming

A complicated class of problems. It is important to know about if you are planning on working for any company that is doing anything worth while. If you don't care about the NP complete problems you probably care about dynamic programming which is a way of solving problems which are complicated.