HackerNews Readings
40,000 HackerNews book recommendations identified using NLP and deep learning

Scroll down for comments...

An Introduction to Statistical Learning: with Applications in R (Springer Texts in Statistics)

Gareth James , Daniela Witten , et al.

4.8 on Amazon

72 HN comments

Mastering Regular Expressions

Jeffrey E. F. Friedl

4.6 on Amazon

72 HN comments

Game Programming Patterns

Robert Nystrom

4.8 on Amazon

68 HN comments

Steve Jobs

Walter Isaacson, Dylan Baker, et al.

4.6 on Amazon

67 HN comments

Machine Learning: A Probabilistic Perspective (Adaptive Computation and Machine Learning series)

Kevin P. Murphy

4.3 on Amazon

66 HN comments

The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage

Cliff Stoll, Will Damron, et al.

4.7 on Amazon

61 HN comments

Programming: Principles and Practice Using C++ (2nd Edition)

Bjarne Stroustrup

4.5 on Amazon

58 HN comments

Ghost in the Wires: My Adventures as the World’s Most Wanted Hacker

Kevin Mitnick, William L. Simon, et al.

4.6 on Amazon

55 HN comments

Modern Operating Systems

Andrew Tanenbaum and Herbert Bos

4.3 on Amazon

54 HN comments

Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software 2nd Edition

Eric Freeman and Elisabeth Robson

4.7 on Amazon

52 HN comments

The Singularity Is Near: When Humans Transcend Biology

Ray Kurzweil, George Wilson, et al.

4.4 on Amazon

51 HN comments

The Everything Store: Jeff Bezos and the Age of Amazon

Brad Stone, Pete Larkin, et al.

4.6 on Amazon

51 HN comments

Compilers: Principles, Techniques, and Tools

Alfred Aho, Monica Lam, et al.

4.1 on Amazon

50 HN comments

Test Driven Development: By Example

Kent Beck

4.4 on Amazon

45 HN comments

Patterns of Enterprise Application Architecture

Martin Fowler

4.5 on Amazon

43 HN comments

Prev Page 2/16 Next
Sorted by relevance

the_afonDec 8, 2016

Seconded! Programming Languages is wonderful. Easily the best I've taken in Coursera (and better than Odersky's courses).

HumblyTossedonMay 31, 2020

Hmmm... Glancing at my shelf. That's not easy. Two that are close are:

Programming Pearls 2e (239 pgs)

Practice of Programming (267 pgs)

I see Algorighms + Data Structures = Programs, but I know that's well into 300 pgs w/out looking.

s1rechonJuly 8, 2010

I liked Programming Language Pragmatics, as it touches a lot of areas without going too deep in any.

umanwizardonAug 31, 2020

I assume by "the Rust book" you mean "The Rust Programming Language".

There is also "Programming Rust", which you might like better.

jnksonJan 17, 2015

My reading: Bell Labs folks would have ordered it Programming > Math >> Computer Science. RTM was good at programming, was being taught CS at college, and took too long to learn that neither that nor math were for him and that Bell Labs had it right all along.

theblueskyonMay 5, 2012

