back to the basics - part #1
the idea behind this series of tutorials is to form a guide, an online book for all to see. its not all fun and games, we will be starting the right way with the theory. theres too many tutorials and books in the world that just start you off on writing code in an easy to learn language, they rush you through the basics and forget to teach you the art. this is pretty bad for you as a wannabe programmer, programming is an art / discipline that doesnt follow strict guidelines, theres no real right or wrong, once you know the art of programming any language becomes easy to learn (with the exception of binary) and all that really changes is the framework that the language may offer.
update: i should mention this is the first version of the text, it still needs to be changed to suit beginners but the basic outline is there.
[requirements]
the only thing your going to need to follow this guide is a computer connected to the internet, and access to install applications, eventually we will need a compiler (this will be covered when we get to that point).
[mindset]
learning to program isnt for everyone, it does require your head to look at things in a slightly different perspective to that of a normal person. by this i mean 2 things, it helps if your a curious person this helps when you face problems and you need to find a solution (this could mean hours of googling, or searching through documentation). you will also need to be able to think about things in a logical way, in programming fate and luck will not help you in order for the computer to follow your code it needs to be logical.
[authors]
the whole guide will be written by one of the two authors below, more authors maybe introduced at a later date. if you wish to contribute get in touch!
for those of you that do not know me, im a geek named adam livesley, iv been programming now for 10 years (i was 10ish when i started learning), 4 years commercial work experience in various sectors. over the years i’ve picked up a number of different languages which i consider myself skillful in; C, C++, C#, java, PHP, delphi, assembly, javascript, BASIC, pascal, ruby, F#, actionscript, objective-c and a few others.
the second author is steve a imperial university student studying electrical engineer. he’s been programming for roughly 11 years now, and knows a range of languages such as; C, C++, assembly, php, java, c#, delphi, javascript, BASIC, pascal, actionscript and a few more.
[the art, the discipline]
when it comes down to it programming is just applied mathematics so it does help if you know your algebra. i always like to think of programming as an art, something that can be a pleasure to do. some tasks can be insanely boring, but others make you think and keep you on your toes. this of course comes down to the developer, if your not trying to enjoy it it wont be very fun.
to put it simple, programming is the art of writing a set of instructions to make a computer preform a task that you want it too. in todays world, theres many different languages in which you can program in, just like there is many different languages in which you can tell your friend to do something. a computer only knows one language and thats binary also known as machine code, binary is not really used to write programs as its incredibly difficult. instead we write our code in a language that is more comparable to english, our code then goes through a compiler / linker / assembler to convert to byte code (or a lower level language).
[generations]
with programming languages there are different generations (levels of abstraction from byte code), generally the higher the generation the simpler a language is to use. first generation programming language requires no compiler, the only real 1st gen language would be machine code. a second generation programming language is assembly. the third generation of programming languages is generally the most desired, most modern languages (C, C++, java, C#) are generally considered to be from the 3rd generation of programming languages.
the fourth generation of languages are usually designed with a specific purpose in mind. a good example would be CSS with the specific purpose being a set of rules on how something should look or SQL with the purpose of providing a language that can be used to query data in a database. the final generation is the fifth generation these languages are based around solving problems using constraints, its generally referred to as constraint programming.
[paradigms]
within the world of programming there are a few paradigms (concept / abstraction of a program), the main two that we will be looking at are procedural and object oriented. there are of course many many more. different languages support different paradigms, some support multiple such as C++. its wrong to think that C++ is a purely object oriented programming since the programs source requires a main() method outside of any namespaces or class structure. the 2 different paradigms are used to structure your code, as well as allowing you to write things a certain way they can also forbid different techniques.
the first paradigm we will be looking at is procedural programming. procedural programming is usual considered unstructured and simple, the idea is your code follows a simple flow and calls different procedures (or functions, methods, routines, subroutines). the concept is built around the ability to reuse code at different points throughout a program without writing the code multiple times. this is where procedures come into play, procedures contain a series of instructions that should be carried out when the procedure is called.
the second paradigm is object oriented programming, the idea behind object oriented programming or OOP is a programming concept that is organised around objects rather than procedures and data rather than logic. this can include techniques like polymorphism, inheritance and encapsulation. within OOP there’s different patterns that can be followed such as factory, singleton, prototype, proxy, adapter, observer and many many more. these different patterns are there to over come problems in OOP, of course with each solution comes a range of problems.
dont worry if i’ve mentioned words or concepts you dont fully understand yet, we will come back to OOP in more detail abit later on, first you need the understanding of procedural programming.
[notes]
thank science, if this was in way helpful you can encourage me to write more by leaving comments
nothing yet
comments
add a comment