Continual Learning with Erin Orstrom

You need to keep learning to continue to grow. Old technologies, frameworks, and languages will change and grow to meet new needs and add new features. New technologies are constantly being built and put out for people to use. You don’t have to be up-to-date on the bleeding edge tech but should keep up with the feature set in what you are using.

“The only constant in development is that it is always changing.”

Everyone should be continuously learning to improve their skills. This is not just something for junior developers. Even senior developers can get left behind if they don’t keep up.

Episode Breakdown

Learning on the Job vs Learning at Home

14:09 When learning on the job you want to focus on the technologies you are using for that particular job.

“If you’re providing more value because you learned that on the clock they can pay you more.”

Your employer is likely paying for the training or at least for your time while you are in training. They will want a return on that investment. For example if they spend $1500 on training you and pay you during that time they need to be getting more than that back from you once finished with the training.

16:04 If you don’t already have them encourage your workplace to start having regular code reviews.

“You kinda almost have to elicit getting the code review from your boss.”

Use these to highlight interesting or useful code that others can use in their development. Encourage camaraderie among developers where your work to share code that works.

20:18 When you are at home you can learn more resume driven technologies and the fun or interesting stuff you may not do every day.

You may be using older framework or older version at the office but want to move to something newer. When you are at home no-one is going to look over your shoulder and ask why you are learning Angular when you use Knockout at work. Home is the appropriate place for building and learning in order to improve your resume.

This is where you get to go all out on the stuff you find interesting or fun. Play around with technologies that you may not get to use on a daily basis.

24:48 Training at home and work do not have to be separate though.

“The big thing for me on paying for my own training is that I don’t want my employer to have control over it.”

You may have an employer that pays for a subscription to a training service that you can use on your own time as well. Just because you are at home doesn’t mean you can’t learn information that will improve your performance at work.

Goal Oriented Learning

26:28 Have a goal in mind when you are deciding on what to learn.

You need to know what you want to learn before you get started. This is how you will tell if you are moving in the right direction.

26:45 Start by asking yourself what you want to gain from learning.

Is this to improve your job performance?

Is it to improve your resume for getting a better job?

Is it for fun and to do something interesting and challenging?

31:29 Build your learning goals to be S.M.A.R.T.

Specific: Know what it is that you want to learn. Have an idea of what you want to do with the new knowledge.

Measurable: Be able to measure progress toward the goal. Have an end in mind of what you want to build with your new knowledge.

Attainable: Make sure that the resources you need for learning are available. Ensure you are at a level starting out to reach your goal.

Realistic: Build your learning goals so that you can reach them. Make sure that it is not too easy or too difficult.

Time-Bound: Give yourself a time limit on learning. Set a deadline for building or creating something with your new knowledge.

33:29 They may change or need to be adjusted along the way.

Goals in general and especially those for learning should grow and change with you. As you are learning one thing you will be exposed to more that you will want to learn.

34:05 Write down your learning goals.

“It’s really easy to get distracted and go down those rabit holes.”

Keep track of not only what you are currently learning but also what you will be learning next. This will help keep you focused on what is important while you are deep in the process of learning.

36:33 Your goals will help you determine what to learn.

It’s easy to become overwhelmed with analysis paralysis due to all of the different languages and frameworks or even uses of a particular one. When deciding what to learn start by looking at what your goals are, what you want to accomplish from the learning.

Next determine what you need to accomplish that goal. Determine if you need to sign up for a service that provides training and tutorials. Find out if you need a new development environment and how much time will it take to achieve what you want. Finally make a plan so that you’ll be moving toward your goal.

Plan Out Your Learning

42:47 Start with your goal in mind.

You want your learning plan to work toward reaching the goals you have for learning. This will give you purpose when deciding what to learn. It can also help you know where you are in the process of learning and what you have coming up next.

43:06 Build your own lesson plans.

Some subscription sites will have paths that you can follow. Some even give you a quiz to know where to start. These will be predefined plans.

Break down what you want to learn from a tutorial or set of videos into digestible chunks. For example watch a certain number of videos in a tutorial or read a chapter a night. Go through one of these chunks each time you have set aside for learning.

44:52 Track your progress throughout the lessons or a set of tutorials.

You’ll need to know where you left off the previous study time so that you know where to pick up the next one. Depending on the format you use (tutorial, video, book) it may vary on how you keep up with where you are in the process.

“A legal pad and pencil goes with just about anything.”

Many services like PluralSight or Udacity will have multiple shorter videos and keep up with your progress for you. However when it comes to written material or longer videos the responsibility falls on you to keep up with your own progress. If you are learning multiple things from different sources to accomplish a goal then you will want to track them on your own.

46:48 It’s a good idea to take notes while you are learning.

“I keep a notebook that I carry around.”

This provides a quick and easy reference for you after you finish learning. Highlight important information in your notes and references back to the material for more details. Using the same notebook for all of you learning will keep all the information in the same place and make referencing between then easier.

49:25 Follow up after you’ve learned something to make sure you retain the information.