Scala for the Impatient probably a better choice. Programming in Scala (not the O'Reilly book) is also good, but very long-winded. The O'Reilly book isn't too bad though, but not my first choice.

nbaksalyaronOct 13, 2020

> this seems to focus much more on networking.

That's a first module, and I will keep adding more lessons, at least for UNIX process control (fork(2) and friends) and memory allocation.

> Programming from the Ground Up

This looks like a great resource, thanks!

jlukecarlsononJune 6, 2020

If you're specifically interested in recent work then it could be worth checking out arxiv for preprints of papers in the relevant field.

For instance, here's a section on Programming Languages: https://arxiv.org/list/cs.PL/recent

ck_oneonApr 1, 2021

Thanks for the clarification. I am indeed more interested in Programming Language Design. Do you have pointers to intro texts which provide practical value?

corecoderonSep 7, 2016

Two great articles from TDWTF:

* Programming Sucks! Or at least, it ought to! [0]

* The Oracle Effect [1]

EDIT - formatting again

[0] http://thedailywtf.com/articles/Programming-Sucks!-Or-At-Lea...

[1] http://thedailywtf.com/articles/the-oracle-effect

chconOct 10, 2010

Programming books are by and large read by programmers. Complaining that the foreword doesn't sell programming well enough is like complaining that Hawking's papers don't contain enough cheerleading for first-grade science students.

cholmononDec 19, 2014

Programming and configurations: reading, particularly on the same machine where I'm following along with my own working code so I can copy/paste samples, and skip around.

UI/Tools: video, especially when several tools are being used together in a somewhat complex workflow.

sotojuanonJune 3, 2016

Might be worth it to mention some Erlang books. I've heard many have benefited from Programming Erlang.

Also, stronger curation—Introducing Elixir is kinda old right? I'd put Programming Elixir instead of it.

slm_HNonNov 3, 2016

I was doing a survey of the beginning programming MOOCs that teach Python. The Udacity course, Programming Foundations with Python - Learn Object Oriented Programming, was by far the worst. I don't see how anyone could think it had "utmost quality". Both EdX and Coursera had classes that were much better.

knvonJan 2, 2010

Anathem, by Neal Stephenson

Consider Phlebas, by Iain M. Banks

Selfish Gene, by Richard Dawkins

Business Stripped Bare, by Richard Branson

Programming Collective Intelligence, by Toby Segaran

Zen and Art of Motorcycle Maintenance, by Robert Pirsig

rpmismsonOct 4, 2019

Aw hell yeah. Programming books that teach you how to actually think like a programmer are THE best ones. Thanks for the resource.

gumbyonFeb 28, 2019

BTW title is missing the word "had": "Programming Books You Wish You had Read Earlier"

jdonOct 8, 2012

Or more generally: it's much easier to excel in the intersection of two (or three) disciplines than to excel in a single discipline.

Programming + Biology. Programming + Economics. Business + Comic book writing. Programming + Business. Cooking + fluency in Japanese & English. You get the idea.

acangianoonOct 18, 2010

Very clever idea. If you are looking for a complimentary service to discover new books, you could signup with my site http://anynewbooks.com, and select categories like Programming or Business and Investing. The latter is one of my favorite categories, because there are always great new titles for it. (Warning for the tech crowd: you will receive one weekly email per category you pick, so don't go crazy. :))

pincubatoronApr 19, 2014

I think most of the CS programs will just waste your time --unless you attend to a very good university. Given that best hackers I've met are self-taught programmers, you can definitely work it out yourself. I think these are amazing times; there are many pretty good online courses & materials, places to get help, etc.

I recommend Programming Languages course on Coursera. But if you are impatient, you can start from learning Python (it has a very low learning curve): learnpythonthehardway.org/book/

recentdarknessonNov 27, 2013

Well it depends on where you stand.

For beginners a very good book from my experience is C++ Primer by Stanley B. Lippman, Josée LaJoie, Barbara E. Moo.
The 5th edition even goes into the newer topics like the aforementioned lambdas, also variadic templates.
A nice thing is that it comes with exercises, which in my particular case was how I learned programming. I found a new feature of the language, or a class new to me and I played with it until I understood how it works.

Another good book for beginners is Programming -- Principles and Practice Using C++ by Bjarne Stroustrup, from what I read, he wrote this book with the background of teaching programming at the university and wanted to write a good book which uses a good approach which can be used for teaching students programming in C++.

If you are already further in and not at the beginning of learning C++ there is a list of books I recommend as further readings:

- Effective C++ by Scott Meyers

- More Effective C++ by Scott Meyers

- Effective STL by Scott Meyers

---

- Exceptional C++ by Herb Sutter

- More Exceptional C++ by Herb Sutter

- Exceptional C++ Style by Herb Sutter

---

- C++ Templates - The Complete Guide by David Vandevoorde and Nicolai M. Josuttis

- Modern C++ Design - By Andrei Alexandrescu

- C++ Coding Standards by Herb Sutter and Andrei Alexandrescu

Last but not least, reading the C++ Standard is the last bit on the topic of C++

This is the list of books which I recommend anyone who really wants to become great in C++

HTH :-)

Edit: I should probably mention The C++ Programming Language (4th Edition) by Bjarne Stroustrup as a must have as well ;)

wwkeyboardonDec 3, 2009

The "Demo Fact Sheet"[1] is really pie-in-the-sky. My favourites are "Cloud Programming on a Chip: Hadoop Web Search" and
"Programming for the 3D Internet: JavaScript Server Farm on a Chip"

[1] http://download.intel.com/pressroom/pdf/rockcreek/Demo_facts...

oumua_don17onDec 31, 2019

+10 for this. I will elaborate further, hoping this gives you a good starting template.

