The Beauty of Software - In a Nut-Shell

Reply

Join Date: Jan 2007
Posts: 171
Reputation: Lazaro Claiborn is an unknown quantity at this point 
Solved Threads: 13
Lazaro Claiborn's Avatar
Lazaro Claiborn Lazaro Claiborn is offline Offline
Junior Poster

The Beauty of Software - In a Nut-Shell

 
0
  #1
Feb 28th, 2007
Software, what a wonderful thing. The hardware that exists within our computer act as a super highway on which our software composed of ones and zeros propagate, giving hardware its true purpose. Such control is rather compelling, in that we determine the computers fate, define its purpose and guide its destiny. How does Software work? What is this beautiful thing known as Software? What do I need to know in order to write Software?


As a result of the accepted “Von Neumann” architecture, hardware that perform specific tasks receive instructions in binary form that tell the specific peice of hardware what to do, and perhaps how to do it (i.e. Options). The CPU (Central Processing Unit) of a computer does essentially that; it reads instructions from RAM (Random Access Memory) and acts depending on the instruction extracted. The “instruction” set of a given processor is a complete list of valid instructions the processor accepts. Basically the software we develop, using what ever programming language, are broken down into sequences of instructions defined in an instruction set.


Computers use something known as an OS (Operating System) such as Microsoft Windows or Linux, which is the software that knows how all the devices work in the system and how to interact with those devices. OS's provide API (Application Programming Interfaces) which is composed of software programming code that software developers use so that they can write application programs that indirectly interact with the devices in a system; the OS acts as an intermediary. Once we know a programming language that can be used along with the API's of an OS we can then use our creative minds to tell a computer to do some interesting stuff, through software. At which point, we see the true beauty of Software.


As explained above, each processor has its own instruction set used to instruct the processor. As a consequence lower level programming (i.e Assembly) which are made up of Mnemonics, labels that represent a given instruction so we don't have to write a bunch of binary code, are unique to its processor counterpart. So high-level programming languages were invented which provide even more human readable symbols and a “compiler” that translates your high level “source code” into the Assembly that's specific to your CPU. This allows you to write software code without worrying about the spec's of you computer system.


The first thing you'll need to do is learn a programming language, a high level one if you're a newbie, during which you should learn about your OS's standard library. You'll probably initially use it instead of using the raw OS API libraries; The standard library wraps the raw API's. A good language to learn for newbies would be something like VB (Visual Basic) or Java. Then you can move onto more difficult high level languages such as C or C++ , which allow for more precise functions and operations to be defined, and much more. Also, while you're learning a programming language you'll probably want to download an GUI (Graphical User Interface) IDE (Integrated Development Environment) that you can use to practice; the GUI IDE is usually easier to use and more intuitive, as opposed to a command line compiler. Now you can start your programming journey, eventually becoming a programming master.


While you're on your journey, you can sign up with a web forum where you can post questions and issues, or post suggestions and ideas. This is a great resource that has helped so many already, so it'd be a good idea. Once you've learned a language you'll notice it is easier to learn others because you've learned the basic concepts of programming in general. All you'd need to do is learn the languages syntax and semantics. Learn the language, express yourself through your programming and become a master at the art.

IDE - Link - Language:

Code::Blocks - http://www.codeblocks.org/downloads.shtml -C/C++
Visual Studio - http://msdn2.microsoft.com/en-us/vstudio/aa718332.aspx - VB
Java - http://java.sun.com/javase/downloads/index_jdk5.jsp - Java

Tutorial - Link

C++ - http://www.cplusplus.com/doc/tutorial/
Visual Basic - http://www.devdos.com/vb/
Java - http://java.sun.com/docs/books/tutorial/
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:




Views: 1209 | Replies: 0
Thread Tools Search this Thread



Tag cloud for Upcoming News Stories
About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC