views:

2565

answers:

45

I'm not a fan of these learn how to program in X amount of days books. Some even boast, learn how to program in 24 hours. This is a joke and an insult to me as a software engineer who went through a rigorous discipline in computer science and mathematics.

So a question to the community, have you benefited from these become a programmer quick books?

+8  A: 

These are my favorite books. The smaller amount of time, the more to the point they are. That's what I like about them. I know what to expect based on the number they give me.

It's obvious to me that I'm not actually going to learn to program with it that fast. In fact, I usually use it more for reference than anything.

PS: I'm a software engineer that went through a rigorous discipline in science and mathematics as well, although I'm not offended by these titles.

Joe Philllips
A: 

For me, those are "syntax books". I program c# mostly, but if my job has a Java requirement I can use one of these books to get the gist.

scottm
+23  A: 

Yes, I've benefited quite a bit. I get paid a lot of money to clean up the mess left behind after someone reads one of these books and then touches someone's system :)

More seriously, these books are often a crash-course in a specific technology or language for experienced developers. On that front, they can and have been helpful to me in the past, though it's hit and miss.

nezroy
+3  A: 

http://www.codinghorror.com/blog/archives/000322.html

From Article:

In 1992, OS/2 came out and I felt I could get a competitive advantage by pre-loading OS/2 onto the computers I sold. I became quite familiar with OS/2. In early 1993, I thought there would be demand for an OS/2 video game. The only problem was that I didn't know how to program. So I bought a book called "Teach yourself C in 21 days" and a book called "OS/2 Presentation Manager Programming". With those two books I programmed Galactic Civilizations. Anyone who ever played the game and also knows programming can verify that only the techniques in OS/2 PM programming are in that game. What that meant is that all the "graphics" were merely iconic windows, not real images because OS/2 PM programming didn't include chapters on how to do graphics programming and I couldn't afford any more books.

Kyle B.
My old boss, Brad Wardell. :)
billb
+7  A: 

These books are just enough for

  1. Jumpstart "learning" a language or technology not master it.
  2. You already know something similar and you just want to know how things are some place else.
  3. Very few even act as a quick reference guide.

They do manage to give you a false impression that now you know it all :)

Perpetualcoder
Yes, it's great for familiarizing yourself with a new language.
tovare
Huh, isn't it a bad if it gives you false impression that you know it all?
Cheery
That last sentence sounds a bit tongue-in-cheek to me. But yes, learning many new things in a short time could give you this impression - it's vital to remember that for every thing you've learned so far, there's at least a thousand others you haven't even seen yet.
Piskvor
A: 

I read a .NET book like that. I found it to be quite useless.

However, I do think applied programming can be learned very quickly with the right tutor. For example, if you are teaching someone how to query a database for a report they need to generate or if they are writing a web application for an exact purpose.

It's too difficult to retain data from books like this unless it is directly applied.

K Richard
+2  A: 

It's just a way of organizing their book into 21 or 24 chapters. I've read a few of these and they don't actually recommend that you read one chapter a day inside the book, and some chapters are impossible to read in less than an hour and some can easily be read in half an hour or less.

yjerem
A: 

I think Peter Norvig's essay "Teach Yourself Programming in Ten Years" does a pretty good job of addressing the ridiculousness of such books.

Of course, if all you're looking for is what a for loop looks like in language X, they'd probably do.

Aaron Maenpaa
+44  A: 

No, it's impossible to learn how to program in 24 hours or 21 days.

See "Teach Yourself Programming in Ten Years," an article by Peter Norvig (Director of Research at Google, Inc.).

If you already have good fundamental skills at programming, and you just need a tutorial-style book to guide you through learning a new API, then these kinds of books may be helpful.

Even then, the level of expertise will be shallow. It will take many months (at least) to become really proficient. But the quick-introduction books are useful to give you a taste of the range of functionality in a language or API.