- Programming: Learn two languages: Python and C

- Algorithms and Data Structures: Implement each data structure in the two languages above and implement a few algorithms of each type.

- Computer Architecture: For the referred excellent book, implement all assignments in any one language. Go head and burn the design on an FPGA, get the computer running on real hardware.

- OS: Having done ECS above, you should be in good shape to write your own OS: there is xv6, Xinu, Minix and many to choose from. Again have your OS running at least in a VM.

- Computer Networking: Write your own HTTP server in C.

- Math for CS: I would say focus on learning math essential for games, some linear algebra and leave it there. When you encounter a relevant field; AI or games, you should be in a position to pick up more math if required.

- Databases: Recently a book has been published on database internals, which is strongly recommended. Work through this book.

- Languages and Compilers: Learn a lisp, write a lisp interpreter (should introduce you to some FP concepts) and then working through Concepts, Techniques and Models of Computer Programming should be a good foundation.

Whether you are a student or working full time, these above are time consuming but well worth the ROI if you put in the effort. Be creative and ensure that you publish all your work as part of your portfolio. Good luck!!!

[1] https://www.amazon.com/Database-Internals-Deep-Distributed-S...

thisoneonNov 30, 2015

Programming Languages is one of those courses that just keeps on giving.

A great basis for functional and Lisp fundamentals. I'm just starting a journey into Erlang and that course has meant that the switch isn't as difficult as it could have been.

The course format was interesting. I'm not 100% on board with doing peer assessment, but I did like being able to see how other people handled the assignments.

citricsquidonMay 22, 2012

> A mediocre programmer could memorize the examples given in Programming Interviews Exposed and do very well in a Bloomberg interview.

or in a phone interview just google for an answer to the question they're being asked! oh wait that's exactly what they did do...

How is using google to find an answer to a question okay and knowing the answers before hand not? crazy.

TheCorehonSep 29, 2018

I've been using DuckDuckGo as my primary search engine for almost a year now. I still need to resort to !g for about 1/3 of my queries, which is less than it used to be, so the quality is definitely improving.

One weird thing that I noticed is that every so often when I'm in a Google SERP (e.g. in a friend's phone) and I'm not fully satisfied with the results, I add in !g, only to realize that makes no sense. So I wonder if there's a subset of queries that DDG produces better results for, or if Google's search quality is declining.

If anyone from DDG is reading this: Please add the ability to (voluntarily) personalize search results via a cookie, just like you do for the interface theme. Something like "Programming Language: JavaScript". That way ambiguous queries (e.g "array reverse") can be associated with the specific context without having to type it every time (e.g. "array reverse js")

plinkplonkonOct 6, 2009

"The examples in Programming Collective Intelligence are all Python too I think.."

The code in PCI was terrible, very unpythonic code the last time I looked at it.Not "really great" , which is what OP asked for.

Maybe someone has done a rewrite, but otherwise I'd be very careful using the PCI code as an exemplar.

mikelwardonNov 28, 2010

Learning Perl.
C Programming Language.
UNIX Programming Environment.
Programming in Haskell.

Code Complete.
Practice of Programming.

Cathedral and the Bazaar.
Open Sources.
Hackers and Painters.
Joel on Software.
Coders at Work.
Just for Fun.

SICP seems to be really well written so far, but it's not the kind of book you're going to read in one sitting.

gorb314onApr 9, 2019

I've got a related question: I'm looking for a (BASIC) programming book I loved as a kid. I can't quite remember the title, but it was something like "Programming for kids from 8 to 80".

Googling for it doesn't help, all I get are references to the 80s, or the TRS 80, or some such.

Does anyone remember this book, or where I can find it?

tedmistononOct 23, 2016

It's not actually listed on the website anywhere, but it is in the email newsletter every Monday.

For example, this is what they chose for last week's:

> Top Posts on Hacker News

• How I built a keyboard by hand

• The Hard Raise

• Is Facebook’s Massive Open Office Scaring Away Developers?

• Statistical Machine Learning, Spring 2016

• Yarn – A new package manager for JavaScript

• Open Guide to Amazon Web Services

• Windows 93 (2014)

• Say Cheese: a snapshot of the massive DDoS attacks coming from IoT cameras

• Making Human Settlement of Space a Reality

• The Nobel Prize in Literature 2016 awarded to Bob Dylan

• So You Want to Learn Physics

• Most drivers who own cars with built-in GPS systems use phones for directions

