A couple of days ago, I was asked by a friend if I’d compile a list of ways you could become a better software developer. This is my growing list of tips and tricks I’ve found useful through the years. If you aren’t sure what a code monkey, code ninja, or any of those other names are, then start by using some of these suggestions to improve your skills.
Join a Community
This for me is crucial! Especially when you are working with teams that do a lot of different languages. I’m the only PHP developer (well actively working in it) at a company I consult with. So asking another developer is sometimes not as fruitful as posting something to twitter, google+ and so on. Finding a community that you does some of the same type of coding and work that you do is going to help you improve.
Mailing lists and forums are a great place to get started. They are rather impersonal, but will definitely get your foot in the door. A lot of discussion typically starts when someone having a problem and looking for advice posts here. In the WordPress community, there’s a lot of places to get this sort of help. Its fairly active and so you’ll find discussions on best practices, frameworks, theme coding vs plugin coding, APIs and so on. All of it provides you with new techniques for solving problems, and give you some real-world experience with that code.
Local User Groups are another great place to get “plugged” in. There are a ton of WordPress User Groups, however the 2 near me around 2 hours away. So I try not to go to them very often. However, if one is close to you, definitely think about going to them. I was always lucky enough to have the DC Ruby Users Group right on campus when I worked at GWU in DC. It worked out perfectly for me to grab dinner do a little extra work that night and then head to the user group. If you are looking for work, it’s also a great way to find work, either full-time or some freelance, you could look for potential new employees, or just learn what other developers are doing in your area. It also provides a great starting point if you are looking to get into speaking. You can speak about the topic you’re passionate about, or that new trick you’ve been perfecting.
Conferences will give you access to regional (WordCamps) or national community. They are great in that they provide you the opportunity to travel, see the world, and meet others like you from different parts. You’ll get to see what cool new things they are working on, meet community leaders, prominent bloggers, and allow you to get some personal networking in. And if your employer pays for it, the better. Of course, they will be concerned on their investment (training) and that it helped you learn something that will benefit them. Personally, when I get to attend a conference, I try to get in on as many sessions as I possibly can. I like to listen to new approaches to problems we’re all trying to solve. And I love to get a sneak-peek into things that are being introduced for the first time.
Start a Blog
Ideally starting a blog allows you to have your very own soapbox. You can pretty much say whatever you want in your posts. You can talk about anything and everything, again it’s your soapbox. However, people are going to typically search you out, especially if you start speaking or become a subject matter expert in your field. For many successful developers, a blog’s content can almost be as effective as a resume. Developers tend to blog about issues they had and solved. It allows them to help others that may be in the same place they once were. A blog with excellent descriptions of technical concepts, code examples, and can explain things in causal friendly ways can be a strong supplement for a resume. I’ve heard of hiring managers, or product development managers talk about reading a candidate’s blog.
One aspect of having a blog is get feedback or criticism. I’ve been wrong on more than one occasion, but I’ve also learned by getting feedback how to write better code. It’s a great way to improve yourself, both in writing and in writing shippable code. The idea though, is to create useful content, that will help others and possibly provide information not found anywhere else.
Write Code for Fun
This is probably one of the most fun things you can do! As a software developer, you are in a field that is constantly changing. Ways of doing things change, new techniques, new processes, new languages, etc. all keep coming out. If you aren’t writing code for fun, then you are going to lose the battle! Google has as an employee perk, the ability to work on 20% time projects. It’s geared towards allowing employees to work on a project that is not part of their regular workload. For those counting, that’s 1 full day a week for every standard work week (I’m guessing that means you go to work all 5 days). I try to build this into my workload since my current job/s don’t really offer something like this. I’ve been pushing for 10% time (4 hours every week), but that’s not happened as of yet. However, some of my better work has actually flowed from this time. For instance, I started exploring the idea of creating a font/glyph based logo for a company I work for. I’ll be posting a blog post on it soon.
One of the greatest things I’ve learned was to keep things simple! Don’t get over complex. That will happen with time. Instead, add a little by little. These are my top 3 tips, I’ve got more, but I want to keep it simple, and not too long to read in one sitting. So I’ll leave you with this. I’ve given you my top 3, what are your top 3? What am I missing? Are any of these 3 on your list? Let’s hear some thoughts.