5 Fun Tech Activities to Do Over Break

5 Fun Tech Activities to Do Over Break

Have you had a little more free time than normal, lately?
If so, don’t waste it!
Here are 5 activities you can do right now that will teach you a little more about technology.

#5: Code.org: App Lab

Difficulty: No programming experience necessary
Website: https://studio.code.org/projects/applab

An example app from app lab
An example app from Code.org’s App Lab

In my experience, many people quickly dismiss Code.org because it has portions targeted towards teaching kids to code. However, Code.org has very capable tools for teens as well. In particular, their new tool “App Lab” allows anyone to drag and drop code blocks together to create small apps and websites, and it serves as a great introduction to JavaScript and web technologies.

Building a website with drag and drop code may seem basic, but every block is just a representation of JavaScript. The blocks lets you write the code for your app without having to memorize any syntax. and allow you focus on design. If you want to go deeper, clicking “Show Text” will translate your blocks into real code and allow you to work with the code directly.

You can get started right now with the App Lab interactive video tutorial.

Note that an account is required to use the full App Lab.

TL;DR: You can make cool apps with little to no programming experience.

#4: LeetCode

Difficulty: Some programming knowledge required
Website: https://leetcode.com

Image showing programming challenge on left with code on right
An example problem and solution on LeetCode

LeetCode is a free website built to help you learn and practice programming through algorithm challenges. Basically, this website gives you a problem to solve and a box to run your code in. Your code will be evaluated based on correctness, memory usage, and time, forcing you to think about multiple aspects of your code while designing it. There are over a thousand problems to work on, starting with simple problems for learning the basics and gradually getting more difficult until you are capable of solving real world problems.

Additionally, there is a discussion and solution page for each problem, so you can see what you might have missed and see how other people approached the problem. I have found these very helpful, and they make LeetCode one of the most rewarding platforms on this list.

I recommend starting with some top interview questions. If you are spending more than an hour on a single problem, I recommend you move on. It is good to challenge yourself with hard topics, but you will learn more by doing more simple topics, and building up to more difficult topics over time.

Note this website requires you to create an account to run your code.

TL;DR: This is the best website for algorithm challenges.

#3: Project Euler

Difficulty: Mathematically challenging, with some programming knowledge required
Website: https://projecteuler.net 

A screencap of a challenge on Project Euler
A question example from Project Euler

Project Euler is very similar to LeetCode in that you are presented with a challenge and are expected to write a program to solve it. However, Project Euler is different in that it does not run the code, but only takes an answer. You are expected to write and run the code yourself. If you do not have a way to write code, I recommend repl.it  to write and run code online.

Project Euler is much more focused on mathematics than LeetCode, and some of the problems can get very difficult. It’s okay to not solve everything immediately. The problems are intended to be challenging.

Note that you can view the problems without an account, but an account is required to submit the answers.

TL;DR: This is a good website to combine math and programming.

#2: FreeCodeCamp

Difficulty: No programming experience necessary
Website: https://www.freecodecamp.org/learn/

A challenge on www.freecodecamp.org
An example lesson on www.freecodecamp.org

Where Project Euler and LeetCode give you challenges, FreeCodeCamp gives you lessons. FreeCodeCamp is intended to be a self driven programming curriculum, replacing or supplementing programming exposure in school. Each lesson will likely take a few seconds to a few minutes, but there are thousands of hours of content in total.

From the site’s opening blurb:

freeCodeCamp is a proven path to your first software developer job.

More than 40,000 people have gotten developer jobs after completing this – including at big companies like Google and Microsoft.

If you are new to programming, we recommend you start at the beginning and earn these certifications in order.

To earn each certification, build its 5 required projects and get all their tests to pass.

You can add these certifications to your résumé or LinkedIn. But more important than the certifications is the practice you get along the way.

If you feel overwhelmed, that is normal. Programming is hard.

Practice is the key. Practice, practice, practice.

Note than an account is required to submit solutions.

TL;DR: This website will teach you all about web design and JavaScript.

#1: BattleSnake

Difficulty: Requires strong programming experience
Website: https://play.battlesnake.com

An example match on BattleSnake
An example match on BattleSnake

This is definitely the most technically challenging entry on this list, but it also has the highest potential for reward. BattleSnake is an online competition about creating the best snake. This project involves setting up a web API and writing an artificial intelligence that will keep your snake alive as you fight to the death at superhuman speeds. (Basically you take a game board and send back what direction the snake should face to not die.)

If you plan on designing your project from scratch, you will likely spend a lot of time with the high quality documentation. However, if you want to get started quickly, you can use a starter project and have a project running in minutes. Hosting your own web API may seem like a barrier, but there are quality free hosting platforms like Heroku and Repl.it that should get you started.

TL;DR: This is a fun project about creating a snake that won’t crash into itself.

Well, that's the list: App Lab, LeetCode, Project Euler, FreeCodeCamp, and BattleSnake.

I hope this list is helpful to you. Happy learning!

If you have any questions, comments, or concerns, you can contact me at zack.sargent@interalliance.org