Boot.dev Blog » Computer-Science » A Complete Overview of Computer Science for Beginners

A Complete Overview of Computer Science for Beginners

By Taryn Brewer on Aug 21, 2022

Curated backend podcasts, videos and articles. All free.

Want to improve your backend development skills? Subscribe to get a copy of The Boot.dev Beat in your inbox each month. It's a newsletter packed with the best content for new backend devs.

Learning how to get into computer science can be a daunting task. There are so many career paths down which a computer education can take you, so many programming languages to master, and so many skills to learn. I’ll give you a basic rundown of what computer science is, along with a plethora of resources and tools to help you carve out your own pathway into a computer science career.

What is computer science? 🔗

Computer science, to put it simply, is the study of the principles and use of computers. The field uses the principles of mathematics, science, and engineering to study and develop computers, hardware, software, networks, databases–even artificial intelligence. It is a highly complex and critical field, as computers and technology have been integrated into virtually (that’s a little computer pun for you there) every industry, organization, and economic center in some way.

Computer science vs. computer engineering 🔗

Computer science deals more with the study of software, while computer engineering deals more with hardware and often even bleeds into electrical engineering. Oftentimes, someone will get their undergrad in electrical engineering and either double or minor in computer science. While there can be a lot of overlap between both fields, being specific on which courses you want to take will help quite a bit.

What are the main basics of computer science? 🔗

Computer science includes:

  • The study of algorithms and data structures
  • Computer and network design
  • Writing code through the use of programming languages
  • Computer organization
  • Modeling data and information processes
  • Artificial intelligence
  • Computational problem-solving and implementation

Sound like a lot? Well, maybe, but learning the basics of computer science is actually simpler than you may think.

How to get started with computer science 🔗

There are lots of routes you can take to get started. Formal education is one option, as there are many different set pathways to travel, complete with prebuilt lists of courses to follow. There are many beginner computer science classes that cover the fundamentals, and as you further yourself in your chosen degree you can pepper in extracurricular courses or spice things up with an interesting minor or an ambitious double-major.

Your main choices come down to:

people studying outside

Best schools for computer science 🔗

While most schools have computer science courses, these schools are considered to have renowned programs created by experienced experts and educators. They also offer computer science degrees in person and at a Bachelors or Ph.D. level.

  1. California Institute of Technology
  2. Carnegie Mellon University
  3. Columbia University
  4. Cornell University
  5. Duke University
  6. Georgia Institute of Technology
  7. Harvard University
  8. Imperial College in London
  9. John Hopkins University
  10. MIT
  11. Princeton University
  12. Rice University
  13. Stanford University
  14. The Hong Kong University of Science and Technology
  15. The University of Edinburgh
  16. The University of Hong Kong
  17. The University of Melbourne
  18. The University of Tokyo
  19. University of California–Berkeley
  20. University of Illinois–Urbana–Champaign
  21. University of Miami
  22. University of Michigan–Ann Arbor
  23. University of Texas–Austin
  24. University of Washington
  25. Yale University

Scholarships: 2022 into 2023 🔗

You may think, “well, that list of schools is lovely, but I’m completely broke”! Don’t worry, we have you covered–there are numerous scholarship options available for computer science hopefuls, some even covering the cost of thousands of dollars. Each scholarship has different parameters that need to be met, but scholarships are an excellent way to save yourself money (and escape the hellish void of student loan debt) if you decide to pursue a school-bound course.

  1. (ISC)2 Graduate Scholarships
  2. (ISC)2 Undergraduate Scholarships
  3. AACE International Scholarships
  4. Admiral Grace Murray Hopper Scholarship
  5. Adobe Research Women-in-Technology Scholarship
  6. AFCEA Cyber Security Scholarship
  7. AFCEA ROTC Scholarship
  8. Amazon Future Engineer Scholarship
  9. Anita Borg Memorial Scholarship
  10. ARA Scholarship
  11. AWC Scholarship
  12. Banatao Scholarship
  13. Betty Stevens Frecknall Scholarship
  14. Catching the Dream Scholarship
  15. Chee Web Development Scholarship
  16. Chris Jackson Computer Science Education Scholarship
  17. Citigroup Scholarship
  18. CyberCorps Scholarship for Service
  19. Cybercorps Security Scholarship
  20. Cybersecurity Public Service Scholarship Program
  21. Dell Scholarship
  22. Dr. Robert W. Sims Scholarship
  23. EDSF Scholarship
  24. Electronic Document Systems Foundation Scholarships
  25. Elevate Women in Technology Scholarship
  26. ESA Foundation Scholarship
  27. ExCel Scholarship
  28. Ford Motor Tribal Scholarship
  29. General Mills Scholarship
  30. Generation Google Scholarship
  31. Get-It Scholarship
  32. Google Students Veterans of America Scholarship
  33. HENAAC Scholars Program
  34. Henry Beckman Scholarship
  35. Hoku Scholarship
  36. Honeywell International Scholarship
  37. Horizons Scholarship
  38. HostingAdvice.com Future Web Developers Scholarship
  39. IBM Scholarship
  40. IEEE Scholarship
  41. Intel Scholarship
  42. IT Women Scholarship Program
  43. KnowBe4 Military, Veterans, & Spouses Cyber Security Scholarship
  44. KnowBe4 Scholarship for Black Americans in Cybersecurity
  45. Lambeth Family Scholarship
  46. Lance Stafford Larson Scholarship
  47. Leading Lights Award and Scholarship
  48. Lockheed Martin Scholarship
  49. Lounge Lizard Web Design Scholarship
  50. Lucy Kasparian Aharonian Scholarship
  51. Marathon Oil Scholarship
  52. Microsoft Scholarship
  53. National Laboratory Scholarship
  54. National Security Agency Scholarship
  55. Northrop Grumman Scholarship
  56. Out to Innovate Scholarships for LGBTQ+STEM Students
  57. Paul and Ellen Ruckes Scholarship
  58. Ralph W Shrader Scholarship
  59. Richard E Merwin Scholarship
  60. RTF Cyber Security Scholarship
  61. Sarder Scholarship
  62. SBB Research Group STEM Scholarship
  63. Scott Tarbell Scholarship
  64. SMART Scholarship
  65. Stokes Educational Scholarship
  66. Upsilon Pi Epsilon Scholarship
  67. Wayne V. Black Scholarship
  68. West Virginia Scholarship
  69. Women in Cyber Scholarship Program
  70. Xerox Minority Scholarship

Computer science for dummies 🔗

Let’s say formal education isn’t your style. Going the self-taught route isn’t always easy, but it allows you to work at your own pace and strengthen your problem-solving skills. We will go on a quick run-down of coding languages you can focus on (and reasons why you should) before moving into resources that can aid you on your computer science journey.

hacker face

Let’s talk programming languages 🔗

Where to start? With over 700 computer languages out there, it sounds impossible. However, like most things, programming languages follow a power law so there aren’t that many popular ones. Anyways, we can start with some of the simplest languages to learn. There are some general categories we can use to separate programming languages into different groups: procedural, functional, and object-oriented languages.

Cornerstone languages of the web 🔗

Whatever specialty you choose, as long as it includes a visual component, CSS and HTML will likely play a critical role. Almost every site you see, and every web game you play, uses some form of CSS or HTML. Javascript is another one that can be considered a cornerstone language–or a language on which the basics of a solid programming career are built.

  • CSS is a rule-based coding language that describes the presentation of web pages, including layout, fonts, and colors.
  • HTML or Hypertext Markup Language, is the standard markup language for text files in a web browser.
  • JavaScript is a (somewhat) object-oriented computer programming language that is commonly used to create interactive effects on both the server and client sides. It is considered to be a core technology alongside HTML and CSS

Common programming languages 🔗

  • Python is an object-oriented, high-level language that is used to build websites and software. It is also used to automate tasks and conduct data analysis.
  • Go (or Golang) is an open-source programming language that was developed by Google engineers to have the simplicity of Python and the abilities of C. Its code can be compiled on almost any platform.
  • Java is an object-oriented language that is renowned for its portability. It requires compilation but the language can be run anywhere and is not just restricted to web browsers.
  • Ruby is an open-source, object-oriented language that is used for web servers, DevOps, and web scraping.
  • C is one of the longest-standing programming languages that is still popular today for its flexibility. It’s used to write applications and Operating Systems (and makes a great base for other languages to be used on top of).
  • C# is an object-oriented language that encompasses static typing, and functional and component-oriented disciplines to create numerous applications and programs, such as mobile apps, cloud-based services, and websites.

