Books vs Online Courses
Kostas Sar

Kostas Sar @kostassar

About: Security Engineer

Location:
Greece
Joined:
May 11, 2018

Books vs Online Courses

Publish Date: Jun 26 '18
76 57

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!

Comments 57 total

  • Aswath KNM
    Aswath KNMJun 26, 2018

    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

    • Kostas Sar
      Kostas SarJun 26, 2018

      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!

  • JeffD
    JeffDJun 26, 2018

    (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).

    • Kostas Sar
      Kostas SarJun 26, 2018

      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.

      • Rosber Guedes
        Rosber GuedesJun 26, 2018

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

  • juankOrtiz
    juankOrtizJun 26, 2018

    For me, the main concern about online courses (and video tutorials) is that the quality depends on the instructor, so is not a solution for every scenario. On the other side, you can't use a book from 2010 for learning modern web development or other evolving technologies.

    So I guess it depends on what is your main concern. No matter what you choose, make sure to take 10 minutes to do research about the author/publisher/contents of the book/course.

  • Kostas Sar
    Kostas SarJun 26, 2018

    Bookmarked! :D

  • Stephen Chiang
    Stephen ChiangJun 26, 2018

    In general, my experience is that basic level courses are not really worth it on online format compared to the value of the book. However a complete practical guide that includes advanced topics are really worth it.

  • Kostas Sar
    Kostas SarJun 26, 2018

    Personally, I usually try to find online courses to get me up to speed faster. But studying from a book seems more in-depth

  • Andrea Pavoni
    Andrea PavoniJun 26, 2018

    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.

    • Adam Brandizzi
      Adam BrandizziJun 26, 2018

      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.

    • Fabio Russo
      Fabio RussoJun 26, 2018

      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

    • Desolo Sub Humus 🌎🌍
      Desolo Sub Humus 🌎🌍Aug 3, 2018

      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.

  • Adrian B.G.
    Adrian B.G.Jun 26, 2018

    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).
  • Adam Brandizzi
    Adam BrandizziJun 26, 2018

    Hello Kostas!

    I guess you will eventually the best approach to you. It is kind of personal.

    Nonetheless, here is what works for me.

    • I prefer books when entering whole new areas of expertise. In this case, I need to make my own pace, going back and forth in the subject, pausing, taking notes etc. For example, once I had to set up a call center but had zero knowledge of VoIP et al. So I read The Asterisk Book and Getting Started with Elastix.

    • When I'm acquainted with the subject domain, I find video courses helpful. Since I can assimilate the topic easier, the pace of the course helps me avoiding boredom and procrastination. For example, some time ago we used JAX-RS in my workplace. I'm a well-seasoned Java developer so I burned by free trial of LinkedIn Learning with Alex Theedom's excellent JAX-RS Introduction.

    I doesn't mean it will be the same with you, of course :)

    • Kostas Sar
      Kostas SarJun 26, 2018

      A friend of mine could use that asterisk book! Thanks for linking it!

      I wouldn't think of using that linked in learning trial ever, I look it up and check if there is anything that fits to my occasion.

  • kip
    kipJun 26, 2018

    I like books, because you can navigate throught it easy and read again many times and is more in-depth.

    The blogs are very useful when you had a certain expierence with new language or tool(after read the book?), you can get good topics/guides that other people with more expierence that wrote for their self and everybody.

    I think the talks are more good when you have some knowledge in this new lang/tool.

    I dont like so much videotutorials/videocourse because my english is only good for read, is very difficult sometimes follow the video, maybe with subtitles....

    But is better get a mixin of them, books and videos, this is because I have an account on Safari Books Online, in there you have books(digital), videos and online trainings, is very useful !

    Other good site is Packt, good resources !

    Finally exist Leanpub is an amazing site of books and courses where anybody can create a course or write/publish a book, is for this that you can get some unique books from people (also they write good blogs ?) that not have an editorial or something like that (fix me if I'm wrong on this).

    Of course exists other free stuffs, but if you have some money I think is good give the correct price to this amazing people that have the time to share their knowledge.

    • Kostas Sar
      Kostas SarJun 26, 2018

      Thank you very much! I'll check the links!

      As commented in other answers, these kind of videos can help you improve your English. If you can enable subtitles, adjust the speed to your comfort and listen to people who speak clearly you can benefit. On top of that you also learn the point of the video provided it is in a programming context.

  • Erik Nelson
    Erik NelsonJun 26, 2018

    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.

    • Kostas Sar
      Kostas SarJun 26, 2018

      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.

      • Erik Nelson
        Erik NelsonJun 26, 2018

        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.

  • Ricardo Delgado
    Ricardo DelgadoJun 26, 2018

    I usually always take online courses. I have to do something to learn it, so getting to follow code and type my own at the same time means a lot.

    But I also won't dive too far into learning, and would rather just create a project that will let me build, break, and figure things out.

  • Fabio Russo
    Fabio RussoJun 26, 2018

    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)

    • Kostas Sar
      Kostas SarJun 26, 2018

      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.

      • Fabio Russo
        Fabio RussoJun 26, 2018

        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.

  • David Hackro
    David HackroJun 26, 2018

    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

    • Kostas Sar
      Kostas SarJun 26, 2018

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

      Thank you for your answer!

  • Wilfredo Pérez
    Wilfredo PérezJun 26, 2018

    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.

    • Kostas Sar
      Kostas SarJun 26, 2018

      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.

  • Paul Isaris
    Paul IsarisJun 26, 2018

    Many times have I stumbled at the same point. While an online course seems to be more up-to-date and relevant, a book is a classic and sometimes more prestigious.
    My opinion is that it depends on the level of detail that you want to acquire from the language/ techonoly that you are learning.

    An online course generally provides more examples and hands-on mini projects, while a book gives a deeper experience but focuses more on abstract paradigms.
    My suggestion would be to try first an online course (just to get a grip and a general idea of the topic), and then to supplement your learning with a classic book.

  • Kyle Galbraith
    Kyle GalbraithJun 26, 2018

    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.

  • Bob McCann
    Bob McCannJun 26, 2018

    Any discussion of R inevitably brings to mind the obvious pirate joke, so allow me to take it and run with it so we can be done with the silliness:

    Jokester: What's a pirate's favorite programming language?

    Audience: R!!!

    Jokester: Aye, the pirate be very fond of R, but it is the C that is his true love.

    I'll show myself out.

    • Kostas Sar
      Kostas SarJun 26, 2018

      Hahaha watch out he might get eaten by a Cshark.

      Hold the door.

  • Ivica Rade
    Ivica RadeJun 26, 2018

    As someone who just recently got into web development as a career change, i prefer courses over books. I learn by doing, and would much rather have a teacher explain the concept then try out a few projects myself than read a whole chapter about it.

    It depends on the teaching capability of the guy making the video, as it is a skill in itself being able to teach other people.

    The other thing is, the technology is always evolving. A book will only stay relevant for so long before it becomes useless, yet someone making a video is more likely make an updated version of the same video than write a whole new book. Just my 2 cents.

    • Kostas Sar
      Kostas SarJun 28, 2018

      Usually good books have tests and practice ideas after or even during each chapter. But I agree, a good teacher is irreplaceable!

  • Slick3gz
    Slick3gzJun 27, 2018

    I dropped out of CS in 1997. I would pickup books every now and then to try and learn a different programming language or framework. I remember learning HTML 4.01 from a "Dummies" book. I recently decided to jump back into software development. I've read a few Amazon Kindle books, but the bulk of my learning has come from online courses. I think the online courses help me understand topics better because I can follow along typing code as it's being explained, and getting a chance to see the code in action on the instructor's machine as well as mine. I also think instructors that don't edit out their mistakes are very helpful. Understanding error codes is a big help.

  • Edu Deza
    Edu DezaJun 27, 2018

    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.

    • Kostas Sar
      Kostas SarJun 28, 2018

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

      • Edu Deza
        Edu DezaJun 28, 2018

        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

  • Sai gowtham
    Sai gowthamJun 27, 2018

    Every one has there own approach in learning .
    Someone likes Reading books or documentation and someone feels comfortable by Watching tutorials find your approach too test everything.

  • Kostas Sar
    Kostas SarJun 28, 2018

    Yes it's easier for me too to focus on a 5-10min video than a full chapter. So videos are the way to go most of the time.

  • ItsASine (Kayla)
    ItsASine (Kayla)Jun 29, 2018

    The downsides I have with books are the same with the downsides I have for online courses, so it really would be personal preference for how you learn. Like what got mentioned here:

    I dislike watching videos, so I almost always buy an ebook for whatever I'm learning since my tablet is always with me. Paper books get outdated quick for tech subjects, but for more established frameworks like Python and R, you'd get a really solid foundation on only need to Google some syntax stuff when doing it on your own with the bleeding edge version.

    eBooks and online courses sometimes publish updates and corrections, but you'd need to find a good publisher or instructor you can trust will provide the right info. I tend to stick with PacktPub or Manning for material, and they seem to do right by keeping their material modern.

  • flavio ⚡️🔥
    flavio ⚡️🔥Jun 29, 2018

    Mixed opinions - but the last topic I decided to learn deeply I bought an ebook and an online course, and I use both. I get tired of watching videos after a while and the book is a great reference to go and find things I forgot.

  • Yaser Al-Najjar
    Yaser Al-NajjarAug 20, 2018

    Don't waste your valuable time... a bit of courses and a lot of practice is all what you need.

    • Kostas Sar
      Kostas SarAug 21, 2018

      That seems to be the best choice but I struggle starting a project when I don't know all about the tools I can use. Or the capabilities of the programming language I am learning.

      • Yaser Al-Najjar
        Yaser Al-NajjarAug 21, 2018

        What do you struggle with exactly? just put more info, and I'll be happy to help ;)

        • Kostas Sar
          Kostas SarAug 21, 2018

          For example recently I was doing a python 3 course and didn't have any ideas on what I could build with it or how. I needed more time to see what are py's bemefits and strong points so that I could learn more as I build my project.

          I don't know if you've ever coded in that language, I just used it as an example. At what point you think is a good time to start a project? After finishing books and courses or during that time and keep learning as you are coding?

          • Yaser Al-Najjar
            Yaser Al-NajjarAug 21, 2018

            What I do is I work on a project and read/watch about whatever I need... never read/watch something i dont need, it's just a waste of time cuz when i need it I'm gonna read/watch the same content again.

            • P.S: I spend 2 hours everyday to learn about totally new tech, cuz it's not a problem to not master specific tech, the real problem when you dont have an idea about what other tech can be useful for.

            • P.S.S: I use Python/CSharp for backend.

            So... let's face it with a simple analogy:

            Suppose you're practicing as a pro football player, and your dodging & defending skills are good, but you're terrible at free kicks... would you do more dodging and defending? or focus on doing more free kicks?

            Lemme define some vars

            Dodging = reading from books

            Defending = watching courses

            Free kicks = doing actual project

  • Kostas Sar
    Kostas SarOct 11, 2018

    I agree, but usually books have snippets of code as examples. If you recreate and try to improve or break them you can get a good grip on the concept you are studying. This of course takes time, but you have to invest in order to learn.

  • Arveen Kumar
    Arveen KumarOct 27, 2018

    It would be easy to learn from videos because human normally understand through images.

Add comment