According to Techopedia
Computer science is the study of both computer hardware and software design. It encompasses both the study of theoretical algorithms and the practical problems involved in implementing them through computer hardware and software.
Dictionary.com defines computer science as
the science that deals with the theory and methods of processing information in digital computers, the design of computer hardware and software, and the applications of computers.
These definitions can be a mouthful sometime and the meaning can sometimes get lost in the jargon, so let’s pick out some keywords.
Software - There are many forms that is thing exists in. It could be an app on your phone, your desktop programs like a pdf reader, or a website. At the end of the day, they are just lines of text. What makes these lines of text different than a regular piece of text is that the computer views them as commands. When you type
print "hello world". To a normal human being, it is the equivalent of writing
I love chicken nugget. However, to the computer, these words are quite different. The computer thinks: “ooh ooh, I just received a command to do something. Let’s see what it is…Yes I can definitely print ‘hello world’ for you. No problem …printing…printing…Here you go. I am done printing your message :)”
- Theory - The logical reasoning and analysis of how a computer and software function using models and mathematics.
- Computer - a software can be run on any hardware that is able to store and process data. It could be your smart washing machine, but the majority of the software are designed to be run on a computer.
- Hardware - There is a misconception out there that software and data exists in a realm outside our physical world like magic 🌈. However, as any computer scientists will tell you, that is far from the truth. Data must be stored on a physical hard drive. There are electrical components and moving parts that helps to read and write data to your hard drive. In order to run your command, you need a central processing unit or CPU. CPU is a hardware that exists in your computer. Its job is to process information and do whatever it is you tell it to.
Algorithm - So we have a command that
prints "Hello World", but now we want it to take in some input like a
nameand give us an output like
print "Hieu". This can be achieved using an algorithm. An algorithm is like a black box that you can pour some inputs into, and then get something back from it.
- Money - Average salary for a software developer in the United States is $76,525. This value can changed depending on where you live and the level of experience with the highest pay ranging from 100k - 350k. Despite the high pay, most of these people would keep do their job and love doing it for even a fraction of their current salary.
- They Love Doing It - many programers consider their work as artistic. In fact, programming or coding requires a high degree of creativity and critical thinking. It is similar to the high that other artists experience. They just want to keep doing again and again.
- They Want To Change The World - Many programmers dreams of one day developing something that will revolutionize the world. They draw their inspiration from the likes of Mark Zurkerberg who developed Facebook.
Absolutely Not. In the age of the internet, there is really no limit to what you can learn online.For instance, I wanted to build a blog a couple of weeks ago, but I did not have the technical knowledge to do so. My computer science program wasn’t going to help. I was too busy doing calculus and solving algorithms problem. However, I wasn’t going to give up there. I researched online on how to learn web development and starting a blog. Within a couple months, my blog was up and running.
Once you are feeling confident, you can start looking for work. Since you don’t have a degree, the only thing that is going to back you up is experience , experience , and more experience. There are many ways to accumulate experience:
- Build and publish a successful app.
- Join a coding bootcamp
- Network with other developers
- Contribute to open source
- Blogging - teaching what you have learned to someone else. If done correctly, this approach can mark you as an authoritative figure in your niche. Note: patience is required for this route as you have to start building your creditability and fan base.
There are several reasons why you should still want a computer science degree.
- Direct Access to Job Market after graduation as many companies are looking to hire new graduates.
- Understanding The Fundamentals - Many computer science skills, such as data structure and operating systems, are just not taught at the same level in a self-taught environment compared to a college class.
- Networking - You are surrounded by professors, experts, and other students who all shared the same interests, so being able to find a connection in your field is trivial.
- Internship - Many universities will offer opportunities to complete internships for class credit. Doing an internship provides you with some real world perspectives and skills that are likely not taught in school. Plus, you get the 💰💰💰
- College Experience - Just do it so you can say you’ve done it philosophy.