A sneak peek beyond the basics 🔗

Once you’ve mastered a few basic languages, you can move on to more intermediate languages. Remember, these are harder languages, many of them are meant to complement basic programming languages. So why talk about it now? While it’s good to know what to look forward to in your career, it also gives you an idea of how these languages are interwoven together and build on top of each other to create specialized designs and meet specific needs. These are just a few samples of intermediate programming languages that are out there:

  • C++ is considered to be one of the harder languages to learn. It’s an extension of the ‘C’ language, that is used for high-performance applications.
  • R is specifically designed to perform statistics work across large datasets. (Not to be confused with Ruby, which is a general purpose language).
  • Swift is another general purpose, multiple paradigm language developed by Apple that is mainly used for iOS and macOS.
  • PHP is general-purpose scripting language that is geared for web development.
  • SQL is a domain-specific language that’s designed for managing data in database management systems.
  • Kotlin is cross-platform language that interoperates with Java. It is widely used for creating mobile apps on Android systems.
  • Matlab is a multiparadigm programming language that allows for matrix manipulations, plotting of functions and data, and uses matrix math and array orientation that makes it easy to learn for scientists and engineers; though it is not open-source, as users need to buy licenses to access it.
  • TypeScript is an open-source language provided by Microsoft that builds on top of JavaScript. It aim to make the JS developer experience better.
  • Scala is general purpose language that is designed to support both object-oriented and functional programming.
  • Perl is an older general purpose language that is both stable and portable.
  • Haskell is a general purpose, functional programming language that is designed for research and industrial applications.
  • XML is a markup language much like HTML but is designed to carry data, not focus on how data looks, it’s not a really a programming language.
  • COBOL is a very old language designed for business use. It’s a procedural language.
  • Prolog. If you’ve hit prolog, congrats–you’ve reached the harder, and more niche languages. PROLOG is a logic-based language developed by AI and can be hard for new learners to grasp because it’s not procedural.

A collection of resources for learning CS as a beginner 🔗

Now that we’ve covered a few of the more common programming languages, it’s time to move on to the next phase: actually learning how to use and apply them. For that, resources are needed. If you’re looking to do independent learning, consider reading some computer science books.

study books

Computer Science Book Categories (Online-and Free!) 🔗

Computer Science Books (For Purchase, or Check Out at Your Local Library) 🔗

Unfortunately, not everything in the world is free. If the list above doesn’t satisfy your computer science cravings, here are 25 books that are available for purchase (or at your local library).

  1. Absolute Beginner’s Guide to Computing
  2. A Philosophy of Software Design
  3. A Programmer’s Guide to Computer Science
  4. Building Microservices: Designing Fine-Grain Systems
  5. Computer Programming for Absolute Beginners
  6. Computer Programming for Beginners: Fundamentals of Programming Terms and Concepts
  7. Computer Science: An Overview, 13th Edition
  8. Computer Science Illuminated, 7th Edition
  9. Computer Science Principles
  10. Computers Made Easy: From Dummies to Geek
  11. Computing Essentials 2021, 28th Edition
  12. Cyber Security All-In-One For Dummies
  13. Data Science for Dummies
  14. Domain-Driven Design: Tackling Complexity in the Heart of Software
  15. Extreme Programming Explained: Embrace Change
  16. Foundation Mathematics for Computer Science
  17. Fundamentals of Software Architecture: An Engineering Approach
  18. Growing Object-Oriented Software
  19. Introduction to Computer Science, 1st Edition
  20. Intro to Python for Computer Science and Data Science
  21. Practical Programming: An Introduction to Computer Science Using Python
  22. Python Programming: An Introduction to Computer Science, 3rd Edition
  23. Read It!: Design and Deploy Production-Ready Software
  24. SQL Quick Start Guide
  25. Think Like a Programmer

Computer science podcasts 🔗

