Read on and find out.
If you are a parent or a teacher you may struggle with a question and that is “which should I have my child learn?” or “which one should we teach in our school?”.
Check out my explanation of Block Coding:
A Bit O' History....
So why the history lesson? It is actually really important and this is why. When you look at this list I have here of programming languages note that we are in an evolving world of computing. That is also why I love it. It never stays the same. That trend is very clear. We have not arrived and we still have a way to go. More languages will be added to the list.
A: In my opinion, no.
Q: If you are an adult and want to learn to code, is Scratch a waste of time?
A: Once again, in my opinion, no.
Q: Do you need a large amount of funding to launch it in your school?
A: Also, my answer is no.
You can read on but here is my reasoning as to why. You have to start somewhere, and your entry point is best to be one where core concepts are learned and the learner becomes interested.
Jumping into a programming language can be some deep water and your first set of exercises can produce some less than thrilling output (eg. ‘Hello World’).
I am sure if you had 10 young people learning to code, 2 would find it amazing, the other 8 would be turned off by it and then consider coding too hard and they would become uninterested. With all the opportunities being created by technology today, we need to inspire more people to consider careers in technology and science, not thin the pool out.
What Is A Programming Language?
A programming language is a set of instructions that tell a computing device what to do. I posted a blog entry that explains my first encounter with the BASIC programming language here (http://www.getmecoding.com/learn-programming-languages-school/).
Programming can be traced back to the 1800’s as Charles Babbage and Ada Lovelace are given credit as the pioneers of computing with his analytical engine and her approach to problem solving.
It is hard to say what the first programming language is. We do know that programming of an electrical device started in the 1940’s after Alan Turing’s work on creating algorithms, a step by step approach to solving problems, that computing devices can follow. These early pioneers were driven by a need to have computing devices solve complex mathematical equations.
Early languages were complex. This “low level” assembly language of ones and zeroes (on and off of electrical current) eventually evolved into our “high level languages”. In the 1950’s Grace Hopper is given credit with developing one of the first high level languages due to her team’s work with the UNIVAC computer which would be marketed towards businesses instead of science research.
Her work led to the earliest version of COBOL. You may recall a crisis that emerged known as Y2k. There were a number of COBOL programs written that controlled all sorts computing systems.
Well, when the year date was to roll over from 1999 to 2000, many of the programs were using only the last two digits so it couldn’t tell the difference between 1900 and 2000. The main reason this happened was not due to back programming skills but more to do with computer memory and how we stored dates.
This high level language laid the foundation for much of what we see much of today and it allowed colleges and universities to offer computer science programs which were often aligned closely to math degrees.
Many math majors took programming courses and many computer science majors were in the high level math classes. They are high level as they incorporate plain language that humans can understand and compiled for the hardware to operate on versus manually assembling the code.
Using logical terms like IF THEN ELSE, WHILE, FOR, etc make programming easier to learn and develop software. These early language like COBOL, FORTRAN, LISP, RPG and up to Pascal would all fall under a category of programming called “structured programming”. It was a sequential set of programming lines of code that could, if allowed in the language, branch off into subdivisions of your program.
So maybe you wanted to created a task that would only be run under a certain set of circumstance, then that branch would be handled. If you ever did any early programming, you may remember a GOTO (pronounced “GO TO” eg. go to this part of the program).
The 1980's - More Than Parachute Pants
By the late 1980’s we saw new entries into the programming language world such as C++ (combines structured and object oriented), PERL (Program Extraction Reporting Language) and a number of others. All of these are still in use today.
Did I just say ‘object oriented’? What is object oriented?
Object oriented is a paradigm where we build objects with computer code that can interact with each other much like how the real world is. As technology became faster, personal computing was beginning, how we created software began to change.
The 1990's - The Internet Hits The Streets
Now we began to become connected but our computing devices were different. Your home computer may be an Apple and your work computer may be running Microsoft Windows and your smartphone running Android software.
These differences are important to note as the languages also began to take on characteristics where some can only run on a Microsoft Windows computer or an Apple computing devices.
The Secret All Programmers Know
So where does that put you if you want to learn to code?
I will share a secret here…. Software is rooted in thinking logically. Every language has you stepping through steps in a logical fashion. The main difference is learning what we call syntax, or the rules.
I like to use an analogy of driving a car. If you are in the United States and you learn to drive on the right hand of the road and note various street sign shapes, that would be your driving ‘syntax’. If you then move to another country like I did when I was on active duty with the military, I then had to drive on the opposite side of the road and the steering wheel was on the other side.
I understood all the functions of the car such as braking, gas pedal, turning, etc. but I had to learn the ‘syntax’ or rules for driving in that country. Programming languages are the same. Granted, all languages can be learned and to master them, it may take months if not years.
That is where most parents and teachers get flustered. “My son needs to study Java in 9th grade so he isn’t behind when he gets to college”. I like the approach of getting them interested and letting them explore. That interest may lead to passion.
From there….the sky is the limit. With access to the internet and smart device apps like SoloLearn, let them explore on a frequent basis.
As a kid, I had access to one computer in my house running BASIC. That was it. But it propelled me into a career I love.
So should you find a Java development tool for your home or school?
First ask ‘what is your goal’?
If you are looking to master coding, introduce it, or just use it as an exercise, start with a tool that is fun and easy to use. If you are new to this, it will take effort to stand up the computing environment and manage it.
So, start off off with free web based tools that begin to foster interest. The Scratch Block Programming Tutorials found on my website are a lot of fun and touch on many core programming concepts. Also, there is a great deal of info at Code.org.
Whatever you choose, give yourself time and explore it.