Wednesday, October 30, 2013

Famous People of IT


Famous People of ITAlmost everyone uses computers these days for everything from shopp
ing to working to playing games. Buthave you ever stopped to think about where all this amazing technology came from? Who invented it all? Well, behind every company, programming language or piece of software, there is a person - or sometimes a team of people - who turned ideas into reality. We've all heard of Bill Gates, the founder of Microsoft and one of the richest men in history. Equally famous is Steve Jobs, the person who, along with Steve Wozniak, started Apple computers. However, there are hundreds of other people, from early pioneers to later geniuses, who aren't as well known but who deserve recognition for the work they did in advancing the world of computing.

One of the first people to conceive of computers was Charles Babbage, an English mathematician and analytical philosopher who drew up plans for the first programmable computer called the Difference Engine. George Boole came up with a way of describing logical relations using mathematical symbols - now called Boolean logic - that is the basis of all modern computer processes. Vannevar Bush first proposed an idea in 1945 he called 'memex', which we now know as 'hypertext'. Another notable figure in early computing was Alan Mathison Turing, an Englishman known as the "father of computer science". He invented the Turing Test, which is a way to find out if a computer is acting like a machine or a human. Another English computer scientist, Edgar Frank Codd, is known for inventing the "relational" model for databases, a model which is still in use today.

As computing became more complicated, people needed a way to make it easier to tell computers what to do - in other words, they needed ways to program the computers. These computer instruction systems became known as computer, or programming, languages. FORTRAN, the first widely used high-level programming language, was invented by an American computer scientist, John Warner Backus. Other notable North American inventors of programming languages include Dennis Ritchie, author of the C programming language, Larry Wall, creator of Perl, and Canadian James Gosling, known as the father of Java. Two men from Denmark are responsible for writing two other famous programming languages. Bjarne Stroustrup came up with C++ and Rasmus Lerdorf devised PHP. Dutchman Guido van Rossum wrote the Python programming language, while the Japanese computer scientist, Yukihiro Matsumoto, made a language called Ruby.

One of the uses of programming languages is to create operating systems, which are essentially sets of instructions that allow computers to function. The most widely-used operating system in the world is Microsoft Windows, but there are other powerful ones that exist, such as Unix, created by Ken Thompson and his team at AT&T in 1969, and Linux, written by Linus Torvalds in 1991.

Microsoft, of course, is the largest software company in the world, but there is another company, Intel, that is equally important when it comes to hardware. Intel was started by several people who are now legends in the computer world, including Robert Noyce and Gordon Moore. Moore is also famous for coming up with Moore's Law, which predicts the rapid increase of computer technology over time. Intel expanded rapidly during the 1980s and 1990s when a man named Andy Grove was in charge of the company.

Other notable figures in the evolution of the computer industry are Ralph Baer, inventor of the first home video game console, Seymour Cray, for many years the manufacturer of the world's fastest supercomputers, Richard Stallman, founder of the free software movement called GNU, and Tim Berners-Lee, the man who created the basis for the World Wide Web.

Through their creativity and hard work, all of these people contributed to shaping what we now experience as Information and Computer Technology. Every time you boot up a computer, play a video game or surf the Internet, try to remember the individuals who made these wonders possible.

Choosing an IT Career Path


Choosing an IT Career Path
Most people are either studying for their first job in IT, or else trying to improve their current IT career. If this is the case with you, well then this unit should really help. Sometimes the hardest part of meeting a goal is to properly define what you are trying to accomplish in the first place. In this article we we will discuss the top IT job positions available around the world right now. So read the rest of the article, reflect on which career most suits your personality... and then go for it!

There are several things to keep in mind when determining what field of IT to go into. Keep an eye on job web sites such as DICE.com or Monster.com to see which jobs are most in-demand. Keep in mind that for many jobs described below, there are several levels of positions available. For instance there are "junior", "senior", and "lead" software developer positions available. You probably can't start out you career as a lead developer. You have to know your own limits.

