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
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.
Difficulty: Some programming knowledge required
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
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.
Difficulty: No programming experience necessary
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.
Difficulty: Requires strong programming experience
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 firstname.lastname@example.org