4 ms·
The top comment is bullshit. I could not get through those three books but I get paid to program. My code is repetitive and shitty but I can produce a working
by araneae 15y ago
The top comment is bullshit.
I could not get through those three books but I get paid to program. My code is repetitive and shitty but I can produce a working web app as long as it doesn't have to support too many users, and it's fine.
My husband never read any books about formal programming and taught himself from those random "learn Java" or "learn python" books. He's a mathematician and programs to write simulations/solve equations, and he gets paid for it too.
If you can't get through those three books maybe you can't hope to be a computer scientist, fine. But you can certainly program, in the same way you don't have to be an English major to read or write.
- mquander 15y agoMost programmers write code that other people have to read, maintain, or extend at some point. If you write repetitive, shitty code, you may be qualified to write some useful programs for yourself, or write a web app that doesn't have to support too many users -- which are valuable skills -- but it is not fine for the majority of programming jobs. Incidentally, given that you can do what you described, I'm also pretty sure you could get through those three books if you tried; they are not rocket surgery.
- araneae 15y agoMy point is that programming is useful in a variety of contexts and you don't have to be that great at it to accomplish something. You're right, I probably wouldn't work out at most programming jobs. I do contract work; the web app I'm writing now I had about 3 weeks to knock out, will be used by 2,000 people, and will only be used for about a month. But I'm still a "programmer," because I program. We're not all writing mongodb or working at Google or whatnot.
- SomeCallMeTim 15y agoThere's programming, and then there's programming. I'm sorry, but what you're talking about sounds like it doesn't qualify as "programming" as much as web design and code plumbing. Note that in large part I'm talking semantics, here, in that my definition (and I suspect Joel's as well) differs from the way you're using the word). I understand that you're likely paid well to do it -- as are plumbers. And it's a respectable job. I'm not trying to knock what you're doing. But by your own admission your own code less than ideal. And Joel is talking about what a good programmer would need to be able to do, and if you want to start someone off on the path to becoming a good programmer, it's not a bad suggestion. If you just want someone who can copy and paste code off of Github and doesn't really understand it, well, then you don't want a "good programmer" -- and frankly anyone worth their paycheck in IT probably already knows how to do that.
- araneae 15y agoEveryone here seems to be a big fan of the "no true Scotsman." If you write code you're a programmer. End of story. "Programming, and then there's programming" and "code plumbing" are, in fact, semantics.
- derefr 15y ago> If you write code you're a programmer. End of story. If you do arithmetic, does that make you a mathematician? Some things are a matter of degree.
- ramchip 15y agoYour analogy doesn't work because "mathematician" is a research position. You should compare mathematicians to computer scientists, not programmers. You could make the same analogy and prove any side of the debate depending on the job you choose: If you do plumbing, does that make you a plumber? If you do painting, does that make you a painter? If you do physics, does that make you a physicist? If you drive vehicles, does that make you a driver? Really, the debate here is that some people consider the word programmer to mean "computer scientist" or "computer expert", while others consider it to mean "person who programs". It's a debate on the meaning of a word and this kind of debate cannot be settled, because the word has multiple meanings. Everyone's right in their own way.
- Maven911 15y agoI couldn't agree with you more araneae, personally I am tired of seeing the statements where it is hinted that you need to have done xyz otherwise you have no business calling yourself a (good) programmer. I know people who haven't touched those books and they may be considered the so-called "bad" java programmers, yet that is not the case...these people know the intricacies of J2EE, have read & understood the many JSRs and have in-depth knowledge of the many java libraries and frameworks..yet they are not traditional computer scientists with CS backgrounds
- Derbasti 15y agoSo true: If you can program, you are a programmer. How you came about this knowledge is insignificant. However, the post was about the fastest way to learn programming and books are a terrific way to do that. Not the only one. Maybe not the best one for you. But for many people, books work great!
- icebraining 15y agoHow you came about this knowledge is insignificant. Yes, but these books teach you more than writing something that compiles. Just read the ToC of SICP: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#%_toc_start http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html#...
- henrikschroder 15y agoSo what? That's not what the original question was about. It was about how to get someone to be able to program in C#, and giving that person some theoretical books on computer science is probably a very bad idea. Some people learn very well just by reading a book, most people don't. It's impossible to answer the original question in a good way without knowing how that person learns best, what he knows beforehand, what he's done so far, and what he wants to use programming for.
- Derbasti 15y agoAre you implying that self-taught programmers can only ever write 'something that compiles'? Because frankly, the best programmers I have met thus far have largely not studied computer sciences.
- grannyg00se 15y agoI don't think you need to get through those three books as your first order of business learning to program. "Give up you're never going to get it" is a ridiculous attitude to have when trying to learn anything. Try something simple. Work your way up to more and more complicated things just like any other learning endeavour. If you want to stick to plumbing type programming then go for it. If you want to branch out into a more formal computer science type understanding, by all means grab some text books and learn some data structures, algorithms, abstractions, oop patterns, etc.
- absconditus 15y agoIt is bullshit because you are borderline incompetent and still get paid?
- darasen 15y agoThis conversation seems to be entirely missing the point of the original article. The programmer to be in question is working at a .Net shop and needs to be able to get up to speed in a timely manner. It addresses a particular person in a specific instance. Really he needs to understand what object oriented is, variables, arrays, loops, conditionals, debugging and the actual .NET syntax. Understanding these thing the person will be able to do their job. That seems to be the most important thing. Certainly you may not consider the person a "real" programmer but, it is up to him to fill out the rest of his knowledge and grow as a programmer. The "top" answer sounds suspiciously like today's XKCD