Getting 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:
- Programming! You need to know how to write code. You can start here in Python if you’re new.
- Programming paradigms like object-oriented programming and functional programming
- The study of algorithms and data structures
- Understanding of memory management and CPU architecture
- Modeling data and information processes
- Operating systems
- Artificial intelligence
- Computational problem-solving, implementation, and theory
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:
- Learning computer science online
- Learning computer science at a university
- Learning computer science at a bootcamp
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.
- California Institute of Technology
- Carnegie Mellon University
- Columbia University
- Cornell University
- Duke University
- Georgia Institute of Technology
- Harvard University
- Imperial College in London
- John Hopkins University
- MIT
- Princeton University
- Rice University
- Stanford University
- The Hong Kong University of Science and Technology
- The University of Edinburgh
- The University of Hong Kong
- The University of Melbourne
- The University of Tokyo
- University of California–Berkeley
- University of Illinois–Urbana–Champaign
- University of Miami
- University of Michigan–Ann Arbor
- University of Texas–Austin
- University of Washington
- 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.
- (ISC)2 Graduate Scholarships
- (ISC)2 Undergraduate Scholarships
- AACE International Scholarships
- Admiral Grace Murray Hopper Scholarship
- Adobe Research Women-in-Technology Scholarship
- AFCEA Cyber Security Scholarship
- AFCEA ROTC Scholarship
- Amazon Future Engineer Scholarship
- Anita Borg Memorial Scholarship
- ARA Scholarship
- AWC Scholarship
- Banatao Scholarship
- Betty Stevens Frecknall Scholarship
- Catching the Dream Scholarship
- Chee Web Development Scholarship
- Chris Jackson Computer Science Education Scholarship
- Citigroup Scholarship
- CyberCorps Scholarship for Service
- Cybercorps Security Scholarship
- Cybersecurity Public Service Scholarship Program
- Dell Scholarship
- Dr. Robert W. Sims Scholarship
- EDSF Scholarship
- Electronic Document Systems Foundation Scholarships
- Elevate Women in Technology Scholarship
- ESA Foundation Scholarship
- ExCel Scholarship
- Ford Motor Tribal Scholarship
- General Mills Scholarship
- Generation Google Scholarship
- Get-It Scholarship
- Google Students Veterans of America Scholarship
- HENAAC Scholars Program
- Henry Beckman Scholarship
- Hoku Scholarship
- Honeywell International Scholarship
- Horizons Scholarship
- HostingAdvice.com Future Web Developers Scholarship
- IBM Scholarship
- IEEE Scholarship
- Intel Scholarship
- IT Women Scholarship Program
- KnowBe4 Military, Veterans, & Spouses Cyber Security Scholarship
- KnowBe4 Scholarship for Black Americans in Cybersecurity
- Lambeth Family Scholarship
- Lance Stafford Larson Scholarship
- Leading Lights Award and Scholarship
- Lockheed Martin Scholarship
- Lounge Lizard Web Design Scholarship
- Lucy Kasparian Aharonian Scholarship
- Marathon Oil Scholarship
- Microsoft Scholarship
- National Laboratory Scholarship
- National Security Agency Scholarship
- Northrop Grumman Scholarship
- Out to Innovate Scholarships for LGBTQ+STEM Students
- Paul and Ellen Ruckes Scholarship
- Ralph W Shrader Scholarship
- Richard E Merwin Scholarship
- RTF Cyber Security Scholarship
- Sarder Scholarship
- SBB Research Group STEM Scholarship
- Scott Tarbell Scholarship
- SMART Scholarship
- Stokes Educational Scholarship
- Upsilon Pi Epsilon Scholarship
- Wayne V. Black Scholarship
- West Virginia Scholarship
- Women in Cyber Scholarship Program
- 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.
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.
Computer Science Book Categories (Online-and Free!) 🔗
- Algorithms: 4th Edition
- Algorithms and Data Structures
- Artificial Intelligence and Logic Programming
- Assembly and Machine Languages
- Big Data
- Bioinformatics and Computational Biology
- Blockchain, Bitcoin, and Cryptocurrency
- Category Theory
- Compiler/Interpreter Design and Construction
- Computability Theory and Logic
- Computational and Algorithmic Mathematics
- Computational Complexity
- Computational Linguistics and NLP
- Computational Simulations and Modeling
- Computer and Information Security
- Computer and Programming Languages
- Computer and Video Game Programming
- Computer Architecture and Systems
- Computer, Digital and Mathematical Music
- Computer Forensics
- Computer Graphics and Digital Images
- Computer Hardware, Personal Computers (PC)
- Computer Networks
- Computer Programming
- Computer Vision and Machine Vision
- Cryptography, Cryptology, and Cryptanalysis
- Data Analysis and Data Mining, Big Data
- Data Science
- Database Theory and Systems
- Deep Learning and Neural Networks
- Digital Signal, Sound, and Imaging Processing
- Discrete and Finite Mathematics
- Functional Programming
- Geographic Informational Science (GIS)
- Graph Theory
- History of Computing and Computers
- Human-Computer Interaction
- Informational Retrieval (IR) & Search Engines
- Information Theory and Systems
- Introduction to Computer Science
- Machine Learning
- Mathematical and Computational Software
- Mobile Computing and Programming
- Numerical Analysis and Computation
- Object-Oriented (OOA/OOD/OOP)
- Operating Systems (OS) Design
- Optimization Problems
- Parallel and Distributed Computing
- Quantum Computing
- Reverse Engineering
- Robotics and Robot Programming
- Software Design and Patterns
- Software Engineering
- TeX, LaTeX, and AMS and LaTeX Typesetting
- Theory of Computation and Computing
- Theory of Programming Languages
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).
- Absolute Beginner’s Guide to Computing
- A Philosophy of Software Design
- A Programmer’s Guide to Computer Science
- Building Microservices: Designing Fine-Grain Systems
- Computer Programming for Absolute Beginners
- Computer Programming for Beginners: Fundamentals of Programming Terms and Concepts
- Computer Science: An Overview, 13th Edition
- Computer Science Illuminated, 7th Edition
- Computer Science Principles
- Computers Made Easy: From Dummies to Geek
- Computing Essentials 2021, 28th Edition
- Cyber Security All-In-One For Dummies
- Data Science for Dummies
- Domain-Driven Design: Tackling Complexity in the Heart of Software
- Extreme Programming Explained: Embrace Change
- Foundation Mathematics for Computer Science
- Fundamentals of Software Architecture: An Engineering Approach
- Growing Object-Oriented Software
- Introduction to Computer Science, 1st Edition
- Intro to Python for Computer Science and Data Science
- Practical Programming: An Introduction to Computer Science Using Python
- Python Programming: An Introduction to Computer Science, 3rd Edition
- Read It!: Design and Deploy Production-Ready Software
- SQL Quick Start Guide
- 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:
- Build a website landing page
- Create a platformer game
- Build a multi-page, responsive website
- Creating a random number generator
- Real-time weather forecasting app
- Library Management System
- Real-time Web search engine
- e-Authentication network
- Build a chess game
- Build a web scraper
- Create a basic calculator
- Make a mobile app
- Flip images
- Make a countdown timer
- Build a drawing app
- Create a book finder app
- Create a Javascript slideshow
- Create a to-do list app
- Magic 8-Ball
- Build a calendar application
- Currency converter
- Stock ticker
- Duplicate text checker
- Basic hospital management system
- 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!!!