Clearly I am - these online courses are hugely popular, it blows me away seeing how many people have paid for certain courses on Udemy. I've tried running through a few courses on Coursera and whilst they are interesting they are incredibly slow. I end up running out of patience and just searching the net and reading up on the topics in about 10% of the time.
I just can't see how watching these videos provide any more value than working though a good book that can be had for less than half the price.
Are these paid for courses significantly better than the free MOOC courses? If so, how?
I remember Rob making a comment that .Net is his most popular topic.
From a dotnet point of view, it is much easier for many programmers to watch videos instead of reading a book. For one, language is not as big a barrier because you have a visual example to go along with his narrative.
The biggest problem I personally have with dotnet is the necessity to know all the nuances of whichever stack you are developing on.
In learning MVC, Rob goes over every single issue a programmer may have in creating a web site, circumventing those moments where you get stuck trying to find out how to change how routing works. He also goes over a token based login that completely throws out the default dotnet implementation.
In addition, he goes over creating a support site, dependency injection, and lots of other things that you would have to be an active member of the MVC community to even know it existed.
He even posts his code to github. Basically, Rob acts as a mediator between the dotnet world and the open source linuxy way of doing things. Many of his comparisons are with Ruby on Rails. When I talk with people I know who code in C#, they hardly spend time reading about new trends in HTML and javascript and prefer to get the easy way by learning the dotnet way of doing things.
As a dotnet developer, you (and me too) put yourself into a position of ignorance. Then you wait for someone more senior to come out with a simple method that you could use for rapid prototyping. You rely on that senior person not because you can't code but because you really don't know the nuances of the framework you are leaning on. This refusal to learn the bare bones of HTML and adopt some micro framework creates the phenomenon where you are kind of hosed into grabbing the quickest path to productivity.
Edit: I edited quite a few things for clarity. Probably shouldn't submit so fast.
> As a dotnet developer, you (and me too) put yourself into a position of ignorance. Then you wait for someone more senior to come out with a simple method that you could use
> for rapid prototyping. You rely on that senior person not because you can't code but because you really don't know the nuances of the framework you are leaning on. This
> refusal to learn the bare bones of HTML and adopt some micro framework creates the phenomenon where you are kind of hosed into grabbing the quickest path to productivity.
I couldn't disagree more and I would really like it if people would stop spreading this kind of nonsense. Being a .Net developer does not make you ignorant, some people choose to be ignorant that has nothing to do with the technology stack they're using. I am a .Net deveoper and I absolutely do not put myself in a position of ignorance, I actively work to reduce my ignorance on a daily basis and so do all the other good, .Net or not, developers I know.
I'm making my statement based on my experiences in C# and web. I fight daily battles with people about this. The fear of Javascript is rampant. It doesn't matter if you can save a programmer's time and protect him from having to lay out grids from <insert 3rd party grid manufacturer>. They can't leave their Microsoft shell.
If you take MVC out of the box, add in Entity Framework, and try to create a web site, you'll run into a few issues. Entity Framework is god awfully slow and takes waaay too much to get up and running. Dapper on the other hand took 30 minutes and is blazingly fast in comparison. It took me a while to make that sale to my coworkers. I keep hearing the argument that Microsoft is hardened and that Enterprise has some kind of magic support. Some of my coworkers are quite clever and quite familiar with any given Microsoft stack. Maybe you're the kind of guy who, like me, thinks about the best (and easiest) solution for the problem and spends time learning the underlying technology. The problem I am stating is not that all Microsoft programmers are ignorant. The problem I am stating is that the Microsoft technology stack actively tries to get you to use their highly generalized objects instead of just solving the problem on your own. They want you to lock yourself into their system so you stay put. It's like a software roach motel. If you just used simple Javascript, your server stack could be fairly interchangeable, but when you go the Microsoft way, you're going to spend so much time learning their approach, you may not have the drive to liberate yourself from your shackles.
I think the best way to sum up the problems I had with MVC in a single example is the HTML helpers. Instead of using simple Jquery or javascript to talk to the server, you start with @HTML.Form and try to make all these nonsensical options do what you want it to do. If you take a basic javascript course on codeschool.com, you'll be able to write that yourself in a day. Why not just use the HTML helpers? You'll find that as your app becomes more complicated, they limit you from achieving your goal.
I just spent a good part of today fixing our internal Halloween costume contest voting website. The programmer who started it was fresh out of college so I hardly blame him. The task was assigned to someone else and he kind of froze up on me. I created some jquery ajax requests and updated some UI elements with Javascript. I used some CSS and vuala, I had the web app working displaying all contest pics. I would consider what I had to do the most very basic kind of programming. Why couldn't my developer handle it? He was trying to use MVC form helpers. Now he's walking next to me complaining that he doesn't know web well enough. It would have taken him literally one day to learn how to write $.ajax({ url: 'Home/Vote', success: function(r){ ...
That's a good point. I'm a c# coder by day and it amazes me how uninterested my coworkers tend to be about learning anything outside of the c# ecosystem, and even then they are largely happy with what they know. To them the command line is something they left behind in 1984 and they shave far too often to want anything to do with Unix.
Although it doesn't really explain why Rob can't write a book rather than do video. My colleagues are just as uninclined to learn through video as they are through a book.
Paid and free MOOC do not differ much, but they have can significant advantages over a book, especially for subjects where you do not have already domain expertise:
Are these paid for courses significantly better than the free MOOC courses? If so, how?
Yes, but in a different way and for a different audience.
Videos from folks like Peepcode and Tekpub are useful for experienced developers who need to pick up an ancillary technology or a specific technique specific to tools they already use quickly. MOOCs are more for learning big picture concepts over a longer period of time.
Clearly I am - these online courses are hugely popular, it blows me away seeing how many people have paid for certain courses on Udemy. I've tried running through a few courses on Coursera and whilst they are interesting they are incredibly slow. I end up running out of patience and just searching the net and reading up on the topics in about 10% of the time.
I just can't see how watching these videos provide any more value than working though a good book that can be had for less than half the price.
Are these paid for courses significantly better than the free MOOC courses? If so, how?