Podcasts are an excellent way to learn on the go. Here are a few you can check out to get yourself more immersed in the wide, wide world of computer science. That said, make sure you aren’t only learning with podcasts, when learning computer science you do need to write and practice writing code yourself.

  • CodeNewbie - Host Saron Yitbarek tells stories and shares interviews of people of diverse backgrounds on their coding journeys
  • Coding Blocks - Website and podcast dedicated to becoming a better software developer
  • Computer Science - Oxford University offers a variety of podcasts catered to those in computer science
  • Comp Sci: Just the Useful Bits - Weekly podcast that covers different parts of computer science, whether it’s talking computer theory or working out specific algorithmic problems.
  • Computer Science Channel - Covers news in the world of computer science
  • Control+Click Cast - A podcast for web developers, freelancers, and web designers; hosted by Emily Lewis and Lea Alcantara
  • Daily Arxiv Radio Station - Daily podcast on cutting-edge research papers in computer science
  • Deep Questions with Cal Newport - Discusses ways to have meaningful life amid technology and work
  • Developer Tea - John Cuttrell helps engineers find clarity, perspective, and purpose, with high-value, short content
  • Learn to Code with Me - Host Laurence Bradford aids aspiring techies and coders transitioning into the computer tech industry
  • Linux Action Show - A weekly show that covers open-source and Linux news, reviews, and how-tos.
  • Packet Pushers - A networking and infrastructure engineering podcast by IT architects.
  • Programming Throwdown - Educates computer scientists and software engineers on programming and tech topics
  • Security Now - Steve Gibson and Leo Laporte discuss hot topics in today’s security
  • Security Weekly - A webcast that covers problems faced by information security. (Each webcast is worth 1 CPE credit!)
  • Software Engineering Daily - Covers interviews about technical topics
  • Software Engineering Radio - Offers ideas, expert analyses, and thoughtful insights for software professionals keeping up with rapid technology changes
  • Spark with Nora Young - Nora Young, a Canadian broadcaster, connects you to fresh, new ideas to help you navigate through digital life
  • Start Here FM - Provides insightful podcasts to help you get started–or to level up–in your web development career
  • Talking Machines - Hosts Katherine Gorman and Neil Lawrence bring interviews and news for those interested in machine learning
  • Talk Python to Me - A weekly podcast on Python and related technology
  • The CS-Ed Podcast - Dr. Kristen Stephens-Martinez talks to educators about teaching and equity in computer science
  • The Machine: A Computer Science Education Podcast - Faculty and students from Waterford Institute of Technology explore topics related to computation and technology
  • What the Tech? - Hosts Andrew Zarian and Paul Thurrott deliver news on new and emerging technologies from around the world
  • Women in Data Science - Host Espree Devora interviews female engineers, UX and UI designers, who share how they got to where they are today

Computer Science Youtube Channels 🔗

If you’re more of a visual learner, consider checking out different Youtube channels and videos. There are thousands of video tutorials for beginners with different perspectives on computer science. Here’s a list of a few channels and videos to help you get started. Now, watching videos is no substitute for actual coding, but these should give you a basic idea of things you can learn (along with providing you interesting to follow tutorials).

