| | |
The Beauty of Software - In a Nut-Shell
![]() |
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/
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/
![]() |
Similar Threads
- Beauty Video Site- Over 500 how to beauty videos and 17 users (Websites for Sale)
- Need information about foods like ground nut which can be stored for long time (Geeks' Lounge)
- Colour Replace tool doing my nut!!! (Graphics and Multimedia)
- Photoshop doing my nut!!! (Graphics and Multimedia)
Other Threads in the Upcoming News Stories Forum
- Previous Thread: The perfect games console has to be…
- Next Thread: A Computer Virus - A Spreading Body Description
Views: 1209 | Replies: 0
| Thread Tools | Search this Thread |
Tag cloud for Upcoming News Stories
age amd analytics api apple avatar blog blogging bluegene bluray broadband browser business cellphones chips command computers console copyright database dell developer development dos economy email encryption energy enterprise facebook firefox games gaming google government gta hardware ibm ibm.news intel intelibm internet iphone ipod laptop legal leopard linux mac malware medicine memory microsoft mobile news nintendo obama office openoffice opensource os pc politics prompt ps3 recession redhat registry root russia search security semiconductors software sony statistics stocks sun supercomputer supercomputing technology technologystocks tiger trends tweaks twitter ubuntu unix verizon virus vista web webmail wii windows wireless working x86 xbox yahoo





