Leveraging learning resources

In this chapter, you're going to learn about...
How do you learn best: books? Video courses? Hands-on interactive classes? And what are you usually looking for when you go out hunting for knowledge: fast fixes to immediate problems? Deep understanding of an entire technology? Quick and dirty getting-starting guides?
Whatever it is you're after, you'll be more likely to get it if you're aware of what's out there. So keep your mind open to the many categories of teaching tools that exist, and join me for a tour of the current state of online technology education.

Books

Books are books. They've been around forever so I doubt there's too much I can tell you about them that you don't already know. And that includes the fact that you can now read them on your phones and Kindles.
But here's a thought you may find useful: the higher-end technology publishers are able to invest months of careful planning and the work of teams of editors and reviewers into their products. Those efforts are likely to deliver more concentrated value than you'll find in other, less meticulous media formats.
So if you're looking for a well-designed curriculum guiding you on a complex journey through a larger technology and you're the type that learns well using book-based information, then consider purchasing a dead tree.
Just wait until it comes on sale. Trust me on that one: sooner or later they're all discounted.
Are some technology publishers better than others? Well some publishers put a lot more time and money into creating books that comprehensively teach a topic. So going with top tier providers does increase your chances of success. But good books - like the one you're reading right now - can sometimes find their way into the world through all kinds of channels.
Which publishers are in the top tier? Because of my happy ongoing relationship with Manning I'd certainly include them. But No Starch, O'Reilly, and Wiley would also seem to belong.
Now that's just my off-the-cuff impression. There's a very healthy range of other technology publishers out there that shouldn't be ignored, including McGraw-Hill, Que, Addison-Wesley, and Apress. Large corporations like Microsoft and Adobe will often also publish their own high-quality books to help developers and users easily adopt their products.
You should also pay attention to specific "sub-brands" within a publisher's catalog. Manning, as one example, publishes books with consistent and dependable style and scope using the "x in Action" and "Learn x in a Month of Lunches" titles. Similar successful book series include Wiley's "x for dummies" and O'Reilly Media's "x: the missing manual."
If you got along particularly well with one book from a series, the odds are good you'll enjoy the others, too.

Curated courses

Just like books, training videos are more likely to be effective if they've been carefully planned, designed, and reviewed. Unlike books, a site-wide subscription to an online service can instantly plug you into solutions to whichever specific problem you're facing, no matter what the topic. But either way, teaching is a complex skill and, no matter how and where the teaching takes place, the better the teacher, the more you'll learn.
So if you're after good online courses, look first for sites that employ only experienced teachers, plan their course collections to ensure that important topics are covered and that there isn't repetition, and closely edit and review content before it's allowed online. In other words, sites that curate their content.

Who's big in curation?

Pluralsight.com. With some 6,000 courses spread over eight domains (shown below in figure 6.1) and addressing skill-sets from entry-level to advanced, Pluralsight covers a lot of ground. Since expanding its enterprise focus in June 2016, it now serves more than 50% of Fortune 500 companies, where it's common to provide full-access accounts to many or even all employees. I'm biased, of course, since I've got more than a dozen of my own courses on Pluralsight. Pluralsight offers a free 10-day trial and paid accounts for $29 monthly or $299 annually. You can also take free skills assessments to discover the gaps that need filling.
Pluralsight's 6,000 courses are divided among eight domains - the largest of which is Software Development

Pluralsight's 6,000 courses are divided among eight domains - the largest of which is Software Development

Lynda.com. Any online education company owned by LinkedIn (which, in turn, is now owned by Microsoft) is probably going to be professional and reliable. Like Pluralsight, Lynda has a wide range of courses, although their catalog skews more towards design and creative skills and, by reputation, their courses tend to be a bit more basic and, for the software development courses, perhaps less real-world. Lynda offers a 30-day free trial and, once that's done, will cost you either $19.99 or $29.99 - depending on whether you want access to project files and offline viewing.
The course breakdown by subject at Lynda

The course breakdown by subject at Lynda

CodeAcademy.com. Code Academy provides hundreds of intermediate-advanced coding classes for free, but also has paid tiers. The Codeacademy Pro tier, for instance, gives you more practice resources and a detailed course syllabus for $19.99/month, while Codecademy Pro Intensive's 8-10 week courses include more hands-on practical experience and cost $199/course. Their content isn't video-based, but consists of text tutorials guiding you through hands-on workspaces. Quite an effective approach, as it turns out.
Treehouse (teamtreehouse.com). By reputation, Treehouse seems primarily aimed at individuals starting out in web design and programming. Besides videos, the site also offers a "Code Challenge Engine" for direct interactive experience. Basic membership costs $25/month and the Pro level goes for $49/month.
freeCodeCamp.org. Like the name says, this one is free. Not just as a way to drive traffic to some kind of revenue-generating web page, but completely free because they simply believe such opportunities should exist. The idea is that "campers" work their way through realistic projects centered around coding challenges. But this one is different in a few important ways. For one thing, campers are encourage to join with other local campers so they can code in mutually supportive groups. Once they've worked through the Front End, Data Visualization, Back End, or Full Stack certifications, campers are also encouraged to gain real-world experience by coding for non profits. Finally, freeCodeCamp guides graduates through the job search and interviewing stages of their young careers.
Besides companies offering courses on a full range of tech topics, you'll also find online resources with a more specific focus, like CloudAcademy.com and LinuxAcademy.com. I'll allow you only three guesses as to what each of those is about.