Be honest with yourself. If you don't have previous experience, good contacts, or a good degree from a well-known university, you will be more successful in getting a lower-level job. Also, find out what the job you are applying for typically pays in your area. If you are young, living in a financially depressed area, or really need a job, keep your salary expectations a bit lower than the average. This will make your chances much higher than normal to get hired. Once you have "job experience" then you will be in a good position to ask for more money. Sometimes the best way to get more money is to quit your job and work for another similar company. This may sound cruel or thankless, but that is how business works in the real world.

Everyone who works hard deserves a raise every year. How do you show your IT manager that you are a good performer? Easy. Show up on time, be dependable, be active in the meetings, and always do a little bit more than is asked of you. Also equally important is to be well-liked by members of your team. Read on for more details...

Learn something new every day
IT is an area where people are judged largely by how much they know. If money and a high job position are important to you, you can quickly raise your level by telling your manager that you want harder tasks and more responsibility. IT Managers normally love it when employees ask for more responsibility. When you meet with your manager, set goals for yourself and meet or exceed those goals. Here are some things you can do to increase your worth to your company:

  1. learn a new programming language
  2. take a certification such a Microsoft, Linux Professional Institute, or Cisco study to be a ScrumMaster or another type of project manager.
  3. Meeting set goals can have beneficial results when it's time to renegotiate salaries, survive a round of layoffs, or get a promotion.


Appearance and attitude is very important!
Take an active interest in things outside IT: such as sports, politics, music, and film. This will make socializing at company events easier for you. If you are disliked in the company then you will not get promotions or important projects.

Be courteous, helpful, and respectful to others
In my own career, I have been in some good IT departments and some bad ones. In a good IT department, the engineers are known for sharing knowledge and helping each other. In bad IT departments, the engineers are secretive and hide knowledge. How can everyone get better if some people are selfish with what they know? Information wants to be free. You must set it free. Despite the fact that I have been to several universities, graduate school, and have collected many IT certifications, I have still learned much more about IT from my fellow engineers than from all my higher education combined. So my advice is to be kind and respect your fellow IT staff. They are your family for eight hours every day, forty hours every week!

When you start a new job, realize how some people are nice to you and some people ignore you. Which kind of person do you want to be? When you get a new junior team member, try to help them and include them in decisions. Make sure they have someone to eat lunch with. If you party after work with your co-workers, invite new employees with you. Being nice to new people can have many rewards, both emotionally and financially.

Back in the 90's we used to have a saying, "Think globally, act locally." What this means is that just by being nice and pleasant yourself, you can make the whole world a more nice and pleasant place as well.

Have your own mind and your own opinions
State your opinions in meetings and give good reasons and facts to back up your opinions. But don't be stubborn or insistent if things don't go your way. And whatever you do, please don't be passive-aggressive! Passive-aggressive behavior is when you think something bad about a person or an idea, and then you talk badly behind someone's back (when that person is not around). This is very destructive behavior to both yourself and your IT department.

Okay, now we are ready now to investigate some popular IT job positions. I will rate the following jobs based on the following criteria: respect, qualities, salary, dress, and fun factor. I will also include some notes. These are subjective opinions. Some are even intentionally funny. If you disagree with me, please feel free to flame me.

CTO (Chief Technical Officer), CIO (Chief Information Officer)
Respect: Very High
Qualities: Business savvy, technical mindset, good people skills
Average Salary: $150,000
Dress: Business suit and very clean
Fun Factor: Only fun if you are a workaholic or on a power trip.
Notes: These jobs are highly competitive and usually political, so your chances are low. Sorry.

Enterprise Architect
Respect: High
Qualities: Good technical, business, and design skills
Salary: $100,000
Dress: Clean and presentable with collared shirt and pants
Fun Factor: Fun job because you get to talk to all other departments
Notes: Responsible for all solutions that work; not responsible for ones that don't work

IT Manager
Respect: Medium-High
Qualities: Detail oriented, punctual, critical, supportive
Salary: $70,000
Dress: Business Casual
Fun Factor: Can be fun but often very stressed
Notes: They always seem to be working

Technical Writer
Respect: Medium
Qualities: Excellent writing skills, good technical mind
Salary: $50,000
Dress: Business Casual
Fun Factor: Writers are often good at telling stories

