Have you ever wanted to learn how to code? Do you know how to code, but want to enhance your skills or learn a new one? As an undergraduate computer science and software engineering student myself, I have used various resources and tools outside of my college courses to build on my knowledge and practice my coding skills. In this blog post, I would love to share some of my favorite online and/or free websites and other materials that I use and recommend to anyone interested in or pursuing computer science.
Of course, I don’t think any of these tools could replace the learning experience of my college courses, however I think they are wonderful for those who are just getting started, want to learn at their own pace, or those who want to expand their existing coding skills and/or prepare for interviews.
Codecademy
Codecademy is a free online website (and mobile app) that provides a growing catalog of courses, learning paths, and career paths designed to help users build their coding knowledge and explore the skills needed for different technical careers (front-end and back-end engineering, data analytics, game development, web development, etc.). It is an interactive platform that helps students learn-by-doing and offers “classes in 12 different programming languages including Python, Java, Go, JavaScript, Ruby, SQL, C++, C#, and Swift, as well as markup languages HTML and CSS”.
In addition to coding courses, they also have resources for interview prep and allows you to earn professional certificates that you can put on your resume after successfully completing a course.
While the majority of Codecademy’s courses are completely free, there are also a few more advanced courses that require the Codecademy Pro membership. As a college student though, you can receive complete access to the full interactive curriculum for over 55% off the regular price!
I am currently enrolled in the “Data Scientist: Analytics” Career Path as well as the “Back-End Engineer” Career Path, and have really enjoyed my experience working through each of the lessons. I think Codecademy does a fantastic job of introducing you to new concepts through articles, videos, real-world examples, and short quizzes. It gives me hands-on coding experience within their learning environment and even provides hints if I ever get stuck.
DataCamp
DataCamp is another interactive learning platform that offers hundreds of courses and several career track certificate programs in different technologies and coding languages, such as SQL, Python, R, Power BI, Tableau, and more. DataCamp aims to help users build data science, statistics, machine learning, and artificial intelligence skills. They note that 80% of Fortune 1000 companies use DataCamp to upskill their teams, including top companies, such as Google, PayPal, eBay, Microsoft, and Uber.
My STEM scholarship mentors actually recommended DataCamp to me, because their company’s Data and AI team sometimes uses the courses to hone in on their skills. Since then, I have completed DataCamp’s “Introduction to Python” and “Understanding Data Science” lessons.
Courses usually include short videos and interactive exercises that are catered to everyone – from beginners to those already in the industry. The courses are taught by DataCamp instructors and all the lessons allow you to practice and apply the skills you learned through different problems and projects.
Similar to Codecademy, DataCamp also has the option to upgrade your learning plan to unlock more advanced courses, however, you can again use your status as a college student to receive over 50% off the regular price if you do decide to explore more courses. They also offer professional certifications as part of the premium plan, as well.
LeetCode
LeetCode is a bit different than the above platforms in that it is mainly used to practice solving coding problems and prepare for technical interviews. The primary users of the website are software engineers.
It offers over 2750 free exercises, which each have a level ranking of “Beginner,” “Medium,” or “Hard.” The coding questions focus on data structures and algorithms and supports multiple programming languages.
When you complete a problem, LeetCode will judge your solution based on how many test cases it passes, runtime, and memory usage compared to other submissions. LeetCode also has an option to view other users’ posted solutions and provides hints when you’re stuck on a problem.
The website offers study plans, crash courses, and challenges. Some of these will guide you through how a technical interview might look like at some of the big tech companies, such as Google, Amazon, and Facebook.
The questions are very similar (if not sometimes the same) to ones that are asked in technical interviews, so it is a really great tool to use if you know you’ll be applying to jobs or internships in the tech industry soon. Some people recommend completing at least one LeetCode question a day to consistently build your skills and better prepare for your upcoming interviews.
Library Resources
The UW Bothell / Cascadia College Library contains a plethora of wonderful books and other materials for anyone pursuing computer science and software engineering – and they’re free! On the third floor of the library, in the QA section located in LB2, you can find a wide range of computer science textbooks that can help you learn a new programming language, explore specific concepts, or you might just need them for one of your CSSE courses. Here are just a few examples pulled right from our collection:
A popular book that many UWB professors and other professionals in the field highly recommend is “Cracking the coding interview: 189 programming questions and solutions.” You can get it here at the library in our Career Books collection located on the first floor next to the Research and Computing Help Desk.
“Cracking the coding interview” is a great resource for preparing for the technical interview and dives into what skills you need to succeed. It provides 189 problems and walks you through how to approach each question, how to break down the question into manageable chunks, as well as how to derive the best solution. Some topics include big O time, data structures, and algorithms.
Instead of spending hundreds of dollars on books for your classes and career, you can get them at no cost from the campus library! I really recommend perusing our physical collection or using the UW library search catalog to find specific titles or topics. You can checkout the materials at the front desk or you can place a hold on an item online and pick it up. All you need is your campus ID card (Husky card or Cascadia College card) to check out items.
Additional Resources
- Google Certifications
- Microsoft Certifications
- HackerRank (similar to LeetCode)
- Coursera
Glossary
Definitions for the terms mentioned in this blog post.
front-end engineer: focuses on the “user side” of software, meaning everything a user sees and interacts with while using an application
back-end engineer: works on the server side of the software, aka the software’s infrastructure (parts that aren’t visible to the average user)
data scientist: a problem solver who prepares and analyzes data to provide organizations with insights that help them make better business decisions
software engineer: a person who applies the engineering design process to design, develop, maintain, test, and evaluate computer software
upskill: teach (an employee) additional skills
runtime: the amount of time in which a machine takes to run a program’s code
memory: stores information, such as data and programs for immediate use in the computer
big O time: the time it takes to run an algorithm as the input grows (time complexity)
data structures: a data organization, management, and storage format that is usually chosen for efficient access to data
algorithms: a set of coded instructions used to solve a problem or perform a task
Glossary resources: The Forage, Wikipedia, Oxford Dictionary, SimpliLearn