My Steps to Achieving Developer Maturity
Tags: programming, productivity, tutorial
Published: 2022-04-13 20:58:39


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wwjgspwozpq6ilih66wb.png)
## What is "Developer Maturity"?
I've seen this term thrown around quite a lot and as far as I can tell, it is completely subjective. For the purposes of this article, I am going to define it as the final stage in the process of learning to code. It is my personal belief that the quality of code is black and white; there is only good code and bad code and nothing in between. I think the only way to reach the point of writing good code is to reach developer maturity. In this article, I will be explaining how I believe I have reached developer maturity.

## Learn Language Standards
All developers (hopefully) reach a point where they grow tired of writing code that _just works_ and begin looking for resources to learn to write code that is actually _good_. The first step in doing so is to read through a language's standard. Language standards often include anything from naming conventions and file structure to comment and whitespace placement. You need to write good code to be a good programmer, and learning the language standard needs to be a step in your journey of learning any language.

## Write (and read) Documentation
Those of us who attended college for a CS-related field remember the dog days of reading comment-less pseudo-code and writing a description of what it did. I am here to ask those who do not write adequate documentation for their code to let us retire from that. Even with comments, reading code should not be a necessity for wanting to use a piece of software. The easiest way to learn how to write documentation is to read documentation. The good documentation will teach you how to write your own, and the bad documentation will teach you how to _not_ write your own. Both are very important things to know.

## Understand your Computer
This section is intended for low-level programmers like myself, but I still encourage those in data science and the front-end to give it a quick read. When working with low-level languages and systems programming, it is important to understand the hardware/software interface. This includes understanding your compiler and how it works, how your code translates to assembly, and what's going on with your memory. When you start your journey with C and/or C++, you are going to be fighting with the compiler and linker quite a bit, and even the most experienced programmers will have trouble wrestling with the borrow checker when they attempt to learn Rust for the first time. The most important thing to note when taking on this step is to have patience. It's a long process, but you will thank yourself when you run into a small fraction of the segmentation faults and memory leaks you potentially could have.

## Form your own opinions
In every other aspect, opinions are the worst part of humanity. But this is not the case when it comes to computer science. You don't need to love every language, and there is nothing wrong with hating languages either. Dig into philosophies, criticize language standards (and those that write them), get into debates. As long as your opinions are not gate-keepy or intentionally offensive, you are contributing in a positive way by sharing what you believe.

## Help others
The final step to becoming a mature developer is to help others. Whether this be in forums, Discord servers, tutorial comment sections, or anywhere else where another developer could be struggling, you have the potential to for both community and personal growth. We all started somewhere at some point, yet gate-keeping is still a huge problem in the CS community. We all need to do our part in helping those with the same questions we all once had.