Graphic Designer
Respect: Low-Medium
Qualities: Excellent drawing and illustration skills, good color matching and artistic qualities
Salary: $50,000
Dress: Casual
Fun Factor: Generally fun people and sometimes a bit moody
Notes: Not as 'square' as the rest of the IT department. All good designers seem to have tattoos, piercings, and a fashion sense.

Software Developer
Respect: Medium
Qualities: Creative, persistent, insatiable thirst for knowledge
Salary: $70,000
Dress: Casual Dress is normally the rule (t-shirt and jeans)
Fun Factor: If you don't have fun being a developer then you have the wrong job; other people might not understand your sense of humor though ;)
Notes: Companies have a lot of developers compared to other positions listed. Therefore your chances of becoming a developer are good if you have the skills and more importantly the desire.

Project Manager
Respect: Medium
Qualities: Cooperation, leadership, and organization skills
Salary: $60,000
Dress: Business Casual (collared shirt and nice jeans or pants)
Fun factor: This tends to be a high stress position with long hours. If that sounds fun then go for it!

Database Developer / Database Administrator
Respect: Medium-High
Qualities: Detail-oriented, high business knowledge
Salary: $80,000
Dress: Business Casual
Fun Factor: If processing giant data sets excite you, then this job is for you.

IT Security Manager
Respect: High
Qualities: Military outlook on life, defensive, pro-active
Salary: $70,000
Dress: Smart, clean dress is very important
Fun Factor: Are you kidding me? This guy is basically a cop!

System Administrator
Respect: Medium-High
Qualities: God complex, often eat fast food and drink a lot of soda
Salary: $75,000
Dress: If they were allowed to, they would probably dress as World of Warcraft characters!
Fun Factor: Sysadmins can be patronizing; but they can be fun as well, especially after they have a few beers. They are often eager to show others that they are just "normal people". But this is not usually true.
Notes: Never anger a sysadmin! Why? They have access to everything in the company.

Software Tester
Respect: Low-Medium
Qualities: Detail-oriented, persistent, curious
Salary: $40,000
Dress: Same as developers
Fun Factor: They are normally seen hanging out with developers, trying to talk about bugs.
Notes: Testers play a vital role in software development that cannot be understated. If you don't have a single tester on your team, you are probably in trouble.

