Some of these are good side projects. Some are great to practice. Some are meta. All aim to be timeless or at least widely applicable. A living document. Suggestions welcome.
- Contribute to an Open Source project.
- Write personal code every day for a year.
- Frontpage your project on HN/Product Hunt/Comparable.
- Visualize a public data set that's useful to people.
- Have an answer get over 100 votes on StackOverflow.
- Launch a mobile app on the Apple App Store/Google Play.
- Complete a technical course on Coursera/equivalent.
- Write a rant about engineering/software/a tool you use.
- Write an article on a widely read web publication (you must go through an editor).
- Build and deploy a personal website from scratch.
- Program in a language other than English.
- Program without a keyboard.
- Go on call for a critical service.
- Write a whole book.
- Teach a beginner how to program.
- A pomodoro app.
- TodoMVC
- A chat client.
- A basic spam filter.
- Work through Programming Pearls.
- Read The Effective Engineer
- Read What Every Programmer Should Know About Memory.
- Read The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
- Read The Architecture of Open Source Applications
- Read The Performance of Open Source Applications
- Read (and practice) The 12 Factor App
- Know what FizzBuzz is and why it matters.
- Understand Gitflow and have opinions on when to use it/not.
- Read a book on Test Driven Development
- Learn Markdown
- Run a MapReduce job on openly available data.
- Personally rack a server.
- Use only functional language code in a project.
- Master FlexBox
- Do the advanced stuff in Git Immersion
- Java
- Read through the core libraries
- Understand + use a library like Guava
- Learn a mocking framework like Mockito
- Python
- TODO
- Vim/some other inferior editor.
- Quit using the arrow keys and backspace. Seriously.
- Use a macro.
- Use marks.
- Know how to switch case without deletion.
- Learn how to pretty print and auto-indent.
- Regularly use a tool like Hemingwayapp to make sure your communication is on point.
- Take a writing intensive course.
- Have a daily stretching routine. Programmers have bad posture.
- Get a standing desk.