Non-curated courses

Not sure how to change the bulb on the passenger-side brake light on your 2010 Dodge Caravan (3.8L)? There's a YouTube video that'll show you how. Need to replace the pressure sensor on your ten year old Carrier forced-air natural gas furnace? There's another YouTube video that'll show you how to do that. In fact, there'll be a selection of YouTube videos showing you how to do just about anything you can imagine - and a great many things you couldn't (and perhaps shouldn't).
Got one very specific problem that's blocking your progress? Looking for a bird's eye level overview of your next language? Don't rule out the possibility that someone out there has already been there and recorded the solution in a video. Also, keep an eye out for video authors you liked and subscribe to their YouTube channels. That makes it easier to find more useful content.
Perhaps the most famous and successful YouTube channel of them all is Salman Khan's Khan Academy. Although it's primarily aimed at K-12 students, there's plenty there that can be useful for people taking their first steps in programming - or in physics or electrical engineering, for that matter.
The Udemy.com site has many thousands of video courses on all kinds of topics, including technology. Since any author is welcome to upload courses on just about any topic, the collection can't really be considered curated. And video and teaching quality will vary significantly from course to course. But there's enough variety there that spending some time looking around might get you to what you're after. Udemy charges for each course you decide to take.

Higher education institutions

The costs of traditional higher education programs have ballooned in recent decades. Right now a four year degree in the US can cost you around five times the 2016 median annual household income (which was around $59,000). If your degree ends up providing you with $20,000/year income beyond what you would have earned without it, it would still take you more than ten years just to break even. And perhaps many more years to pay off the actual debt.
Investments like that don't always make a lot of sense. But suppose you could get the same knowledge at no cost at all?
Welcome to the world of the massive open online course (MOOC). A MOOC is a platform through which an existing educational institution delivers course content to anyone on the internet who would like to consume it.
By joining a MOOC, you can view video recordings of the lectures from the best professors in elite universities and engage in simulated interactive labs at no cost and from the comfort of your own home. In many cases, you can also receive credit or certification confirming your successful completion of a course. Certification often does carry some charges.
The down side - although technically, not everyone will consider this a down side - is that university-based MOOCs will often be less job and industry-focused and spend more time on general theory. They will sometimes also expect you to have already mastered some prerequisite STEM skills.
Here are some major MOOC portals:
Coursera.org. Taking the 4-10 week Coursera courses, along with quizzes and exercises, is free. But they also offer fee-based add-ons including assessments, grades, and certification. Specializations are multiple Coursera courses organized into a larger program like Data Science or Deep Learning. To earn a specialization certificate, students must complete a capstone project at the end. Coursera categories include Computer Science, Data Science, and Information Technology.
edX.org. edX is a non-profit organization originally created by MIT and Harvard University whose platform delivers MOOC courseware created by more than a hundred universities and colleges. Students may audit a course for free or, for a reasonable fee, gain verified certificates of completion.
MIT OpenCourseWare. OpenCourseWare isn't really a learning platform and won't help you much if you're looking for an organized guide through a particular topic. Rather, it's an online repository containing notes, quizzes, and some videos from thousands of MIT courses. The content can give you insights into specific questions although, if you're ambitious and determined enough, you could mine entire topics from the rich resources you'll find.
Udacity.com. I included Udacity in this higher education section because that's where its roots lie. But in fact, while the founders came from the Stanford University faculty, the project was originally something of a rebellion against the high costs and distracting bloat of many university degree programs. Rather than spending four+ years studying material that's largely out of sync with the demands of the real job market, why not focus on the skills the industry is looking for and get it done in much less time and for a tiny fraction of the cost?
Today, Udacity offers a couple dozen or so nanodegrees that, with a few months' work, can get to you up to and past entry-level competence in some high-demand fields. Because the nanodegrees are created with the direct involvement of major industry employers like Amazon, Nvidia, and Google, there's a decent chance a hard working graduate will quickly find a great job.

The open internet

There's a world of help waiting for you out there. Don't miss it.

Learn to compose smart search strings

Internet search is far more than just typing a few related words into the search field and hitting Enter. There's method to the madness. Here are some powerful tips that will work on any major search engine. My own favorite is DuckDuckGo.
(Although other search engines that respect the privacy of your data include Startpage, searX, and Privado.)

Use your problem to find a solution

Considering that countless thousands of people have worked with the same technology you’re now learning, the odds are very high that at least some of them have run into the same problem you did. And at least a few of those will have posted their questions to an online user forum like Stack Overflow. The quickest way to get at look at the answers they received is to search using the exact language that you encountered.
Did your problem generate an error message? Paste exactly that text into your search engine. Were there any log messages? Find and post those, too.

Be precise

The internet has billions of pages, so vague search results are bound to include a whole lot of false positives. That’s why you want to be as precise as possible. One powerful trick is to enclose your error message in quotation marks, telling the search engine that you’re looking for an exact phrase, rather than a single result containing all or most of the words somewhere on the page. However, you don’t want to be so specific that you end up narrowing your results down to zero.
Therefore, for an entry from the Apache error log like this:
[Fri Dec 16 02:15:44 2017] [error] [client 54.211.9.96] Client sent malformed Host header
...you should leave out the date and client IP address, because there’s no way anyone else got those exact details. Instead, include only the "Client sent..." part in quotations:
"Client sent malformed Host header"
If that’s still too broad, consider adding the strings Apache and [error] outside the quotation marks:
"Client sent malformed Host header" apache [error]

Be timely

Search engines let you narrow down your search by time. If your problem is specific to a relatively recent release version, restrict your search to just the last week or month.

Search in all the right places

Sometimes an outside search engine will do a better job searching through a large web site than the site’s own internal tool (I’m looking at you: Government of Canada). If you feel the solution to your problem is likely to be somewhere on a particular site – like Stack Overflow’s admin cousin, Server Fault – but you can’t find it yourself, you can restrict results to just that one site:
"gss_accept_sec_context(2) failed:" site:serverfault.com

Know what you don’t want

Finally, if you see that many or all of the false positives you’re getting seem to include a single word that is very unlikely to occur in the pages you’re looking for, exclude it with a dash. In this example you, of course, were looking for help learning how to write Bash scripts, but you kept seeing links with advice for aspiring Hollywood screenwriters. Here's how to solve it:
writing scripts -movie

Leverage public code samples

Are you stuck in a way that only a developer can be stuck? You've read your code through over and over again and you just can't find the error. You've tried at least a half a dozen different design approaches and even - briefly mind you - an entirely different language. Nothing. The application isn't working.
Haunt GitHub and other places where public repositories of code live. They're all searchable and they're all filled with examples of great code. Of course, there will also be plenty of examples of really bad and even malicious code. Keep your guard up.
Spending smart time browsing through other people's code is a great way to get new ideas and learn about best practices and coding patterns. If your search engine skills are as good as I'm guessing, then you'll probably uncover working solutions to whatever it is that ails you.

Free stuff

You don't have to do this all by yourself. Before embarking on a significant new learning project, take a good look at your community and government to see what services might be available.
Many governments offer support - both financial and practical - for people looking to upgrade their professional skills. There are also more and more state/provincial governments joining the open textbook movement, where well written and up-to-date technical textbooks are made freely available on the internet. At this point, I would say the quality of most collections looks a bit spotty, but the long-term goal is to cut the cost of an annual education by many hundreds of dollars.
Your company might be willing to sponsor your learning. In fact, many companies provide their employees with accounts to online learning sites and, sometimes, it's just a matter of asking your boss or HR rep about what might be available.
Not that it has to be your company. Check out the Microsoft Virtual Academy which, as you can see in figure 6.3, offers all kinds of free courses under three domains: Developers, IT Pros, and Data Pros.
Course categories in the IT Pros domain available from Microsoft Virtual Academy

Course categories in the IT Pros domain available from Microsoft Virtual Academy

And what about your community? You might be surprised how happy experienced and older professionals are to engage in mentoring. It might take a bit of courage, but go ahead and approach someone you admire to see what wisdom and practical guidance you get.

Case study

We haven't heard much from Kevin lately. What's he been up to? Believe it or not, he finally finished his research and deployed the new application to integrate with his company's vendors' systems. And with all the time that's been freed up in his schedule, he's started a new learning project: Linux network administration.
But right now Kevin is worried. There have been occasional complaints from users about not being able to connect to the application server. Not many: but a couple last week and four this week. It's a disturbing trend. It would be nice to get some insight into the server and the software stack running on it.
Kevin got some ideas from internet searches and even some helpful advice from a colleague. But now he's looking for something a bit more comprehensive.
Taking advantage of the new Pluralsight account his company gave him, Kevin browsed the course library to see if there was anything that could help. Well lookie here! There's a brand new "Linux Performance Monitoring and Tuning" course. And the author: David Clinton. Do you suppose we're related?