As a young programmer, it can be hard to sift through all the well-meaning advice you’ll get from established developers and companies looking to shape the next generation.
What you’ll quickly learn is that most advice is based on the advice-giver’s personal experience, and not everything works for 100% of the population. The best way to navigate the learning process is to experiment, and try new things to see what works for you.
Ultimately, programming and development are career paths that are extremely rewarding for people that put the effort into training themselves. The more you love the job, the more you’ll focus on learning new things, testing your skills, and expanding your knowledge after working hours are over. If you don’t find fulfilment in the minutiae of streamlining your code, searching for errors, or learning new techniques, your skills will stagnate, and you’ll quickly find yourself obsolete.
To help you make the decision of whether this field is right for you, we’ve collected advice and resources from senior programmers who have experienced the highs and lows of development. These are just some of the resources that they’ve used to achieve success in this field.
The development industry moves so quickly that it’s not a great idea to invest money in books about specific programming languages. There are lots of books on PHP, Ruby, or Java, but there’s much more that can be learned online. Within a year, any book you buy will be out of date.
Instead of picking up books on specific languages, invest in books that go into depth on the foundations of programming, and on the specific skills that will further your career path. Having a good understanding of the foundations of programming is an absolute necessity before you can advance further in your career.
Design Patterns: Elements of Resuable Object-Oriented Software is a seminal text for developers who want to learn more about design patterns. Another book that’s essential reading in 2019 is Introduction to Algorithms, which is currently in its third edition. It’s widely considered a ‘rigorous’ read, but if you can make your way through it, it will give you a great foundation of knowledge on a broad range of useful algorithms. There are also tons of books about soft skills and navigating a technical career path that are all useful reading for young developers.
Finish up by buying your own copy of Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin (good ole Uncle Bob) to learn how to format your code for maximum readability.
Even the most minute advances in technology can make a big difference to your working life. A developer who is working with the latest updates and the most advanced technology is always going to see more success than someone who plods along in the dark. In order to keep your knowledge current, you’ll need to stay plugged in to the latest development news.
A great way to do this is by following and subscribing to blogs and podcasts. These resources are great for keeping track of the very latest news in software, coding, and development. There are tons to choose from, but in order to find your favourites, you’ll need to do some experimentation. There are a few great lists of podcasts out there, so start there, and pick 2 or 3 that interest you. Then, listen to an episode or two from each one, and subscribe to the ones that are the best fit for your interests and skills.
Blogs are another useful resource, and a great way to broaden your knowledge. Software development blogs like A List Apart, GeeksforGeeks, and Coding Horror are all great places to learn from experts in the field, and keep up to date with the latest news.
The open spirit of the web is still alive and well in open source communities. These open source communities are the best places to go to get real experience working on new and emerging projects. GitHub is by far the most prominent, with GitLab following close behind.
If you’re just looking around, you often don’t even need to make an account. Start by picking out a project that interests you, and read through the commits and branches to see what people have been able to do with the code. Then, once you get some confidence, head into the issues section, and see whether you’re able to solve any issues that other users have reported.
Participating fully in different open source projects is a great way to expand your skills and learn how to work with other developers. As you learn more and are able to participate more fully in these communities, your confidence will grow by leaps and bounds.
Online or in-person developer conferences are a great way to boost your skills, and network with other programmers. It’s really hard to develop your skills in a vacuum. Sure, you can study on your own, observe open source communities, and practice on projects that you’ve developed by yourself. However, it’s a lot more beneficial to step outside of your comfort zone and start networking with other developers.
These conferences were designed with this in mind. They’re a great place to listen to experts in the field, and learn about new technologies, but their primary function is to facilitate connections between developers. If you have the funds, you can fly to the top conferences around North America, like DeveloperWeek in San Francisco, DEVintersection in Orlando, and QCon New York in NYC.
Many of these conferences also offer live streams of sessions, so you can still gain knowledge even if you can’t travel to the event itself.
Participating in online communities is another great way to start networking with your fellow developers. There are great communities everywhere, but Reddit, Discord, and Slack are three of the best places to start. Hacker News is a great dedicated community where you can discuss the latest news with other programmers and developers, in a Reddit-style forum that’s open to all.
If you’re a PHP developer, Nomad PHP user groups are a great way to connect with developers in your field, as you learn and socialize as a group. If you can’t make a meeting, don’t worry- they’re all recorded so you can watch it later.
Ultimately, the best way to improve your skills and increase your chances of success in your chosen career path is to have fun with it! It’s the only way to ensure you’ll remain engaged in the learning process, instead of stressed and anxious. Pick a project that you’re interested in, or something that will improve your life. Then, chip away at it in your spare time. This will help you learn new skills, and keep your knowledge up to date, which are the two most important aspects of being a successful programmer.
Don’t get caught up in the comparison game, or worry that you’re not hitting your career milestones quickly enough. The more you’re able to focus on the elements of the job that you love, the faster you’ll boost your own knowledge, and make yourself a truly valuable programmer.