Dan Bond

archives

Programming: My advice

Dec 9, 2015

The technology industry, especially software, moves very quickly! There are technologies popping up every other day and it can be rather time consuming trying to keep track of them all. A lot of people find themselves using the same technologies over and over again and this can quickly become monotonous and it's not always productive.

In my experience, it's great to be highly skilled in one specific area, but it's better to have a broader understanding in a variety of different technologies and most importantly: their fundamentals. However, staying ahead of the game can be hard work. So, here are 5 different methods that I consider to be very resourceful:

Do your research

Doing research is absolutely critical to being a good programmer. You can save yourself a lot of time by figuring out exactly what you need to do before you do it.

Here are a few examples:

Contribute to open-source projects

You've got a GitHub account, right? If not, you should have! The majority of open source software is hosted on GitHub, so have a look around the explore section for cool projects other people are working on. Even better, contribute to a repo, fix a bug or even recommend additional features. GitHub provides a great guide on how to do this.

Aside from just having a more active profile, which is a bonus when applying for jobs, contributing to open source is also a great way to receive feedback from others. If the author of the project decides to merge your pull request, great — keep going! If your pull request is declined, don't take it to heart — try to improve your code based on any feedback and then resubmit. This kind of experience is priceless and after all, practice makes perfect (sort of).

Read books, blogs, forums and listen to podcasts

Sometimes people see reading as a bit of a chore, but it doesn't have to be. Reading doesn't strictly mean you have to pick up a book and read it from cover to cover as quickly as possible. Choose a book, read a chapter, practice, repeat. Even one page a day is better than none!.

If you prefer a more relaxed reading style, keep an up-to-date reading list of blogs or RSS feeds. Most tech companies have regularly updated blogs where they discuss anything from updates to their services to changes or improvements to their infrastructure. A few of my favourite companies like Segment, Google and Docker have great developer blogs — you'll learn a lot from these guys.

Finally, I'm sure you've heard of StackOverflow. If you haven't, then I highly recommend you sign up. Not only is this a great site for getting answers to your own questions, but it's a good way to find out how other people tackled their problems, too. Have a read through some threads that might interest you, I guarantee you'll learn a thing or two!

Attend events, conferences and hackathons

Think of a programming language, framework or technology. Chances are, there's more than likely a conference for it: DockerCon; GopherCon; CNCF. You get the point. Conferences are a great place to learn and actually socialise with other developers. You'll be able to attend informative talks and on some occasions take part in workshops while receiving help from others. If the cost is a little high, go on behalf of your employer, or if you're a student you might be entitled to some sort of discount. There's usually a free bar, too!

Or, if you prefer a more casual approach, sign up to Meetup and browse community driven meetups in your area. There are usually several a week that consist of a quick hour or two after work listening to talented people while drinking beer and eating pizza.

Another great social activity are hackathons. You might think of them as a weekend spent in a single room, staring at a computer, with a bunch of other caffeine fuelled engineers - and you'd be totally right! But, hackathons really test your skills when it comes to rapid prototyping and prioritising workloads. You know what you need to build and you only have a short amount of time to do it. Use this to your advantage by really getting in the zone and creating something awesome. Think of it as agile development, on steroids!

Ask questions

Finally, this last step is pretty straight forward. Don't overthink the situation, there is no such thing as a stupid question. If you need help, ask friends; colleagues; teachers; forums; the internet. Just ask!