Beginner programmer, no more

June 04, 2017

I know what it’s like to be a beginner in software development. I remember having no idea what I was doing (and still don’t sometimes 😃) and it took all the effort I had just to end up with some #basic code that performed the simplest of tasks. I spent countless hours debugging small issues that I was sure I would never figure out, all the while wondering why I was even bothering learning web development since I, obviously, was not that good at it.

And then one day, things started to make sense. I started understanding how things worked and could build meaningful apps. It’s as if something had clicked and I suddenly understood “programming”. The path to that place took some time, but reflecting back on those days, there were definitely some things that helped me progress a lot faster than others, and I am going to share those things with you. Here are 7 things that will help you as a beginner programmer transition into a more seasoned programmer.

1. Build things

Yeah, I know. This seems kinda obvious, but it’s true. Build as many “throw away” apps as possible. I mainly use Laravel and I am always creating new projects just to test stuff out. Figuring out what Object Oriented Programming is? Create a small project, quickly, that allows you to practice what you are learning.

I have my local environment set up so that it is easy for me to start a new project. You should take some time to make sure you local environment allows you to start projects quickly. When you are starting out, don’t let all of the bells and whistles of Docker vs Vagrant vs “who knows what” get in your way. If it takes using MAMP or WAMP just so you can start a project quickly, do that. Spend more time writing code than fixing your local environment.

When you start building things, make sure you are building things that integrate with API’s. You will learn a ton working with the different API’s out there. Check out the big tech players’ API’s like Facebook, Twitter, Github and Google. Lot’s of companies use those API’s and it will only benefit you to play around with them.

Above all, just build things. To-do apps, messenger apps, forums, blogs, anything and everything. Just build. Run into a road block and can’t think of something to build? Go here.

2. Just finish

Speaking of building things, you should get into a good habit of always finishing what you build. This will be one of your greatest habits. Because, one day, you may want to build a real product, and everything will get in your way and try to keep you from finishing. Got kids? Got a significant other? A job? Are you breathing? If you said “yes” to any of those, you will struggle to finish what you start. So, start now and build the healthy habit of finishing. See projects through to their completion. Also, this will give you a nice portfolio when it comes time to look for a job.

3. Code dive (no equipment necessary 🌊)

What is code diving? It’s when you look at source code and try and figure out what it does. I will choose a module in Laravel and I will look at all of the code for that module and try and figure out what is going one. There are tons of advanced techniques used in the Laravel framework and they will bring about many questions when you see them. When you run into a piece of code that you don’t understand, Google it and figure out what it does. If you can’t find an answer, use StackOverflow, or better yet, Laracasts. There are tons of great people in the Laravel community just waiting to help you!

If you’re not a Laravel developer, no worries! Just search for the most popular framework or library that is in your language (as long as it’s open source), and start code diving.

This is literally one of the things that helped me the most in becoming a better developer. One of the main reasons it has helped is because when I run into an issue, instead of running to Stack Overflow immediately, I don’t mind diving into the source code to figure out what is going on. This gives a true understanding of the code that is being used and will help tremendously in becoming a better developer,

4. Explore other languages

One of the things that made me a better developer was looking at other languages. I was always intrigued by Rails, so I decided to check out Ruby. I spent quite a few weeks learning some of the language and it really taught me a lot about PHP, believe it or not. It forced me to think outside of how I normally think when using my day-to-day language.

Now, if you are very new to software development, be careful with this one. Be sure a get a fairly good understanding of your main language first. You don’t want to try and take on too much at once, because that could actually be counter productive. Gather a good foundation of your chosen language and then think about exploring other languages.

5. Just getting things working isn’t enough

I remember the days of, “If I can just get this to work…”. I would spend a lot of time just trying to get something to work and then neglect the fact that once I got it to work, it needed to be refactored. Or, maybe there was a better way to solve the problem that provided a cleaner solution.

Whenever you solve a problem, I would challenge you to look at your solution and give a little more thought into how you can make it better. Can you clean it up a little by refactoring some extra methods out of it? Does it need to be extracted so that you can reuse it? Are your variables and methods named so well that they describe exactly what they are doing? Does it need comments because it’s a specific edge case that other developers may need to know about?

Take the extra step to make it better even after you’ve spent x amount of hours just trying to get it to work.

6. Test your code

Test. Your. Code. At least learn about testing. I had no idea what a test was until I had been programming for about a year and a half. When I was learning some Ruby, the tool that I was using to learn ran tests on the exercises that I was performing. I was intrigued by the notion that there was some code that tested my code. It didn’t take long for me to gain an interest in testing, and then, of course Test Driven Development, but I digress…

If you want to progress to the next level, learn about testing and learn how you can incrementally adopt testing with the code that you are writing. Not only will it help you gain confidence in the code that you have written, it will force you to write testable code, which will, in turn, make you a better developer.

7. Help others

This is part of the process. Find someone that wants to learn and pass on as much knowledge as you have and help them grow. You would be amazed at how much it helps you learn just by helping others.

But, more importantly, help because it’s what we, as developers, do. Have you thought about that? How many developers out there maintain their own open source projects that others benefit from? They are constantly resolving issues, updating their code bases, and most of them do it for nothing. Not. A. Penny.

Oh, and have you ever posted anything on Stack Overflow? There are hundreds, if not thousands, of developers there just waiting to help you solve a problem you may have. All for nothing.

Basically, you should give back to a community that has given so much to help you.

Conclusion

Learning to code is like anything else in life (but way better)… You will get out exactly what you put in. Spend a lot of time writing code and use these 7 ideas to help guide you in becoming a better developer. Write lots of code and be patient. Things will start to make sense and then one day, you won’t be a beginner any more.