Computer has two important parts: hardware and software. If we look the whole scenario from a construction point of view, then the hardware will be considered as a structural design and the software will be architectural design. Both of them are complementary to each other. One gives birth and the other gives life to a computer. Initially building needs a strapping structural foundation to stand sturdy. Later it needs state-of-the-art exterior as well as interior design to bring life into this structure. Nevertheless to say, both of them are important at different phase of growing period.
Structural engineers are comparable with computer scientist. They need to know the detail structure, the popular term is computer architecture, of hardware. The hardware means exactly the way it sounds: the body of a computer including its detail floor plan. Computer scientists are the first group who give birth a computer through the magic of “low-level” computer language. Assembly is an example of “low-level” language. An assembly language programmer needs to understand the architecture of a computer hardware. What is physically underneath the computer machinery will make a programmer insightful. Though it lacks the flexibility of function and variables unlike high-level language, it gives the programmer the surgical capability of a computer. Low level languages will require more involvement with the actual register and interrupt interfaces to the hardware. This can provide more control and efficiency for the program and can be good for applications which need high speed execution, but high level compilers are much better at optimizing for speed now.
Assembly language is directly involved with communicating between registers (general, instructional and storage) and logic unit. There is not that much abstraction in algorithm. An example is given below:
1. Get the values from storage registers
2. Get the instruction from the instructional registers
3. Send the values of #1 and #2 steps into an arithmetic logic unit
4. Get the result from the logic unit and store it into a storage register
High level languages are written in an abstract form comparing with low level languages. This allows algorithms as well as functions to be written without requiring acute knowledge of the hardware used in the computing platform. A good compiler fills the gap between abstraction and underneath machinery detail. It provides this interface transparently for the programmer.
In some way programming is magic. One can create video games, application, online universities out of nothing. Here the word ‘nothing’ means non-visible material object. Programming exercises one’s insight, inside potentiality. It needs one’s creativity, knowledge, reasoning and problem solving capabilities. From materialistic point of views, programming might have huge outcome out of low investment. Having time with programming can be a fun also. It is challenging.
Python is a high-level language. The advantage of high-level language is that the programmer does not need to understand the architecture of underneath computer machinery. A programmer is not the computer scientist. They don’t have to do the surgery on a hardware of a computer. Rather they have to deal with the software part. That’s why a programmer is called software engineer. In terms of computer language, high level means the highest standard. Which is easily comprehended. C++ and java are also high level language. But there is a significant different between java and python. A very sophisticated problem, solving by java, becomes trivial comparing solving it by python. The reason behind it is its very comprehensive and understandable feature to the programmers. Python has interactive shell. One can see real time executing during run time. Besides it has GUI toolkit. It makes python more easier and advanced with using of graphic and animation. Above all more logic can be express in less amount of code. Less code means less maintenance, less difficulties to debug.
In real life, we use our language to communicate to other people. When we communicate with computer, we use computer program. Software is a collection of computer programs. Python is free, cross-platform and batteries included. It comes with extensive set of libraries. But as it is still going through a evolution stage. That is why it still lacks a varieties of libraries. Another drawback is its execution time is not as fast as C language. But nowadays it is not an issue as modern computer has strong computing power.
Computer algorithm is like story board. The outcome of a programming is like feature film. In order to connect the starting point to the end point, we need to go through several steps, such as algorithm, coding, execution, debugging and result. Computer algorithm is written in a very simple language. Suppose one like to boil water. The algorithm of boiling water will have these following steps:
1. Fill a empty pot with water.
2. Put the pot on a stove-top.
3. Turn on the stove.
4. Stop the stove when water is boiling in the pot.