IT Support Engineer 
Respect: Low (except when someone needs help fixing their computer, then it's really high)
Qualities: Must be good at dealing with technically incompetent people
Salary: $35,000
Dress: Casual
Fun Factor: Often an endless source of funny stories about technically incompetent end-users
Notes: Do not kill the end-users!

Monday, October 28, 2013

Basic Networking

Basic NetworkingIn the simplest explanation, networking is just computers talking to each other. They do this by sending data
packets using various protocols and transmission mediums such as ethernet cable or Wi-Fi connections. Computers must also know how to find other computers on the network. To put it briefly, every computer on the network needs a unique address so messages know where to go after they are sent.

Networks exist for many reasons including:

  • distributed computing in a client-server or peer-to-peer networking architecture
  • centralized data security and authentication
  • elimination of risk of computer downtime.
  • combining computers into a single domain to facilitate groupware applications and system administration tasks

communication and fun!
The types of networks you deal with on a daily basis include local area networks (LANs) and wide area networks (WANs).

Many people today have LANs in their schools, offices, and even their homes. LANs are especially good for sharing Internet access and commonly used files and databases.

Users can also connect to wide area networks ( WANS ) as well, which are just large LANS spread out over several physical locations. The Internet itself is basically a large WAN, with each node on the network having it's own unique IP address.

As you may have read in books or seen in movies, security considerations play a large role when designing networks. Technology such as firewalls can both block and filter unwanted network traffic. Virtual private networks (VPNs) are used to connect remote users to office networks without jeopardizing security. VPNs use strong data encryption to hide data as it is moving between routers over the Internet.

Networking is not something you can master in a week or even a month. Hundreds of books have been written about the subject and many more hundreds will come in the future as technologies mature and evolve. If you work on networks for a living, you are called a network engineer, and you will probably take certification exams by networking companies such as Cisco.

There are other kinds of networking as well which are not always between PCs and servers. An example is Bluetooth technology, which is optimized for networking between common consumer electronics such as mobile phones, mp3 players, and similar devices.

Okay that's it for now! This is just a basic introduction to networking. You will find a lot more networking vocabulary to master in other units of English 4 IT, and many more on the way.

The Rise of the World Wide Web

The Rise of the World Wide Web
By the early 1990's, people were using computers in many different ways. Computers were already installed in most schools, offices, and homes. They were commonly used for writing papers, playing games, financial accounting, and business productivity applications. But very few people used them for communication, research, and shopping the way we do now. A man named Tim Berners-Lee changed all that. In 1990, Lee added an exciting hypertext and multimedia layer to the Internet and called it the World Wide Web. The rest, as they say, is history.

Believe it or not, the Web was not the first attempt at building a worldwide online community. Cutting edge geeks have been using online services such as Compuserve all the way back to the early 1980's. There were thousands of other privately run Bulletin Board Systems (BBS) as well, which served the general interest of curious nerds and researchers from around the world. Perhaps the most ambitious project was the French system Minitel, but it never caught on in the rest of the world and eventually faded into obscurity. Experiences on these BBS was poor by today's standards. There was no graphics or even color. There was no sound except of course the obnoxious beeps and gurgles a modem makes when it it initiates a dial-up connection to a server. Bandwidth was also very slow compared to today's speeds. Typical operating speeds were between 300 and 1200 baud. Today, a typical broadband connection is thousands of times faster than this.

The Web was not built for geeks. It was built for everyone. It was built with very high ideals. No single company, government, or organization controls it. It was new and exciting. New ideas and words appeared almost daily. Obscure technical terms became household words overnight. First it was email. Then it was URL and domain name. Then rather quickly came spam, homepage, hyperlink, bookmark, download, upload, cookie, e-commerce, emoticon, ISP, search engine, and so on. Years later we are still making up new words to describe our online world. Now we "google" for information. We "tweet" what's happening around us to others. The new words never seem to stop!

Just because the web seems so chaotic and unorganized compared to more structured companies and governments, doesn't mean it's total anarchy. In 1994, Tim Berner's Lee started the W3C, a worldwide organization dedicated to setting standards for the Web. This group is probably the most respected authority for what should and should not be Web standards. W3C's mission is to lead the Web to it's full potential.

As a student of English and Technology, you will hear people use the words 'Internet' and 'World Wide Web' almost interchangeably. They are, of course, not the same thing. So what is the difference between the two? Perhaps a simple answer is that the Internet is the biggest network in the world, and the World Wide Web is a collection of software and protocols on that network. I guess a more simple way to put it is, the World Wide Web is an application that runs on The Internet.

The original backbone of the Internet is based on an old military network called ARPANET which was built by ARPA in the late 1960's. ARPANET was built so information could withstand a nuclear war. The idea was not to have a single point of failure. This means if part of the ARPANET was blown up in a nuclear war, the rest of it will still work! What made ARPANET so successful was it's packet-switching technology, invented by Lawrence Roberts. The idea is that "packets" of information have a "from" address and a "to" address. How they get from point "a" to point "b" depends on what roads are open to them. Packet switching is a very elegant thing. Without it, the Internet would simply not work.

People view the World Wide Web through a software application called a web browser or simply a "browser" for short. Some popular examples of web browsers include Microsoft Internet Explorer, Google Chrome, Mozilla Firefox, and Apple Safari. Browsers allow people to search, view, and even add and edit data on the World Wide Web.

The Web is not supposed to be a passive experience. Creating new pages for the Web is getting easier all the time. Web editing software is specially designed to work with hypertext languages such as HTML, which is the original specification for the Web. Web editing software normally allows for the WYSIWYG creation of text, images, and hyperlinks between related documents. With web applications such as wikis, MySpace and FaceBook, a typical user can create his or her first online presence in a matter of hours.

In the year 1999, the Internet suffered it's first financial crash. Many companies selling products and services on the Web were not living up to sales expectations. This was known as the Dot Com Bubble. There were many reasons why this happened, but perhaps the two most important reasons were a combination of slow connection speeds and too much optimism. Very few people had fast internet connections and many people thought the Internet was "just a passing fad". But we know now that the Internet is not a fad. So what happened? Web 2.0 happened!

What is Web 2.0? It's very hard to say. It's just a phrase to describe a transition from the pre-existing state of 'Web 1.0', which was slow, static, and unusable, to a new, 'second web', which was faster, more dynamic, and more usable for the average person. How did these things happen? Easy. Broadband modems enabled sites like video-streaming YouTube to become possible. Better design and development practices enabled social media sites like MySpace and then Facebook to attract hundreds of millions of users. Finally, search engine technology improved on sites like Google where people could actually find the information they were looking for.

What will be the future of the Web? Easy. More speed and more power. In the future, digital distribution on the Internet is likely to replace all other forms of media distribution including CDs, DVDs, and even radio and television broadcasts.

I personally feel lucky to be alive in the age of the Web. It is one of the coolest things ever invented. It is unlikely that such another wonderful and major revolutionary invention will occur in our lifetime. But I can still dream about the Next Big Thing. And who knows? Maybe you will invent it.

reference by english4it

Sunday, October 27, 2013

Top 10 Most Popular Programming Languages

Top 10 Most Popular Programming LanguagesThere are hundreds of programming languages in use today. How can you know which one to learn first?
How do you know which ones are the best for your IT field of choice? Well, I can't answer that question for you. But why not start by learning one of the top 10 most popular ones? That way you will always be able to get a job in the IT industry.

Learning a programming language is not easy, but it can be very rewarding. You will have a lot of questions at first. Just remember to get help when you need it! You can find out the answer to almost everything on Google nowadays.... so there is no excuse for failure. Also remember that it takes years to become an expert programmer. Don't expect to get good overnight. Just keep learning something new every day and eventually you will be competent enough to get the job done ;)

This article covers the top 10 most popular programming languages as ranked by Tiobe.com in June 2009. I have added some general reviews and comments about each language they listed. Remember these are my own personal opinions. Other IT professionals might have different opinions.

1. Java 
Java uses a compiler, and is an object-oriented language released in 1995 by Sun Microsystems. Java is the number one programming language today for many reasons. First, it is a well-organized language with a strong library of reusable software components. Second, programs written in Java can run on many different computer architectures and operating systems because of the use of the JVM ( Java virtual machine ). Sometimes this is referred to as code portability or even WORA ( write once, run anywhere ). Third, Java is the language most likely to be taught in university computer science classes. A lot of computer science theory books written in the past decade use Java in the code examples. So learning Java syntax is a good idea even if you never actually code in it.
Java Strengths: WORA, popularity
Java Weaknesses: Slower than natively compiled languages

2. C
C is a compiled, procedural language developed in 1972 by Dennis Ritchie for use in the UNIX operating system. Although designed to be portable in nature, C programs must be specifically compiled for computers with different architectures and operating systems. This helps make them lightning fast. Although C is a relatively old language, it is still widely used for system programming, writing other programming languages, and in embedded systems.
Strengths: Speed
Weaknesses: Memory management can be difficult to master

3. C++
C++ is a compiled, multi-paradigm language written as an update to C in 1979 by Bjarne Stroustrup. It attempts to be backwards-compatible with C and brings object-orientation, which helps in larger projects. Despite it's age, C++ is used to create a wide array of applications from games to office suites.
Strengths: Speed
Weaknesses: C++ is older and considered more clumsy than newer object-oriented languages such as Java or C#.

4. PHP
PHP uses a run-time interpreter, and is a multi-paradigm language originally developed in 1996 by Rasmus Lerdorf to create dynamic web pages. At first it was not even a real programming language, but over time it eventually grew into a fully featured object-oriented programming language. Although PHP has been much criticized in the past for being a bit sloppy and insecure, it's been pretty good since version 5 came out in 2004. It's hard to argue with success. Today, PHP is the most popular language used to write web applications. Even English 4 IT, the program you are currently using, is written in PHP ;)
Strengths: Web programming, good documentation
Weaknesses: Inconsistent syntax, too many ways to do the same thing, a history of bizarre security decisions