“Hence why quizzes and coding objectives and things in some of the tutorials and things are helpful.”

Build something with the information you learned in whatever course or tutorial you used. Start implementing that knowledge into your regular coding. This helps to solidify the knowledge through continuous use. You will start to see where it should and should not be used. Using the knowledge will also open up more opportunities to find more stuff to learn.

Balancing Work, Life, and Learning

50:33 Schedule time in your day for learning.

“You do have to figure out a time so that you can consistently apply a little bit of effort.”

This can be an hour or so in the evening to go through a few videos or tutorials. You can also spend time in the mornings before you start your day learning.

52:29 Schedule your learning on a regular basis.

“Get to the point where this is a regular thing and not doing this feels odd.”

For example, every morning spend an hour on tutorial videos or every night read a few chapters of a technical book. This makes it easier on you and those in your life to know when you are going to not be available because you are focussed on learning.

In addition to routine your environment affects your ability to learn and train. If possible set aside a place for learning or working at home.

54:45 Your time at work should be focused on solving the problems at hand.

You may need to spend some time going through a tutorial to better understand how to solve the problem. This can be a good place to practice what you’ve learned once you are confident in your ability to make it work.

A Few Resources

55:28 There are several online subscription services available.

PluralSight is a great resource for extending your knowledge. It is a subscription sight you pay for monthly with unlimited access to tutorials and videos on a wide variety of topics and areas in technology.

Lynda is another subscription sight for learning on your own. It tends to be more general IT focussed though. It may not have as many developer courses or as in depth courses.

Treehouse, Udemy, and Udacity are better for starting out on something new.

57:24 Code katas and challenges are a good way to test your skill and find areas where you need improvement.

Code Wars has you competing with others on challenges to improve your skill. Code Eval lets you create leaderboards and rank yourself against others in a team. There are several websites out there with code challenges and katas including our own Developer Launchpad site where we post our monthly challenges for the group.

58:00 Podcasts are a great place to get ideas and hear about new technologies.

“What I like to do is get ideas and hear about new technologies.”

The format of podcasts does not lend itself to heavier learning. Use them to get ideas of where to dive deeper in your own learning. The ones that do dive deeper can be difficult to follow along unless you are already familiar with the technology or idea.

59:58 If you want to socialize while learning look for local user groups or meet ups.

Developer Launchpad here in Nashville meets for a coding jam once a month where we work on a challenge or help each other out on our own projects. User groups are great places to meet people that will be willing to answer questions you have while learning. You may even be able to find someone to mentor you if you are on something completely new.

Meetups and user groups are also good places to meet potential mentors. Even if you don’t talk about it at the meetup you can make a connection.

1:01:06 Be wary of YouTube and blog posts.

That doesn’t mean don’t use them as they may contain some useful information and be very helpful tutorials. They can also lack important information or make assumptions about what you already know. Check the comments to see what others are saying about the tutorial and look to see if it is being updated if errors or omissions are pointed out.

IoTease: Tutorial

Learn Internet of Things

Code Project put together a collection of articles and tutorials for getting started in developing and building internet of things devices. It starts with the basics and goes into embedded devices, services, and connected devices. This is a great starting point if you are interested but don’t know where to begin.

Tricks of the Trade

When learning a new framework, language, or platform rebuild something small that you’ve already built. The value is that you already know all the business rules and have a working implementation that you can cross compare. Being able to learn effectively is a good skill to have not only in programming but in life in general.

Editor’s Notes:

Tagged with: , , , , , , , , , , , ,
2 comments on “Continual Learning with Erin Orstrom
  1. Bryce Embry says:

    Hey guys – I was introduced to your show at Music City Code and have enjoyed spending my morning commute with you since then. I started this episode and was anxious for the book recommendations, but got to work before you got to that part. I was disappointed not to see the books listed here, so thought I’d add your recommendations in case someone else wants to find them here. I’ve also added two books that I found particularly helpful.

    BJ’s Books:
    Design Patterns: Elements of Reusable Software by Erich Gamma and Richard Helm (aka The Gang of Four)
    The Pragmatic Programmer by Andrew Hunt and David Thomas
    Softskills: The Software Developer’s Life Manual by John Sonmez (Audio edition)

    Erin’s Books:
    HTML and CSS: Design and Build Web Sites by John Duckett
    JavaScript and JQuery: Interactive Front End Web Development by John Duckett
    Peopleware: Productive Projects and Teams by Tom Demarco and Tim Lister

    Will’s Books:
    Don’t Make Me Think: A Commensense Approach to Web Usability by Steve Krug
    Mythical Man Month by Frederick Brooks, Jr.
    Patterns of Enterprise Applications Architecture by Martin Fowler
    Refactoring: Improving the Design of Existing Code by Martin Fowler and Kent Beck

    I would also suggest:
    Head First Design Patterns by Eric Freeman and Elisabeth Robson, which is a simplified introduction to design patterns for those who find the Gang of Four book a bit dry.

    Clean Code: A Handbook of Agile Software Craftsmanship by Robert Martin, which has improved my programming style more than any other book