9 ms·
The Imposter's Handbook
- isp 10y agoVia patio11's tweet: "Pretty brilliant idea: 'Imposter Handbook', for teaching self-taught devs what they missed by not doing a CS degree." - https://twitter.com/patio11/status/767204505578409984 https://twitter.com/patio11/status/767204505578409984 (with replies)
- Cozumel 10y agoCan anyone personally recommend it? It looks like a good investment!
- internals 10y agoI just picked it up. Looking great at the moment. There are diagrams and illustrations throughout, and the ToC is a solid list of things I have had to figure out on the way & things I know of but don't yet understand. This'll be worth the $30 to me.
- sealjam 10y agoYeah, interested to hear opinions.
- MehdiHK 10y agoBought it. Pretty basic stuffs: - Didn't learn anything new from Linux chapter. - Data Structures and Algorithms chapter is too basic. There is not even any implementation provided. I thought it didn't offer anything more than you could find on Wikipedia if you add some illustration done with Paper by 53 app. I'd recommend "Grokking Algorithms" by Aditya Bhargava for this topic if you want illustrated explanations with brilliant examples. - Didn't learn anything new from Databases chapter. - Didn't learn anything new from Programming Languages chapter. Inclusion of useless things like TIOBE Index made me furious, honestly. - Didn't learn anything new from Software Design chapter. I won't recommend this book to anyone working in software engineering for more or less 5 years with or without CS degree. This book merely serves as an index of what you'll encounter in the field, nothing more than that. Not even any good elaborations on those topics. Pretty meh.
- dante9999 10y agosounds like you should ask for your money back, remember OP stands by everything he creates and if you dont like it he promises money back no questions asked
- MehdiHK 10y agoI did. The author kept his promise and refunded instantly.
- Unbeliever69 10y agoWow, then you were definitely not the target audience!
- buckbova 10y agoIf videos are your thing this set of data structures videos is pretty good. https://www.youtube.com/playlist?list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P https://www.youtube.com/playlist?list=PL2_aWCzGMAwI3W_JlcBbt... Good database references here, guaranteed to learn something new. https://github.com/rxin/db-readings https://github.com/rxin/db-readings
- asciimo 10y agoThanks for mentioning Grokking Algorithms. Looks great, and might be the first non-digital tech book I will have bought in years.
- MehdiHK 10y agoIt deserves to be in the bookshelves. :)
- BlackjackCF 10y agoI think it's worth picking up, but I'm also a developer without a traditional CS degree. The author also will give you your money back if you go through the book and think you haven't learned anything.
- RawData 10y agoWhat programming language is generally used throughout the book?
- internals 10y agoC# & Javascript/Node. You can find the sample code from projects in the book here: https://github.com/imposters-handbook/sample-code/ https://github.com/imposters-handbook/sample-code/
- ManlyBread 10y agoFor C# I recently found this course, looks pretty good: http://www.brpreiss.com/books/opus6/html/page10.html http://www.brpreiss.com/books/opus6/html/page10.html
- _pmf_ 10y agoFrom Cargo Culter to Yak Shaver in 2 weeks or your money back!
- jcbeard 10y agoAnybody else vaguely reminded of The Fountainhead's cover: http://www.steinerag.com/flw/Book%20Images/Fountainhead1994.jpg http://www.steinerag.com/flw/Book%20Images/Fountainhead1994.... For some reason the combination of "imposter" and the colors evoked memories of an old paperback.
- lamacase 10y agoThe cover actually appears to be one of the jpl "visions of the future" posters. http://www.jpl.nasa.gov/visions-of-the-future/images/superearth-small.jpg http://www.jpl.nasa.gov/visions-of-the-future/images/superea... I hope the author has permission to use it?
- mrrsm 10y agoThey do as far as I can tell by reading the license of the images. http://www.jpl.nasa.gov/imagepolicy/ http://www.jpl.nasa.gov/imagepolicy/
- xenophonf 10y agoIIRC government-produced stuff is all in the public domain.
- squeaky-clean 10y agoNASA are extremely liberal with how you're allowed to use these images. There are other people selling prints of them, for example. "Unless otherwise noted, images and video on JPL public web sites (public sites ending with a jpl.nasa.gov address) may be used for any purpose without prior permission, subject to the special cases noted below." The "special cases" mostly deal with using the NASA or JPL logos, or using photos with real humans in them commercially. http://www.jpl.nasa.gov/imagepolicy/ http://www.jpl.nasa.gov/imagepolicy/
- yashinm92 10y agoJust bought the book. He has a few paragraphs on the cover image and states "Many thanks to NASA/JPL for allowing reuse."
- LeonM 10y agoAnyone knows if there will be a hardcopy available? I live a paper free live, except for books, I just hate reading from a screen...
- gagagababa 10y agoFrom the "Questions" section: Will there be a print version? That's my goal, yes. I want to be sure all the edits are made and, technically-speaking, the book is completed. If I do end up with a paper edition, I'll send out a note to the mailing list in late September, early October. edit: Formatting.
- LeonM 10y agoThanks, I missed that because apparently the site only loaded half on my browser, it's probably being hugged to death right now...
- awkward_yeti 10y agoWhere is the ToC ?
- internals 10y agoI didn't find it online either, but did just pick up the book. This is ToC of pre-release #2 (~500 pages): http://i.imgur.com/ssYr5ki.png http://i.imgur.com/ssYr5ki.png
- eksemplar 10y agoI have a degree in CS and I've never found myself in a situation where anyone would discuss bouble sort vs merge sort. Neither have I been in a situation where big-o was relevant beyond the basic concept of not doing obviously stupid shit. What you've really missed is things like best practices, design patterns and concepts like SOLID, but a lot of people with CS degrees missed some of those as well. If the book covers this, excellent, but why wouldn't it sell itself on valid points?
- teekert 10y agoI have no degree in CS and I see these terms (Big O, np vs p, etc) regularly, mostly here on HN. No idea what they mean, this books sounds great to me.
- haylem 10y ago> mostly here on HN Which may or may not be an accurate depiction (as we read personal accounts and thoughts of the commenters) of a quite marginal subset of real-life IT-professionals. I wouldn't worry too much about what's being said or not said on HN. There are great ideas and topics to be covered here for sure, but they're sprinkled on top of a giant cake made with 1-part self-loathing, 2-parts day-dreaming, and 1-part regular huff-and-puffing. It makes for good entertainment and procrastination. > No idea what they mean, this books sounds great to me That being said, not knowing Big-O while doing CS or IT work seems worrying. Sure, it's not absolutely necessary for most of the grunt work. But you should definitely have the same understanding of performance issues without knowing the fancy notation and terminology. Big-O is just a notation and a formalization of these concepts, and it helps with communication. I'd say it's still better to know it. So, indeed the book probably doesn't hurt.
- teekert 10y agoI'm just a biologist that switched to Python because Excel and Origin weren't dealing very well with my ever increasing pile of data (Typical data: Every row is cell in a Tissue sample, every column is a quantified parameter (size, marker intensity, ...) of that cell, typically I deal with 10s to 100s of tissues samples) Pandas is great, I spend my time turning DataFrames into histograms, scatter plots and ROC curves in Jupyter Notebooks. I have the feeling knowing Big-O is not very relevant. Still, learning new languages, new words and new abstractions is almost guaranteed to influence ones way of working and thinking at some level. So, indeed indeed the book probably doesn't hurt ;) Edit: Just glanced over the link in Practicality's comment about big-O and sure enough I think it may actually be useful as my ever increasing pile of data increases even further! I have to admit; as the parameters increase I find myself doing over night calculations more and more.
- anoother 10y agoProofreading error near the 'buy' button. > I've learned more in this last year since I started programming over 25 years ago. Should be '... this last year than since ...' Personally, I think '... the past year than since ...' reads better also. Do I get a free copy of the book for pointing that out? ;)
- mkchandler 10y agoThere is a repo for posting feedback (such as proofreading errors) here: https://github.com/imposters-handbook/feedback/issues https://github.com/imposters-handbook/feedback/issues
- anexprogrammer 10y agoThe main thing people miss out on not having a degree is not getting past silly HR "must have degree" filtration. Never once found a CS degree a worthwhile indicator of ability. It may be a superb book, but not even giving a sample chapter out to judge writing style, quality of explanations, depth and so on?
- 6DM 10y agoEven funnier, coming across companies that don't accept anyone who doesn't have a degree from xyz university.
- sotojuan 10y agoThat's the case for some elite finance institutions, but does it happen with programming?
- chris11 10y agoI once got a rejection from an internship application late one night a few hours after I applied. I wouldn't be really surprised if I had been automatically rejected. And my rejection might have been because the state university I went to was not specifically mentioned in the drop down list of schools, it was in the "other" category. I think I might have not gotten a rejection so quickly if I had been going to a target school like MIT or Stanford.
- sotojuan 10y agoSure, that's fair. Do you think you would've gotten at least a phone interview had you had a lot of experience and a good resume (aside from the non-target school)? I have friends who have such experience in finance and firms won't even look at them because of the university name in their resume.
- chris11 10y agoI don't know what their criteria was. I guess they could have skimmed it for a few seconds. I actually just had a classmate tell me that they just had an interview for an internship at that company. But I can say I do have a good resume. I have a little bit of full time experience (before I decided to go to school full time for cs) and an internship at a company they recruit from. So it's technically not an immediate disqualifier. But I did get a rejection quickly enough that I think it might have been automatic, and my school is still listed as "other - please specify" on their internship application.
- deleted 10y ago[deleted]
- drak3 10y agoThe excerpt on the Boolean Satisfiability Problem reads > The basic concept that people have figured out, so far, is that a number of NP-complete problems can likely be solved if we crack the Boolean Satisfiability problem. And > If NP-Complete problems get resolved, it is likely (though nobody knows for sure) that we'll crack every NP-Problem Isn't the definition of a NP-Complete problem exactly that it is in NP _and_ every other problem in NP can be reduced to it in polynomial time. So we know _for sure_ ([Cook71]), that as soon we have a polynomial algorithm for SAT _every_ problem in NP can be solved in polynomial time, and not just some of them as the excerpt claims. Am I missing something? Because this seems like a very confusing, if not downright wrong, way to explain NP-completeness and its link to SAT. [Cook71] Cook, S.A. (1971). "The complexity of theorem proving procedures". Proceedings, Third Annual ACM Symposium on the Theory of Computing, ACM, New York. pp. 151–158.
- chrisseaton 10y agoIn my opinion there are also serious errors with the description of currying. https://github.com/imposters-handbook/feedback/issues/50 https://github.com/imposters-handbook/feedback/issues/50
- lorenzhs 10y agoThe lambda calculus excerpt on the site has some issues as well. It says: > Lambda Calculus is reduced from left to right, which is very important No, you can do feasible reductions in any order. The problem is that you need to define β-conversion and normal forms (β normal from is obtained by repeatedly applying β-conversion to the leftmost redex). Also, the example reduction is just wrong. You cannot transform (λx. x x) (λx. x x) into x x (λx. x x) - that's just not how β-reduction works. Applying a β-reduction to that term yields the same term, because you substitute the second expression for x in the first, thus obtaining the input all over.
- marcosdumay 10y agoYou aren't missing anything. It's wrong.
- 10y ago
- fitzwatermellow 10y agoAs an alternative, I would recommend something like Michael Kerrisk's The Linux Programming Interface in lieu of a survey of foundational CS. Gaining a deep understanding of memory, files, processes, threads, signals, sockets, etc. As well as strong Emacs-Fu and bash scripting ability. These are the first steps on the path to mastery ;)
- riskable 10y agoWhat's interesting is that what you're talking about is computing fundamentals. Stuff that kids should be learning about in high school before they go to college. At the very least they should teach kids what happens when they type a character in a text editor and then save that as a file. Kids should know that the key switch state change gets detected by the keyboard hardware, sent as a signal over the wire, detected/handled by the OS/kernel/driver, sent to the program as an actual keystroke which decides to "display" it to the user by updating the interface, etc etc. Discussions surrounding what happens when two programs try to write to the same file. How to detect when a file changes. Stuff like that. These things just don't seem to come up in high school education and I can't help but wonder why. It'd go a long way to giving people explanations as to what's wrong with their computer when it's running slow or a basic means of interpreting error messages/conditions.
- squeaky-clean 10y agoI'm always pretty skeptical of anything that offers "Learn X Quick!". Is there any reason I should trust the author of this as a good source? They even state they only started learning this stuff a year ago. I wouldn't take a course or buy a book from anyone claiming only 1 year's study in any subject, why should CS be any different? edit: It's also hard to find the author's name to find out who they are. It's not in text anywhere on the page, only in the image of the book cover.
- PUSH_AX 10y agohttp://rob.conery.io/about/ http://rob.conery.io/about/
- randomnumber314 10y ago>I've learned more in this last year since I started programming over 25 years ago From the OP link. The author spent a year "filling holes" in his knowledge.
- ruraljuror 10y agoAgreed, it is hard to find the author's name. I noticed that it was by Rob Conery in one of the blurbs and that turned my skepticism to interest as I am familiar with Rob as a frequent guest and collaborator with Scott Hanselman. As a self-taught programmer (English/Classics major), I am (or was) the target audience for this book, but with deliberation have returned to school (ultimately pursuing a master's in Computer Engineering).
- mgrennan 10y agoI think I'll buy a copy for all the BRO-Grammers in my office.
- am8 10y agoIdiotic arrogance
- gd2 10y agoFirst I've heard of this book, but catchy title.
- roadman 10y agoCS for Dummies?
- Jayakumark 10y agoHe also wrote another book http://www.redfour.io/ http://www.redfour.io/ take off with elixir. Anyone have read that ?
- cheeseprocedure 10y agoI went through the video version. I found it worthwhile overall, but grew frustrated later in the tutorial as the code displayed in the video (and in the associated GitHub repo) drifted substantially from what it had actually been guiding me to build.
- Jayakumark 10y agoThanks, will wait for final release, by then i guess the code should sync up with video.
- apeace 10y agoI have a funny anecdote about CS. I am a CS dropout who has been working in startups for a few years. About once a year, I see another programmer making a common mistake, and I draw on my CS knowledge to help them out. The mistake is parsing HTML with regular expressions. It is so tempting to write a good ole' regex to grab that attribute value off of that element. And it works on the 5-6 samples you write your unit tests with. If you have run into this before, you may know that zalgo[0] tends to appear in this situation. Parsing HTML with a regex will always fail eventually. Of course the reason is that HTML is not a regular language. It is a context-free grammar, and thus requires a parser to parse it. The funny part is, I failed CS Theory once, and was in the middle of taking it again when I decided to drop out. But this tidbit of knowledge has always stuck with me, and I've used it again and again to fix or prevent bugs in real software. Takeaway: CS knowledge does have real-world value to everyday programming. You just have to know what you're looking for. And of course, always use an HTML parser to parse HTML. (I'll add one more note to anticipate a common response. If you look at any HTML parser, you will see regular expressions in the code. These regex are used for chunking the HTML, and from that point the chunks are parsed.) [0] https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags https://stackoverflow.com/questions/1732348/regex-match-open... EDIT: Formatting
- legulere 10y agoI think the HTML/XML/JSON is not a regular language story is a bad one, because subsets of them are indeed regular. Most of the time the data you're trying to parse doesn't contain arbitrarily deep nesting and could actually be parsed with a regex. Further regexes of languages like perl can parse a superset of regular languages. The real problem with regexes is that they are hard to maintain and are extremely hard to get right to neither have false positives nor false negatives.
- apeace 10y agoThat is a fair point. If you're sure you have a regular subset of HTML, a regex is a great way to extract data from it. In my experience (again about once a year), I have always seen this done with HTML that is coming in from the wild. After all, if your HTML is coming from a source you control, you most often have a means to provide the data in a format other than HTML.
- fastball 10y agoFor anyone that thought their background image looked familiar. http://www.jpl.nasa.gov/visions-of-the-future/ http://www.jpl.nasa.gov/visions-of-the-future/
- cookiecaper 10y agoThis thread is long and this will probably get buried, but I'll leave it here anyway. I'm really excited about this kind of thing and have sometimes thought of writing one myself, primarily as a means for me to hammer out all the theoretical areas that are still foggy for me as an autodidact. If this can make it easy to pass impractical textbook-style interview questions and give a good, reliable foundation of CS knowledge that won't go away ten seconds after closing the Wikipedia page, I'd love to buy it (and I still may write my own some day just for good measure :P). I think autodidact programmers is a rapidly-growing and under-served market (though, unfortunately, I don't think it'll be allowed to go on much longer; I expect professional licensing organizations similar to the ABA to show up on the horizon soon).
- pjc50 10y agoI like the approach of hammering out knowledge through writing it down. I taught myself to fill in a lot of knowledge gaps by answering questions on electronics.stackexchange.
- brians 10y agoThe example text about the y combinator looks mistaken to me. It says Y can "find" a fixpoint, and sketches an example of a fixpoint in a numerical function. It implies Y is doing something like convergence. But that's not what Y is at all. It's called the fix point combinator, yes, but with the assumption you're going to use it in some curried lazy evaluation scheme with higher order functions. All this on ycombinator.com, too!
- bogomipz 10y agoI am curious, do people actually pay $30 for an ebook without even being able to see a(propsed) table of contents of a sample of the writing? This is unusua. With both Amazon and LeanPub you can at least gauge the writer's style or get a feel for writing quality by looking at a sample chapter and a table of contents. I'm skeptical that all of those people praising the book bought the book site unseen.
- ljk 10y agoapparently this is the ToC for "pre-release #2" http://i.imgur.com/ssYr5ki.png http://i.imgur.com/ssYr5ki.png seems like pretty simple stuff; couldn't all the information be found with one internet search away?
- bogomipz 10y agoCouldn't the table of contents be available on the official site for the book? I should instead resort to doing a separate Google search for the TOC?
- jasonjei 10y agoI think one of things that "millennial" self-taught programmers have trouble understanding is OS. While the need to implement OS functionality is now a niche (like process scheduling), I have noticed that "millennial" self-taught programmers have gaps in knowledge with respect to threading, mutex/semaphore, consumer-producer pattern, synchronization vs. lock-free (blocking vs. non-blocking), concurrency and parallelism. I still feel these are essential topics to understand since these issues often come up in most programming languages (JS, Ruby, Go, etc). When deciding between Nginx or Apache, for example, knowing the difference in philosophy is useful (asynchronous vs. thread-based). One of things that CS trained me very hard was to think about cost; when I programmed before my CS education, the old adage of everything looking like a hammer was particularly true for me. Also, many of the self-taught guys need to use fewer libraries/gems and more stdlib and primitives because every additional include is not always necessary and may unnecessarily increase complexity :) Pipelining is another concept that I feel self-taught programmers have weaker foundations--many of whom I have worked with write code that waits for all results to become available, while an operation that's blocked by I/O doesn't necessarily mean we can't do stuff with the CPU while we're waiting for the next batch of I/O to come through. I have also seen self-taught programmers accidentally write O(n!) or O(2* * n) functions and not realize it. I think data structures is definitely a good chapter to have. Especially when writing queries to a data store. I think explaining how a hash table works would be excellent since it is such a useful and fast data structure. A lot of set-taught programmers sort of treat them like magical black boxes when it's not a very complex data structure yet it's practically O(1) for most insertion/reads/deletions. Memory management is fortunately something we don't really need to worry as much about. With languages and interpreters that do a very good job of cleaning up after our code and now that memory is relatively cheap, we can afford to ignore it until we need to scale. Of course, if you have a good product, you can get away with inefficiency and hire CS guys when you have built a unicorn. ;)
- nspriego 10y agoJust curious, why the "millennial" descriptor? Is having trouble understanding the OS something unique to only "millennial" self-taught programmers?
- haddr 10y agoYep, people are really forgetting that most of the time it's just being clever rather than having (or using) in-depth knowledge is what allows to bring some good solution to the table. An example from today: we have a very slow pattern matching code, that starts to be a bottleneck for the application. What can you consider? Well you can dive into sexy bloom filters, experiment with some Trie-based structures. But then when you analyse the problem it results that simple word lookup with a simple hashtable is the fastest solution for given constraints. No big deal, no rocket science. Probably the same goes for rocket scientists, but one level higher ;)
- pc86 10y agoSeven or eight levels, I would imagine.
- scaleout1 10y agowhen I was college I thought all the data structure and algorithm courses were complete waste of time. Primarily because I was working as an intern on the side, making crud applications, slinging xml, writing DAOs etc. For first five years of my career I never had to touch any of the stuff I learned in school and I was particuarly happy that I mostly mailed it in in those classes. Eventually my career evovled into dealing with data at massive scale and working on some of biggest services on the planet and the way I have taught myself to program completely changed. No longer it was possible to just sling code and hope that it will just scale to million of users. All the stuff that I slept around in class was relevant again and I had to go back to coursera and take those classes all over again. So moral of story, if you will be slinging webapps rest of your life you probably dont need to know Big O, different search algo, linear algebra and statistics etc but if you think you will be working on stuff thats coming around like automanous cars, IoT, augmented reality etc, you should definitely read up on it
- tomc1985 10y agoThis looks interesting but I got turned off by the site design -- there are too many self-help "gurus" out there who make promo materials that look just like this. Quotes on a book that isn't out yet, while plausible, is really kind of weird.
- outworlder 10y agoIs there a book like this for Calculus? My CS is fine, but I had horrible Calculus teachers and was unable to cross the chasm myself.
- camel_Snake 10y agoHonestly the best resource is probably Khan Academy.