In Part 1 on Continued Development, we highlighted the use of various websites to help learn more about software development, new tools and languages, and version releases -- all of which are beneficial. In an effort to help users stay up-to-date while learning something new, we focused on available open-source projects, free tools, training websites, and user groups.
Accelerate Your Learning
If you've ever hit a wall in your learning and can't find your answer on Stack Overflow, you may have thought, "There has to be a better way." Going to the Internet for everything is more than likely what every aspiring or current developer does. Problems can arise where the solution you are looking for is presented in a way you have no experience with, is solved six or more different ways, or there is no solution at all. Copying and pasting code you don't understand seems fast and easy, but that process can lead to missing testing, extra dependencies, or just misunderstood code. In this post I will give you multiple tools to use, both to help with issues you have collided with or simply increasing your knowledge.
By taking advantage of tools such as books, mentors, or user groups you can achieve a better understanding of programming, techniques, and solve issues that others have already experienced.
Working in Pairs
One of the current patterns in programing is that of "Pair Programming". Pair programming is a style of development that has grown out of the Agile transformation of businesses. This allows a more junior developer to code with a more senior developer. Those in opposition to this technique usually state that the developers are working at half the speed. This mindset doesn't take into account the many advantages of the method; specifically for this blog post is the learning aspect. Being in the driver seat and actually typing out the code is a hands-on approach to learning, even if you do not understand all of what you're writing.
Not fully understanding what is being written also will drive the less senior developer to open a dialog and ask questions about design pattern, implementation, or methods the junior developer has never encountered, as well as making the senior developer think about why that implementation is the best.
Being able to process what you are being told into the actual code is a training aspect that is otherwise very difficult to achieve alone.
Get Out and Meet People
User groups for different technologies are popping up everywhere. With different and relevant topics for each event, user groups serve many great functions. If you have a current job which requires you to use older tools, meet-ups offer a look at integrating new techniques with those tools or introduce new tools that could replace the older ones. You can also expand your network around the local area and open up options for the future. Meet-ups are another great opportunity to meet and perhaps identify a mentor among the programmers attending the meet up.
Reading is Still Cool
Currently, publishers like O'Reilly offer a plentiful selection for programming. Books offer the ability to learn something new or gain expertise with a known skill-set. If you're just starting out, using the Head First series or the For Dummies series can gain a quick and easy base. These books generally contain multiple projects that you create to learn the lessons with a parallel hands-on approach. In addition to using books, utilizing or finding something like a book club of peers who are also reading the same book can be very helpful as well. Talking about topical books with others can spark ideas, present a different perspective, and answer questions from the book.