5. VB ( or Visual Basic ) 
Visual Basic is an interpreted, multi-paradigm language developed by Microsoft Corporation for the Windows platform. It has been evolving over the years and is seen as a direct descendant of Microsoft's old BASIC from the 1970's. Visual Basic is a good language for scripting Windows applications that do not need the power and speed of C#.
Strengths: None.
Weaknesses: Only runs in Windows

6. Python 
Python is an interpreted, multi-paradigm programming language written by Guido van Rossum in the late 1980's and intended for general programming purposes. Python was not named after the snake but actually after the Monty Python comedy group. Python is characterized by its use of indentation for readability, and its encouragement for elegant code by making developers do similar things in similar ways. Python is used as the main programming choice of both Google and Ubuntu.
Strengths: Excellent readability and overall philosophy
Weaknesses: None

7 C# 
C# is a compiled, object-oriented language written by Microsoft. It is an open specification, but rarely seen on any non-Windows platform. C# was conceived as Microsoft's premium language in its .NET Framework. It is very similar to Java in both syntax and nature.
Strengths: Powerful and pretty fast
Weaknesses: Only really suitable for Windows

8. JavaScript
JavaScript is an interpreted, multi-paradigm language. A very strange one too. Despite it's name, it has nothing whatsoever to do with Java. You will rarely, if ever, see this language outside of a web browser. It is basically a language meant to script behaviors in web browsers and used for things such as web form validation and AJAX style web applications. The trend in the future seems to be building more and more complex applications in JavaScript, even simple online games and office suites. The success of this trend will depend upon advancements in the speed of a browser's JavaScript interpreter. If you want to be correct, the real name of this programming language is ECMAscript, although almost nobody actually calls it this.
Strengths: it's the only reliable way to do client-side web programming
Weaknesses: it's only really useful in a web browser