Bill Karwin
I don't believe that these books intend to really teach you the topic but rather get you started, for which they are good.
Unkwntech
It takes me about a month to be comfortable with a new languages syntax, then 6 months to a year to really get a grasp of it. Things didn't really click for javascripts prototype inheritence scheme for a good 2-3 years.
David
I'm marking this one as a favorite just because it's such a funny question!!! ha ha!
leeand00
I know I'm an idiot here, but I think one can learn how to program, in 21 days. But learning and mastering is a totally different thing.
Hao Wooi Lim
+3  A: 

I learned python in less than 2 days and Java in less than a week!
And that even without any books!

That being said, it was after approx 9 years of experience in C++ and C#. In both languages I reached only a very shallow level, such that any code review by someone more familiar with these would rise some obvious mistakes.

shoosh
When I hit the language ref, and start coding it's easy to try to force Python/Java to become C++.
tovare
You can go from C# to Java in 10 minutes.
Callum Rogers
+1  A: 

I've programmed for 8 years now and I still don't consider myself an expert.

That said, the books are actually quite useful for getting some of the base concepts down. Those who believe they can actually get a good job just after reading one book will quickly be disabused of that notion.

Andrei Krotkov
A: 

10+ years and I haven't learnt yet ;-) If I want the base concepts then I will read the nutshell.

stjohnroe
+1  A: 

It depends; define "learned." Do you have programming "learned" when you can write a hello world program? When you know X percent of the syntax? When you can write some sort of application?

Obviously the title is just BS.

PhoenixRedeemer
+1  A: 

HTML in a weekend worked for me way back... I first learned VB4 out of a learn it in 21 days. But i was 10 years old and it took about a year. It taught the mechanics, but it was the playing around on the side where i actually learned some good practices. It was also in a few programming classes I learned some more essential tools. I don't think the books by themselves do it, but i think they are a great way to introduce the topic.

ccook
+2  A: 

The "Teach Yourself Perl in 21 Days" book that was available in the mid-1990s was fantastic. It got me up to speed very quickly, and was the text I recommended to other beginning Perl developers for a long time.

I don't know if the current ones are any good -- but the 1995 edition was great.

Arcane
A: 

I think the marketing folks vetoed "Learn to Program in 21 Chapters" as a more appropriate title; just as the Dummies and Complete Idiot books are not really meant for thoses with dimished faculties.

I any case I will use these types of books for a quick introduction to the subject and I have benifited by some of them.

TGnat
I was in a book store one day and noticed that someone had added an "is" to all the "Windows Vista for Dummies" book, with a sharpie, making them all ready "Windows Vista is for Dummies", which has got to be the best title from the "for Dummies" series.
Unkwntech
A: 

When I started with SQL I baught a "Learn SQL in 10 Minutes" book from Sams Publishing and it helped me learn the basics, which I then built on, I still have the book and use it as a desk reference when I don't immediate access to the net, and I have purchased copies of the same book for other languages, including some I already knew becuase I think they make good references, I never have, nor will I ever attempt to LEARN something other then the (SUPER) basics from them.

Unkwntech
+1  A: 

Lmao, I've been learning to program for the last decade and will continue to learn as long as I'm employed as a programmer. :)

Seriously though I actually prefer those sort of books rather than a monolithic 800 page forest killer because they tend to give you enough info to quickly get started which is great when that technology is new to you. I've found when I've bought the enormous techical books in the past when beginning learning it's just resulted in putting me off the subject.

Ben Daniel
+1  A: 

Absolutely, I love these books.

I'm fluent in several programming languages, but occasionally a project comes along where I need to use a language I haven't used before. I feel I can pick up a 24-hours, or 21-days book, thumb through the first 6 chapters at full speed, then put the book in my lap and start coding the language immediately.

I've done this with at least ASP, PHP, Perl, Python, ASP.NET and VBScript. (My background is as a C, C++, C# developer)

Note the important pre-reqs. I'm already a pretty good programmer in multiple languages, and that level of proficiency has developed over roughly 20 years. These books certainly don't make me an expert, but they definitely help jump-start the learning process and help me teach myself some basics very quickly.

Even after I've come up to speed, the 21-days books are still really good references. Because they're written for beginners, you can find answers to most questions very easily.

In the right context, these books are great.

abelenky
A: 

