DEV Community

loading...
Cover image for The Coders Bucket List

The Coders Bucket List

remast profile image Jan Stamer Updated on ・4 min read

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!

Compile your own Linux Kernel

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 a Build and Deployment Pipeline

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 Dev

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 and run stuff on FreeBSD

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.

Give a Talk

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.

Contribute to Open Source

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

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.

Write a Compiler

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.

Learn a Functional Programming Language

Learning to program in a pure functional programming lanuage like Haskell or Elm will change the way you think about programming. So check it out even it won't become your primary language.

Bring a Website to Production

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 a mobile app (and release it)

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.

Learn to use vim and emacs

The classic text editors are vim and emacs. So take the time to learn basic text editing in both vim and emacs. Once mastered it's a skill you can use for the next 30 years.

Mess up Production real bad

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.

Fix Production on Pager Duty

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.

Write a JavaScript Single Page Application

Single Page JavaScript Applications (SPAs) are one very important way to develop a web frontend. Write a JavaScript SPA application to get to know how SPAs are built and distributed. You can use a JavaScript framework like Vue.js, Angular or React to get you started.

Write a Server Rendered App

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.

Learn Shell Scripting

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 awk, sed or cut. If you want to top it off write your script in vim or emacs (see above).

Hack in a Capture the Flag Contest

Improve your security skills and learn how to hack in a capture the flag contest. Read all about it here:

Discussion (8)

pic
Editor guide
Collapse
ghost profile image
Ghost

Vim AND Emacs? is not redundant? I wold say, do you ssh of work on different machines often? go for vim (neovim for me); if not then chose between Vim and Emacs, it'll take a while to get used and configure them exactly to your needs, usually your .vimrc (the vim config file) will follow you for a lifetime. To me Vim is like a nice iron cast pan, a Zippo lighter of a good fountain pen. I've tried Emacs but is not my style, but I've heard the same about it. You never stop polish them.

Collapse
citizen428 profile image
Michael Kohl

Vim AND Emacs? is not redundant?

I don't think so. Learning Vim's text manipulation language is a good skill that can be moved to various other editors/IDEs via plugins. I basically used to live inside my Emacs but still used viper-mode since i was a heavy Vim user before. Neovim makes this even more interesting, since you can also use it as a backend for e.g. VS Code's Vim plugin.

Collapse
ghost profile image
Ghost

interesting, well, even Emacs users said jokingly that "Emacs is a nice OS, only lacks a good text editor". So, even VS Code has a Vim plugin?, that's nice :)

Collapse
phlash909 profile image
Phil Ashby

Fun list - did you mean to include "Set up a Build and Deployment Pipeline" twice (it might be important after all)?

I would add a couple more that I have enjoyed:

"Work with different scales of hardware (ie: single core microcontrollers to massively distributed clusters, but probably not at the same time) - see how the constraints change."

"Write hello world in raw ASM, without libc to help you - discover your operating system's ABI :)"

For the brave:

"Write a bootloader - discover how your machine starts up"

Collapse
remast profile image
Jan Stamer Author

I fixed the duplicate deployment pipeline entry. Thanks a lot.

And I really like your ideas for the bucket list!

Collapse
citizen428 profile image
Michael Kohl

I have pretty much done all of those, except for CTF. But I worked as a pentester, so I still consider this done 😉 Oh wait, I also never actually released a mobile app, they all stayed in the "85% done, works on my emulator" stage.

Collapse
damcosset profile image
Damien Cosset

Mess up Production real bad

Check. Done. Done again. Aaaaaaand.... again....

Collapse
yujiri8 profile image
Ryan Westlund

I got 2/3 to go...