2014-04-01



I wish I start coding at the age of ... 4

(image taken from here)

 

After almost half year blogging in this cool Pythonblogs platform, I realize that I never take into account that some visitors maybe a total beginner to Python. Or even, a total beginner in software development in general. I think I am enjoying pouring all my experience in Python and rather neglect the thought, "What happen if persons who are totally new to software development, somehow got stumbled to my blog?". I realize this thought, when in my previous article is the first time I officially talk about what is Python module and Python package: I neglect a very important concepts of Python software development.

If you reading this, chance are that you are in your initial process of trying to master software development in general, or Python software development in particular. I will use this series to publish a very quick article, but still highly practical, that if applied, will help you master this broad topic of software development process. I am not a lecture, got to remind you though. But, I always have this keen interest of trying hard to transfer the passion of developing software and pour all of my gathered knowledge to anyone who have the potential to learn programming.

There will be a general concept of software development for sure. But Python will always be the main programming language being use to demonstrate the discussed concept. Although having said this, I may have a sidebar that talk how other programming language (that I know of) implement it. And, as always, I will make sure that each chapter come with a code example that you can clearly follow and test in your own computer.

Great. What are we waiting for? Let's do this!

 

What is Programming?

Lets make this simple: "Programming is the act of entering computer instructions, also called code, into a computer program, to make computer able to complete certain tasks".

Computer are dumb machine. Just watch it lay still in your nap, or sit helplessly on top of your desk. If programmers at your computer manufacturer don't enter code into its BIOS memory, it will stay dumb forever. After that, there must be a valid special computer program called operating system --that being developed by group of people or a software company-- installed, to let your computer boot up and able to run your other special purpose computer program. This bold term, is the one that this blog were always talk about: developing our own computer program to do just what we want.

And you know what we call a person that do programming?

Right, Programmers!

What do I Need to Become a Programmer?

First of all, a computer.

No, this is serious. You won't be able to program a computer, when you don't have a computer. That's why this project existed: one laptop per child. You don't necessarily have to own your own computer. You can rent it or borrow it. Or use your school computer. I remember that in 1995, I spare some cash from my petty cash, and use it to rent a computer at my neighbourhod. Back at that time, it was priced at  IDR. 1.500/hour (around $1.33/hour). It was fun back there: learning Quick Basic in a 80386 40Mhz computer, with memory capacity around .. 16MB (?). Kids these days will laugh at this computer specs. But really, it still is the the most memorable programming experience I have in my entire life as a professional programmer.

Second, you must posses the eagerness to learn without a nearby teacher.

Today you have the internet. This is your teacher. Or, to be exact, a divine means to get to your teacher. Learn computer programming by autodidact. Taught yourself. Don't be afraid to ask anything in any forums. Yes, there are people who somehow get annoyed by newbie questions, but the one who like to help you are far many. That's why I kinda dislike when someone down vote a questions or answers in StackOverflow: it takes courage to post question or answer. 

Third, prepare your computer with related computer program (or also called software) to make you easier in learning computer programming (or also called software development).

We have infinite number of ways to program a computer. Sorry, just an exaggeration. Of course it's finite. But as it keeps growing, we can be sure that as long as the earth still moving, we will always have new ways to program a computer. Remember one thing, at this present time, you can't speak to a computer to program it. So, you can't say, "J.A.R.V.I.S, make me a program to calculate the best way to travel to Asgard" (Sorry, if I have to crush your child hood for this). But, that is _in_the_present_time_. Later, you can learn that we are always trying hard to make computer closer to us, by means of natural language, voice recognition, image recognition and many others.

Before that dream come true, in the mean time you will have to master one in the thousands of programming languages existed to help you program a computer. There are many views of programing languages, but I am going to use the view, that there are high-level programming language and low-level programming language. We are going to program a computer using one in the thousands of high-level programming languages ever existed in the planet. 

By the way, in case you were wondering why we use high-level programming language, this is the machine-code to add two numbers and place the result in specific area (register) in a computer (taken from Wikipedia):

Or the more easier way to do that (in assembly):

And now, this is how we do this in Python programming language (our choosen one):

From the above example, in term of easy to understand, surely you will choose our beloved Python programming language, right?

PS: there are interesting article on how one can program a computer by voice (but still, it will be translated into a computer programming language, not directly understand by computer)

Why Python?

There are so many ways to answer this question. But one thing I can be sure of is, I can't say, "This is the best programming language. Ever!". Why? It's because I have encountered so many problems in my software development life, and I always have this wisdom to be correct, "The right tool for the right job". There will be cases where Java is the best tool to solve a problem, or C#, or C++, or PHP or even ... Lisp!

But still, I can certainly answer to why I seems to be extensively use Python in my career:

It has low learning curve. Maybe the lowest. Trust me. Even if at the moment you are a total newbie in software development area, just give me some time to publish several articles in Python for Beginner series, and I am sure you will find yourself to be in a great confident in developing your own software.  

It still ranked within the Top Ten programming language in TIOBE index and the most popular programming language in CodeEval. 

What does point #2 implied? Simple: if you are going to get serious in Python, you will find yourself in a much easier way to find a Python job, than it is to find a Delphi job (ever heard of Delphi? ).

My first article in this site does state why I choose Python as a teaching aid. Have a look!

One final important things to discuss in this subsection: who is the creator of Python? Or, the history of Python itself. It was Guido van Rossum, a dutch computer programmer, that gave birth to Python. You can enjoy its historical background of the creation of Python, in his own article about history of Python. I really enjoyed that article!

 



The Creator of Python

 

Although Guido is the creator of Python, through out of its history, Python has been attracting many programmers through out the globe. And, nowadays, there are legal foundation specifically founded to ".. promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers.", called Python Software Foundation. Thus, don't worry if someday Guido was hit by a bus (of course we hope not!), we can rest assure that its development will still continue (aah, the acceptance phase..).

PS : Have a look at this Python amazing code development visualization here, created using Code Swarm.

Great, How do I Start Programming in Python?

Good question. Go to this download page and download installer that match your operating system. Install it. After that, open your console (either DOS Prompt in Windows or Bash Console in Linux) and follow this guide (I am using Windows 8.1 by the way):

Congratulation! That is your first program in Python!

PS : If you are Windows users and have trouble running Python command, try this StackOverflow Q&A.

What's Next?

You will have plenty coming your way. I will use this series to channel articles designed to help newbie in mastering Python programming language. But, as this site consisted of many article series, you can freely browse them and follow its articles (sigh, I haven't add a better site navigational control in this site).

I know I haven't officially talked about what is Github and why it can help you master software development field, but for the time being, you can follow a public github repository I created specifically for this series: pythonthusiast/python-for-beginner.

Stay tuned for my next articles!

Show more