Becoming a programmer is not easy and it requires a certain kind of person. A couple requirements are that you need good analytical insight and be a logical thinker. When you decided to become a programmer you’re up for a big challenge learning and understanding a whole new (programming) language (or 2, 3, 4…).

Things I Wish Someone Told Me

These are some things I wish someone told me when I started programming (though maybe not when I started, as that was on a very early age playing around).

1. Don’t Be Lazy

One of the first things (that I recall) being told to me when I studied for Application Developer is that programmers should be lazy. This was mentioned repeatedly and it is definitely true. The thing is, you should NOT be lazy when you’re learning and beginning with programming. At that stage you should repeat things you’ve done before so you learn -> do -> remember -> know. If you do it once and then copy & paste you will have a real hard time remembering and knowing in the future.

2. Repeat

As a follow up on the #1, you should repeat everything you do. Just finished writing some code from a tutorial? Good! now delete it is re-do it. Done again? Delete it again and do it from your head (and maybe a bit peaking at the tutorial). The day after … repeat, the week after … repeat.

By repeating you will eventually remember it for the future. Even if it isn’t code that you will need a lot, the next time you do need it you will still have a huge kick-start to get it done. After repeating it enough times you will eventually know it.

3. Use a Code Style Guide

As mentioned before I started programming at a early age. As you can imagine at that time I never stood still about any code styles / guides or what so ever. I had never seen a code style guide or even heard of them. Using a code style guide will help you write better and more readable code. Although it may seem too much when you just got started programming (and you already have so much going around in your head), it is definitely something you want to start looking into soon.

4. Focus, but Don’t Limit

Learning how to program is hard. Therefore it is a good idea to focus on one programming language, and maybe even focus on one platform when you’re ready to look into platforms. This can be a bit hard, especially when you’re doing web development as that is about always combined with HTML, CSS and often JavaScript.

My personal recommendation (and this is subjective) is to get started with HTML and CSS (yeah, focus on two things here) as these are required skills at all times. After you got a good fundamental understanding those you can start focussing on PHP or JavaScript (or whatever you want).

After that it is good to focus on one specific programming language and platform so you can become a real expert on that area. I clearly remember I wanted to know Zend, Symfony, Drupal, Joomla, WordPress, Code Igniter, Laravel etc etc. I wanted to know everything! Guess what, that never happened and never will. Apart from those who have a photographic memory, you will not be able to become an expert on all those platforms. I’m not saying don’t try those platforms out, please do, and then pick the one you like and find suited most, and focus. Turns out you don’t like it? you can always switch and focus on another platform.

5. Document Your Code

I will be the first to admit that I’ve not done this in the early days, well years, of my programming time. It is however a very good way of re-visiting and repeating your own code in a more simple way. You should be able to explain what your code is doing in one or two lines on average. If you can’t you either don’t understand clearly enough what its doing, which is totally fine, repeating is key to knowledge, or the function is too long and should be shortened.

I recommend starting documenting your code not when you actually just started, at that stage you need to try a lot of things out and make a ton of mistakes, but as soon as you’re writing functions etc it is a good time to get started.

6. Pet Projects RULE!

This is something I’ve known from a very early stage as everything started as a pet project for me. Nonetheless, working on pet projects will engage you to try new things and challenges without thinking about cost, time, resources etc. I’ve always been able to push my boundaries in great scale on those projects where there’s no deadline, budget involved or a certain level of quality required.

Not all of your pet projects will survive it long enough to hit the public shelves, thats fine. Even if you put in a lot of time, I’ve found that the investment in the knowledge gathered was always worth it.

7. CSS Frameworks

As I am a pure breed developer I don’t have a lot of designing skills. I’m good at CSS and HTML and can build about anything with that, I just can’t seem to make a great design. If you are on your own or a bootstrapped project and cannot get a designer to get aboard but still want a nice and design, you may want to look into CSS frameworks. It will allow you to quickly build a interface for your project without the need of a designer. It may not be a master peace at the start, but it will work and can be improved upon.

Two frameworks I’ve worked with are Bootstrap and Foundation, which are full design frameworks, there are also frameworks out there that for example focus on grids.