The same thing I said about podcasts applies to YouTube videos however, make sure you’re getting hands-on practice writing code and building projects. Just consuming information won’t be enough.

  • Ben Eater - Youtube channel that showcases tutorials on electronics, networking, and computer architecture
  • CodeOrg - A non-profit channel dedicated to computer access in schools and communities.
  • Computerphile - A channel dedicated to computers and all computer-related things, such as Why Information Theory is Important or Kids Coding Languages
  • Computer Science - Channel covers coding in programming languages such as Python, VB.NET, C#, SQL, HTML, CSS, and JavaScript
  • Craig N Dave - Two guys with computer science degrees provide students and teachers with knowledge related to specific exam boards, such as OCR, AQA, and Edexcel
  • CS50 - Harvard University introduces you to the world of computer science and programming
  • CSS-Tricks - A web design community hosted by Chris Coyier
  • Destin Learning - A learn-at-your-own-pace channel that covers Microsoft, cloud computing, Java, and more
  • Eli the Computer Guy - Eli gives free training and advice on cyber security and programming
  • Freecodecamp.org - Channel shares full courses on JavaScript, Python, HTML, CSS; even ethical data hacking
  • Joe Collins - Want to know more about Linux? This channel covers that and more
  • Joe James - Learn math and programming with a focus on Python and Java.
  • Learncode.academy - Offers free web design tutorials using HTML, CSS, JavaScript and more
  • MITCSAIL - The Massachusetts Institute of Technology’s Computer Science and Artificial Intelligence Laboratory (CSAIL) share interviews and tutorials in all areas of computer science and AI
  • Mobile Computer Science Principles - While a high school curriculum course, it covers mobile building applications for Android devices
  • Network Engineer Academy - Jorge Armando Navarro shares his knowledge on becoming a high-paid, IT engineer
  • Os First Timer - This channel shares extensive knowledge on different operating systems
  • Programming Knowledge - Coding tutorials for Python, using Linux systems
  • Programming with Mosh - Covers a wide range of programming languages such as Python, C#, and more in hour-long videos
  • Teluska Learnings - Offers free programming tutorials for beginners to advanced, covering material for Java, Python, Blockchain, and more
  • The PCSecurity - This channel is the go-to for cybersecurity, covering antivirus software, Endpoint security testing, product testing, and cyber security news from around the world
  • Treehouse - Professor “T” shares hundreds of courses on how to build web apps, mobile apps, and start your own business
  • Zach Star - While not wholly dedicated to all things computer science, he shares some exemplary insights into computer science fields and subfields and what computer science is

Computer Science Bootcamps for newbies 🔗

If formal schooling and going completely self taught aren’t the routes for you, bootcamps are an excellent way to achieve computer science knowledge at a rapid pace. They have shorter durations and are often very intense, though they are typically more affordable than getting a 4-year degree. Different camps will cover different materials in their courses. Oftimes, the tradeoff is that a bootcamp may or may not offer a job guarantee. When choosing a bootcamp, make sure you thoroughly inspect each one to decide if it’s the route for you.

  • Actualize: - Is a 17-week program taught by expert educators, broken up into 5 weeks of at-home exercises and 12 weeks of live instruction. The curriculum covers backend database design while teaching you how to think like a true developer
  • Alchemy Code Lab: - Alchemy’s 25-week course offers full-time instruction that allows you to graduate as a professional software developer, ready for mid-level entry into the job world
  • App Academy: - A 16-24 week bootcamp with a curriculum that covers JavaScript, Python, SQL, CSS, ReactJS, Express, Flask, and SQL Alchemy. It can be done full-time, part-time, or at your own pace
  • App Academy: - Offers a 16-week on-campus training in New York City or San Francisco, but offers a 24-week online route. It can be done full or part-time and has you design four different projects for your personal portfolio
  • Big Nerd Ranch: - A one-week coding bootcamp that covers iOS, Android, Kotlin, Web, and UX/UI design.
  • Bloom Institute of Technology: - The self-paced curriculum emphasizes developing skills in full-stack and back-end. It takes 4-18 months to complete, depending on how driven you feel in the moment
  • Bootdev: - Offers an excellent way to learn back-end development. It includes learning languages such as Javascript, HTTP, Python, and Go. In addition to available courses, it includes a robust Discord community for unity and support
  • Codesmith: - Depending on the program selected, the Codesmith boot camp ranges from 12-38 weeks. The curriculum focuses on different aspects of computer science, such as Front and Backend Development, along with gaining real-world experience using Git and GitHub
  • Codeup: - Offers multiple programs in Web Development (20 weeks), IT Systems/Engineering (13 weeks), and Data Science (20 weeks)
  • Codeworks: - Codeworks programs are offered in person in Barcelona, London, and Berlin, or remote in America and Europe. The programs range from 8-12 weeks, covering web development and network
  • Coding Dojo: - It offers full-time and part-time programs ranging from 14-32 weeks, with curriculums in Cyber Security, Data Science, and Software Development
  • Concordia Bootcamps: - A 12-week, intensive boot camp that will earn you a web development diploma in Full-Stack Development
  • DevPoint Labs: - Offers full-time and part-time Web Development courses that are 11 weeks, with live remote classes and hackathons
  • Flatiron School: - Numerous courses that range from 15-60 weeks. Offers online and in-person training, and can attend bootcamps concentrating on data science, cybersecurity, software engineering, or product design.
  • FullStack Academy: - Offers a 17-28 week three-phase program that covers basic CSS, HTML, and Javascript, Phase 2 covers programming and web development, with phase 3 moving into interactive work with a 1:1 couch.
  • General Assembly: - 10, 12, 24 weeks
  • Grand Circus: - Offers numerous specialized courses during daytime or after hours, ranging between 4-28 weeks depending on the program.
  • Hack Reactor: - Offers programs in Software Engineering Immersive(12 weeks full-time, 36 part-time), or Software Engineering with a focus on Python and JavaScript coding (19 weeks)
  • NuCamp: - Offers boot camps that cover beginner to advanced curriculum, with online or local boot camps in Web Development Fundamentals, Back End, SQL, and DevOps with Python, Full Stack Web Development and Mobile App Development, and Front End Web and Mobile App Development (courses ranging between 4-22 weeks). There is also the 11-month, Software Engineering Bootcamp available.
  • Skill Distillery: - Has immersive programs that prepare you for the Java Oracle Certified Associate exam. The 12-week program is a Java Coding boot camp, and the 16-week is Java Full Stack Development Program
  • Software Guild: - Covers basics of object-oriented programming, followed by intermediate and advanced Java and featuring a Capstone Project with an apprenticeship, neatly wrapped up in a 12-week course
  • Tech Elevator: - 14-30 week full-time boot camp with an introduction to JavaScript or C#. Includes web programming and data-based programming
  • The Tech Academy: - Offers 11 different boot camps, that run 10-22 weeks depending on the programs, which are as follows: JavaScript, Game, Cyber Security, Mobile Apps, Software, Python, Java and Android, Data Science, UI/UX, C#/.NET Frameworks, and FrontEnd Development
  • Zip Code Wilmington: - A 12-week program that uses current, real-world tech to to help students learn computer concepts and coding languages

