4/17/21 (*Work in progress*)

Welcome back everyone,

This post will be outlining how to begin learning about computer science and what you can do with it. While this post says beginners, people of all levels of computer science knowledge are encouraged to keep reading this article to get an idea of resources and strategies that are available for free online.

So, this guide will outline the following topics (italicized = done):

  • What is computer science?
  • How big computer science is and application vs. theory
  • Where to get started if interested in computer science
  • How to find online material for guidance
  • Where to find help when stuck
  • How to prepare to be a computer science major in school

What is computer science?

Well, great question. Merriam-Webster defines computer science as "a branch of science that deals with the theory of computation or the design of computers." And Wikipedia gives a much more detailed definition: "the study of algorithmic processes, computational machines and computation itself pans a range of topics from theoretical studies of algorithms, computation and information to the practical issues of implementing computational systems in hardware and software.” As someone who has been developing and programming for fun over the past few years, I feel like the simplest definition I can give is that computer science is the study of how computers function and the endless possibilities that come along with them. By saying "endless possibilities" I am hinting at the potential computers have and how many different aspects of computers are used in many different specialized fields.

How big is computer science? (& application vs. theory)

Computer science covers a very large span of specialized fields in which you can start learning about today. You have two different general areas in which all of the specialized fields generally fall under: applied and theoretical computer science. Theory for computer science differs from theory in other studies because of how important to learn new methods and strategies to be implemented in development of projects. Topics include: Algorithms, Data Structure, Computation, and more. When we talk about applications of computer science, however, topics of study and fields are much more specialized than the theory necessary for application. Topics of application include: App/Web Development, Cybersecurity, Networking, Programming, Data Science, Machine Learning, and lots more. From my experience, this is how wide I have reached with computer science after learning in school and working on projects/jobs, but let me show you what Britannica has to say about how big computer science has grown.

Britannica talks about computer science having traditional studies like Computer Architecture, Programming Languages, and Software Development. But what I like that they mention is how computer science intervenes in other fields of study such as biology to form Bioinformatics and chemistry for Computational Chemistry. So we can use computer science knowledge and fundamentals to help learn and innovate other major fields of studies like physical and biological science. Here are the 15 distinct fields Britannica mentions make up computer science:

  • Algorithms and complexity
  • Architecture and organization
  • Computational science
  • Graphics and visual computing
  • Human-computer interaction
  • Information management
  • Intelligent systems
  • Networking and communication
  • Operating systems
  • Parallel and distributed computing
  • Platform-based development
  • Programming languages
  • Security and information assurance
  • Software engineering
  • Social and professional issues

Where to get started

Let's say you are like me, someone who has some background in computer science from school, but not much knowledge on where to get started learning what you want on your own. This is what I recommend you do:

  1. Decide which field(s) of computer science interest you.
  2. Don't just Google Search "how to get started with" because it will give you too many results. Head to Microsoft Learn before you resort to using your search engine: https://docs.microsoft.com/learn.
  3. Once on Microsoft Learn, create a Microsoft account if you don't have one or sign in if you do have one. (Not entirely necessary, but good if you want to save what you do in the next few steps)
  4. Click on "Customize my path" so that the "What roles are you interested screen" shows up with a bunch of different options to click.
  5. Go through this quick survey so that Microsoft will be able to give you the best learning modules to start working on. I recommend choosing Visual Studio as your product if you are unsure.
  6. Click on "Browse recommendations" to see which learning modules you were recommended to start with.
  7. When browsing your results, pay close attention to the color, time, and tags of each module. And, of course, be sure to read the description/title. Color signifies product and knowing what software and time will be needed for the module is important in this process, so be aware as you go through your results.
  8. Pick any module for now to look at.

Upon clicking on the module, you will see more tags and descriptions of what you will be learning, as well as learning objectives. But the most important part is the Prerequisites you need to follow along. For a Xamarin module, I need to have Visual Studio 2019 installed and be familiar with C# and .NET. So, before you get started with any of these modules make sure you know what you will be learning, how long it will take you, and what software/prereqs you need to continue. All of this will help you get a great head start on your journey to learning something new in computer science.

[To be continued]

-Andrew