8. Use xDebug

xDebug is a very useful tool when you need to debug some code. I mostly use it for ‘stack traces’, which will help you find a error in the code if you’re writing many references to different functions. This is a tool that is worth checking out when you’re a little bit down the line of learning programming, do remember to do so as it will really help you debug faster.

9. Version Control Systems

I’ve postponed the usage of a version control system for a very long time. Initially I never knew of their existence, later I didn’t think I needed it at that stage and eventually I can’t go without. It is not something that you need to learn from the start of programming but definitely something extremely useful when building a real project.

My preferred choice of Version Control is Git in combination with GitHub (free for public repositories, paid for private). If you’re looking for a free solution but still private BitBucket is a good place to start, though in the long run ‘its not GitHub’, or as good as.

10. Hardware/software

I started out working on a Windows machine for a very long time. I always thought that Macs were overpriced for the hardware spec they gave you. After I borrowed a Mac for a week I knew better and my productivity went way up, stress went down and I was a happier man behind a computer. Remember that is worth something if you’re becoming a programmer and sitting behind a computer for ±8 hours a day. I’m not gonna try and sell you a Mac here, but I would recommend you check out the possibilities for yourself. A vast majority of the programmers out there are one a Mac and all of then can tell you why. (also not trying to start a OS was here, just my experience)

11. Unit Tests Are Awesome

This is definitely something you want to postpone if you’re still new to programming, but I did wanted to mention it here as it is a very good next step when you want to learn something new and level up your skills. Unit tests are basically peaces of code you write to test your own code. Writing unit tests for a project is a longer term investment as it does take up quite some time to write, but you will earn it back by 1) finding (some) bugs earlier and never releasing them to the public, 2) less testing and pressing F5 for every change, 3) every time you need to deploy a new version. I can go on and list numerous other reasons why unit tests are awesome but I won’t.

Again, don’t do it when you just started programming, but do keep it on you medium~long term action list.

Closing Words

I hope you found this post useful and that it will help you kick-start learning a programming language.

Let me know in the comments below what you would have loved to know when you started programming if you’re already in the game. Otherwise just leave a comment below if you found something in this post useful 🙂

I’ve announced a new blog called Code Quality Code where I will post about writing high quality code.

Jeroen Sormani

I'm a professional WordPress plugin developer on a mission to create the best plugins for my clients. I'm specialised in developing general WordPress, WooCommerce and Easy Digital Downloads plugins.

Interested in talking about a WordPress project? Get in touch!

Follow me on Twitter

3 thoughts on “11 Things I Wish Someone Told Me When I Started Programming

Cameron Mehrabian November 17, 2016 at 12:12 am

Hey there!

My name is Cameron, and I am a beginner WP plugin developer. I’ve been working on a few astoundify projects recently and I happen to across your woocommerce-simple-registration plugin. I thought it was very well written and digestible plugin, enough for a beginner like me to read through and learn! Especially considering how overwhelming Listify and Jobify can be to extend. I wanted to thank you 🙂

I was also wondering if there any workshops, tutorials, readings you could point me towards to better understand plugin development like this? I would love to be in a position where I can fully understand how to customize these big enterprisey plugins like how to did w/ WSR.

Thanks in advance

Braun May 5, 2017 at 2:12 am

OK. Thank you very much for the insight. But please i will like to know what you meant by having a good analytical insight and also a logical thinker. Since these are requirements to start programming i will like to know whether it’s a skill i have to develop and even if that is possible how do i develop it. Im really interested in learning programming and i will like to know everything i will have to work on to be a great one(programmer). So if possible you can sight examples of any thing which is analytical in programming and also that which is logical.

Tony January 5, 2018 at 10:10 pm

Braun,

I think a good way to figure out if you’re well suited to programming is to honestly answer a question for yourself… …”Do you like to constantly be hit with problems and then have to figure out solutions to those problems?”

That’s essentially what I find programming and development to be… …creative problem solving. Something needs to work a certain way, but doesn’t… …how do I solve that. Something stopped working, why? Etc.

Leave a Reply