6 ms·
What pains me about programming books is that due to the market pressure the balance is skewed extremely in the direction of beginner material and there is prec
by lmilcin 6y ago
What pains me about programming books is that due to the market pressure the balance is skewed extremely in the direction of beginner material and there is precious little material for advanced users.
If you look at other branches of knowledge, say electronics, there is couple of books for beginners and then massive selection of highly specialized books for experts.
I get that part of this is due to multitude of languages, paradigms, frameworks, etc. but I suspect that a huge part is due to the fact that programming book writers have huge incentive to make the book palatable to absolute beginners and anything else seems to be a sure way for the project to tank.
- Swizec 6y agoAs someone who writes programming stuff, yes this! I avoid complete beginners and aim for junior to mid. The problem is that this is still a crazy fast growing field. Say we double in number every 5 to 10 years. That means at 5 years experience you are more experienced than half the industry. That’s mindboggling. Newbies also need more help and are more willing to pay for help. Oldbies only pay for help when entering a new area. Like a fortran engineer picking up React or a JS person getting into C++ One problem is that software engineering doesn’t quite value experience yet. Easier to throw 3 newbies at a problem than 1 senior who’s never seen this new tech anyway. The other issue is that engineers are smart and motivated by problem solving. They’d rather figure it out themselves than take all the fun out by just learning it like a normal person and reaping the rewards. Also advanced stuff often gets so in the weeds that only you and 50 of your friends in the whole world even care. Or it’s so specific to your company tht only other people at your company care.
- sitkack 6y agoThat is why there is a small time window for smallish niches, like Elixir, Clojure or Rust. One has to have their eye one fashion, the crowds, the knowledge gap and the perceived utility. I personally wouldn't wanting to be competing with all the other beginner material and sufficiently advanced material would take forever to produce. But if there was a 100 page book on writing an Elixir/Phoenix app and deploying it on K8s across 4 cloud providers, using a CDN and Aerospike, I'd pay 50$ for that.
- Swizec 6y ago> I'd pay 50$ for that. That’s the other problem. The thing you just described is worth 6-figures when sold as a consulting deal. Why do you expect to pay just $50 for the book version?
- sitkack 6y agoExactly, which is why the expert information is teased out in a couple in depth blog posts. https://www.michael-noll.com/projects/ https://www.michael-noll.com/projects/ Does a very good job in this regard. I think if you have a consulting agency where you can train or lead on multiple projects, then a book could be a very good sales vehicle.
- cosmodisk 6y agoI remember reading a comment on why there's a shortage of very advanced books in databases,where the author argued that anyone who know his stuff at that level is more likely to keep it to himself, because there's tons of money to be made+ lots if proprietary stuff nobody wants to be open about.
- dkersten 6y agoAnother thing that bothers me is that most intermediary books on a topic tend to start with a good chunk of beginner stuff. For example, many game programming books will cover a ton of beginner material at the start, same with graphics books or books on a particular programming language. I shudder to think of how much duplicated content that I will never read because I'm no longer a beginner is sitting in my bookshelf. If I buy an intermediary or advanced book, I don't need a recap giving me the absolute basics! Eg if its an intermediate-level programming language book, don't tell me how to do simple conditionals or loops or something that I definitely already know to consider an intermediate-level book...
- reificator 6y agoThis is why I look for gems like Professional Javascript for Web Developers[0][1]. (I can't speak to the latest version, I think I read the 3rd edition from 2012.) It's a book about Javascript that assumes you've written software in other languages before. I believe the book uses Java/C#, Python, and maybe a couple other languages as reference points. It describes language behavior and constructs that may be new to you, and details where the familiar may differ from what you'd expect. For instance, the section on `var` and how function scoping (and hoisting) differ from block scoping was quite detailed, but I don't remember it spending a lot of time on what it meant to declare a variable or why scoping rules matter. If the book had a beginner focus I might have seen the section on declaring variables, skimmed to see the `var` keyword, and skipped the rest. Then I'd have written a bunch of code that would bite me later, because why would you ever assume function scoping when coming from another language? It's unfortunate that it's so difficult to find books with either an intermediate to advanced focus, or a focus on switching languages, as I think both are sorely needed in the current programming ecosystem. [0]: https://www.wiley.com/en-us/Professional+JavaScript+for+Web+Developers%2C+4th+Edition-p-9781119366577 https://www.wiley.com/en-us/Professional+JavaScript+for+Web+... [1]: https://www.amazon.com/Professional-JavaScript-Developers-Matt-Frisbie-ebook/dp/B07YP276S1/ https://www.amazon.com/Professional-JavaScript-Developers-Ma...
- travisjungroth 6y agoFluent Python sounds like the same thing. It assumes experience in another language and having done the official Python tutorial.
- deleted 6y ago[deleted]
- taphangum 6y agoThis is the exact problem that I am working on with my project https://fromtoschool.com https://fromtoschool.com. Where we write books and create courses that teach new programming languages and frameworks to experienced developers, using the languages and frameworks that you already know. The style we use to teach is optimized for speed of learning and teaches this way using the 'constructivist' method. I expand on this learning style, and why it is so effective more in this post: https://fromtoschool.com/why-most-programming-tutorials-are-so-hard-to-understand-and-a-solution-to-this-problem/ https://fromtoschool.com/why-most-programming-tutorials-are-....
- jsweojtj 6y agoYour post in https://fromtoschool.com/why-most-programming-tutorials-are-so-hard-to-understand-and-a-solution-to-this-problem/ https://fromtoschool.com/why-most-programming-tutorials-are-... has links at the bottom to books and courses -- both point to https://fromtoschool.com/courses https://fromtoschool.com/courses which gives me: page not found.
- taphangum 6y agoYep, the first book "From jQuery To VueJS" is still in the works. I'll be updating the pages to reflect the coming soon status of the book tomorrow! But if interested you can leave your email address on the form at the bottom of the post.
- alexashka 6y agoWhat advanced material are you looking for? A lot of research papers can be found online for free. What problem are you trying to solve that you feel would be helped by advanced material not found in research papers and/or computer science textbooks? For me, the problems I've encountered that I thought were problems of lack of advanced learning material, have turned out to be problems of absence of tooling, libraries, frameworks and the will to create them. In my particular case - I became an iOS developer and found out we're still paying people 100k+ to manually create trivial phone apps that fetch trivial database queries via json and display them in rather trivial ways on screens. You wouldn't believe the number of people working on any given banking app that lets you display your past transactions and transfer money in-between accounts - it's basically a folder/file viewer with pre-defined file types and a couple of pre-defined actions for each. We've had folders, files and transactions to ensure correctness for decades! People are still re-creating these features! Why do we have separate banking apps that do the exact same thing and why does displaying text fetched from a database and letting you modify it in the most trivial way, a job that pays 100k+ while producing bug ridden code? There is no book to solve this problem and I believe most of the people employed in software development are churning out or maintaining this type of code. As a result, the market for advanced techniques in computer science is incredibly tiny - if you removed the idiotic whiteboard waterboarding techniques, academia and R&D at big corporations, you'd find out that there is maybe a few thousand people world-wide who are genuinely interested in putting advanced computer science to use. I'd say this hypothesis explains why we don't have any actual progress in the field, just more javascript frameworks (simplifying, of course ) :) It doesn't explain very well what those billions of dollars in R&D at big corps are accomplishing besides removing ports from laptops and coming up with new keyboard mechanisms that fail when dust falls on them (lol) - maybe we're one day away from a quantum computer that changes everything? I have my doubts :)
- ghaff 6y agoI suspect that, in many cases, books are most useful for people starting out because they don't know what they don't know and don't know what they really should know. Once you're more experienced, you probably care about deep dives in specific areas that may not even be of much general interest and may be very recent. And those are probably less amenable to books.