It has come to my attention that a good number of the people around me have ventured into some sort of field dealing with computers or technology. There are many fields possible but there are three big ones: Computer Science, Computer Engineering, and I.T. Each one of these is very important to today's computer society that we live in. Each day you interact with elements of each of these without knowing so. That is why they are so important.
The computer science field is broad, broad enough that almost anything can interact with it. Disciplines of computer science can range from pure theory such as developing better ways to store large amounts of data or creating new algorithms to encrypt our data. These new theories and algorithms are often heavy in mathematics. Principles of computer science can also be applied to most practical problems such as modelling climate or creating a prediction engine for electoral outcomes. At the most basic level computer science is simply using technology to solve problems via the scientific method. This is why the field of computer science is so wide, the results of computer science research can be applied to any problem and there are most often specialists in that field.
The number one thing I am asked because of my experience in computer science is if I can fix someones computer. I am good with computers but computer science is not the science of fixing day to day problems that one has with a malware laden Windows PC. This is one of the many things that computer science is not. Another common misconception is that everything under the umbrella of computer science deals with programming, this is not the case. Programming is one of the common ways of expressing computer science problems but it is not the sum of computer science. Computer science is not simple, the fact it is such a broad field makes it open to all of these and other misconceptions.
On a day to day basis it is very likely you have interacted with something that has been created or influenced by computer science. When you use Facebook or Twitter you're interacting with a specially crafted form of database designed to handle high load situations. When you use your operating system you are reaping the benefits of human interface research that discovered the best way to accomplish the tasks on said operating system. When you fly in a plane you're at the mercy of the flight management software that has been designed with redundancy in mind to keep you safe. In the modern world there are very few ways to avoid computer science.
Computer science is important because without it all of our devices would be dumb. Without algorithmic research it would take ages to sort that folder of 10,000+ photos. Without research into Human Computer Interaction (HCI) it's entirely possible we would still be using an operating system that was reminiscent of MS-DOS. We could potentially have great hardware as we do now but there would be no point to using it. The end goal of practical computer science is to bring the benefits of all the research and development to the public and let everyone benefit. Without this spirit we would not have all of the impeccable devices and software that we run daily.
As computer science mostly focuses on theory and using this theory to solve end user problems, computer engineering focuses on the hardware where these problems occur. Microprocessor design, circuit design, and embedded system design can all be core areas of computer engineering. It is also possible for the discipline of computer engineering to have ties with low level software such as operating systems and compilers. Following from this it's not uncommon for network design to rely on computer engineering as well.
While there can be overlap between computer engineering and computer science in terms that both often involve writing code they are not the same, that is one common misconception. Another is that computer engineering focuses purely on building hardware and nothing else. In the same way that computer science overlaps many disciplines computer engineering does this as well. Computer engineering can overlap with electrical engineering and electrical engineering itself relies on the fundamental understanding of electricity from physics. As with any major discipline there is going to be general overlap into other areas that is required.
As with computer science a person living in todays world would be hard pressed to not interact with computer engineering in some way. Perhaps the biggest way that we all interact with the product of computer engineering is through the use of CPUs in our computers and mobile devices. More and more over the last decade chips have become incorporated into other devices including but not limited to appliances and cars. Of course we also can not forget all of the custom designed hardware that runs the huge internet routers that our traffic flows through. Overall just like computer science it's very hard to find a day in which we don't interact with the field of computer engineering.
With hardware moving to devices which never used to require chips (cars and appliances) it is an indication as to one of the directions that computer engineering is heading. On the same trend of hardware shrinking, nano-technology is also an area that has recently taken off and will be changing our lives within the next 20 years. The trend of hardware shrinking and making its way into almost everything is progress at its finest. Gradually we are heading to the realm of wearable computing to the point the computers themselves will be invisible. It's this kind of technology that needs the discipline of computer engineering. Without computer engineering none of this would be possible.
I.T. itself cover a huge variety of topics ranging from data storage to the provisioning of resources to solve technology based problems. The provisioning of resources may involve setting up a new style of computer system in a workplace or replacing existing BlackBerry phones with newer iPhone or Android models and configuring them appropriately. I.T. departments may also be responsible for security hardening of a network against potential threats which is an ongoing battle online today. In essence those involved in I.T. are the "boots on the ground" that implement and troubleshoot solutions provided by either computer science or computer engineering.
I.T. is often oversimplified as the group of people who will come and fix your computer at work if it starts to malfunction. This can be true but it's not the entire scope of the industry itself. I.T. does not normally involve the creation of software, if any programming is required by an I.T. department it is often in the form of scripting to automate actions. Sometimes this programming will be done in house, other times it will be farmed out to a group of programmers.
Most corporations that we interact with on a daily basis have an I.T. department with professionals focused strictly on that. The world has become such a technological place that it would be very rare to exist a day without interacting with the I.T. industry. The day to day interactions with the I.T. industry start out when a person first uses their internet connection. Upon opening a web browser a computer makes a request to the website being visited. Through making this request the computers packets flow through a variety of internet service providers which are all staffed by I.T. professionals. These professionals maintain the network hardware and ensure that their own operations (sales, support, dispatch, etc.) are fluid. The request will eventually make its way to the final server where the same I.T. staff exists. This is just one example but is one that we all use everyday.
Without I.T. the internet would be a darker place. There would be no one to maintain servers or keep networks active to route your packets. I.T. relies heavily upon the theories and practices developed by the computer science field and also the hardware developed by the computer engineering field. In this it makes sense that I.T. can be simplified as the tabletop standing on the legs of computer science and computer engineering. Put simply this means that I.T. "oils the gears" of the connected world that we live in. Without this valuable sector the usability of our technology would become very difficult or not usable at all.
Overall all three areas discussed are equally important. As illustrated there can be a great amount of ambiguity between them. The three areas rely on each other in some way which creates a nice synergy between them. This synergy usually allows for someone just starting out to easily switch between one of the three as their area of focus. As a final closing note, next time you use a piece of software think of the computer scientists that helped design it, the computer engineers who helped create the hardware it's running on, and those in I.T. who provide its connection to the world.
This was originally posted as an Informer Tech