Build Your Technical Skills with Free Hands-on Learning Activities!

These resources are for high school computer science teachers, university faculty, or anyone working in, studying, or curious about software engineering.

I was “out and about” online looking for some entry-level coding resources to help my daughter’s curious friend begin exploring and experimenting with coding. He is entering high school and has a lot of great ideas, along with the energy and enthusiasm to pursue those ideas. He had an idea for a new app, and he wasn’t quite sure where to even begin building his software development skills. That’s not something we’re really offering at this time, but in the interest of “helping him succeed” and feeding the needs of future technologists, I went in search of free, user-friendly resources that would allow him to learn by doing. Exploring and playing around with technology is the fastest, most effective and most affordable way to learn, and that’s what people need to get engaged and build new skills. I was so excited about what I found that I had to share the resources here. This blog is for you Rafael!

The guide provides tips and resources to help you develop your technical skills through self-paced, hands-on learning activities. It is intended for self-taught, advanced high school or university-level Computer Science students considering seeking an internship or full-time job in the tech industry generally. The resources shared here are intended to help supplement your education or provide an introduction to relevant topics.

Whether you’re a student or an educator, newer to computer science or a more experienced coder, or otherwise interested in software engineering, there’s something you can benefit from in this curated set of hands-on learning activities and other resources compiled into Google’s Guide to Technical Development. You can use any of the guide’s resources, in any order. But, if you’re not sure where to start, you can follow one of the recommended learning paths below based on your current skill level. These resources and recommended learning paths have been curated by university computer science faculty and Google engineers with students in mind..

Choose a Learning Path

You can use any of the guide’s resources, in any order. If you’re not sure where to start, why not follow one of these paths curated by university computer science faculty and Google engineers?

Foundations of Programming

This learning path includes free online learning resources created to reinforce basic software engineering skills for new programmers. If you’ve already taken a class or two, try this selection of resources to supplement and expand what you’re learning. This resource set is great for general practice and gets into topics like mastering lists, strings, objects and references, values and pointers, and testing and debugging.

With 33 free learning activities included in this subset of resources, you can decide where you’d like to start!

  • Solve Problems! Do you prefer hands-on practice and putting your skills to the test in order to prefer to test your skills first to get a sense of what you may still need to work on? Start off trying to solve a few hands-on challenges and see how you do.
  • Practice testing & debugging! Build confidence with learning activities that let you practice checking and fixing your own code!
  • Complete them in order! Start with the easier resources first, and build your confidence as you advance through the material.

Advanced Programming

This learning path sharpens skills and tools for experienced programmers and advanced students. If you’re beyond introductory university courses or are an experienced coder, these resources may help you refine your skills and technical know-how as you prepare for a career in the tech industry.

With 21 free learning activities included in this subset of resources, you can decide where you’d like to start!

  • Practice Problem Solving! For more experienced programmers with hard-to-spot knowledge gaps, the sequence of activities starts with questions and activities that help you identify those areas of skill building that may require a little more attention from you.
  • Open Source First! Creating code from scratch is not cost-efficient or a good use of your time! Skillful [and resourceful] software developers know how to find and leverage great snippets of code that soeone else has already developed and used. In this sequence of hands-on learning activities, you’ll learn to “use open source code effectively”.
  • Recommended Sequence. Complete them in order! Continue your coding journey by going through a sequence of activities that build important software engineering skills.

Machine Learning

This learning path takes you to the cutting edge of computer programming – but keeps you from falling off! The hands-on learning activities in this curated content set help you get a good handle on machine learning through online coursework and competitions.

Consider this your Machine Learning Crash Course (MLCC). Once you have the basics down, you can build your skills and confidence by applying ML techniques to big datasets in real-world competitions.

If you are ready to move past traditional programming and explore machine learning, start here. Once you build the skills you need in this toolkit, you can practice real-world problems in Kaggle competitions.

With 60 free learning activities included in this subset of resources, you can decide where you’d like to start!

Check out these free machine learning resources!

Cloud Computing

These resources help you build your skills in three key areas: Cloud applications, Data & Machine Learning in the cloud, and cloud infrastructure management. The content curated and included in this subset of learning activities will help you build skills in the following areas:

  • Application Development – Learn to use cloud to develop applicaitons, games and online services. Dig into Google’s Compute Stack, serverless architectures and clou storage in order to build products that take advantage of the cloud.
  • Data & Machine Learning – Dissect massive datasets. Improve your understanding of data and new tools used to take maximum advantage of that data, like BigQuery, Dataprep and CloudML – all of which can be leveraged for data analysis and machine learning.
  • Cloud Infrastructure for Application Optimization – Learn to monitor an application with Stackdriver, deploy microservices at scale with Kubernetes, manage access control and more [courtesy of Google].

With 53 free learning activities included in this subset of resources, you can decide where you’d like to start!

Check out these free cloud-related training resources!

Hands-on Learning Activities

Foundational Programming Activities & Practice

These practice exercises and skill-building challenges have been curated by Google to help you build your foundational programming skills. Enjoy!

Advanced Programming Activities & Practice

These practice exercises and skill-building challenges have been curated by Google to help you build and practice more advanced programming skills. Enjoy!

Visit the Resource Library

Check out all the different learning resources in the guide: problems and projects, former Google interview questions, online courses, education sites, videos, and more.

If you don’t want to follow a sequence suggested by content curators, you can move freely throughout the available learning activities and content. The resource library includes all the items listed in all the pathways referenced above – all sortable by content category referenced above.

Resource Library


This is a great set of resources for any existing or aspiring technologist looking to build our their skills. As always, is it important to give credit for the curation of these resources where it is due. The information referenced above has been gathered via Google’s work with students, faculty, and universities. In particular, Google has acknowledged the contributions of their outstanding volunteer faculty advisors: Laleh Behjat, University of Calgary; Judith Gal-Ezer, Open University of Israel; Mia Minnes, University of California San Diego; Sathya Narayanan, California State University Monterey Bay; and S. Monisha Pulimood, The College of New Jersey. They gave substantial input to the design and content and helped keep the needs of their faculty peers and students front and center.

Call to action!

Share your favorite or most helpful learning activities in the comments below for others in the Cybr Community to benefit from!

Related Articles


Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.