Computer science projects for beginners 🔗

Whether you get formal schooling, do a bootcamp or learn independently, I cannot begin to emphasize the importance of working on personal projects. It’s a great way to build skills and prove those skills with something tangible to show for it. For a project, you can focus on what particular skills you are looking to develop. So what are some great computer science projects for newbies? Let’s look at a few:

  1. Build a website landing page
  2. Create a platformer game
  3. Build a multi-page, responsive website
  4. Creating a random number generator
  5. Real-time weather forecasting app
  6. Library Management System
  7. Real-time Web search engine
  8. e-Authentication network
  9. Build a chess game
  10. Build a web scraper
  11. Create a basic calculator
  12. Make a mobile app
  13. Flip images
  14. Make a countdown timer
  15. Build a drawing app
  16. Create a book finder app
  17. Create a Javascript slideshow
  18. Create a to-do list app
  19. Magic 8-Ball
  20. Build a calendar application
  21. Currency converter
  22. Stock ticker
  23. Duplicate text checker
  24. Basic hospital management system
  25. Task management application

If you’re looking for more language-specific projects, consider checking out Javascript Projects for Beginners or Python Projects for Beginners.

Starting a computer science path 🔗

Once you’ve completed your schooling, or even before you’ve finished, start look for jobs straight away. Familiarize yourself with job requirements to find an entry level job–though some jobs and projects can launch you into intermediate level jobs. The outlook for computer jobs is bright, and with the proper set of skills learned, (and a brushed up resume) you should be able to find a job in no time. If you’re unsure of what jobs to look for check out some of our other articles for more insight.

Can you really learn computer science? 🔗

Computer Science is, overall, a blend of math and science, of soft skills and hard skills, all it’s all tied together to keep our apps, phones and computers running. Pursuing computer science requires you to become a rapacious learner with an insatiable curiosity and a strong propensity for problem-solving. Even if you think of yourself as a computer ‘dummy’, if you invest the time and effort, computer science will reward you, whichever path you choose to pursue.

Good luck!!!

Find a problem with this article?

Report an issue on GitHub