• Barack Obama on A.I., Autonomous Cars, and the Future of Humanity

• It’s Been Real, Android: Why I’m Retiring from Android

• Taking PHP Seriously

• Google's “Director of Engineering” Hiring Test

• Ask HN: What is your favorite YouTube channel for developers?

• Be Kind

• A Man Who Stood Up To Facebook

• Ask HN: How to get started with machine learning?

• Becoming a CTO

• Books Programmers Don't Really Read (2008)

• Ask HN: Good books or articles on UI design?

• Restoring YC's Xerox Alto day 10: New boards, running programs, mouse problems

• Walmart Paid Its People More to Get Cleaner Stores and Higher Sales

• What has happened down here is the winds have changed

• Peter Higgs: I wouldn't be productive enough for today's academic system (2013)

Programming books you might want to consider reading

scarejunbaonJan 28, 2020

Yeah, but you can't provide the Internet because there are those who will use it to coordinate crimes. So that leaves choices:

* No programming

* Programming with no Internet

Preload it with books.

MichaelCrawfordonJuly 16, 2015

It is easy now to explain but not always easy to reach my reader. I often dont make sense to others even with my technical writing. I regard that as my own fault and so feel it is beholden upon me to find a way to enable others to understand either by editing my work or by writing new material.

I once struggled to paas, that is to pass as that which I am not, but I decided to go public in part because working as a coder contributed to my recovery:

Programming and Madness

http://www.warplife.com/mdc/essays/mental-illness/programmin...

... and in part because It is important that others understand that reality is not as concrete as it at first appears. There are many ways to induce delusion in the minds of even completely sane, rational people; I published my first web page about my manic depression in respnse to the 1997 Heaven's Gate UFO cult mass suicide in 1997. The following is version 2.0:

http://www.warplife.com/mdc/books/schizoaffective-disorder/r...

While informed by my studies of anthropology, psychology and social psychology it also draws on my own experience with cults. The world recoiled in horror in 1997 because Heavens Gate made no sense, while I recoiled in horror because it made quite a lot of sense to me.

rmgrahamonDec 29, 2011

The demonstration reminds me of the link shared a few weeks ago about Ruby: http://news.ycombinator.com/item?id=3343205 Programming With Nothing

auvrwonFeb 14, 2018

for rubyists and pythonistas interested in writing more C while not losing the convenience of scripting, lua is probably worth picking up along the way. the following is the C-interop samples from Programming in Lua

https://github.com/ransomw/exercises/tree/master/lleaves/plu...

... only gripe with this article is the couple of "... and/or C++" clauses: i personally hope to be forgiven for forsaking C++ for new projects, because it is not the 1970's anymore, and i suppose there are alternatives for almost every use case as well as externs for plain-C interop with existing C++ libs.

it's more like C+{100} so many are the additional feature-ughs.

8589934591onFeb 10, 2020

I really like the resource but some of the courses I prefer some alternatives.

1. Programming - IntroCS by princeton - available on coursera with videos and graded assignments. If you require a slightly easier course, then you can check out CS61A from Berkeley or MIT's Intro course in python.

2. Algorithms and Data Structures - Princeton 2 courses in algorithms - coursera. Alongwith their book and booksite this was a very good resource for me with their graded assignments. I also would suggest CS61B from berkeley.

3. Databases - I started learning from Stanford Widom's course, but now I actually recommend CMU's course. I have heard good reviews for berkeley's course CS186 as well.

Side Note:

https://bradfieldcs.com/courses/
These are the makers of https://teachyourselfcs.com/. I notice that there are many courses, but at the same time $1800 per course is a bit too much considering USD conversion. So, I am looking for reviews if anyone has taken it, and whether the cost is justified. On the fence of joining it because of the cost.

cousin_itonNov 4, 2008

I read about 5 books a month.

Math books: always worth reading.

Programming books: never worth reading.

Fiction: a pleasant way to spend time, but rarely pays off.

History: mostly crap, but personal memoirs are often insightful.

Books that changed me: Orwell's "1984" (role of words), Hunter Thompson (personal courage), Henry Ford's "My Life and Work" (work attitude).

Good stuff that should be better known: Eric Hoffer's "True Believer", Jerome K. Jerome's "Idle Thoughts of an Idle Fellow", Marcus Aurelius.

eric_bullingtononApr 27, 2016

> I would like to see -- hint, I'm probably going to have to get my hands dirty! -- an implementation in either a dynamically typed language like Ruby/Python/Perl/PHP/Javascript/… or a non-functional language like C/C++/Obj-C/…

I understand where you're coming from. I'm working on a mini-ML in Python as a learning exercise for myself and possibly as a tutorial for others; will open source it soon.

As such, I've come across a few good resources:

check out Robert Small's Hindley-Milner in Python[0], as well as alehander42's Hermetic language in Python[1].

I also just found out about Hask, an implementation of many Haskell language features in Python. Looking at the source code, it's well-commented and clear, so I suspect I'll learn a lot from it as well [2].

Finally, even though it's not in a dynamic or non-functional language like you request, I highly recommend Andrej Bauer's Programming Language Zoo[3], which contains very simple and easy-to-understand implementations of various type systems in OCaml. Very elucidating.

0. http://smallshire.org.uk/sufficientlysmall/2010/04/11/a-hind...

1. https://github.com/alehander42/hermetic

2. https://github.com/billpmurphy/hask

3. http://andrej.com/plzoo/

Edit: Oh, and one more resource that's been extremely helpful has been "Introduction to Functional Programming through Lambda Calculus" by Michaelson. Well worth the cost of the book.

rezashirazianonMar 13, 2017

Great list that covers the basics. For anyone interested to expand I would suggest the following:

(the description is taken from the corresponding courses I took in college which I found super helpful)

Programming paradigms: Examination of the basic principles of the major programming language paradigms. Focus on declarative paradigms such as functional and logic programming. Data types, control expressions, loops, types of references, lazy evaluation, different interpretation principles, information hiding.

Textbook on Haskell and prolog would be recommended.

Computability: An introduction to abstract models of sequential computation, including finite automata, regular expressions, context-free grammars, and Turing machines. Formal languages, including regular, context-free, and recursive languages, methods for classifying languages according to these types, and relationships among these classes.

Introduction to the Theory of Computation by Michael Sipser

Explorations in Information Security:
A broad survey of topics in information security and privacy, with the purpose of cultivating an appropriate mindset for approaching security and privacy issues. Topics will be motivated by recreational puzzles. Legal and ethical considerations will be introduced as necessary.

Someone already mentioned computer graphics which I excluded. I personally had the most fun in college in my graphics courses. They were hard but super rewarding and a ton of fun!

mynegationonOct 14, 2011

It may warrant its own 'Ask HN' entry but I will piggy-back on that thread.

What are the books that one should read if one wants to start bio-hacking? Programming and CS books were discussed here many times: K&R, SICP, Corman etc, but what about biotech/life sciences?

I've tried some O'Reilly books like "Perl/Python for bioinformatics" but they are really for biologists trying to program, not the other way around.

philipkglassonJune 4, 2020

I bought Hands-On Scala Programming as soon as it became available. I bought it on the strength of Li Haoyi's blog posts about Scala, which I have enjoyed for years: https://www.lihaoyi.com/

This book is an excellent way to dive in to Scala for application development, even though at this point it is more of a refresher than an introduction for me personally.

I started using Scala at a new job in 2014 with no prior Java/JVM experience. I bought Functional Programming in Scala, followed by Programming in Scala. FPiS was completely the wrong choice for getting up to speed in my new role, though it was academically interesting. Programming in Scala was closer to what I needed although it didn't deal with larger ecosystem issues. Hands-On Scala Programming feels like the book I should have started reading the first day I started working in Scala development.

6 years later, I no longer have the new-user perspective on Scala and the JVM ecosystem. Does Hands-On Scala adequately prepare someone for the JVM/Java quirks that leak through into the Scala environment? I can't tell now. I've internalized too much of that knowledge.

Assumed Java knowledge was a rough point for me in the first year or so using Scala. If something goes wrong when you're fetching Maven dependencies in an SBT based project, and you have never used Maven-as-Maven because you never used Java before, you may encounter some baffling error messages and lack the context to understand where you go next to fix it. I also encountered a lot of "Like Java's Foo, but with X" explanations of Scala features that didn't help because I never used Java. In the case of the problem with Maven dependency failures and baffling error messages from SBT, I had to resort to running SBT under strace before I found the root cause.

puzzleskyonDec 3, 2012

Life: Seeking help for depression, seeing a psychologist after years of trying to battle it alone.

Programming: Building stuff and learning by doing rather than reading text books.

brlonMay 14, 2010

