From Dream to Delivery

Learning and Adopting New Technologies: Finding the Right Resources

We have recently added some great new members to the ArchitectNow team. And, while each of them brings some great skills and capabilities, most of them are relatively new to some of the recently released and more “cutting edge” technologies we are using on some of our upcoming projects. For many of these newer technologies and tools, even our current and more senior team members are constantly working to stay up-to-date and well-versed in what is available and how to best utilize these technologies on our upcoming projects. As anyone in the technology industry knows, tools and technologies come and go and at a very rapid pace. New best practices are adopted, new frameworks are released, and (sometimes more frequently than we’d like) existing patterns and practices are relegated obsolete. To have a successful career in this industry requires the ability to continue to learn and grow your individual skillets in the face of these changes.

When we identify a new trend or a new toolset we want to utilize we first heavily research the technology and gather training resources we may want to utilize and share with our broader team. When going through this process we are constantly amazed by the wealth of great content available. We have found the true trick to be filtering through this content and identifying what we think would be the most valuable to quickly leverage with team members of varying levels of experience and what we feel would be the best means of conveying information on a particular topic. When a new member joins our team, we utilize these resources to give them a customized list of go-to content they can use to get up-to-speed quickly on a variety of technologies we will be asking them to work with. Our key focus during the interview process is to determine how well we feel a candidate can take the variety of resources we provide them and use them to get going as quickly as possible.

One example of this process is the upcoming release of the Angular 2 JavaScript framework by Google. At ArchitectNow, many of our current and recent projects make heavy use of the first version of the Angular and we have been actively following the design and development of the second version as it has progressed. After its recent release into Beta we have opted to begin utilizing Angular 2 on some upcoming projects. With this decision comes the need to provide both new employees and existing staff with the resources they need to study up quickly and efficiently on Angular 2 and all related technologies (such as the TypeScript language in this particular instance).

Using Angular 2 as an example, the following are some of the tools or sites we frequently take advantage of when putting together learning resources. These don’t necessarily replace the human aspect of mentoring but they definitely help build a baseline of knowledge amongst all team members.

Video Training

If you were to ask any group of developers what type of learning content they prefer  you will get a variety of responses ranging from books to videos to podcasts to magazines. A number of years ago our own answers would have been much different than they are today. That being said, we love PluralSight and, thanks to their massive library and great content, the concept of learning via video has definitely grown exponentially in our organization.

PluralSight is one of a number of video training libraries available, but, in our circle of visibility, it’s definitely one of the most popular. PluralSight offers thousands of hours of videos on various technology and soft-skills topics. Regardless of the framework, language, or tool, there is likely some level of coverage for it within the PluralSight catalog. Their instructors are always top-notch, and their organization and quality of their content is great. The PluralSight content is also available on our phones, tablets, and other devices, making it convenient to view content from anywhere.

PluralSight

PluralSight

As we look at a new technology, we frequently start by searching the PluralSight catalog and picking a few introductory courses and assigning them to a few of our key team members to watch. This gets us a baseline of understanding of a tool and its usage. We weigh this content with a number of other factors in deciding where something would fit in our project toolbox. If we decide to heavily adopt a technology, we will continue building up our own assigned courses from within PluralSight and deciding what to flag as the best video learning path for other team members.

When a new team member starts at ArchitectNow, we gauge their skill sets and level of understanding of various languages and tools we utilize and selectively assign them a variety of PluralSight videos to help bolster their knowledge of technologies where we feel it would best help them contribute efficiently to our projects quickly. As we meet individuals new to technology or wanting to get into our industry, we also point them to PluralSight as a recommended way to start to grow their skills.

With Angular 2 only being in beta (at the time of this writing) the available options for PluralSight content are somewhat limited, but some great introductory courses still exist (thanks to John Papa). Even these initial courses have been of great value in giving our team a solid foundation on a new framework.

Books

Even with the availability of video content in libraries such as PluralSight, we still often gather a few core books on a particular subject as we are working to adopt it. Sometimes these books are more for reference purposes and kept handy as needed, and other times these books are specific recommendations on architectures or best practices that we pass around for various team members to read and familiarize themselves with. We have a large library of books at our office and many (unfortunately) have become obsolete much faster than we would have liked. We consider this a justified investment and always check Amazon for the highest rated books on a given technology we are looking to adopt.

Depending on the need, we may also purchase books in eBook form (or sometimes PDF).   For other technologies and needs, we think having a good-old-fashioned paper book is a better option.

A new trend in book publishing has been the concept of authors and publishers delivering book content in an ongoing fashion during the writing process. This has allowed authors to release timely information on a new technology much earlier in the technology’s lifecycle and solicit feedback from readers. A great example of this related to Angular 2 is ng-book 2.

General Web Resources

Obviously, not every piece of knowledge on a particular technology can be found in a video or book. Thanks to the power of the Internet (and, more specifically, Google search), we spend a good amount of time familiarizing ourselves with alternate sources of information specific to a technology. These include such things as online documentation, blog posts, self-published books or other content, and sometimes just a list of industry subject matter experts. We gather up data on people in the industry we know to be highly educated and trustworthy in a particular technology, and make sure we keep track of them on Twitter or other sites and make note when they release new content or share links to other content regarding a technology. Another area we look to for resources on a particular technology is GitHub. We look at various sample projects and other GitHub content related to a technology and add them to our overall pool of information.

For Angular 2 we found a large number of great community-driven training sites specifically focused on teaching the concepts of this new framework. One focused example is http://learnangular2.com/. On GitHub we also stumbled across a great curated list of helpful Angular 2 links already put together for us: https://github.com/timjacobi/angular2-education.

Email Lists and Slack Channels

With specific technologies, we frequently find active email lists and/or Slack Channels dedicated to fostering communication between passionate and knowledgeable developers.   As we find these resources, we encourage all our team members to sign up and to start absorbing what they can from the content. As we begin learning more and adopting a technology, we frequently bounce ideas and questions off these groups.

Slack - AngularChat.io

Slack – AngularChat.io

If you are unfamiliar with Slack or the concept of public (or moderated) Slack channels, I encourage you to dig into them. For Angular we have found great value in the AngularChat.co channel.

Meet-Ups, User Groups, or Conferences

While not an immediate resource, we can buy or utilize right away, we do gather information on various local, regional, and national user groups or conferences specific to a particular technology or platform. We may opt to utilize these on an individual or group basis or, thanks to the trend of streaming content live from remote conventions, we may add the conference to our calendar and watch various keynotes and sessions as they occur.

With local user group and/or meet-ups, we not only join their mailing list and encourage our team to attend applicable events, but we also do our best to give back to the community and volunteer to provide some presentations to share what we have learned via all the other platforms discussed previously.

With Angular 2 we are eagerly awaiting the NG-CONF 2016 coming up in early May. In the St. Louis area there is also an AngularJS Meetup group with monthly presentations on a variety of Angular topics.

Summary

Regardless of which of the above means of learning you or your team find most valuable, the trick is truly to know they exist and how to find and utilize them as needed. We keep documents of notes on which resources we’ve found valuable and what we would recommend to others. The truly great developers we’ve encountered over our careers have all gotten to that level by efficiently learning and adopting new patterns, architectures, tools, and technologies. They do this by understanding where to go to learn more, how to filter the best learning content for them to the top, and how to learn and adopt learning ideas from others.