I learnt php from scratch in 2 weeks. I believe 21 days books are very basic and one would still need a more comprehensive reference going further

+1 for the needing to go further -1 for using PHP as an example...
Unkwntech
+4  A: 

Actually whistle I did benefit from one. I went through college to get a B.A. in Comp. science. You aren't going to be a master of language x after reading one of these books, but then again even if you RTFM on the language you still won't be a master (you really have to program in the language a lot to master it). I think 24 hours is pushing it a bit (although the book must be pretty condensed in order to merit a 24 hour title). But 7/14/21 days is not that unreasonable. Basically for the most part, to pick up a new language you need to learn the syntax of doing basic programming tasks in that new language. The concepts (iteration, conditionals, variables, etc) are the same, it is just a matter of learning how to do it in the new language. 7/14/21 days are plenty of time to pick many of these concepts up, at least at a basic level assuming you put enough time for it. I don't think Learn X in 21 days involves spending just 10 minutes each day. But an hour a day may be enough.

I doubt you'll go from not knowing what the DOS prompt is to programming at an intermediate level in 24 hours. But going from C# to Java in 24 hours (at least the basic syntax) is not impossible. You won't be a Java master. But you could probably write a web service in Java to read from your ODBC database. And basically with more practice you will get better.

I had a job interview for a company once that wanted MS Visual C++. I told them I did not know it, although they suggested I read about it. I found the text for some Learn Visual C++ in xx days (I forget) and as the economy sucked at the time and job offers weren't exactly abundant I thumbed through the book and did some of the exercises in 2 or 3 days (the book included some good MFC examples). When the interview came they gave me a Visual C++ test and were rather surprised I did as good as I did. I got about a C on it. Considering I admitted that I did not know Visual C++ (and the test was not multiple choice) I did pretty good (especially considering I was not taking looking at VC++ seriously either). Now I don't remember anything from that book (because I didn't use the language that much), but at the time it did stuff a fair amount of concepts in my head. It gave me the ability to read VC++ code and to at least follow what it was doing. It also a good base to go researching more to actually write programs. I would recommend the book just as any other (if I could remember which book it is).

As has been mentioned, as the shorter the time period the more concise the book. At the same time they seem to be geared more towards intro types, so they are an easier read (than say Bjarne on C++). They also tend to focus more on the most common uses for things rather than giving you every possible syntax up front.

In 24 hours you probably are not going to learn anything, particularly how to program if you have never seen how to do it before. But the books often have the most important concepts of technology x in them. Ignoring the 24 hour, 7 days, 21 days, etc. and focusing on content, a lot of them pack you with the fundamentals and get you going with some problems which is a valuable approach. I mean if you read all of Bjarne on C++, you probably aren't going to retain that much. Many of the Learn X in 24 hours books are full of practical examples to get you moving.

Cervo
+3  A: 

No, and it's number 5 on my list of How to choose computer books:

  1. choose an O'Reilly book, where possible
  2. avoid books more than 2 cm thick
  3. avoid books with lots of padding
  4. choose a book that focuses on a single topic
  5. avoid books written by idiots for idiots.
Peter Hilton
The funny thing is that O'Reilly books are usually the best ones for actually learning something in 24 hours: good editing, so the text flows well and can be read quickly; and thorough verification, so you're less likely to run into a situation that doesn't work as the book described.
d__
That's because thier written for programmers. So you don't have to read 100 page of crap to even get to data types. I also like Manning books.
John MacIntyre
"2. avoid books more than 2 cm thick" WTF, almost all books in my programming library are thicker than that! The most important thing when choosing a programmer book, is reading a few pages in it. You'll get a feel for the writing style and technical merit.
bart
I have found Apress to be generally good too.
Barry-Jon
Apress, surely?
Callum Rogers
I'm not sure I see enough of a pattern to agree with #2. I have about as many good computer books bigger than that as smaller, e.g., PAIP is over 4cm and the Stevens networking books are close to 5cm.
Ken
+1  A: 

I learned C++ with "Teach yourself C++ in 24 hours". Although, I grant you, it was closer to two years. Prior to that, all I had done was QBASIC 1. So, well, I have a certain soft spot for those type of books.

Paul Nathan
+17  A: 

For my first job, I learned VB 3.0 in 3 days.

I got a call on Friday afternoon for an interview on Tuesday morning. I never even saw VB before. I learned C in school, and was making the leap to C++ on my own time. So I ran out, got a copy of VB from a friend, and one of those 900 page programmer bibles.

I came home, installed the software, and started reading. I read most of the book by Monday morning, and started trying to write a demo app as a sample project.

It took a lot of drive (that I wish I still had), and I was by no means an expert, but I was able to be productive in one weekend.

Anyway, I got the job and was quickly working in VB 3.0!

... single worst thing I ever did to my career! ;-)

