DEV Community

Cover image for Books vs Online Courses
Kostas Sar
Kostas Sar

Posted on

Books vs Online Courses

I'm about to start a project on data mining and statistics and the recommended tools are Python and R. As I have never before used R I want to learn about the language before tampering with any of the project code. Also the main structure is already made by someone else and I was asked to add more features.

So that's when this question came to me. Should I get a couple of books on the topic? Am I going to be fine after taking an online course (free or paid) plus some tests and exercises in hackerrank for example? Or do these methods compliment each other so it's best to do both?

What is your opinion? How do you usually get started with programming languages and new concepts?

P.S: If you have any good recommendations on where to start with R it would be much appreciated! But the main topic of the post is still the comparison of the two methods.

Thank you!

Top comments (52)

Collapse
 
cotcotcoder profile image
JeffD

(General response, not specific to R)

I choose books because:

  • Subject is a freezed domain (evolve slowly like SQL, Unix, protocols, design, ... )
  • I don't need to write code or I can do it later (I love to read outdoor)
  • Nice overwiew of complex topic (I love A book Apart collection)
  • I would like to read it again in 2 or 3 years, for topic like team management/scrum/clean code ... (you don't forget a physical book)
  • I want to share it with my coworkers
  • Difficult topic (I can read the line twice easily, it's sometimes difficult with video-player)

I choose online-courses because:

  • Subject is "deprecated tomorrow" (Ecmascript, VueJs...)
  • No book on the topic (very new topic)
  • I need just an introduction of the topic (curiosity)
  • I can learn "handless" (while washing dishes, eating...)
  • Weight & size (small flat, frequent moves)

I look if the author(writer/speaker) is reputed for this domain. If he is in the development team, he can explain the "why it's working this way?" and it's something awesome to learn with the vision of the topic (langage or software).

Collapse
 
kostassar profile image
Kostas Sar • Edited

Would you use a book to learn the basics on a fast-developing tool / language? And then maybe videos for the more complex and high-level concepts.

Collapse
 
rosberg_guedes profile image
Rosber Guedes

I use real books to search, digital books to learn the basics and videos for contents complex.

Collapse
 
bgadrian profile image
Adrian B.G.

I see them as complementary sources,

  1. Books - layout the foundations. Learn statistics, R, and basic concepts
  2. Courses - practice with real projects, fill in the gaps (that you haven't grasp from the books), learn the new developments (usually books are not up to date).
Collapse
 
ghost profile image
Ghost

This!

Collapse
 
pavonz profile image
Andrea Pavoni

I must confess I never use video courses. I usually buy printed books, and sometimes ebooks.

My first problem with videos is the language barrier (I'm italian): I can read/write english very decently, but I struggle with real time listening. So, if I'm learning/studying something new, I still go with books.

Collapse
 
genta profile image
Fabio Russo • Edited

Just start with It... can be hard for some hours... but It will teach you english understanding and will give you access to a different learning approach

  • use subtitles
  • train your understanding slowing down videos...
  • Learn to code and english language...

Prendi due piccioni con una fava

Collapse
 
desolosubhumus profile image
Desolo Sub Humus ๐ŸŒŽ๐ŸŒ

I can understand that. I've used videos, but only if literally nothing else comes up after weeks of internet searching. Even then, I sometimes have to bring up the transcriptions, even though I'm a native English speaker. Extremely thick accents coupled with broken English can be hard to understand, especially when the code is broken and you have to cross-reference and rewrite it to make it work.

Collapse
 
adambrandizzi profile image
Adam Brandizzi • Edited

That is a problem to me, too! OTOH most instructors have a very good pronunciation, so it ends up being a point in favor of courses to me, a good opportunity to practice English. Sure, it only works if I'm not totally alien to the subject but I rather read books for studying new domains anyway.

Collapse
 
gameoverwill profile image
Wilfredo Pรฉrez • Edited

In my case I ussually do some steps when I'm learning somethin new:

1.) I start to learn from a video course, try to follow everything. As other people says in other comments is pretty usefull to improve your english and for me is more easy to understand. I can recommend you web pages like, Udemy, Udacity or Pluralsight.

2.) When I complete the course, I look for some book that I could read and learn / understand the most dificult parts. I think that video course in most cases doesn't cover the advanced parts, so I look for a book that can cover this parts.

3.) Create a project that help me to practice everything that I've learned, besides doing that a lot of doubts will come to you so you'll need to research, read, and aks about.

This is my recipe that I'm using for several years and It is still working for me. I hope that can help you.

PS: right now I'm learning python from courses.cognitiveclass.ai/dashboard they are offering for now free courses by IBM. Also there they have a path about R, you should check it.

Collapse
 
kostassar profile image
Kostas Sar

Thank you! I will check it out!

What I used to learn the basics of python was Learn Python the Hard Way. The author has some humour and there is some repetition in the exercises so you won't forget instantly what you learned after you pass each chapter.

Collapse
 
gameoverwill profile image
Wilfredo Pรฉrez

Thank you I'll check it :)

Collapse
 
erikthered profile image
Erik Nelson

Typically I like to start with the official docs for whatever I'm trying to learn. I like having everything in text so I can scan more quickly and jump around/search for whatever I'm trying to find. I think for this reason I've never had much success trying to learn from videos/screencasts. Official docs are usually the most up-to-date resource available which is certainly a positive.

For something fairly well established/stable I think books can be good, but it's hard to recommend them for a newer or quickly changing technology.

Online courses can be good but I think it depends on the format and quality can vary wildly. I think getting recommendations from a community (such as dev.to or a programming subreddit) is a good way to filter for quality options.

Collapse
 
kostassar profile image
Kostas Sar

By official docs you mean tutorials made by the same team or the actual manual? Because the latter one is a bit hard to follow when you are not familiar with the subject.

Collapse
 
erikthered profile image
Erik Nelson

Ideally, something like the Vue.js guide or Kotlin Reference.

I know you mentioned you're trying to learn R, I looked up their official docs and they look dense to say the least. The quality of these type of documents certainly varies a lot depending on the project.

Collapse
 
edezacas profile image
Edu Deza • Edited

If I want to learn a new language I read the documentation and if it has a guide I do it. In this way I have a first approach. After depending on the context I search some book with a good reputation author, usually I use safarybooks. In the end if I a need more specific info I use online courses.

Collapse
 
kostassar profile image
Kostas Sar

Isn't documentation a bit overwhelming as a first step?

Collapse
 
edezacas profile image
Edu Deza

Maybe if we deeping into documentation yes, but ususally weโ€™ve a reference or guide that contain a general vision. For example, few months ago I wanted to learn Kotlin, so first I went to read reference for its web. Of course is a good way for me but hasnโ€™t to be for each one else

Collapse
 
davidhackro profile image
David Hackro

I have two opinions, the opinion how student and how instructor/teacher.

  • INSTRUCTOR : Its complicated create content, for example "Course of Android" but why?
    its complicate for 2 reason

    • Create short content (because a long course it's difficult what the student the completed )
    • Create content interesting for beggin student and same time interesting for developers with experience.

  • STUDENT: If i need to learn Android topic deeply, i prefer buy a book

In internet you can found a lot of content but the problem is what most is oriented for begginners, maybe for this reason i prefer buy books.

P.D. Sorry for my grammar errors XD

Collapse
 
kostassar profile image
Kostas Sar

Haha I am quite far from teaching. Not that experienced yet to feel confident.

Thank you for your answer!

Collapse
 
genta profile image
Fabio Russo • Edited

That's pretty complex...
Everyone is different, in everything... in learning too.

For me, videos are bad... can't stand how fast people use to teach through videos.
An example... Wes Bos... It's pretty useless for me.
Too fast
Explaining while doing, without any theory or real explanations
So cool, so useless!
(he's really good with his work... he's nice and a good developer)

But it's all a matter of preferences.
I love to learn theory while doing work and we all need TO BUILD!

Most of the books without any exercise at the end of every chapter, are not well done books.

(Keep in mind that books are expensive sometimes... and subjects are really fast changing nowadays. Books won't get updated!)

BUT
If you've to learn something to get the work done, in some days... you need to learn the needed subject or library, and that can be complicated with books.
You need to skip most of the theory and go straight to the core of what you need.
In this case, videos can be very good.
But still you're memorizing and not really learning.
(I use an online Code school that I really like to learn... but of course, they're not going to cover every possible subject)

Collapse
 
kostassar profile image
Kostas Sar

I agree with you! The most important aspect is building, breaking and fixing projects.

For short uni projects videos do the job but this time I need to get more in-depth.

Collapse
 
genta profile image
Fabio Russo

In-depth...

you've to go both.

Learning from books and code a lot.
Videos are good tools not only for tutorials, but also for coding video, where you can check how good coders work.

Collapse
 
kylegalbraith profile image
Kyle Galbraith

My general view of the world, not specific to any one topic:

  • Books are one of my favorite ways to get introduced to a topic and learn the concepts/terminology around it.
  • Courses like my, learn AWS one, are in addition to the book. Like taking the book's concepts and showing how they work in the real world.

So I view them as going hand in hand really. But I think the main takeaway is that when you are learning something new it is important to understand the problem it is trying to solve. Once you know that, dive in and start using it as that is how you will learn even more in a short amount of time.

Collapse
 
aswathm78 profile image
Aswath KNM

I took many online video based courses. Some of them are very specific and some udemy courses are just rip off of famous resources out there.

My suggestion is start with book.

Once you feel comfortable using R, then you can move on to advanced courses and projects

Collapse
 
kostassar profile image
Kostas Sar

Video based courses are much easier to follow, I usually go for them too! Plus they fit in any schedule! No matter how much time you can invest.

Thanks for the recommendation, I'll check it out!