Projects

Published April 27, 2026Read Time 6 min

Understanding DSA & Learning Computer Science Concepts

We went more into this in the previous section, but Data Structures and Algorithms (DSA) are one of the most important concepts you should know if you want to enter the SWE sphere. A strong understanding of DSA helps you write efficient code, reason about performance, and solve technical interview problems. Do not wait until CS344 to start learning algorithms. Spending just 30 minutes a day solving a DSA problem will prepare you extremely well for any SWE role or internship alongside strong project experience.

Here are some helpful resources to help learn DSA:

For learning new skills or for additional notes/resources on your classwork, check out the massive open online course (MOOC) platforms below. Many offer certificates, which you can put on your LinkedIn:

Linux

Knowing your way around linux environments is essential to staying afloat in dev/production environments. Even as an app developer, you need to know how to set up systems properly and manage your apps on linux servers. Having fluency in the terminal is a must , so here are some resources to help get your foot in the door:

Learning New Coding Languages

Learning how to code is best done through building projects. Once you take Intro to Computer Science and Data Structures, you’ll understand basic concepts that are implemented in some way by all similar languages. For instance, all general purpose coding languages share loops, conditionals, variables, and more. As an aside, if you take Principles of Programming Languages (CS 314), you’ll learn about the types of languages that exist, but the point is building projects and looking up concepts as you need them is the best way to learn a new language, as you already know fundamental concepts and are just learning how different languages implement these concepts. Here are some resources to get started with new languages:

C

Python

C++

Web Applications

Web applications are a great way to implement (and learn) software engineering skills on your own.

Make a Github account and build your own personal website as a first step. It’s like creating your own project and experience hub on the Internet. You can use it as a marketplace, a collection of your own resources, a way to advertise/showcase your skills, etc. Regardless, it is helpful to have all your projects and CS-related resources in one digital place. From there, build your skills by creating more complicated projects which include a frontend, backend and database.

Here are some resources to help you get started to learn concepts as well as tutorials to build projects. Be creative with your project ideas by thinking of problems you have that you can solve. You can also use LLMs to brainstorm some ideas as well:

Learning Concepts

Project Tutorials and Practice

AI/ML

Understanding data and basic machine learning is becoming a core skill for software engineers. Even if you do not plan to work directly in AI, you will still deal with data in almost every role. You will likely read logs, track user behavior, measure performance, and make decisions based on metrics. Knowing how to clean, visualize, analyze, and draw conclusions from data will allow you to justify technical decisions with evidence.

AI and machine learning are also becoming common across all products. Features like recommendations, search ranking, and automation are all applications of these two concepts. Large language models, or LLMs, are also a major part of this shift. They are the basis for chatbots, code assistants, and many modern tools used in industry. You do not need to build models from scratch (though it is highly recommended to understand how they work! Do this!), but you should understand how they work at a high level, and should know how to use common LLM APIs.

Start by learning basic concepts using a youtube tutorial or Google’s machine learning crash course, then build small projects using data from kaggle with simple models via sci-kit learn, or build your own model using PyTorch or TensorFlow.

Here are some resources to help you get started:

General CS Knowledge:

Please let us know if anything is broken, needs to be updated, or if you have any feedback here.