John MacIntyre
"single worst thing I ever did to my career!"Can I ask why?
Epitaph
Pat-I feel that there are different levels of programming; Excel Macros != VB business apps != anit-virus software != database engines != etc... I branded myself, and potential C++ employers didn't take me seriously after that. I believe I'd have been better off, holding out for a C++ job.
John MacIntyre
Also, C++ was a paradigm I felt really suited me, with VB, I felt like I was always hitting resistence where I just couldn't do things that felt natural, and I knew could be done in C++. Anyway ... C'est la vie ... live and learn I guess. ;-)
John MacIntyre
Feels like you already knew how to program, but learnd a new flavour in 3 days :).
superwiren
@superwiren-I just finished a 10 month programming course ... so yes .. kind of.
John MacIntyre
A: 

I'm in computer science since 1989, I wrote code and read books about writing code continuously since then, and I'm still not sure if I'm doing things like they should be done...

I'm still learning.

(And this is why a read Stackoverflow !)

:o)

By the way, if you have some time ahead, dont miss these real programming books : Code complete, Code Craft, The Pragmatic Programmer. And read them once in a while -- human memory is too volatile.

Sylvain
A: 

In 1994, I struggled to make sense of some of the "Basic" books I had. This book, taught me C in leaps and bounds in short order. Teach Yourself Game Programming in 21 Days by Andre Lamothe.

It came with a 16bit Microsoft compiler on CDROM and a simple graphics library for DOS. If you look closely at my bookshelf of 100 or so books, this one is the most dog-eared, held together with duct tape.

Patrick Manderson
A: 

I remember reading a section from Eric Raymond's "The Art of Unix Programming" where he states that it took him about 3 days to get up to speed with the technologies (I think, it was python) needed to build "Fetchmail". So, these books might not be useless if you are completely familiar with a similar language and just want to get acquainted with the syntax.

P.S. Eric did have a good 10+ programming years experience with him. So, this reasoning might not be valid for the average Joe ;)

Epitaph
+1  A: 

These books can certainly help you learn the basics of a language in 21 days, but learning how to be a good programmer takes a lot longer.

Bernard Dy
+4  A: 

Teach Yourself HTML in 21 Days seems plausible.

Robert S.
Although the acronym stands for Hypertext Transfer Markup *Language*, HTML is not necessarily a programming language
Ates Goral
There we go again with the data-vs-code distinction :) It can be considered a programming language in this: when interpreted, it Makes Things Happen - in the case of HTML, text shows up on screen, somewhat formatted. Granted, it's not a Turing-complete language, not by a long shot.
Piskvor
@Ates My first programming language was HTML.
Beau Martínez
A: 

I wouldn't hire them.

Allain Lalonde
+1  A: 

Many years ago I got the "Teach Yourself C in 21 Days" book and I stuck to the prescribed schedule. After 21 days I was able to write a decent C program, decent enough for my purposes anyway. It gave me a good foundation and enough confidence to continue learning the language.

+1  A: 
Spoike
+1  A: 

i find these kind of books very useful for two different reasons.

1) they show the syntax of the language pretty clearly and succinctly and also help to make you aware of some of the more useful features of the language.

2) they give you some insight into the programming style (both in terms of coding and documentation) of other professionals.

obviously no book can ever compete with a rigorous degree program and/or years of experience. but thats not the point.

A: 

