Stob The best way to acquire a programming skill - by "skill" I mean a working understanding of a framework, a language or, shudder, very very bad word coming up, engaging shatter-proof scare quotes, a "paradigm" - is by modifying a colleague's well-written code and making it do something different that you actually need it to do. With the colleague on hand to explain it all, natch.
This is not always possible. So the second best way to do it is to read the book.
That's not to say that long video courses don't have their place, and that place is to bring the gift of deep sleep to all humankind. I once acquired an O'Reilly course on Git usage and, despite being in possession of a white-hot aid to concentration - specifically the knowledge that it was paid for from my very own taxed income - I have been quite unable to overcome its formidable soporific power and watch it beyond lesson one.
(Top notch dreams, though. I'd share, but I hope to sell them to the people making the sequel to the movie Inception. Provisional strap line: "When command line distributed version control utilities go bad". I don't see how this can fail.)
Nope, if you going to learn something, a good book is your best hope. Self-paced progress from a properly organised source.
C, C+ and C++
Technical books have come on a long way in the past three decades. Back in the day, in that Eden-esque era before people irritatingly introduced dreary reminiscences with the phrase "back in the day", it used to be, to view a decent selection of titles, one would have to fag* up to the Smoke to Foyles on the Charing Cross Road.
Such visits were made memorable by Foyles' quixotic system of trading; it being based, I have been assured, on the one used by the Soviet department store GUM. You'd select your books and queue for the attention of the computing department's sales assistant, who would laboriously write out a bill. Clutching your fragment of paper, you then went downstairs to the cashier's desk, where you again had to queue for the privilege of paying - and books in those days were chuffing expensive, I'll have you know. Finally you took the receipt back upstairs and queued for a third time to rescue your purchases.
My generation may not have known much about software development, but queuing theory we had pat.
After the time when virtually nobody stocked software development books, there then followed a long period when virtually everybody stocked software development books. Even Waterstone's, which signalled its commitment and expertise by printing up a standard shelf label for use in all its branches that read "C, C+ and C++".
Gigantic, product-tied books ruled the day. Many publishers competed on just two aspects: the thickness of the volume and the supposed time required to absorb the contents. If one firm released a 300-page Turbo Prolog in a Fortnight of Elevenses, a rival would rush out a 500 page Visual C++ v2 in 24 Hours With Just Three Proper Meal Breaks.
Although the very occasional gem surfaced from this extended festival of tree murder - Danny Thorpe's Delphi Component Design being a prime example, still being offered second-hand and likely missing the pointless CD glued in the back cover, for eye-watering prices on Amazon UK - dross held sway.
But, despite the suspicion that I was mostly wasting my money, I kept up a heavy book-buying habit. I also had a high throughput, and the local charity shops learned to bolt their doors and douse their lights at the approaching trundle of my tome-laden wheelbarrow. Apparently my copy of Turbo-Charged Web Applications with ColdFusion 2 for Dimbulbs in Four Hours had not flown off their shelf, not even after I had pointed out the curious printing error on page 1327.
After that came the golden age of software development books, the current ebook age.
Now I am aware, in the world at large, there is a controversy whether ebooks can satisfactorily replace their paper brethren.
I empathise with both sides. Clearly there is no point in concealing your Knuth on a Kindle. For that book to do its job, your peers must be able to see your well-thumbed copy in all its hardback pomp on the shelf by your desk.
On the other hand, when it comes to actual reading books, ebooks are just the ticket. And you don't have to hump them down to Oxfam when they go out of date.
You do have to do it right, though. Do not kid yourself, as I did for a while, that a spare Paperwhite can be rescued from abandonment in chapter seven of The Girl on the Train and pressed into techie service. By the time you've set the font small enough to avoid wrapping every other line of code, it will be quite illegible... which it was already thanks to colour syntax highlighting that is transmuted by monochrome e-ink to spindly greyish shadows.
So for real, cud-chewing, brow-furrowing study, you will need a 10"-ish, high-res, colour fondleslab. Another tip: don't dally with mere PDFs - they are just for invoices, man. Insist on proper EPUB files. You will thank me for this.
When you are properly set up, there are rich pickings to be had. As once the tech book scene was led by tie-ins to commercial compilers and databases, so it is now dominated by tie-ins to open source packages. Instead of 20 titles about Microsoft Access, you'll find 56 titles about React, some of which may even be nearly finished.
Ah yes. That getting-it-finished issue. The best publishers will not only ping you a new ebook from website to Dropbox folder at the sniff of PayPal account, they also encourage you to buy into book futures, where the author has yet to progress much beyond the title and a sample chapter.
For a few dollars, typically half the cost of the finished book, you can combine the pleasures of moderate speculation (for not all authors manage to struggle to a coherent end) with an easy, gradual read at an enforced slow pace of one new chapter every other month or so. And of course the publisher gets to touch your dosh early, with the bonus of possible unpaid technical review thrown in, so they are able to stem their tears too.
Manning is my current favourite outfit engaged in this flogging-off-of-the-part-work game. If you'll take a recommendation - and I feel qualified to make one, currently owning about a dozen live "MEAP" subscriptions with Manning alone - and the subject matter piques your interest, I'd recommend Functional Programming in C++ for a venture. As well as tons of new-to-me technical dope, it includes a great anecdote about the above-mentioned Knuth.
I used to admire the publisher O'Reilly too, but the company has recently stopped direct retailing from its website ("the mission of spreading the knowledge of innovators continues" is the quaint way their Laura Baldwin announced this retreat) and I find my enthusiasm for the brand has chilled.
Ryan Dahl's dirty socks
Unless, that is, you blow $25 or so on C++ and Node.js Integration, the self-published work of Professor Scott Frees that can be sourced from his website. The prof has regurgitated his own experiences with Node and C++ into an admirably articulate tutorial which marshals all the information you need. Some might say that this effort is slightly marred by the professor's consistent misspelling of possessive "its", but I assert that it is all part of the book's quirky charm.
Somewhere there must be a book that translates D3 into lucid English. I've tried about five or six D3 tomes so far, but despite some nearish misses, no luck yet. But wait! I see Packt has a new title in prospect. Excuse me while I dig out my PayPal password... ®
* Obligatory British slang alert from Reg subs desk: This verb has nowt to do with the American homophobic pejorative, but rather means to perform a tiring task; it's also, as a noun, the task itself as well as a cigarette – hence its use alongside The Big Smoke (aka London).