After I graduated from university, I got a job at one of the largest CMS vendors in the UK (at the time). When I started, the training program at the time, was to put new graduates on the support desk for 3-6 months and then progress them into the services team. The CMS was written in .NET and as a fresh-faced developer I was more than happy with this deal (plus the company was a 10-minute walk from my house.. score!) The CMS was written in .NET and my issue was that ... I had never used C# or .NET before. In the support team I was pretty busy and as the months went on, that promise I made myself to learn C# never really happened. I mean on a Friday night, would you rather learn a programming language, or get drunk? Simple choice right?So, one fateful day out of the blue, I was told I was starting in the service team the next day. I understood the product at this point so I thought I'd be able to wing it.
The next day I went to my new department and my first task was to create a contact us form, for a large client. After spending most of the day trying to figure how to get the code from the source-code repository, I then started randomly opening files in NOTEPAD to try and figure it out. I managed to get that contact form up and running within a few days but the code was probably pretty rough. The next few months was a repeat of this. I'd get a task, then panic that I didn't know anything, then eventually through hacking shit together to get it to work often missing deadlines.
The one thing I noticed from my teammates is that they seemed to know so much more about coding than I did. My assumption at the time was that people learned to code by simply hacking stuff together. At the time I didn't put aside any time to read. When I was given a problem, I didn't learn about the situation, I just hacked at the problem until it was finished.
One day my manager at the time, sat me down and said that I needed to improve my skills. I was taking up too much of the team's time etc.. at the time I thought this was pretty unfair, I'd only been using C# for 3 months and there was an expectation that I'd become an expert overnight. So with this in mind, I went home that night and ordered 3 books off Amazon. From memory, one was about C#, one was about C# and web forms and one was about 'business objects'. I then dedicated the next month or so to read these books as soon as I got in, and on the weekend. I carried on reading until my skills matched the rest of the team. The books covered a few topics no one else on the team knew, as some of the stuff was brand new for .NET 2. After people knew I had this knowledge, I became the go-to guy for certain things. To top it off a few months after that I was given a 5K pay rise... winner winner!Now fast-forward 12 years later, I work with clients to help improve the quality within their organizations. When I perform code-reviews I see the hacker mentally alive in a lot of the junior developers I work with. A classic case happened the other day. I asked someone if they could write a simple unit test, that should have taken say 5 minutes to write. Halfway through the day, I got a rather rude email telling me unit testing was pointless, this bit of code didn't need testing, that the team didn't have the skills to write unit tests. I suggested that because he was struggling with unit testing, why didn't he read the book I brought in for the team? I'd gone out my way to buy it, as unit testing was new for that team. He replied that he only learned from watching other people solve the problem first.As a developer, this is the wrong mentality to have. If you want to become a senior developer, you need to take responsibility for your career and that sadly means you have to be prepared to go out and pay for yourself, books, courses etc.. to ensure you can do your job. Your employer is paying you for your skills, if you don't know something that the rest of the team does, then it's your responsibility to go and learn it.
Some people might think that statement's a bit unfair, but, most people reading this will also want a pay rise. It's this process of going out, learning stuff that will benefit your company that will make you thousands of pounds more throughout your career. Those 3 books cost me less than $100, but the knowledge I gained from those 3 books meant not only did I skip being fired, I also got a big pay rise. Reading books around your career is one of the easiest things anyone can do to help them get their next pay rise. It's a way you can demonstrate to your employer that you're trying to improve and that you want to help the team to succeed. There might be some course or guru's out there, that say you don't need to read, or, you can skip loads of things. From my experience, you definitely don't need an encyclopedic knowledge of every framework. You need to understand the basic of testing, deployments, design patterns, reuse, debugging etc..
If you're currently struggling in a job and your boss says it's because you're communicating badly, you're writing bad code, you've too many bugs, etc... whatever it is, go to Amazon now. Find a book on communication, or C# or whatever it is you're struggling with, buy it, then read it within the next 2 weeks. If you simply follow this principle throughout your career you'll be able to charge a premium. It sounds so simple, but, asking your boss what your weakest area is, going onto Amazon and buying the best-selling book on that area, reading it, then repeating the process again and again until you retire, will make you a rockstar developer within a pretty quick time span.I can admit and appreciate that reading technical books can be hard work. Like anything though, the more technical books you read the easier it is. So when you start out reading, keep in mind that after 5-10 books on a subject, getting through a book will become less of a struggle. If you can simply commit to reading 3-5 technical books a year (which is nothing, right?) over the course of your career that small investment will be rewarded with $$$
Software Architect, Programmer and Technologist Jon Jones is founder and CEO of London-based tech firm Digital Prompt. He has been working in the field for nearly a decade, specializing in new technologies and technical solution research in the web business. A passionate blogger by heart , speaker & consultant from England.. always on the hunt for the next challenge