A bucket list is a list of things you ought to do before you kick the bucket and die. Here's a bucket list for every coder out there. Check it out and tackle them one at a time!
The linux kernel is the heart of the Linux operating system and is open source. Compile your own linux kernel to get a deeper understanding of how linux, open source software and the kernel itself work.
Set up your own pipeline to build and deploy your code. The pipeline should compile your code, create an artifact like a docker container and deploy it on a remote machine. You can build the pipeline in Jenkins, Gitlab CI, Travis CI or using Github Actions.
Mentor a junior developer will teach both you and your mentee a lot. You can share your knowledge and give your mentee a great start in the job. You'll see that also you will benefit by looking at things from a different angle and explaining things you've been using and doing for quite some time.
Install a unix distribution like FreeBSD on a machine and run some stuff on it. Real unixes are quite different from linux as you will notice. Yet unixes are great and very stable server operating systems.
Share experiences or knowledge with others by giving a talk. This talk can be for your team only, within your company of even at a conference. Think carefully about what you want to tell and how. Learning and practicing
to give a talk will greatly improve your communication skills.
Contributing to an Open Source project that you like. You can contribute not only code but also documentation, translations or tests. Some projects have issues that are specially suited for newbies. E.g. in Spring these issues are tagged ideal-for-contribution.
Give a training in our outside your company. Prepare the training yourself with background information and hands on practical excercises and tasks. If you can give the training more than once - even better. You'll experience
that every training is different and all participants will experience the training differently.
Compilers is where program languages start. Write you own little compiler and you will gain lots of insights into the inner workings of programming languages.
Code a website using plain HTML and CSS and bring it to production. Register a domain name and make your website available under that domain. Even better use web server like Apache, nginx or Caddy to serve the website.
Develop your own mobile application for Android or iOS and release it in the app store. Make your app communicate with backend services and use device functionalities like geolocation via GPS.
When you develop production code it's only a matter of time. One day you will write code that messes up production. But don't you worry we've all been there and we all make mistakes. So fix it, learn from and grow from it.
You are on pager duty and shit happens. Maybe some hardware breaks down, a 3rd party service is not available any more or the configuration is messed up. There will be a day when you dig into the issue and find the root cause. Hang into it and fix production. Enjoy the feeling when everything is running smoothly again.
Building a web frontend as a server rendered app is a classic but still very valid approach to develop a web frontend. So write a server rendered web frontend in the language of your choice. For PHP you might use Laravel, for Java Spring Boot & MVC or Buffalo for Go.
Shell scripting is quick way to script and automate tasks on any Linux and Unix machine. Learn to write a script for the Bash shell. Make use of classic tools for shell scripting like
cut. If you want to top it off write your script in vim or emacs (see above).
Improve your security skills and learn how to hack in a capture the flag contest. Read all about it here: