Show HN: The best technology podcast episodes - <AUTHOR> https://podnami.com <comment><USER2> Recently noted down my favorite podcasts I love. It's a bit hard to keep up at times even with 2x/2.5x speeds and smart speed on with Overcast. There's so much good content out there.

[https://wiki.nikitavoloboev.xyz/podcasts](https://wiki.nikitavoloboev.xyz/podcasts)

<comment><AUTHOR> That's a great list of favorite episodes you have there!

We'll add the Joe Rogan Experience interview with John Carmack to our list as well - one of the all time classics!

</comment></comment><comment><USER3> Understand others may have differing opinions but I for one never understood podcasts. They seem a very inefficient way to consume information, with generally a very low signal to noise ratio. I can see an attraction while driving, but I don't do that so don't have that problem. The only one I can remember listening to and enjoying in the past was related to roguelike development, and was essentially more of a well choreographed and researched interview framed as a discussion.

<comment><USER4> The reason they're so famous is because it is in the form of a conversation (generally). I like to take in information if it is in the form of a dialogue rather than simple one sided text / monologue.

Podcasts aren't meant for you to get upto speed on some high end technical concept. It's a lay person's perspective in most cases. So I'm fine if Joe Rogan interviews a scientist since unlike a lecture from susskind, I don't need to pay full attention and take notes. Similarly with finance podcasts, where I'm a professional, I don't need to find one which discusses a full economics paper. I prefer one where highly technical people get together and have a high level conversation since I know the basics and I can follow their train of thought.

<comment> jamie-vesoft Well explained!

</comment></comment></comment><comment><USER5> Please show podcast date; I appreciate you need to bootstrap signups by having Sam Altman on your front page but the product is not just useless but actively wastes my time when I can't tell if this is new content. (The Sam Altman interview is from Nov 2018 and this info is concealed by podnami)

<comment><USER6> Why this obsession with "newness"? If the podcast is crap because nothing they are talking about is new enough, then maybe you're better of not listening to it. If it's good content and discussions, they'll be timeless.

<comment><USER7> Because there is a strong chance that if "Sam Altman Interview" is interesting to me, I'd like to know if it's an old Interview I've already heard or a new one I've not yet heard...

And refusing to timestamp things calling them "timeless" reaks of arrogance and hubris.

</comment></comment></comment><comment><USER8> For the german speaking audience, i can recommend the interview mit Marco Börris. It's quite long (>6h) but absolutely worth the time. [https://www.zeit.de/gesellschaft/2019-03/marco-boerries- alle...](https://www.zeit.de/gesellschaft/2019-03/marco-boerries-alles-gesagt- interviewpodcast)

</comment><comment><USER9> Love the concept.

All of the descriptions are cut short and end with...

As a user, that leads me to believe I can click on a cut description to see the full description. At least on mobile Safari, clicking on a description does nothing.

<comment><AUTHOR> Thanks!

That's the result of our somewhat shaky truncation feature which is supposed to stop overly long titles and descriptions to break the layout. We'll look into how a "click to expand" feature could work!

<comment><USER10> Overuse of truncation sucks. Screw the layout: users can easily scroll down and up. Truncating without a click to expand option is inexcusable. Meanwhile, how about just don't use truncation at all. There's a limit for number of characters in a podcast description. It's in the 2000's I think.

</comment></comment></comment><comment><USER11> Hello there, congrats on launch

You should really add context by date of release and a link to listen not : Ex for exponent episode : [https://www.listennotes.com/podcasts/exponent/episode-152-pl...](https://www.listennotes.com/podcasts/exponent/episode-152-platforms- versus-YVcSLvOwA_o/)

<comment><AUTHOR> Thank you!

We will add a detailed view, alongside a RSS feed for the top list tomorrow.

</comment></comment><comment><USER12> I highly recommend On the Metal, it's Jess Frazelle, Bryan Cantrill and Steve Tuck, with great interviews. This episode in particular was amazing:

[https://oxide.computer/blog/on-the-metal-6-kenneth- finnegan/](https://oxide.computer/blog/on-the-metal-6-kenneth-finnegan/)

</comment><comment><USER13> Mmm... Is there an RSS feed so I can add this to my podcast player? :)

<comment><USER14> +1! First thing I looked for.

<comment><USER15> +1

</comment></comment></comment><comment><USER16> Looks great, but please make sure your site has at least basic functionality with JavaScript disabled (right now it loads just an empty page).

This is really important for your users who use screen readers (for the blind), folks with older computers or miniature/underpowered computers.

<comment><USER17> Also for folks on metered/slow (eg, 2g) connections, and privacy conscious users who don't wish to enable JS for basic functionality.

</comment></comment><comment><USER18> This is great! Only thing I'd ask is that if you're going to allow direct playing on the site, to enable 1.5-2x speed.

<comment><AUTHOR> Thank you!

We'll add it in the native player coming soon. Web based audio players have major drawbacks, such as limitations in background playback on mobile devices. That's why we've intentionally left the web player as simple as possible until the native player is launched.

</comment></comment><comment><USER19> Cool idea. Some points of frustration: * there's no way to get to the "home" of the podcast (so that I can explore episodes not listed on the site) * there's no indication of how long the podcast is * there's no way to interact with the media playback (skip forward, etc.)

</comment><comment><USER20> I love podcasts and I'm glad for any service that helps me find useful content. That said, I'm not quite getting how I'm supposed to be using this. From a consumer viewpoint, I have a front page recommending episodes and a weekly summary. I get that, cool.

Now if I want to heart episodes to tell other listeners about episodes I particularly enjoy...I go to the website and search/submit the episode...I guess?

Anyway, I'm interested - I just wanted to share my first impression in case it was useful.

</comment><comment><USER21> Since there is relatively little information on the linked page, I'll put some questions I have here.

1\. How does it work? It would appear the list is user curated. New submissions are from users (via submit) and ranking is based on hearts? Is there any future plan to be able to associate # of plays with a given episode (not sure if podcast app apis allow this).

2\. In relation to #1 (an asked already by others), how can I subscribe to this in my podcast app?

</comment><comment><USER22> Why do so many podcast apps or services cut off titles with ellipses. So annoying. Please stop!

<comment><USER23> Maybe trading usability with athletics just goes a bit over board

<comment><USER24> Aesthetics"*"

</comment></comment></comment><comment><USER25> I love podcasts but lately I feel I've got too many to listen to. I unsubscribe only to find I missed an episode. That FOMO coupled with an almost obsessive need to reach podcast "inbox zero" is becoming a problem.

This looks like the kinda platform that could curb that with focus on individual episodes rather than the Podcast itself.

<comment><USER26> Yep, podcasting inbox zero has become quite hard since I started working remotely. No commute is less time for listening to podcasts.

<comment><USER27> Take up running or biking. :)

One of the biggest life hacks I fell into was to reserve my favorite podcasts or most anticipated episodes for a long run or biking session. I would look forward to that run all day. Often I'll double my distance just to put on another episode.

Much more fulfilling than a commute as well.

</comment></comment></comment><comment><AUTHOR> Podnami improves the discovery of great technology podcast episodes. There's an abundance of podcasts out there - but it's hard to figure out which conversations are worth tuning in to.

The best episodes get voted to the top and is your "daily digest" of technology to listen to.

Happy to answer questions about its tech stack or future plans!

<comment><USER28> Great job! So what's the tech stack :)

</comment></comment><comment><USER29> Top past week and Top last month have the exact same content, guess it's because the content in the site is new?

</comment><comment><USER30> Love this, but on the phone the podcast art takes up a lot of real estate and leaves little room for the podcast title.

I'd rather see an even more stripped down UI that leaves more room for the informational content.

Then again, I guess not all podcast episodes have informative and encompassing titles, like articles often do.

</comment><comment><USER31> I'd really like a link back to the source episode, or at least be able to read the full description

</comment><comment><USER32> The only problem with this incredibly basic web page is that it isn't listing the best podcasts and is recommending listening to an anti-democratic extremist. No indication where this list came from either.

<comment><USER33> Who is the anti-democratic extremist?

<comment><USER32> "I no longer believe that freedom and democracy are compatible…" Peter Thiel.

</comment></comment></comment><comment><USER34> I'm new-ish to Go and find "Go Time"[1] nice for building context while I continue learning.

1 - [https://changelog.com/gotime](https://changelog.com/gotime)

</comment><comment><USER35> Good job! You can use our API to search episodes [https://www.listennotes.com/api/](https://www.listennotes.com/api/)

<comment><AUTHOR> We are using it for our search feature!

You're providing a great service and we'll be rolling over to a Pro plan soon!

</comment></comment><comment><USER36> How can we download an episode? (I want to put it on my mp3 player)

</comment><comment><USER37> Awesome content, just noticed this on the main page, maybe add:

{!userSubscribed && showBigFullPageForm}

Also, how do you view details or scrub playback position?

</comment><comment><USER38> My initial feedback is to increase the truncation threshold for the Episode title. I couldn't read half of them on my phone.

</comment><comment><USER39> This is like pop music. The guests are all the people I'm supposed to admire but I don't feel anything.

</comment><comment><USER40> Unclear how it is best, according to who/what? Nearly all good podcasts I know aren't there at all.

</comment><comment><USER41> leetcode by day, joe rogan podcast by night. all day!!

</comment><comment><USER42> How is this "HN for tech podcasts"? Are there comments somewhere that I can't see? I would love it if there were a way to annotate/comment on specific statements in podcasts, because I think podcasters (and their guests) get away with saying untrue things more than people who write blog posts/articles.

It's super easy to tweet out a quote and evidence that it was false. There is much more friction involved in quoting a podcast, noting the time stamp, and packaging that up with evidence in a tweet. Wish there were an easier way!

<comment> yoz-y I wouldn't go directly for the untrue things but it would be nice to have a place to specifically discuss podcasts with a nice interface to point out to excerpts (with transcripts it would be even more cool.)

One option now is to use the clip sharing tool in Overcast and tweet out the clip, it works really well. But that is just one client.</comment></comment>


Visualizing discussions on Reddit with a D3 network and Embedly - <AUTHOR> http://blog.embed.ly/post/57097477000/visualizing-discussions-on-reddit-with-a-d3-network-and

<comment><USER2> Author here, all the code is available on Github if you want to play around with the visualization or have ideas to improve it: [https://github.com/whichlight/reddit-network- vis](https://github.com/whichlight/reddit-network-vis).

Also, you can see a sort of meta discussion here on the /r/dataisbeautiful subreddit: [http://www.reddit.com/r/dataisbeautiful/comments/1jqz3f/redd...](http://www.reddit.com/r/dataisbeautiful/comments/1jqz3f/reddit_conversations_visualized/) It's kind of hilarious because people leave threads of comments to create new branches.

What I find most interesting is that you can quickly get an idea of how much conversation is in one of these discussions by the number of nodes that are colored (signifying users who have posted more than once).

<comment><USER3> This is very cool!

A very nice feature to have would be to run topic modeling (say, your run-of- the-mill LDA) on the comments, and then colormap the nodes as to preserve the distances in the comment topic vector. This way you'd be able to see threadjacking, etc.

<comment><USER2> Wow, that's a great idea for next steps. This is the direction I'd love to take this work- getting into the comments and running an analysis. The comments range in size and some can have subtle humor- I wonder how that would affect the LDA.

<comment><USER4> Please let us know if there is a new version. This is very interesting to me.

</comment></comment></comment></comment><comment><USER5> The Reddit visualization I'd most like to see is one of votes/comments over time on highly partisan (not necessarily political) topics. When I was using Reddit I perceived distinct "tides" in those cases.

Comments would swing up and down by double and triple digits as early burying/back-patting is overcome by more moderate opinions as the post rises in exposure. Likewise, having a post linked on other large forums would result in new waves of like-minded moderation.

<comment><USER2> Are there any posts in particular you're thinking of? This would be a very compelling visualization. Haven't seen posts like this myself, but I imagine if I hang around /r/politics I'll see one.

<comment><USER5> _> "Are there any posts in particular you're thinking of?"_

No, I haven't frequented Reddit for a few years now. I expect /r/politics would have been a goldmine for this last fall. I felt it was most apparent on topics that can be construed to involve race.

<comment><USER6> I would love to see a before/after of /r/politics during the NSA scandal. Within a span of a day they went from unconditional love of Obama to hate.

</comment></comment></comment></comment><comment><USER7> Good stuff! I wonder if you could somehow classify the conversation trees using depth or branching factor or whatever to predict and/or discover hot topics. Like you said, AMAs tend to have a pretty obvious structure but maybe that could be extended to discover "controversial" threads -- or even people!

<comment><USER2> That's an awesome idea. A buddy was telling me to create a bot for it too, like if a conversation derails enough and focuses on one of the comments, it would post an image of the network having been derailed. On discovering hot topics- that makes sense- I bet there is a characteristic "engaging" type of network, regardless what exactly the content is.

</comment></comment><comment><USER8> It would be pretty interesting to see this applied to HN. I realize it would be more difficult because there isn't an API and pg is pretty harsh with the rate limiting.

<comment><AUTHOR> Yes! I second this motion!

<comment><USER2> Haha, ok, I guess it's gotta happen then!

</comment></comment></comment><comment><USER9> <a href="window.location.href = \"[http://whichlight.github.io/reddit-network- vis/?discussion=\\...](http://whichlight.github.io/reddit-network- vis/?discussion=\\") \+ window.location.href">bookmarklet for comments pages<\a>

</comment><comment><USER10> I found it extremely beautiful, especially with the context you provided. Some large framed prints with the text in little gallery placards would make an interesting exhibit.</comment>


Teach Yourself Computer Science - <AUTHOR> https://teachyourselfcs.com <comment><USER2> One thing I'm always amazed by when casually talking to people about what I do is how they don't think they can do it. Many people think that software engineering and programming are some inscrutable thing. Sometimes I try to tell them that it is nothing special, it doesn't take a mega genius or math expert to do it. That the most important skill is just being able to solve real problems, soft skills and breaking problems into parts. As well as the ability to self learn and research. I get the idea that most people don't believe that though. Or they think its a humblebrag. Rant done, it's just frustrating that people limit themselves like that.

<comment><USER3> > the most important skill is just being able to solve real problems, soft > skills and breaking problems into parts. As well as the ability to self > learn and research.

Seeing a very non-technical friend of mine being completely immersed in games like "Factorio" and "Satisfactory" where the entire game is essentially just putting constantly more complex and valuable resources together in automated ways is fascinating to me. He will talk about efficiency ratios until someone stops him, and when he's not playing he's reading wiki articles to better understand the problems he's presented with. The sheer look of glee and pride when he gives a tour of all the automation around his base is infectious, and although he doesn't share my amazement at my conclusion, I can't help but think that he's already doing what most engineers I work with do every day, and he doesn't even realize it.

Sometimes I feel like there's so much untapped potential out there, people that would have loved to get their hands dirty with micro-controllers, soldering, programming and all the other stuff that could help them solve real world problems, but they were just never given the chance. They never had the mentorship or the right context to develop those skills. Instead, most programming is done under soul-crushing enterprise conditions, and a lot of teaching about programming is (understandably) only about whatever will benefit you in the workplace. When you're an adult, there's no time for play, so most programmers I know would rather do anything _but_ write code and solve problems when they come home from work.

I'm not sure what my point is here, but it is interesting how people look at programming and software engineering as something so inconceivably complex. The way I see it, it's basically just digital plumbing and carpentry, as long as you know how to use the toolbox: and most people will never even try it.

<comment><USER4> >> The sheer look of glee and pride when he gives a tour of all the automation around his base is infectious, and although he doesn't share my amazement at my conclusion, I can't help but think that he's already doing what most engineers I work with do every day, and he doesn't even realize it.

One reason why I can't really get into Factorio. It's too much like work.

The funny thing is I do code at home, for fun, in my free time- or I used to when I had a clear line demarcating my "free time" from work time (I do AI research and I mostly work from home, so most of the time I'm working on something that I really have to work on). But Factorio is just ... too much _like_ work.

... dah, I can't explain it :)

<comment><USER5> I understand what you mean. While I'm a Factorio fan I felt this way about the graphical-programming zachlike SpaceChem. Too much like work.

I approached Factorio like MineCraft but with the boring stuff automated.

To have fun in a game like Factorio, just mess around - you don't need to make a perfect factory, or compete with your friend.

</comment></comment></comment></comment><comment><USER6> Whenever i have someone ask me where to get started on CS - i give them a few options tiered to try and ensure some stickiness/higher utility for them specifically.

~Some Existing Touch Point With CS

Teachyourselfcs.com is definitely in the conversation - in general I recommend it to friends who have a pre-existing "gateway" to the field (software engineer or otherwise). The page talks about progressing from "type 2" to "type 1" software engineer - a deeper understanding affording a richer career/experience.

~Relatively Fresh - but have strong intent

For people who are more "virgin" and fresh but are willing to put in the work - I recommend OSSU ("open source curriculum") - and i've found for whatever reason that structure has let them gradient in with more success. ([https://github.com/ossu/computer-science](https://github.com/ossu/computer- science))

~Intrigued/Engaged - but intent is still nascent

For people who have a fleeting interest but don't necessarily have the time or intensity about their interest i usually recommend a starter python course - 90% of these people will fall off the path unless there is a more permeable access-point to the space that offers a positive feedback loop. The university of Michigan has some engaging options.

<comment><USER7> I remember telling people to read "The Python Tutorial" on python.org , if they wanted to write Python. It takes a few hours for an experienced programer, and a couple of days for a beginner. People had difficulty starting.

<comment><USER8> A beginner might have trouble assimilating this information - too few examples, not enough entry level drilling on data types, operators, flow control and functions. For example they might forget to put quotes around a string or not know how to use two for loops, one inside the other, even if they know how to use one in isolation. It's hard to grok how to compose things even if the student saw how to use them in isolation. And for the teacher, it's hard to keep the lessons easy enough at that entry level.

<comment><USER9> When I started programming (with Python) I remember how the modulo operator was introduced, without any further information. I found it quite confusing, since I didn't know what modulo meant (that could be solved with googling) but more important, how it was useful. When you come from a CS perspective, it's completly clear on how you can use it and why it is essential for some computing tasks, but for a non-CS beginner that can be much more obscure.

<comment><USER7> Interesting perspective! And it seems connecting the dots is part of the role of an educator!

</comment></comment></comment></comment></comment><comment><USER10> Has anyone here learned a subject by going through one of these "teach yourself" lists? I've learned most of what I know about computers on my own, but it wasn't from following a list of textbooks. And when I've tried to follow a course like this for other subjects, despite my initial interest, I've found myself unable to make it through more than a couple chapters of the first textbook before running out of steam.

But somebody must be getting some value out of these things, right? Am I just bad at studying? Or not as interested in the subjects I'm trying to learn about as I think I am?

<comment><USER11> I graduated with a degree in BioSciences a few years ago, and elected to not do grad school like my peers. I saw no point of losing thousands of dollars to do a master's in Bioinformatics/Data just to get a jr level job. That summer after graduation from undergrad I attempted to learn CS and go through OSS Computer Science program and TeachYourSelfCS to break into the industry. The problem was a lot of it wasn't job relevant and it felt very rigid, and sometimes even more complex than it needed to be. These University level courses aren't really necessary. I like to view coding as a trade and skill, something that can be learned and applied right away rather than a mechanism for research, feel free to disagree with me. In any case, I just wanted to code and build software (sorry CS purists...). I slowly found myself less interested in CS theory and more in software engineering. Feeling disenchanted with CS, I decided to spend a few months learning web and software development fundamentals through online courses on Udemy and Frontend Masters. After that I did a certificate in fullstack development at my alma matter (cost me a couple thousand dollars, much cheaper than grad school). I will say I was pretty lucky that as soon as I finished the full stack program, I was hired by a small software shop.

<comment><USER12> I think that CS vs SWE thing happens with a lot of people, and I got caught there, too. Luckily, I ended up really liking CS and it introduced me to the field, whereas otherwise I would've gone for SWE. There really needs to be a 'teachYourselfSWE' for people who are into that.

<comment><USER13> How can you tell which one is right for you? So many computer scientist graduates I know ended up pursuing software engineering that I've mistakingly conflated the two.

<comment><USER14> it's really theory (CS) vs building things (SWE). As you want to build larger projects, or build them better, you rely on CS ideas to do that. So SWE is really engineering assisted by applied CS. I've been studying CS for about two years and am only now learning any real application development. You can study CS without ever touching a computer or building an application (though doing both those things will give you context for why CS topics matter).

It's kinda like if you want to build a rocket to get to space, you can tinker with propellant, metal, and fire, and be a hobbyist that eventually you build a rocket to go to space. Or you can be a physicist and calculate everything on paper. To get to space you really need both those people, but the physicist can learn to build and the engineer can learn theory.

<comment><USER13> > but the physicist can learn to build and the engineer can learn theory.

So is this why frameworks exist? To abstract away the theory that proves something more "performant" or "sufficient", and allow the builder to do their thing?

<comment><USER15> More or less yes. The idea is that a framework (ideally) does some feature A the "right" way and programmers using the framework gain the benefits of convenience and safety, often at the cost of flexibility. Frameworks will usually try and balance the power or depth of the domain its abstracting with ease of use.

A good framework will stop beginners from making critical mistakes, decrease the amount of code its users have to write, and offer professionals well- constructed ways around its handholding as needed.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> Main updates as of May 2020:

Computer Architecture: added _Computer Systems: A Programmer 's Perspective_ as first recommendation over nand2tetris.

Compilers: _Crafting Interpreters_ added as first recommendation over dragon book.

Distributed Systems: added _Designing Data-Intensive Applications_ as first recommendation over _Distributed Systems_.

Online availability of some video lectures has changed as well.

<comment><USER17> My school actually use the same book for Computer Systems (similar to CMU's 15-213) but less intensive. I wonder what parts the 400-level course use for Computer Architecture.

<comment><USER18> Harvard also uses the CS:APP for their first systems course, CS61.

</comment></comment></comment><comment><USER19> Are you thinking or debating if getting a deeper understanding of CS will help you or your career?

I am thinking of the same. Even though I have a Bachelor of Science (BSc) in Computer Science, it has been 14 years that I actually used any of it. I regret it sometimes since I know what it is to know how things work underneath the high level languages (PHP, JavaScript and Python for me).

Lately I have started taking more interest in CS and I think part of the reason is Rust. You could be learning Go, Swift or any similar language and come to similar feelings.

In Python (my language of choice for the last 7 years along with JavaScript) I do not really have to care about pointers, stack or heap allocation, how memory gets create or cleaned, etc. I also do not need to know if there is a virtual machine, a garbage collector, etc. Data types and how they are handled are somewhat important but I rarely get slapped by the Python interpreter for mistakes.

To me it seems that a lot of developers are choosing to go into more typed and lower level (closer to metal) languages. My gut feeling says this is happening because we can not crank up core speed from 2GHz to 3Ghz to 4Ghz and beyond as easily as we did pre-2Ghz era. Yes we hit ceilings of per-core power. But we have more users than ever before and the world seems to be eager to bring computing to even larger audiences.

All this is great, but it means developers need more refined and powerful set of tools that can work in low-power environments, boot up fast and deliver more computing throughput. The high levels of abstractions that most of us have enjoyed will stay but there will be new territories where you want to push code that is way, way more efficient. If we want to work with them, we need to know not only how to push a Template into an `<H1 />` but about the metal that is underneath. From how browsers work internally to how networks work, how processes work or communicate, how memory is allocated and so forth.

So this is a choice we have to make individually. I choose to learn and I am going with Rust and spending time to learn CS again. It is a slow process though, I have full time commitment to my product as a solo founder. Cheers!

<comment><USER19> I want to add something to this, something that I am understanding now perhaps because I have slowed down as a person. Learning is HARD, really really hard. More so when there are tons of social, professional and personal distractions.

On top of this I am chased by procrastination. I have gotten a much better grip at this. But just as an example - I have tried learning Rust at least 4 times before since Rust got highlight on HN I guess. I failed each each one. This time, I have at least gotten to the point where I opened the documentation on Vectors! My goodness, who am I? Complete lack of patience.

This directly causes me to sense pressure when I see statements like "type 1/2" engineer. It is not the material that is attacking me. It is my own failure hiding under the shelter of ego.

<comment><USER20> I think this is an extremely common experience. At least it maps really well to what I've gone through. Small surges of "motivation" wherein I embark on projects and then they taper off, constant battles with procrastination, etc.

However, at least in my experience, it's possible to develop tools and systems to stay disciplined enough to finish what I committed to. Not every tool works for every type of project so it's a constant battle. The good news, though, is that you can fail at this as many times as you'd like (I certainly have) but you only have to succeed once!

</comment></comment></comment><comment><USER21> I like Algorithms by Robert Sedgewick. It's a great book. He also has free online courses based on the books that are of excellent quality:

\- [https://www.coursera.org/learn/algorithms- part1](https://www.coursera.org/learn/algorithms-part1)

\- [https://www.coursera.org/learn/algorithms- part2](https://www.coursera.org/learn/algorithms-part2)

There's a website for the book as well, that has code that is well organized and commented.

Unfortunately excellent books like "Programming Pearls" have code examples that use weird naming conventions that just make me just want to punch the wall.

For competitive programming and interviews, Antti Laaksonen's books are fantastic: [https://www.cses.fi/book/index.php](https://www.cses.fi/book/index.php)

<comment><USER22> I've heard that Part 1 of the algorithms course is sufficient for new grad interviews. Can you verify?

<comment><USER21> I got an interview that involved part 2 (substring search), which I solved using KMP.

<comment><USER23> It sounds like you got hazed.

I still don't understand why these software interviews do this. Especially when the work in question, is derivative, and mostly just reformulating other ideas and libraries.

It's like, how often are you going to have to reinvent your own Red Black Binary Search Tree to solve some obscure business problem? Most of the time, the business doesn't give a damn. Just throw your data into a database, and be done with it. Then use some queries to filter through your data, and get the data you need to solve the problem at hand.

And usually, by looking at someone's code style, you know how good they really are. You can determine, if (1) they are at a hackerish level and their code has bugs and occasionally breaks, or (2) if their code is really solid software engineering level quality that's airtight and can survive anything you throw at it.

<comment><USER21> I prefer these interviews rather than take-home projects, which usually take longer and can be cheated.

A company once sent me a really long take home exercise that took like 3 full days to implement to completion. I said: no thanks, and in the same 3 days I had multiple interviews and even got an offer.

</comment></comment></comment></comment></comment><comment><USER24> That list is...not bad, as far as it goes.

I would suggest _Essentials of Programming Languages_ by Daniel P. Friedman and Mitchell Wand instead of (or even better, in addition to) _Crafting Interpreters_. The former is about _languages_ , the latter _compilers (or rather interpreters)_. They are complementary.

A couple of things I would add:

 __Logic __Rather than saying it is "applied math", I prefer to view programming as "applied formal logic". Everything from fancy type systems to Fowler's refactoring to Dijkstra's "weakest precondition" semantics for normal human being programming languages are simple applications of formal logic. _Logic for Computer Science_ by Steve Reeves and Mike Clarke seems a good choice.

 __Automata theory __Ok, if you 're going this far, you might as well go all the way and learn what all that "finite state machine", "universal Turing machine", and "incomputablity" crapola is about. _Introduction to the Theory of Computation_ by Michael Sipser is pretty good.

 __Old-school Artifical Intelligence __Games. Plus, what can I say but, it 'll come back again. _Artificial Intelligence: A Modern Approach_ by Russell and Norvig. (Oh, there it is down towards the bottom.)

Sorry, I don't have video suggestions. And yeah, some of those aren't free. But they're not horribly expensive either. Maybe there are alternatives.

" _Still too much? If the idea of self-studying 9 topics over multiple years feels overwhelming..._ "

I'd have some snarky comment here, but I'm bitter.

</comment><comment><USER25> I am planning on returning to university for a CS PhD after discovering that studying this curriculum is consistently the highlight of my day. Studying CS is the most interesting thing I do on a regular basis. I owe my thanks to the authors.

<comment><USER12> I'm self-taught too, and strictly interested in research-focused CS masters or PhD programs (as opposed to industry-focused cash-cows). I think I'm mostly interested in studying PL or program synthesis, but I'm also open to other ideas. How did you make that jump from self-taught to qualified for a PhD program?

<comment><USER26> I made this exact jump. The answer, for me, was a four year bachelor's degree.

I was a self-taught software engineer, not a self-taught computer scientist. I was writing production code for fairly normal stuff, not proving theorems or implementing research prototypes of new ideas. So YMMV.

If you can make it through TAPL or PFPL on your own, then you probably know enough to be useful to some random grad student somewhere. Latch onto an implementation effort, get authorship on a popl/splash/pldi paper or two, and that's probably enough to convince some faculty somewhere to take a chance on you.

But most good graduate programs still require a regionally accredited degree. Getting an exception to that rule will likely require a publication record. (Getting into good graduate programs often requires a publication record in any case. I recommend against attending not-good graduate programs.)

<comment><USER12> I'm almost halfway through this: [https://plfa.github.io/](https://plfa.github.io/)

I was auditing a grad class at UT that used this book, then corona hit. Still plan to finish it eventually though

I'm not even really sure where I would get started working on an implementation or working on a paper. Are these projects open source?

</comment></comment></comment></comment><comment><USER27> Ha - super ironic that this would be atop HN today. I've recently decided to dive back into this journey as well. Anyway - I was watching the final lecture of David J. Malans CS50 course yesterday and found this awesome slide he shared. I screengrabbed it and now I share it with all of you.

It's essentially "where to go from here and beyond" (by course)

[https://gyazo.com/919d9deef0d1767f685fab9b4bfc12fc](https://gyazo.com/919d9deef0d1767f685fab9b4bfc12fc)

<comment><USER28> I re-uploaded that image to a host that doesn't require JS to view an image, because requiring JS to view an image is peak JS stupidity.

[https://i.imgur.com/yvA5Eiz.jpg](https://i.imgur.com/yvA5Eiz.jpg)

<comment><USER28> Wow, apparently Imgur is now redirecting their plain image links to pages which _do_ require JS for viewing. Thus, Imgur has now been removed from the list of image hosts that I use (and I suggest others to do so as well)

Instead, here's the actual image, without any the JS: [https://i.postimg.cc/hjzXvrNc/yvA5Eiz.jpg](https://i.postimg.cc/hjzXvrNc/yvA5Eiz.jpg)

</comment></comment></comment><comment><USER29> I like to compare CS to medicine.

Most topics of it aren't difficult to understand, but overall it's just a lot of information. If you want to get a comprehensive CS-education, you have to accept that it takes years of studying, learning and practise.

<comment><USER30> Agree with this. I've got a medical degree as well as self taught developer for 15+ years. The longer you do it, the easier it becomes as the knowledge just kind of seeps through immersion. But I can imagine for a mind that's new to either topic can feel quickly overwhelmed without significant motivation to overcome that learning inertia.

<comment><USER31> Would you say CS is generally easier, with a smaller body of fundamentals, and a front-end JS dev could swap places with a back-end C# dev and the two would get up to speed a lot faster than an orthopedist and cardiologist, with all the specialized information in those two fields? Medicine just comes off like a lot more memorizing of an enormous volume of disparate information compared to programming.

<comment><USER30> I'd say that in CS, there's a lot more transferrable knowledge. In medicine, there's a lot of specialization and niche knowledge. The cardiologist would know very little about orthopaedic specialist, for instance. I was a GP myself, and likely knew more about medicine & surgery in general. Although I had less specific knowledge, I could integrate information better (eg. Project manager, if you will, vs database specialist).

So yes -- in CS, if you work in an area with a lot of general knowledge -- you are likely to get up to speed faster. In medicine, if you're a GP, you can probably undergo additional specialist training much quicker than someone who first pursued a single specialty first.

</comment></comment></comment></comment><comment><USER32> At 200 hours per subject, it would take 2 years to complete if studying part- time (20hr/week) during only the working weeks of the year (92 weeks). If you're uncomfortable working+studying 60-70hrs a week, it would probably take 4 years.

Are there blog posts around where people share their experience of undertaking and completely this endeavour?

<comment><USER24> Heck, I don't know of any blogs with people sharing their experience of an undergrad CS degree.

<comment><USER32> Good point. I've been meaning to write up my experience, because I feel that it was really poor and Australian students need to be more aware of how sub- par our CS education system is.

</comment></comment></comment><comment><USER33> Though it doesn't cover programming directly, I've always loved _Computer Science from the Bottom Up_ \- [https://www.bottomupcs.com/](https://www.bottomupcs.com/)

</comment><comment><USER34> See also:

2018 [https://news.ycombinator.com/item?id=17581589](https://news.ycombinator.com/item?id=17581589)

2017 [https://news.ycombinator.com/item?id=13862284](https://news.ycombinator.com/item?id=13862284)

<comment><USER35> not op, but i think it's good enough to warrant reposts so new people can find it.

<comment><USER36> 'dang is saying "see also", not "this doesn't need reposting." From what I've seen, reposts after a year or so are fine.

<comment><USER37> Also past comments are sometimes better (and other times not) than average. Just depends on who chimes in and their mood and what else is happening in their world at the moment.

</comment></comment></comment></comment><comment><USER38> Does anyone have a github 'awesome' type of page with aggregated teach yourselfs? I would love to have it for other subjects.

</comment><comment><USER39> Having gone through all of these course myself, I'm wondering if this stuff is really relevant to today's workforce? Compiler Design? How to build an Operating System?

I remember in a job writing my own BNF grammer and a a parser for it to optimize something or other and I got back basically "WTF" on the code review.

I would say database fundamentals is a must, so is networking. But honestly the rest is iffy. When was the last time you needed to build a red-black tree?

I think programming should be a larger part of CS. And no, not in Lisp. I also think ML needs to be more of a thing as well.

<comment><USER40> To be fair, this isn't "teach yourself the skills necessary to be successful in a development job," it's "teach yourself computer science."

<comment><USER41> I'm being sincere when I ask: what would you do with a self-taught CS background? I understand many of the larger companies require an understanding of CS principles, but, if not to be a successful developer, how useful is a self-taught CS education? What do you do with it if not software development? In my somewhat limited experience, the more CS-focused folks hold PhDs, and sometimes I feel it's more about the credentials than the education.

<comment><USER24> Keep in mind that "successful software developer" is a fuzzy term. You can be a successful developer if you are gluing APIs together for an internal enterprise web app and making six figures per annum. You can also be an unsuccessful developer in those same circumstances, if your ambitions are different.

The "CS focused people" that you typically hear about usually have Ph.D.s because you usually hear about (and from) people doing fancy new things. There are many other "CS focused people" out there just keeping the lights on, or rather keeping the backbone routers from being swamped under their own routing tables.

</comment></comment></comment></comment><comment><USER9> I really liked "The Computing Universe" by Tony Hey. It's a book which covers most of these topics on a higher level, but I felt it was (very roughly) an abstract of what I learned in the first CS semester. So I find it a very good introduction into the field for interested non-CS people.

</comment><comment><USER42> As a 30 year old software developer who's now considering going back to school for the next 3-4 years to get a degree, I wonder if I should blame these kinds of resources for making me believe that I could learn everything on my own and that a degree was unnecessary. Having learned this material in school would have made my life so much easier...

For context, I recently received a lot of pressure to get a degree, despite years of experience and good knowledge of CS fundamentals.

<comment><USER43> Perhaps Western Governors University could be a good fit. [https://www.wgu.edu/online-it-degrees/computer- science.html](https://www.wgu.edu/online-it-degrees/computer-science.html)

The philosophy of WGU is that you pass self-paced courses by passing tests, so people that already know the material can complete the courses quickly.

<comment><USER44> Are they a respected degree in CS?

<comment><USER17> They are accredited and mostly pursued by already practicing software engineers who want to check the box for a degree.

<comment><USER24> That's not an answer. :-)

<comment><USER45> Accredited is indeed a valid answer [https://www.wgu.edu/missouri/about/accreditation.html](https://www.wgu.edu/missouri/about/accreditation.html)

</comment></comment></comment></comment></comment></comment><comment><USER46> Just going to drop this link here:[https://news.ycombinator.com/item?id=23564832](https://news.ycombinator.com/item?id=23564832)

<comment><USER47> Save you a click: TeachYourselfComputerScience Slack channel

[https://join.slack.com/t/teachyourselfcs/shared_invite/zt-f8...](https://join.slack.com/t/teachyourselfcs/shared_invite/zt-f80pmv4z-bdeyPwQq2DH9I4_Ya9IMnQ)

</comment></comment><comment><USER32> Can anyone with a CS undergrad from an elite US college (Stanford, Berkeley, MIT, Carnegie Mellon) comment on whether they feel their undergrad covered 100-200 hours worth of these subjects?

As someone with an Australian CS degree, I feel like my curriculum covered less than half of this properly.

<comment><USER48> That's definitely strange. I studied at a university in the Netherlands which implemented what I think was a European standard curriculum, and what this article mentions is a subset of the first two years of the undergraduate degree if I remember correctly.

Some elective courses are missing, and AI though it is mentioned. We also used many of the books mentioned here. Also back when I did it there were more seperate math courses that we shared with the maths undergrads. I know that they stopped doing that after I graduated.

<comment><USER32> I feel like a lot of my coursework was overstuffed with learning and re- learning waterfall vs agile, and fluff subjects like 'user-centred design' and 'professional computing practice'.

The latter was basically 'how to make a resumé' and 'how to not be an arsehole in email'.

<comment><USER48> That sounds like I might have been a professional education instead of a scientific education. Nothing wrong with that, you could get a full computer science degree from our university and not be able to code for shit. You definitely can't hire university grads blindly. You often see developers act tough about how knowing how a CPU works is important for being a developer, and it is, but knowing that doesn't make you a good developer. It just makes a good developer better.

</comment></comment></comment></comment><comment><USER49> > If you're a self-taught engineer or bootcamp grad, you owe it to yourself to > learn computer science.

No, you don't.

I know all these topics and I don't recommend anyone working in a corporate environment to learn _any_ of this. It'll likely result in you resenting your job, your peers and the entire software industry.

\---

I gave my heart to know wisdom, and to know madness and folly: I perceived that this also is vexation of spirit. For in much wisdom is much grief: and he that increaseth knowledge increaseth sorrow.

1:16-18; King James Version

<comment><USER50> What does it say about our industry if learning all this makes workers hate what they do ? By this logic we should cut down on advanced education so people stay content in dull jobs.

<comment><USER51> Isn't reduced education a method for keeping people content in most situations?

</comment></comment></comment><comment><USER52> I don't understand why so many programming jobs require a comp sci degree when very rarely do they require anything more than "programming"

<comment><USER53> The CS degree is not for the job, it's for the individual

<comment><USER54> Can you elaborate?

<comment><USER55> See "Why Learn Computer Science" in the OP.

</comment></comment></comment></comment><comment><USER56> Looks like a decent start, great to put these various sources together. Under algorithms, I found discussions of big o time complexity, one of the real killers for the non-cs majors in terms of interviews and career growth. Under algorithms I found it on the Coursera course by "Tim Roughgarden ... available on Coursera and elsewhere".

</comment><comment><USER57> The recommendation of "Crafting Interpreters" is pretty weird. I would argue that more important than the specifics about compilers is a high-level understanding of various ideas in programming language design, and be able to understand the building blocks of different languages and compare the trade- offs of using one language compared with another. Dan Grossman from the University of Washington has an excellent course Programming Languages on Coursera: [https://www.coursera.org/learn/programming- languages/](https://www.coursera.org/learn/programming-languages/), which I think would be far more relevant to modern programmers than studying compilers specifically.

</comment><comment><USER58> This is very good. I would recommend this to anybody considering a career in software.

My only problem is that it's not very pedagogical; I don't think "read and study the foundations for 1000 hours, you twerp" is really the best approach to ease people in.

I would recommend starting small, making a webpage or some simple fun programs that you enjoy working on. MDN is a good resource ([https://developer.mozilla.org/en- US/docs/Learn](https://developer.mozilla.org/en-US/docs/Learn)) for this, but there are probably better guides / tutors out there that can personalize an approach based on where you're at. Glitch is also cool ([https://glitch.com/](https://glitch.com/))

</comment><comment><USER4> There is a distinct lack of Hopcroft and Ullman from this list:

 _Introduction to Automata Theory, Languages, and Computation, 2nd Ed._

[https://www.amazon.co.uk/Introduction-Automata-Theory- Langua...](https://www.amazon.co.uk/Introduction-Automata-Theory-Languages- Computation/dp/0201441241)

Which is basically all the goodness in Structure and Interpretation... and any book on compilers and interpreters. Basically, though I don't reckon that any modern courses teach from Hopcroft & Ullman, it's a major textbook in the field (unfortunately the 2nd ed is easier to find but the 1st has the works).

Another foundational text is Andrew Tennebaum's book on Operating Systems:

 _Operating Systems Design and Implementation_

[https://www.amazon.co.uk/Operating-Systems-Implementation- Pr...](https://www.amazon.co.uk/Operating-Systems-Implementation-Prentice- Software/dp/0131429388)

To be honest I don't how it compares with the book proposed in the article, since I haven't read that book.

Finally, two personal recommendations for anyone interested in AI (as a study of advanced CS concepts and not just as a way to make a quick buck with a shallow understanding of a few machine learning tutorials):

 _Artificial Intelligence: A modern approach_ (Russel & Norvig)

[http://aima.cs.berkeley.edu/](http://aima.cs.berkeley.edu/)

And the free pdf of _AI Algorithms, Data Structures, and Idioms in Prolog, Lisp, and Java_ :

[https://www.cs.fsu.edu/~cap5605/Luger_Supplementary_Text.pdf](https://www.cs.fsu.edu/~cap5605/Luger_Supplementary_Text.pdf)

Which doubles as a good textbook for programming languages in general.

</comment><comment><USER59> Has anyone ever found a guide of similar format and quality for data science? I would love to find a similar collection of resources for learning data science fundamentals (math, statistics, programming, etc.)

<comment><USER60> You can find resources (including learning plans or "syllabus") at LearnAwesome.org . For eg: Machine Learning: [https://learnawesome.org/topics/d6e39f8d-1ba0-4d46-9fbe-771c...](https://learnawesome.org/topics/d6e39f8d-1ba0-4d46-9fbe-771c89700ebf- machine-learning)

</comment></comment><comment><USER61> How I as a mechanic major started in CS:

My lab had a project that nobody tended to, an evangelist at the lab told me all the good things about linux and git so I bought a burner laptop for $250, wiped the disk, installed ubuntu and wrote 3000 lines of the crappiest code you can ever imagine.

But it worked.

So now when someone ask me for advice to start fresh in software engineering, I always tell them you just have to wipe your computer and install $DISTRO. And start from the terminal, everything else will just come naturally (with deadline pushing it might get faster).

</comment><comment><USER62> There is ArsDigita University Curriculum[1] which is an interesting one

[1] [http://www.aduni.org/courses/](http://www.aduni.org/courses/)

</comment><comment><USER63> I'd like to know the reasoning behind replacing the very approachable, concise, hands-on and doable Nand to Tetris course with what looks like an enormous textbook.

<comment><USER64> Are you reading a different article to the one being linked?

</comment></comment><comment><USER65> IMAO this Type 1 and Type 2 comparison is ridiculous. And in this context Type 2 seems to me being more related to continuous and more pragmatic learning. I have done CS and I can't remember using any of it to make money. Do CS because you love the subject and crave for more knowledge about it. Do the Type 2 stuff if you need a job/money.

<comment><USER24> One of my favorite interview questions was "What happens when you type a URL into a browser address bar and hit return?" My answer went into opening a TCP connection and DNS lookups because I'm a networking guy. And I've had the fun opportunity to explain to someone that "no, the application is fine. No one can reach it because NASA has a split-DNS monstrosity that is currently broken. Again." And then there was Friday, when I was helping someone get set up in our development environment; she was able to get to the web interface of Gitlab, but not check out a project. I haven't heard back because she had a meeting, but I'm betting it was because she was on the wrong VPN configuration.

The problem with "type 2" stuff is that building a system is easier than debugging the same system, and "it works on my machine" isn't always an appropriate answer.

(But resigning and getting a (hopefully better paying) job before the excrement hits the rotary impeller is _always_ an appropriate answer, I guess.)

</comment></comment><comment><USER66> I feel like the hardest part of modern software engineering is systems architecture. I've pretty easily picked up everything on this list that I've touched, but I still don't know how to _organize systems_. Is this just me? (if not, then I feel that this site misses the most important part of the discipline)

<comment><USER67> Because that is the the part of software engineering which needs the most experience and general knowledge. There is no way around it. After all you need to know the constraints around a system before even building it and that is only possible if you have seen it before. It can help to study others people work before starting a project in a similar domain.

<comment><USER68> These types of problems, ones which can only know how to solve by solving them, are known as wicked problems. Software design is well known to be a wicked problem.

</comment></comment></comment><comment><USER69> I wonder if anyone here has tried this (or other) self taught CS successfully while not being a "self-taught engineer or bootcamp grad".

What if you are a designer or PM type with several years experience in software industry? Is it productive to skip real experience or actual classes to get into CS/engineering?

<comment><USER16> You could certainly try to start learning to code with SICP and go from there, but for the most part these resources will be much more valuable to those who have some prior background in programming.

<comment><USER70> SICP sounds like a big waste of time when you can follow another guide in a language like Python and make applications along the way.

<comment><USER63> Yeah! Yeah! I'd say your onto something here buddy!

<comment><USER70> Agree/disagree, but after doing SICP myself, following other methods and making projects at the same time (or working on things I was interested in) forced me to learn a lot more than just doing some assignments in a language I would never use again.

</comment></comment></comment></comment></comment><comment><USER71> I would recommend [http://www.bottomupcs.com/](http://www.bottomupcs.com/) if you're looking for a quick crash course. It's a bit out of date but its the shortest book I've found which covers most of the computer science stack.

</comment><comment><USER72> Of course an MS - which they recommend against - would likely cover additional topics (computer graphics, AI/machine learning, formal methods) as well as follow-on material to the introductory courses listed on the page.

</comment><comment><USER73> Is this computer science books? Seems like great computer engineering books but I have only read a few of the suggested ones.

Is there any math or science in those books (aka, could I write a paper from it)?

Anyone that have read them that care to chip in?

<comment><USER24> I think you have a very strange definition of computer science.

There isn't enough math, but there's nothing in the undergrad CS curriculum most places to "write a paper from".

</comment></comment><comment><USER74> Equivalent "X guide for practitioners with deep knowledge" for any of these (X=)fields:

Probability

Statistics

Finance

Deep learning and AI

</comment><comment><USER75> Where would one go if they had money but minimal time to get a formal online education in CS? Syllabus, other students to discuss ideas with, etc?

<comment><USER24> Send me $1000. Where do you want the diploma to say you got your Ph.d.?

<comment><USER75> Good Programmer and Code JS

where do i send it?

</comment></comment></comment><comment><USER22> how much of this curriculum is necessary for a FAANG job?

I'd love to go through all of them, but I'm constrained with work as well, so I'll have to prioritize.

<comment><USER76> The FAANG interview process is pretty standardized, if you're pressed on time I suggest you learn and master just 2 things: data structures and system design.

<comment><USER77> > The FAANG interview process is pretty standardized

Not really. It is standardized at some FAANG companies but not others.

</comment></comment></comment><comment><USER78> OK, great books, I haven't read any of them. Please, can someone share experience reading the recommended books? When did you do it?

<comment><USER79> _Computer Systems: A Programmer 's Perspective_: around 2012 / 2013, I went through this book because I took a coursera course based on it. In fact, many universities base their systems courses around this book. It is really well written, has a great choice of topics, and phenomenal exercises [0] for practice (some are legitimately fun).

 _Operating Systems: Three Easy Pieces_ : In 2013, I found this book because I was frustrated with the textbook assigned for my operating systems class (Silberchatz). OSTEP has incredibly clear and concise descriptions without skimping on necessary details. It's wonderfully written. I was so jazzed up about this book that I ended up sending a lot of edits / improvements, and the authors gave me a very kind shoutout in the acknowledgements section.

 _Computer Networking: A Top-Down Approach_ : In 2013, this was the assigned textbook for my computer networking class. I already owned Tanenbaum & Wetherall which is good, but preferred this book. It is a more approachable treatment of networking (without sacrificing any crucial topics), so better for a first course.

I've heard glowing reviews of _The Algorithm Design Manual_ , _Designing Data- Intensive Applications_ , and _Structure and Interpretation of Computer Programs_ over the years, but I haven't personally gone through them. For the TeachYourselfCS categories that I know the textbook landscape, I find their selections spot-on and pretty refreshing.

[0] [https://csapp.cs.cmu.edu/3e/labs.html](https://csapp.cs.cmu.edu/3e/labs.html)

</comment></comment><comment><USER80> as someone with a degree in CS, they're subject matters out there like logic, philosophy, algebra & writing. that will definitely help you out in CS. because first and foremost you need to be good at abstract thinking, then cs will click. and once abstract concepts click, you'll see the nonsense that the current software engineering industry is.

</comment><comment><USER81> Shouldn't the Math for CS come before the Algo book?

<comment><USER70> In most programs, you take 1-2 programming classes before taking DS/Algs. There really isn't much of a prereq other than 1 year of programming classes.

</comment></comment><comment><USER72> These are all good courses actually!

</comment><comment><USER82> This is nice, simple and essential.

</comment><comment><USER83> This site has been an amazing resource for me. Easily the best 'self-learning' way for me.

</comment><comment><USER84> Without formal language study, how is this computer science?

This is computer engineering. Please fix the title atleast on HN.

</comment><comment><USER85> This is a pretty good website. But I have a huge problem with the premise as stated at the beginning of the website:

"If you're a self-taught engineer or bootcamp grad, you owe it to yourself to learn computer science. Thankfully, you can give yourself a world-class CS education without investing years and a small fortune in a degree program"

.. They then go on to list various categories of information and skills in each high-level topic.

First of all, it implies that someone who is "self-taught" may be basically equivalent to someone who just finished a bootcamp. That is ludicrous. A "self-taught engineer" might have been programming and studying computer science topics for 30+ years, whereas someone who only attended a bootcamp may have only had four months of training or something.

Secondly, it implies that self-taught engineers do not have computer science knowledge or skills. This is also a ridiculous belief.

Now, examining the specific list of topics.

'Programming. Don't be the person who "never quite understood" something like recursion.' \-- This implies that self-taught engineers do not understand recursion. If someone calls himself a "self-taught engineer" or "bootcamp graduate" and does not understand recursion, then he should not call himself an engineer and/or should not have been allowed to pass the bootcamp. Again, this description shows that the creator of the website assumes that "self taught engineers" and "bootcamp graduates" in fact have virtually no useful skills and knowledge. Its asinine and quite insulting.

'Algorithms and Data Structures. If you don't know how to use ubiquitous data structures like stacks, queues, trees, and graphs, you won't be able to solve challenging problems.' The ridiculous implication here is that self-taught engineers don't know what a stack, queue, or tree is.

Another general criticism I have is that the creator of this website seems to think that watching videos and reading books is a good way to learn. Unless the books or videos have exercises (and the book recommendation I saw did not have exercises), that is horrible advice and a huge waste of time. If you are just looking for something like a survey or reference, passively watching the videos or reading the books could be useful. However, there is nothing so special about these books or topics that they cannot be learned about from many different websites.

<comment><USER86> Some people learn great by watching videos. Some people learn great by reading books. I personally learned the best by taking an example ripping it apart and changing it to do something new.

<comment><USER85> American Psychological Association -- "Belief in Learning Styles Myth May Be Detrimental"

[https://www.apa.org/news/press/releases/2019/05/learning- sty...](https://www.apa.org/news/press/releases/2019/05/learning-styles- myth#:~:text=WASHINGTON%20%E2%80%94%20Many%20people%2C%20including%20educators,by%20the%20American%20Psychological%20Association).</comment></comment></comment>


New material could up efficiency of concentrated solar power - <AUTHOR> https://arstechnica.com/science/2018/10/new-material-could-up-efficiency-of-concentrated-solar-power/ <comment><USER2> The author identifies the key appeal of concentrated solar thermal generation vs. photovoltaics, but remains a bit too optimistic about how competitive this race still is:

 _While a big boost in efficiency is great, concentrated solar is far enough behind photovoltaics on price that it 's not going to make a big enough difference in a direct competition. But the real competition here isn't directly with photovoltaics; instead there are two separate competitions. One is against photovoltaics plus batteries, since only that provides the possibility of around-the-clock energy access. Here, the costs are changing fast enough that it's difficult to figure out where things stand._

I would say that it is not particularly difficult to figure out where things stand; absent a surprising catch-up from solar thermal power, photovoltaics- plus-batteries is going to win. For one thing, CSP only works where there is very high direct normal irradiance. Partially cloudy conditions cause its performance to drop much faster than the actual intensity of illumination drops. PV works fine with direct and indirect illumination. For that reason CSP performance declines in wintertime in temperate regions worse than PV does. You can see the effect by looking at performance-by-month for American solar PV and solar thermal here:

[https://www.eia.gov/electricity/monthly/epm_table_grapher.ph...](https://www.eia.gov/electricity/monthly/epm_table_grapher.php?t=epmt_6_07_b)

In June 2017, solar thermal plants had a capacity factor of 37.9% while PV plants reached 35.7%. But in December 2017, thermal plants reached only a 9% capacity factor while PV plants reached 17.4%.

This new material might be one way for thermal to compete better with PV. But to do so it will need to enter commercial use soon. Commercial battery storage projects are ramping up around the world. For stationary battery storage applications, technical breakthroughs for higher energy density aren't necessary; "last year's chemistry, but manufactured bigger and cheaper" is just fine. Further, the whole-project cost of PV + batteries declines when _either_ batteries or PV decline in price.

Even if solar thermal power doesn't pan out, this material might be useful in future energy systems. I have been reading for many years about how Generation IV nuclear reactors could run at high temperatures with supercritical CO2 turbines for compact, more efficient heat-to-electricity production. It's nice to have some of the supporting technology developed ahead of time. Even if such reactors never become competitive for terrestrial use, there is also the rest of the solar system to consider.

<comment><USER3> Total agreement. Although zirconium and tungsten aren't exactly the most expensive metals, they are extremely hard and dense and processing them in this manner would appear to be a big minus against this technology. I can picture a factory warehouse putting out 40' containers of PV's, racking, and backup batteries daily, while a far more massive smelter and mill next door struggles to manufacture the equivalent for CPV.

I'm glad they addressed the thermolysis of CO2, because that was a major concern. Having explored thermolysis as a method for reversing carbon dioxide buildup in Earth's air, I realized quickly that breaking CO2 down into CO is not challenging at all, but getting the CO to go to C is the highest temperature reaction known.

Just because I don't think this breakthrough is going to win doesn't mean I'm not thrilled they made it. Never know what other breakthroughs may leverage this technology.

<comment><USER4> > but getting the CO to go to C is the highest temperature reaction known.

Even higher than H2 + O ? (I'm sure it's not higher than H + H, but that one probably doesn't count.)

And won't atomic carbon react with other carbon? So you don't actually need to supply as much energy as it may appear.

<comment><USER3> From chapter 211 of my book:

None have proposed then taking the CO through a final step and ending up with simple C and O. This is not without good reason: out of all substances known to thermally decompose, none does it at a higher temperature than carbon monoxide. If you thought 2,000° was hard, try 3,870° C. That's hot enough to melt any known metal. That's hot enough to melt any rock! The few substances known to man that can be counted on to stay solid at that temperature can be counted on one hand.

<comment><USER2> I tried searching for that excerpt from your book and couldn't find any matches. Is the book published? I'd be interested in reading it.

If I wanted to turn carbon dioxide back into elemental carbon I'd probably try to get there via the Bosch reaction with electrolytic hydrogen:

[https://en.wikipedia.org/wiki/Bosch_reaction](https://en.wikipedia.org/wiki/Bosch_reaction)

NASA has funded a fair bit of lab scale work on it for recycling breathable atmosphere on space stations. It doesn't require heroic super-materials. You can theoretically store the input CO2 and H2 in large buffers so as to smooth out intermittently available input energy, without needing to firm up the primary energy supply itself.

<comment><USER3> The full book is not yet available anywhere. It's self-published (and I mean that literally; I'm doing the printing and binding myself, to discourage making it another $.99 Kindle throwaway or having a crappy low-res PDF version of it floating on torrents or sci-hub).

List price on it will be in the hundreds of dollars. I'm not trying to sell as many copies as cheaply as possible, which might be hard for some people to understand.

Message me your info and I'll give you a discount on price.

Elemental carbon is probably the wrong goal: keeping a limited pool of CO2 and thermally converting it to CO, then water-shifting the CO into CO2 + H2 is far more practical.

If you want to bury the carbon, it's more practical to bury it as a hydrocarbon, which is easily accomplished with the CO + H2 used through Fischer-Tropsch.

If you want to convert the carbon back into food, there's probably some clever process to convert F-T product oil into sugars and carbohydrates.

<comment><USER2> Yes, I am interested, though I'm not sure what your book is about in general. I just emailed you from an .edu address.

What is the goal you're aiming at? Carbon-neutral synthetic fuels? From the excerpt, I thought you might be considering converting atmospheric CO2 back into relatively low-reactivity, compact, reduced forms of carbon for burial in e.g. old coal mines. (Which would be _astonishingly_ energy intensive, but I wouldn't put it past the capabilities of early-22nd-century civilization if automation continues to advance and we avoid nuclear war, super-pandemics, and other such disasters.)

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> This is a similar material that encases nuclear reactor fuel rods.

One of the things I like about concentrated solar power (CSP) vs photo-voltaic power (PVP) was that the minimum technology levels to support it meant that newish economies without a lot of technological infrastructure yet can still build it and deploy it with locally developed materials and people.

Having a magical metal tube so that you can use super-critical CO2 kinda puts a dent in this :-)

<comment> 08-15 Zirconium and zirconium carbide are very different materials.

<comment><USER5> Yes, but I don't understand what you are trying to say. For example, it reads like "Iron and Steel are very different materials" which is also true, but the majority of the mass in steel content is the element iron.

Depending on when they were made, Nuclear fuel rods can be encased in Zircalloy which is an alloy of zirconium and tin or niobium. The "magic" material that is discussed in the article starts out as sintered zirconium carbide structures which are then mixed with molten tungsten and copper[2]. It isn't an alloy in the traditional sense I suppose.

[1] [https://www.mne.psu.edu/motta/chapters/Book%20Aug%202011/Cha...](https://www.mne.psu.edu/motta/chapters/Book%20Aug%202011/Chapter17_ZrAlloys.pdf)

[2] _The zircon carbide ends up providing the material with a stiffness even at high temperatures, while the tungsten is flexible enough to keep the whole thing from being brittle. And the whole thing conducted heat better than the metals currently in use._

<comment> 08-15 Zirconium and zirconium carbide are about as different as aluminium and clay. One is a metal, the other is a ceramic.

</comment></comment></comment></comment><comment><USER6> This article should not have been written IMHO, though the reasons are not obvious:

"This works more efficiently, potentially providing a boost of more than 20 percent, but ... [implementation would] involves balancing a lot of [currently unsolved] factors"

That is another way of saying "nothing to see here; move along." A 25% gain in efficiency would not be a game changer, and we can't implement it.</comment>


TechCrunch List Of Top Tech Products 2009 - <AUTHOR> http://www.techcrunch.com/2010/01/01/2010-my-fifth-annual-list-of-the-tech-products-i-love-and-use-every-day/ <comment><USER2> No Crunchpad in the list?</comment>


Russian disinformation distorts American and European democracy - <AUTHOR> https://www.economist.com/news/briefing/21737297-mueller-indictment-reveals-some-kremlins-tactics-russian-disinformation-distorts <comment><USER2> And as always with posts on Russian interference, an immediate comment a few minutes later denying and whatabouting any activity. HN is within the sights of the disinformation machine.

<comment><USER3> This comment breaks the site guidelines by making insinuations about astroturfing or shillage. People are orders of magnitude too quick to leap to that conclusion, merely because other users happen to hold opposing views.

It's easy to feel like no one could possibly hold those views in good faith, so if you see something you dislike enough, it must be shills, bots, or spies—but that's not correct. The HN community is large, divided on divisive issues, and has many users on both sides. If we're to survive for civil discourse, community members need to build up enough tolerance to handle it when others disagree, instead of jumping to accusations of manipulation and bad faith.

All: if you're sincerely concerned about abuse, you're always welcome to send links to email@example.com so we can take a look at the data. But please don't shoot from the hip into the threads; you damage the container when you do that.

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

p.s. I've written a great deal about this issue, if anyone wants to read more on how we approach it: [https://hn.algolia.com/?query=by:dang%20astroturfing&sort=by...](https://hn.algolia.com/?query=by:dang%20astroturfing&sort=byDate&dateRange=all&type=comment&storyText=false&prefix=false&page=0)

</comment></comment><comment><USER4> The good news is, we know about the disinformation.

The bad news is, the public is either too stupid or too far in partisan denial to care.

</comment><comment><USER5> Accused of spending 100k, mostly after nov 7th. Compared to h spending 1.2 b. Or the rest of media. Never mind that Asante posted on American bots trying to create consensus.

<comment><USER6> Where are you getting the 100k number from? That wouldn't even cover a small misinformation campaign and they are also accused of executing multiple hacks. 100k wouldn't even cover the total cost of 1 hacker for 1 year. Would that 100k just be advertisement spending?</comment></comment>


Legal information vs. legal advice - <AUTHOR> http://www.ajs.org/prose/pro_greacen.asp

<comment><AUTHOR> Given that there is a heated discussion going on on this thread:

<http://news.ycombinator.com/item?id=287851>

I did some digging to try to find something definitive to help clarify some information for this ad-hoc debate we're having. So that's why I've posted the link. The article focuses mostly with courts, self-representation, and access to courts, but still relevent, since part of the reason we get legal advice is to either avoid or prepare ourselves ( and our companies) for court.

One aspect that seems to get muddied is whether we're talking about _legal information_ or _legal advice_.

Given all the IANAL disclaimers we see, and knowing that you need a license to practice law in most places, I have to support Matt on his stand that "Need legal advice, talk to a lawyer."

If you need legal information, on the other hand, in order to prepare to talk to a lawyer, or to decide if you are ready to get legal advice, is a different matter.</comment>


Rescape: FPS games on mobile should be more, not less - <AUTHOR> https://www.kickstarter.com/projects/1203948132/rescape-fps-games-on-mobile-should-be-more-not-les

<comment><USER2> [https://www.kickstarter.com/projects/1203948132/rescape- fps-...](https://www.kickstarter.com/projects/1203948132/rescape-fps-games-on- mobile-should-be-more-not-les)

</comment><comment><USER2> [http://www.techdigest.tv/2014/03/is_rescape_abou.html](http://www.techdigest.tv/2014/03/is_rescape_abou.html)

</comment><comment><USER3> Awesome! Finally :-) Project Tango has some serious competition now.</comment>


Google 'smart reply' will suggest answers for your emails - <AUTHOR> http://www.bbc.co.uk/newsbeat/article/34714601/google-smart-reply-will-suggest-answers-for-your-emails <comment><USER2> Discussion: [https://news.ycombinator.com/item?id=10500724](https://news.ycombinator.com/item?id=10500724)</comment>


Ask HN: Review my site, nice-entity.com - <AUTHOR>

http://www.nice-entity.com
Longtime reader, first time submitter.
I've just launched Nice Entity. Basically, it's a resource for web designers and developers to quickly and easily look up character references.
Yes, there are already a lot of sites out there that do this, but they either:
A) look awful,
B) are poorly organized,
C) not as complete as I hope my site is.
Any feedback and/or critique would be most welcome.
Thanks in advance! <comment><USER2> I would change the hover color. This will not really be a problem for many users, but with the default OS X selection color – combined with your hover color – entity selections are very hard to see. Since many will want to copy the entities from your site this could be problematic. You could change the hover color to grey or something like that. (This is less a problem with your site and more one with OS X behavior: selection colors shouldn't be hard to see, no matter the background.)

One more thing: It really breaks my heart that this site – of all sites – uses wrong quotation marks. It's "Find your character!", not "Find your character!" (Whether or not it is appropriate to use quotation marks for claims like this is certainly also debatable.)

<comment><AUTHOR> Thanks very much for bringing this issue of the OS X selection colour to my attention! Based on your feedback I am going to change the table hover colour to be a shade of grey.

I also feel mortified that, of all things, I did not wrap the site's tagline in proper quotation marks. This will be remedied!

Thanks again for your feedback.

</comment></comment><comment><USER3> It looks great! A search box seems like an obvious useful feature (even though the dataset is small enough to browse through for the most part).

Edited to add: Shouldn't " and ' appear somewhere? Yes, real quotation marks should be preferred in typography, but straight quotes are extremely common and sometimes appropriate (e.g. in source code) and it's necessary to escape them inside of HTML/XML attributes. And yes, I know ' has compatibility problems that should be made clear somehow...

<comment><AUTHOR> Thanks for your feedback!

In regards to the issue of ' I didn't include it based on compatibility issues and this article's opinion <http://fishbowl.pastiche.org/2003/07/01/the_curse_of_apos/>

I did totally forget to include " and it will be added in an update later today.

A search box may be something I will implement in the future, but for now I do feel the dataset is small enough that people should be able to find what they need quickly enough. The suggestion is noted though.

Thanks.

<comment><USER3> Why not list apostrophe as ' and include a link to that article? If you omit it, users will just look it up somewhere else and maybe get it wrong.

<comment><AUTHOR> I've updated the site and done as you suggested. Thanks for the advise!

</comment></comment></comment></comment><comment><USER4> Very nice. Points for cleanliness. I'm running Chromium on Win7 RC1 (SRWare Iron specifically) and I'm getting blocks for the quotes in the sub title "Find your character!"

Also couldn't ignore your last name, Allisons win :D

<comment><AUTHOR> Thanks letting me know!

I've decided to take the quote marks off the tagline to just make life easier. Regardless of browser, there should be no issues now with text rendering in any of the main parts of the site template. (Fingers crossed)

</comment></comment><comment><USER5> Dashed URLs are internet ghettos.</comment>


Ask HN: What is the simplest software or SaaS that made you money - <AUTHOR> Beginners have this assumption of that a software or tools have be big or complex enough to make money or gain adoption. Is it true at all?<p>What is the simplest software or software service you made or that you know of is financially successful <comment><USER2> VBA excel app that pulled in commodity data from a CSV (I think) into this baroque spreadsheet for a trader.

Learnt two lessons that day, people will pay me for things that save time and price based on the the value you provide not how long it takes you.</comment>


Should Tech Startups Outsource Product Development?  - <AUTHOR> http://techcrunch.com/2010/04/17/should-tech-startups-outsource-product-development/ <comment><USER2> It depends on the project...

For tech-heavy companies, obviously not. But for content plays, sometimes outsourcing makes sense.

International outsourcing can be tough, but domestic outsourcing (simply using a third-party firm) often works. My friend who started the website <http://academicearth.org> outsourced the entire thing with a firm out of North Dakota, and his website was named by Time magazine one of the top 50 Websites of 2009 (along with YouTube, Facebook, Twitter, etc.)

</comment><comment><USER3> Dell did.</comment>


CloudFlare partners with Authy for two-factor authentication - <AUTHOR> http://thenextweb.com/insider/2012/11/28/cloudflare-partners-with-authy-for-two-factor-authentication/ <comment><USER2> Why not Google Authenticator instead of yet another app?</comment>


WHO's advisor pretended to have bad connection when asked about Taiwan - <AUTHOR> https://twitter.com/wilfredchan/status/1243887606569590784 <comment><USER2> A disgrace.

<comment><USER3> Evil do'ers...

</comment></comment><comment><USER4> Can someone please explain the context on this?

<comment><USER4> Nevermind, i believe:

[https://news.ycombinator.com/item?id=22713482](https://news.ycombinator.com/item?id=22713482)</comment></comment>


Ask HN: React Native or iOS Native and responsive web app? - <AUTHOR> For those of you that have gone the React Native route…<p>- Would you do it over again?<p>- Did your team ever rewrite or wish they went native initially?<p>- What stage is your product at?<p>- What was the decision to go React Native?<p>I am researching which route to take a new product in. The proposed initial option is React Native or Swift, responsive SPA, and down the road Android. Most of my work has been with iOS native but I have spent a lot of time in the web world lately. My initial reaction for React Native is, it is great in the beginning but can cost companies a lot of money and time in the long run (as seen by Airbnb, Udacity, and NextDoor.) Though some big orgs do use it successfully here and there (Pinterest, Facebook, Instagram) throughout their apps. <comment><USER2> " -Would you do it over again?"

It depends. I'm a native iOS engineer whos spent a bunch of time doing React native development. I've worked on multiple React Native projects that have shipped.

If I was creating a new app from scratch I would hands down use React Native for most projects.

If I was working on an existing native project, (native iOS/Android code base), I probably wouldn't use React Native.

"Did your team ever rewrite or wish they went native initially? "

It really depends. 95% of the people using React Native are web engineers and React Native is their first experience doing mobile. Those people don't regret using React Native.

The people who I've worked with or encountered who did regret using React Native are people who've used it within an existing native app. These people are usually native engineers with little prior exposure to React or Javascript. I have also done brownfield React Native and I can understand why they would have this perspective.

"- What was the decision to go React Native"

Productivity and cost. It takes a lot less time to ship a cross platform React Native app than to build it twice in kotlin/swift. If you do consulting/contracting work or you are an early stage startup on a budget React Native is a no brainer for most projects. Multimedia projects or games being notable exceptions.

"My initial reaction for React Native is, it is great in the beginning but can cost companies a lot of money and time in the long run (as seen by Airbnb, Udacity, and NextDoor.) Though some big orgs do use it successfully here and there (Pinterest, Facebook, Instagram) throughout their apps."

All of those organizations have large engineering teams and are doing brownfield (integrating React Native into an existing project) apps. That is most likely not what you are doing.

Brownfield React Native is about 2-3x as hard as building a new app from scratch. I gave a presentation explaining why this is the case earlier in the year at chain React:

[https://youtu.be/44YdvFAwQwA](https://youtu.be/44YdvFAwQwA)

<comment><AUTHOR> Thanks for the thorough response. This is very helpful. The tech team doesn't exist yet so this would be from scratch.

It is a startup (with a decent size seed round.)

Do you ever run into bugs/crashes that are way harder to resolve with React Native?

<comment><USER2> Bugs yes, crashes no. If you go with React Native research how to include the JavaScript stacktrace when submitting a crash report to crashlytics etc. It will make tracing things easier.

A big problem with React Native is upgrading versions and third party libraries. This is the biggest pain point for most people I work with. Things break regularly and you have to be very careful with regard to reading release notes and testing.</comment></comment></comment>


Doom Creator John Carmack Honoured with Bafta - <AUTHOR> http://www.bbc.co.uk/news/technology-35992991 <comment><USER2> If anyone is interested in Carmack's backstory I recommend picking up a copy of "Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture." It was published in 2004 so don't expect any of the newer stuff he has done but it is quite the read.

<comment><USER3> It's on my shelf right now, two books away from Soul of a New Machine. Been meaning to give Where Wizards Stay Up Late a try next.

<comment><USER4> Read it now, best thing ever.

</comment></comment></comment><comment><USER5> I'm fascinated that Carmack thinks Quake 3 is overlooked. At least among the people I know, Quake 3 is considered the best multiplayer arena shooter of all time.

<comment><USER6> Unreal Tournament was the best. Hall of Giants for the win, still the best CTF map ever.

<comment><USER4> I always loved Facing Worlds, and still do:)

</comment></comment></comment><comment><USER4> I met Romero yesterday, so stoked! :) [http://imgur.com/iHbjCcB](http://imgur.com/iHbjCcB)

</comment><comment><USER7> I really do think its overdue. :)

I owe a lot of my knowledge and understanding to having trawled through, building, modifying, cleaning up, refactoring or repurposing a lot of the publically available codes for Quake 1/2/3.

Truly an inspiration as a programmer.

</comment><comment><USER8> I looked up John's net worth. Apparently it's 40M. That surprises me, I would have thought given his involvement in the success of putting Oculus on the map that he would have made out way better from the Facebook acquisition.

<comment><USER9> Above say, 5M does it matter? At that point you don't have to work another day in your life if you don't want to.

<comment><USER10> Yes. For about a decade Carmack funded a significant amateur space rocket effort -- Armadillo Aerospace. That shut down because of lack of money to devote to the project. See [http://arstechnica.com/science/2013/08/john- carmacks-8m-pipe...](http://arstechnica.com/science/2013/08/john- carmacks-8m-pipe-dream-meets-reality-armadillo-aerospace-on-life-support/) He reached $8 million put in before reaching the decision that was too expensive for a hobby.

<comment><USER9> Good point, thanks for reminding me about Armadillo.

</comment></comment></comment></comment><comment><USER11> I love Doom, but what I've always respected about Carmack is the fact that he actively tries to get better by learning all the time.

This guy could easily have just learned C and called it "done", and no one would judge him for it. Instead, he's giving speeches talking about how cool Lisp and Haskell are and that he thinks functional is the way to go.

Whether or not he's right about that is a matter of preference, but I think it's cool that he's not content with "knowing enough".

</comment><comment><USER12> I love Carmack.

I love Masters of Doom.

Even the fact his bow tie is messed up, is classic John Carmack.

</comment><comment><USER13> BAFTA is British Academy of Film and Television Awards.

<comment><USER14> British Academy of Film and Television Arts actually

<comment><USER13> Whoops, indeed it is. Thought one thing, typed another :-|

</comment></comment></comment><comment><USER15> time to update .plan

[edit: and totally deserved]</comment>


Tech distractions for workers add up - <AUTHOR> http://www.usatoday.com/tech/news/2011-05-18-social-media-worker-distractions_n.htm

<comment><USER2> You can add Hacker News to the list of (welcome) distractions...</comment>