I will never forget the day I opened a "In 24 hours" book. One of the first pages said,

It is not possible to completely grasp and programming language in 24 hours

No more speed learning for me, thank you very much.

Kyle G
+1  A: 

I like these types of books. I like to play with new languages and these books are a great way to get a quick introduction. Actually sometimes the best parts are the little asides inserted by the author as humor or commentary. Even for languages that I already know pretty well, seeing how it is taught from the author's point of view can lead to additional insight.

unclerojelio
A: 

In my local library the shelves are full from this kind of books. I always feel they are so much out of place there. It's like they wouldn't belong into there. I've read couple of those books.

Like everything, not all of them can be bad. But I think the best computer literature writers ought have abandoned that way to name titles over 10 years ago.

Most or all of these books have some value for a newbie or a child who wants to learn programming. But compared to having a good teacher or a good book that tackles programming it's always going to be similar to drinking from the sewers. If you want to learn program then find a programmer community and buy books/read resources that are appreciated by the programmers themselves.

I haven't seen myself touching that shelf for 10 years with intention to read those books. I usually pick new languages through their own documentation. With old languages like smalltalk and prolog I can't always find such documentation, but I've needed more effort to learn them because of that. In cases like that I've just searched about those languages.

I think programming books themselves are an obsoleted resource, like writing and reading assembler input. They get outdated way too fast and they are slow when it comes to finding out what a certain function does.

Cheery
+2  A: 

Of course, you cannot learn to program in 21 days. However, under certain conditions, you can learn the basics of a language in 21 days, no problem.

However, once you know 2 or 3 programming languages, the 21 days books are a good way to learn the 90% of a new language that you will need most often. I can say this from experience.

Once you know 8 or more languages, especially those of the same general kind, you don't need such a gentle introduction.

Dan Goldstein
A: 

No!

These books are aimed at impatient people who want instant knowledge with no work. Much like instant weigh loss with no exercise.

SeanDowney
A: 

You might be able to learn it... But, are you proficient at it? Did you master it? No. So lets just say you can't do much that way. It's like how it would be a lot more difficult for a foreigner to write a novel in English compared to their native language.

thyrgle
A: 

Of course you can learn how to program in 21 days, you can actually be programming within a few hours of starting. Learning to program well takes a lot longer of course (I'm well on my way after only 21 years) but 21 days is ample time to become aware of many of the concepts, and choose which ones to investigate further.

David Sykes
A: 

http://abstrusegoose.com/249

Raugturi
A: 

What the heck is wrong with you people? The number of days people are saying they learned to program in is ridiculously long. A day is a very long time to study any of these topics.

For instance, I plowed through about a full shelf of my local Barnes and Noble computer section in a single day, and I took my time. I was able to work through most of the problems, email the authors from my laptop, and many were very helpful in their replies. I also kept a sheet of paper and compiled helpful corrections which I uploaded to their sites. I don't understand what you guys are doing with your days to get so little done. Get with it, slow pokes. On the other hand, it must be the case of the tortoise and the hare, because it IS fairly impressive what you all seem to get done in a year. I mean, my calculations show that some of you get 4.1496 more done every year.

Patrick

PS - I should mention I live on the planet Mercury. Things get kinda frantic around midterm because I have less than two days a year to work with. By the way, I should point out my friend Hemmhoraglar gets about 4.1396 more out of a day than I do, but then again he lives on Venus. He makes you guys look like lichen. Even if you consider you have 1.6245 more to your year with which to fruitlessly while away your time.

Patrick French
A: 

With Humble and no intention of hurting anyone, I learnt designing an iphone app in 21 days. Tough there are lot of doubts to be clarified on both Cocoa and Obj-c and am sure that one can learn any programming language in 21 days.

SJ Reddy
+1  A: 

I started "programming" 14 years ago, and I often feel like I am just beginning. (This is especially true while browsing StackOverflow. This is a very humbling place.)

That being said, a couple hours reading Dive Into Python, I was able to slap together working software. I didn't learn "programming" that quickly, but I did learn the basics of Python, and a few trademark tricks it has.

Brad