I disagree with this to the point of saying that the Artima book is one of the most well written technical books I've ever read and the O'Reilly book is rather a mess. The Artima book is written by the creator of the language and while it is a couple of years old the information is still 95% relevant to the latest language changes.

I would recommend getting a copy of both of them, but you might want to check out the online version of the O'Reilly book before buying it:

http://programming-scala.labs.oreilly.com/

The Pragmatic Programmers book is not bad either, but it's only a short introduction to the language compared to the other two books mentioned.

All three books have nearly identical titles: Programming (in) Scala

mickanioonApr 10, 2015

Thanks!

I'll follow up a little bit right here:

Developing with Unity was great overall. Luckily my partner has experience, which accelerated my learning a lot.

The 2 biggest challenges I found were not related to Unity, but to going from web development (my day job) to game development.

1. Programming in 3D: Not much I can say about this since I still struggle with it, except that once I understood vector maths a little more it got much much easier. Even just this silly site helped a lot: https://www.mathsisfun.com/algebra/vectors.html

2. Programming in a game loop: The main thing I've learned about this is to always keep things "event driven" as in, whenever possible trying to avoid checking for something happening in the game loop, and trying to instead have some kind of listener for a change that triggers what you need it to. Also, building state machines is something we're doing now and that has made logic inside the game loop WAY easier.

One other nice thing about Unity was that it reminded me about all the great things about object oriented programming.

Some bad things about Unity:

1. Not super easy to find answers to stuff online. Stack overflow just isn't quite as full in this area.

2. Unity Asset store: I think part of the reason for the first problem is that people are trying to sell their solutions, which ends up limiting free or open source growth.

On cross platform stuff: It worked like a charm, with a couple hiccups: Leaderboard integration and facebook sharing, but since those are platform specific in some ways anyway, that's to be expected - more about configuration really.

--

Anyway, thanks for the comment. We're polishing a bit more now, hopefully an update in the coming months. Yes, it's very hard. That's been difficult to get right... but our next game will be much easier!

sitkackonApr 24, 2015

Thanks for the clarification, they are similar but not the same. It looks like _sketching_ is more analogous to using Hindley-Milner for filling in gaps in an executable spec, where as Programming by Example infers code from data (examples). There is a wealth of interesting material referenced in http://web.media.mit.edu/~lieber/Your-Wish-Intro.html

wcareyonJune 19, 2012

Beyond the politics (which the Board of Visitors appears to have handled distressingly badly), there's an interesting analogy to software design lurking in the story.

It seems like the philosophical conflict that drove Sullivan't dismissal maps cleanly to the two styles of programming that pg described in "Programming Bottom-Up":

"It's worth emphasizing that bottom-up design doesn't mean just writing the same program in a different order. When you work bottom-up, you usually end up with a different program. Instead of a single, monolithic program, you will get a larger language with more abstract operators, and a smaller program written in it. Instead of a lintel, you'll get an arch."

My reading of Dragas's and Sullivan's statements to the Board of Visitors is that Dragas wants the University designed as a lintel, and Sullivan as an arch.