9. Perl
Perl is an interpreted, multi-paradigm language written by Larry Wall in 1986. It is characterized by a somewhat disorganized and scary-looking syntax which only makes sense to other PERL programmers ;) However, a lot of veteran programmers love it and use if every day as their primary language. 10 years ago, Perl was more popular than it is today. What happened? A lot of newer programmers and even old Perl programmers (such as myself) have switched to other languages such as PHP, Python, and Ruby. Perl is perhaps still the best language for text processing and system administration scripting. I personally do not recommend it however as a primary programming language.
Strengths: text processing and system administration
Weaknesses: strange syntax, and perhaps too many ways to do the same thing

10. Ruby
Ruby is an interpreted, object-oriented language written by Yukihiro Matsumoto around 1995. It is one of the most object-oriented languages in the world. Everything is an object in Ruby, even letters and numbers can have method calls. It's a great language to learn if you love objects. The only negative is that it's love of object-orientation makes it a bit slow, even for an interpreted language.
Strengths: Perhaps the world's most object-oriented language
Weaknesses: its superior object model comes at a price... namely speed

Okay! Those are the top 10 programming languages in use today and some personal comments about them. Remember that opinions are like noses, everyone has one and they all smell ;) If you disagree, please feel free to email me or write your own opinions on the forum.

The Software Development Cycle

The Software Development Cycle
Without software applications, it would be very hard to actually perform any meaningful task on a computer
unless one was a very talented, fast, and patient programmer. Applications are meant to make users more productive and get work done faster. Their goal should be flexibility, efficiency, and user-friendliness.

Today there are thousands of applications for almost every purpose, from writing letters to playing games. Producing software is no longer the lonely profession it once was, with a few random geeks hacking away in the middle of the night. Software is a big business and the development cycle goes through certain stages and versions before it is released.

Applications are released in different versions, including alpha versions, beta versions, release candidates, trial versions, full versions, and upgrade versions. Even an application's instructions are often included in the form of another application called a help file.

Alpha versions of software are normally not released to the public and have known bugs. They are often seen internally as a 'proof of concept'. Avoid alphas unless you are desperate or else being paid as a 'tester'.

Beta versions, sometimes just called 'betas' for short, are a little better. It is common practice nowadays for companies to release public beta versions of software in order to get free, real-world testing and feedback. Betas are very popular and can be downloaded all over the Internet, normally for free. In general you should be wary of beta versions, especially if program stability is important to you. There are exceptions to this rule as well. For instance, Google has a history of excellent beta versions which are more stable than most company's releases.

