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.
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
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.
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.
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.
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 🙂