Dragas argues that "the Board is the one entity that has a unique vantage point that enables us to oversee the big picture of those interactions, and how the leadership shapes the strategic trajectory of the University." [1] The changes Dragas seems to support (though it's hard to find a clear statement of them anywhere?) would be akin to a major rewrite from scratch. University design by lintel.

Sullivan conversely argues that, "[c]orporate-style, top-down leadership does not work in a great university." She seems to be arguing for incremental changes more akin to aggressive refactoring.

[1] http://cvillenews.com/2012/06/18/dragas-sullivan-statements/

hackermailmanonJuly 15, 2020

Volume 2 here teaches Python optimization https://foundations-of-applied-mathematics.github.io/ or you could go through a copy of the Pragmatic Programmer with them https://www.cs.cornell.edu/courses/cs3110/2020sp/reflections...

All the "engineer"-ry things like constructing testing oracles or understanding code complexity this can all be found in Programming and Programming Languages https://papl.cs.brown.edu/2020/ that uses Pyret which has similar enough syntax to Python none of your bad engineers will be lost. There are lectures for it too: https://learnaifromscratch.github.io/software.html#org4eef4d... you could teach this class to them the lectures really teach you concepts like trees and graphs and how to reason about them.

proachonMay 12, 2015

Software development can be a bit dry. One and zeros aren't always the most exciting subject, especially when it comes to talking with kids. So how does a developer share a little about what they do for a living with their kids? The team behind Programming Languages ABC++ has a pretty fun idea on that front, but they are asking for a little help to make it a reality.

Last week a Kickstarter was launched to fund Programming Languages ABC++ an alphabet book that aims to make the idea of code a little more exciting for children. Each page features a different programming language, from A to Z, and has a ‘Hello World’ program in each of those languages. For the kids, there are brightly colored illustrations of the book’s mascot, The Computer Bug, getting into trouble on each page. While, for the older readers each language comes with some trivia and an easter egg pun hidden in each illustration.
Parents and programmers, Michael and Martine Dowden conceived of the book early last year, and have since partnered with Inedo, a small software firm, to help make their idea a reality.

Last summer, Inedo enjoyed an unexpected success by working on something a little outside their day to day jobs. They started a Kickstarter hoping to make a small print run of a card game, Release!. This game was themed around, you guessed it, software and coding. To their surprise the project went viral exceeded their funding goal by more than 10x their goal. This opened their eyes to just how prevalent and developer culture was, how fun it was to actually contribute to it. When they were approached by the author illustrator couple they knew they had their next project.

As it turns out, toddlers won’t learn to code from this book, but education starts with engagement. When a subject catches one’s interest it becomes a pleasure to learn, rather than a chore. Programming languages ABC++ might be the book that inspires a child to want to be a programmer when they grow up.

dengnanonApr 9, 2014

When I learn something, I would like to simultaneously read several books on the same topic, so that I could learn same things from different perspective. It works great for me when I learn Haskell, Scala, and other things.

Here is the list of materials I used to learn Haskell:

1. LYAH, http://learnyouahaskell.com/

2. Real world Haskell: http://book.realworldhaskell.org/read/

3. Programming in Haskell: http://www.amazon.com/Programming-Haskell-Graham-Hutton/dp/0... (No one suggests this book, but I do think this book is well-written and concise.)

4. Video tutorial by Erik Meijer based on Programming in Haskell: http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Func...

5. Advanced topics: http://www.haskellforall.com/2014/03/introductions-to-advanc...

Edit: Format

melvinroestonAug 4, 2020

SEEKING WORK | Amsterdam, remote only

I have 2 years of experience with ReactJS/NodeJS.

What people don't know about my though is that I've studied for 10 years worth of topics (9 years in official degrees) and can therefore tackle any programming problem. Including any general practical statistics problem as I've had 1.5 years worth of statistics courses.

Examples of the latter are:

- Programming in Java/Spring Boot for a client (3 months)

- Programming in Python (various engagements)

- Writing pentesting tools in C (I wanted to know how tcpdump works)

- Writing iOS apps in Objective-C (6 months of experience)

- Giving a course on information retrieval

dkarlonJune 22, 2011

Programming in Scala has a very straightforward explanation of for comprehensions. Mysteriously, almost every other explanation I read left me more confused than before. I don't know why there are so many poor and/or partial explanations out there. Read Programming in Scala instead and you'll be fine.

As for type inference, another week of programming and you'll fall into a groove where you're anticipating when you need to declare types and when you don't. I had the same pain, and after a week, it had dropped down to a very occasional annoyance. It might just be my programming style, though -- I declare the return types on all functions that are meant to be called from another class or object, so there's a lot of information for the compiler to work with.

I agree about the underscore thing. It's pretty useless, and Clojure's version looks superior to me. As best as I can tell, the underscore doesn't work inside an extra layer of parens or curly braces. But it's just syntactic sugar, after all. Using a named variable isn't the end of the world. It's just three extra non-whitespace characters, "n =>".

chriswarboonApr 8, 2015

There's a distinction between "mathematical proof" and "empirical proof". Physicists are certainly good at empirical proof, but I think the 'appeal to intuition' complaint was aimed at the mathematical side (ie. the Maths in Physics isn't very rigorous).

As a former Physicist and current Computer Scientist, I would agree with that complaint (although our use of empirical evidence is FAR below that in Physics).

For example, in Programming Language Theory it's amazing how many different notions of "equal" there are (isomorphism, definitional, judgemental, propositional, extensional, etc.). In Physics, there's just "=" :)

hwjonJuly 3, 2019

These are his books on "Programming Languages" and "Programming" (in the bottom right corner of the image):

* APL: The Language and its Usage

* The Design an Evolution of C++

* The annotated C++ Reference Manual

* The Joy of Clojure

