Keeping up-to-date with the latest updates is important in every industry and to be an expert you need to keep constantly learning. However, hardly any field is changing at such a fast pace as programming. But don’t freak out! Improving your skills and expanding your knowledge is slightly easier for software developers than it is, for instance, for neurosurgeons. All the right resources you need to stay on top of things are at your arm’s reach and many of them are free.
Stack Overflow is a general source of information for developers regarding programming, architecture and solutions to particular problems. It’s a question and answer platform allowing voting them up and down by users. Members of the community score reputation point for their participation which adds a great deal of credibility to the information that you can find there. Is used by developers on a daily basis and when you are researching a programming-related issue, an answer on this forum is usually the first thing to pop up in Google search.
Answering questions on Stack Overflow is a really good way to learn because it’s a chance to test yourself and verify how much you know and how well you can explain your ideas to others. - Krzysztof Maicher, Software Developer @ The Masters
Reddit is a discussion and rating site used by developers. It’s not as practical and programming-focused platform as Stack Overflow. It aggregates content related to the latest news, science, games, art, lifestyle, and image-sharing. Though it a place where people talk about their achievements, promote their products, ask questions and share their findings.
Besides discussion forums, there are a lot of programming podcasts and screencasts that are worth following. They are usually short presentations, released on a weekly basis, focused on specific problems and solutions to them. Our Ruby on Rails developers have a few favourites to recommend. Ruby Rouges episodes on DevChat are a nice base of tutorials explaining current and new techniques commonly used in Ruby. Screencasts such as Ruby Tapas, aimed at introducing Ruby concepts, object-oriented design principles, testing practices and refactoring skills, or Rails Casts that are presentations introducing specific techniques to particular problems that developers can use right away in projects that they are working on.
Another great source of news from the software development world is YouTube channels. For instance, GOTO Conference that is produced by Trifork, a leading supplier of custom-built applications. It is full of interesting interviews with some of the sharpers minds in the industry and presentations of current trends in programming, planning, architecture, tools and project management. ConFreaks, on the other hand, is a collection of videos from various conferences. You can see speeches of the biggest names in programming such as Sandi Metz or Martin Fowler.
Design Patterns - Elements of reusable object-oriented Software by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides is a must-read and must-UNDERSTAND for every programmer. It deals with standardized solutions for corporate systems. To be a software developer you need to be familiar with design patterns. They are used everywhere, no matter if you work in a corporation or on a small open source project.
Design Patterns in Ruby is similar to the above book but translated from Java to Ruby standards. Russ Olsen selected classic patterns and, in a very clear and accessible way, augmenting these with newer patterns that have special relevance for Ruby.
Programmers that rely heavily on established frameworks often forget about the wider world of software engineering. Solutions from their last project rarely work in the next one because the code lacks the necessary abstraction and developers end up reinventing the wheel. The rules of Object Oriented programming and design patterns help software engineers establish a language that helps them talk with each other about ideas instead of particular implementation. - Michał Kosyk, Software Developer @ The Masters
Domain-Driven Design by Eric Evans, followed by Implementing Domain-Driven Design by Vaughn Vernon, are excellent books if you want to get into the topic of modelling and domain-driven approach. They’re a perfect pick for Rails developers who want to free themselves from the Rails-way approach and want to switch to a more general engineering course of thinking.
The Well-Grounded Rubyist is something worth starting from if you want to become a Ruby developer. It covers topics from basics, such as how to start your first program in Ruby, to complex issues, such as callable objects, reflection, and threading. It is a great set of practical examples, explanations and tools to take you from beginner to a skilled programmer level.
Clean Code by Robert Martin is a classic set of rules that ‘Uncle Bob’ determined to be elementary standards in programming. Bad code can function, but who cares if it costs organizations countless hours and loads of money each year to do anything further with it. This book is a perfect guide to learn how to make your code clean and sustainable, and not Spaghetti.
As you can see most of these recommendations apply to Ruby on Rails developers. However, there are lots of online resources for every programming technology out there that can help you learn at home for free. If you’re at the start of your career, we recommend signing up to the most popular forums and following podcasts and YouTube channels and profiles of influencers of social media that focus on the technology that you are interested in. It will help you stay up-to-date with all the latest trends and get recommendations on the best sources of knowledge.