After the beta stage of software development comes the release candidates (abbreviated RC). There can be one or more of these candidates, and they are normally called RC 1, RC 2, RC 3, etc. The release candidate is very close to what will actually go out as a feature complete 'release'.

The final stage is a 'release'. The release is the real program that you buy in a shop or download. Because of the complexity in writing PC software, it is likely that bugs will still find their way into the final release. For this reason, software companies will offer patches to fix any major problems that end users complain loudly about.

Applications are distributed in many ways today. In the past most software has been bought in stores in versions called retail boxes. More and more, software is being distributed over the Internet, as open source, shareware, freeware, or traditional proprietary and upgrade versions.

Learning About Operating Systems

Learning About Operating SystemsAn operating system is a generic term for the multitasking software layer that lets you perform a wide array

of 'lower level tasks' with your computer. By low-level tasks we mean:
  • the ability to log on with a username and password
  • log off the system and switch users
  • format storage devices and set default levels of file compression
  • install and upgrade device drivers for new hardware
  • install and launch applications such as word processors, games, etc
  • set file permissions and hidden files
  • terminate misbehaving applications
  • A computer would be fairly useless without an OS, so today almost all computers come with an OS pre-installed. Before 1960, every computer model would normally have it's own OS custom programmed for the specific architecture of the machine's components. Now it is common for an OS to run on many different hardware configurations.

At the heart of an OS is the kernel, which is the lowest level, or core, of the operating system. The kernel is responsible for all the most basic tasks of an OS such as controlling the file systems and device drivers. The only lower-level software than the kernel would be the BIOS, which isn't really a part of the operating system. We discuss the BIOS in more detail in another unit.

The most popular OS today is Microsoft Windows, which has about 85% of the market share for PCs and about 30% of the market share for servers. But there are different types of Windows OSs as well. Some common ones still in use are Windows 98, Windows 2000, Windows XP, Windows Vista, and Windows Server. Each Windows OS is optimized for different users, hardware configurations, and tasks. For instance Windows 98 would still run on a brand new PC you might buy today, but it's unlikely Vista would run on PC hardware originally designed to run Windows 98.

There are many more operating systems out there besides the various versions of Windows, and each one is optimized to perform some tasks better than others. Free BSD, Solaris, Linux and Mac OS X are some good examples of non-Windows operating systems.

Geeks often install and run more than one OS an a single computer. This is possible with dual-booting or by using a virtual machine. Why? The reasons for this are varied and may include preferring one OS for programming, and another OS for music production, gaming, or accounting work.
An OS must have at least one kind of user interface. Today there are two major kinds of user interfaces in use, the command line interface (CLI) and the graphical user interface (GUI). Right now you are most likely using a GUI interface, but your system probably also contains a command line interface as well.

Typically speaking, GUIs are intended for general use and CLIs are intended for use by computer engineers and system administrators. Although some engineers only use GUIs and some diehard geeks still use a CLI even to type an email or a letter.

Examples of popular operating systems with GUI interfaces include Windows and Mac OS X. Unix systems have two popular GUIs as well, known as KDE and Gnome, which run on top of X-Windows. All three of the above mentioned operating systems also have built-in CLI interfaces as well for power users and software engineers. The CLI in Windows is known as MS-DOS. The CLI in Max OS X is known as the Terminal. There are many CLIs for Unix and Linux operating systems, but the most popular one is called Bash.

In recent years, more and more features are being included in the basic GUI OS install, including notepads, sound recorders, and even web browsers and games. This is another example of the concept of 'convergence' which we like to mention.

A great example of an up and coming OS is Ubuntu. Ubuntu is a Linux operating system which is totally free, and ships with nearly every application you will ever need already installed. Even a professional quality office suite is included by default. What's more, thousands of free, ready-to-use applications can be downloaded and installed with a few clicks of the mouse. This is a revolutionary feature in an OS and can save lots of time, not to mention hundreds or even thousands of dollars on a single PC. Not surprisingly, Ubuntu's OS market share is growing very quickly around the world.

As an IT professional, you will probably have to learn and master several, if not all, the popular operating systems. If you think this sort of thing is fun and interesting, then you have definitely chosen the right career ;)