* Eiffel the Language

* Programming Erlang

* Forth (Salman et al.)

* Thinking Forth

* Introduction to Fortran

* The Little Schemer

* The Seasoned Schemer

* The Reasoned Schemer

* The Little MLer

* Programming in Lua

* Lucid, the Dataflow Programming Language

* Functional Programming in Scala

* Clause and Eiffel

* Scatchpad

* Smalltalk-80, The Interactive Programming Environment

* Smalltalk-80, Bits of History, Words of Advice

* The TeXbook

* The METAFONTbook

* TeX: The Program

* METAFONT: The program

* Viewpoint: Toward a computer for visual thinkers

* Visual Grammars for Visual Languages

* How to design programs (Felleisen et al.)

* Design Patterns (Gamma et al.)

* The art of the Metaobject Protocol

* Elements of Programming

* Concepts, techniques and models of computer programming

* Structure and Interpretation of Computer Programs

* Types and Programming Languages

* Essentials of Programming Languages

* Advanced compiler design and implementation (Muchnick)

* Introduction to Algorithms (Cormen et al.)

* Hacker's Delight

* Programming Pearls

* Coders at Work

* Computation: finite and infinite machines

* Purely functional data structures

* The space and motion of communication Agents

* Superdistribution

* A small matter of programming

* Basic Theory for Computer Scientists

dangonJuly 20, 2021

Past related threads:

Why MIT uses Python instead of Scheme for its undergraduate CS program (2009) - https://news.ycombinator.com/item?id=18782101 - Dec 2018 (136 comments)

One Reason That MIT Should Reinstate Scheme and 6.001 (2009) - https://news.ycombinator.com/item?id=18386223 - Nov 2018 (38 comments)

Why MIT Switched from Scheme to Python (2009) - https://news.ycombinator.com/item?id=14167453 - April 2017 (97 comments)

Programming by poking: why MIT stopped teaching SICP - https://news.ycombinator.com/item?id=13105896 - Dec 2016 (9 comments)

Programming by poking: why MIT stopped teaching SICP - https://news.ycombinator.com/item?id=11628080 - May 2016 (232 comments)

SICP is being taught again at MIT - https://news.ycombinator.com/item?id=3482117 - Jan 2012 (37 comments)

SICP is still used at MIT at graduate level. - https://news.ycombinator.com/item?id=3235589 - Nov 2011 (3 comments)

Why MIT now uses python instead of scheme for its undergraduate CS program - https://news.ycombinator.com/item?id=842333 - Sept 2009 (38 comments)

Chiming in on the MIT Scheme to Python Switch - https://news.ycombinator.com/item?id=622261 - May 2009 (7 comments)

Why Did M.I.T. Switch from Scheme to Python? - https://news.ycombinator.com/item?id=602307 - May 2009 (65 comments)

Why MIT switched from Scheme to Python - https://news.ycombinator.com/item?id=530605 - March 2009 (128 comments)

MIT replacing Scheme with Python for Intro CS class - https://news.ycombinator.com/item?id=75401 - Nov 2007 (16 comments)

vram22onDec 26, 2016

Just did a google search, and it even partially auto-completed this search for me:

bug in java binary search

and showed a related search in the drop-down, 'programming pearls ...', a book by Jon Bentley, which seems to confirm what I said above (though I saw it in his other book, "Efficient Programs", IIRC - he might have mentioned the same issue in the Programming Pearls book too).

Edit: and the Wikipedia article confirms it too:

https://en.wikipedia.org/wiki/Binary_search_algorithm#Implem...

TuringTestonApr 23, 2021

There is one discipline which truly allows defining functions without code: Programming By Example[1]. It is particularly useful in data wrangling, at the 'Transform' part of ETL.

Microsoft has some initiatives exploring it[2] (including the limited autocomplete in Excel as a toy version of the concept), but this is not it.

[1] https://en.wikipedia.org/wiki/Programming_by_example

[2] https://www.microsoft.com/en-us/research/wp-content/uploads/...

lispmonMay 10, 2014

Until later? What later. An hour later?

Let's look at a few chapter titles of Real World Haskell.

Chapter 2: Types and Functions

Chapter 3: Defining types, streamlining functions

Chapter 4: Functional Programming

Chapter 6: Using Typeclasses

Chapter 14: Monads

Chapter 15: Programming with Monads

Chapter 18: Monad transformers

Built withby tracyhenry

.

Follow me on