Introduction To Programming
What is programming?
Programming is just a set of instructions to tell a digital device what to do. Whether it is a blender or a super computer, specific instructions are needed in order for the device to do anything, and it will only do exactly what we tell it to do.
What is a programming language?
Being that machines haven't learned to talk yet, we have to give them instructions by typing them out on a keyboard. A programming language is the syntax and grammar used in those instructions in order to communicate with the machine.
A machine can only speak it's native language, which is a very human unfriendly language, and one machine may have a different native language than another depending on how it was built. Writing programs in this language is very time consuming and requires a lot of knowledge. For instance, to add two numbers together, you might have something similar to this in the machine's language (Actually this is assembly, one step above the "machine's language"):
mov eax, 14 mov ebx, 10 add eax, ebx push eax
To get around this, some smart people created what we refer to as "higher level" languages that we can use instead. What this means is we can type instructions that are closer (keyword 'closer') to the way that we would actually talk. Then we can end up with something much simpler to read (though you may not fully understand it quite yet):
num = 14 + 10;
However, these "high level" instructions can't be understood by the machine, which only speaks it's native "low level" language, so we need to translate it, much like if you were going to translate English to Spanish. We do this with the use of interpreters and/or compilers, who's jobs are to take our instructions and translate them into the language the machine speaks so they can be understood. More information on interpreters and compilers in another article <link: Interpretors vs Compilers>.
What can I do with programming?
There are many different fields of work related to programming, one of the most common among them being web application development (websites). The internet is becoming an ever increasingly more prevalent part of our lives, encouraging companies to integrate more of their services online, creating a high need for web development positions.
With the advent of smartphones came a whole new market for mini games and apps, a market that is comprised of both professional companies and individual developers writing apps of various complexities and uses.
There are also of course jobs for desktop applications as well as firmware (basically still just software) development for small devices. More importantly, there is an ever growing need for more technical workers in a variety of other fields for the sake of improving productivity. Jobs that traditionally never utilized programming are looking for people with the ability to do some basic programming to improve their overall productivity and make work more efficient.
To get started, continue on to read about the Basic Concepts of programming.