We have learned a little about operating systems in this introduction and you are ready to do more research on your own. The operating system is the lowest software layer that a typical user will deal with every day. That is what makes it special and worth studying in detail.

Introduction to Computer Software

Introduction to Computer SoftwareFor as long as there has been computer hardware, there has also been computer software. But what is
software? Software is just instructions written by a programmer which tells the computer what to do. Programmers are also known as 'software developers', or just plain 'developers'.

Nothing much is simple about software. Software programs can have millions of lines of code. If one line doesn't work, the whole program could break! Even the process of starting software goes by many different names in English. Perhaps the most correct technical term is 'execute', as in "the man executed the computer program." Be careful, because the term 'execute' also means (in another context) to put someone to death! Some other common verbs used to start a software program you will hear are 'run', 'launch, and even 'boot' (when the software in question is an operating system).

Software normally has both features and bugs. Hopefully more of the former than the latter! When software has a bug there are a few things that can happen. The program can crash and terminate with a confusing message. This is not good. End users do not like confusing error messages such as:

Site error: the file /home7/businfc6/public_html/blog/wordpress/wp-content/plugins/seo-blog/core.php requires the ionCube PHP Loader ioncube_loader_lin_5.2.so to be installed by the site administrator.

Sometimes when software stops responding you are forced to manually abort the program yourself by pressing some strange combination of keys such as ctrl-alt-delete.

Because of poor usability, documentation, and strange error messages, programming still seems very mysterious to most people. That's too bad, because it can be quite fun and rewarding to write software. To succeed, you just have to take everything in small steps, think very hard, and never give up.

I think everyone studying Information Technology should learn at least one programming language and write at least one program. Why? Programming forces you to think like a computer. This can be very rewarding when dealing with a wide range of IT-related issues from tech support to setting up PPC (pay-per-click) advertising campaigns for a client's web site. Also, as an IT professional, you will be dealing with programmers on a daily basis. Having some understanding of the work they do will help you get along with them better.

Software programs are normally written and compiled for certain hardware platforms. It is very important that the software is compatible with all the components of the computer. For instance, you cannot run software written for a Windows computer on a Macintosh computer or a Linux computer. Actually, you can, but you need to have special emulation software or a virtual machine installed. Even with this special software installed, it is still normally best to run a program on the kind of computer for which it was intended.

There are two basic kinds of software you need to learn about as an IT professional. The first is closed source or proprietary software, which you are not free to modify and improve. An example of this kind of software is Microsoft Windows or Adobe Photoshop. This software model is so popular that some people believe it's the only model there is. But there's a whole other world of software out there.

The other kind of software is called open source software, which is normally free to use and modify (with some restrictions of course). Examples of this type of software include most popular programming languages, operating systems such as Linux, and thousands of applications such as Mozilla Firefox and Open Office.

But what is the real difference between open source and closed source software? Is open source source software just about saving money? Let's investigate. Let's say for instance you find a bug in the latest version of Mozilla Firefox. The bug is causing a major project to fail and you need to fix it right away. This is not very likely to happen, I realize, but it's just an example. You might take the following steps:

Step 1. Download and unzip (or uncompress) the source code from Mozilla.

Step 2. Use an Integrated Development Environment (IDE) and a debugger to find and fix the bug in the source code. Please note that you will need to know a little C++ to debug applications such as this.

Step 3. Test the fix and then use a compiler to turn the source code into a binary file. This can take a long time for big programs. Once the source code is compiled then the program should work!

Step 4. You are almost done. Now send the bug fix back to the Mozilla Firefox team. They may even use your bug fix in the next release!

Now imagine you find a bug in a proprietary code base such as Microsoft Word. What can you do? Not much, just file a bug report and hope someone fixes it at some point.

This is a rather radical example, but I think it illustrates to a large degree why programmers generally prefer open source software to closed source alternatives. Good programmers love code and they want access to it. Hiding the code from a programmer is like hiding the car engine from an auto mechanic. We don't like it!

Now you have learned a little about software. You will learn more about software applications and programming in later units.

 

© 2013 Ngampus_ID. All rights resevered. Designed by Templateism

Back To Top