Live data from Hacker News

Ask HN: Programming Courses for Experienced Coders?

news.ycombinator.com

131–140 of 192 posts

Re: Ask HN: Programming Courses for Experienced Coders?

#131
post #124

Earlier quoted context omitted.

Hey, here is a thought I realised while buying yet another cookbook. If you buy a cookbook and find ONE recipe that you will like and will be using regularly for the rest of your life, that cookbook was already worth it. Even if you found zero recipes, that does not mean you wasted time. Maybe if you think in terms of results for that particular cookbook investment, but it is pretty arbitrary way to look at it. What…

This sort of seems to assume that time and money in infinite, though. Buying a recipe book for one recipe seems like a profound waste of resources.

This sort of seems to assume that it is at all possible to gain knowledge and experience without making mistakes.

Hiring people who do not perform seems like a profound waste of resources. Doing projects that fail seems like a profound waste of resources. Learning technology that will not be helpful later in your life seems like a profound waste of resources.

When was the last time you found a cookbook where a significant portion of recipes stayed with you for the rest of your life?

Re: Ask HN: Programming Courses for Experienced Coders?

#132

There is a general lack of advanced materials in software engineering. This is one area where market economy works against common good, unfortunately. People who have the knowledge and want to capitalise on it are highly incentivised to preparing beginner level materials and maybe a tiny bit to prepare the something for people who already have a bit of knowledge. After that, the number of people who are your potentia…

> Personally, I just read a lot. What books would you recommend? I find it hard to learn real world patterns and codebases. Smaller patterns like inheritance, composition, traits, functional monads, async coroutines, RAII, MVVM, dependency injection, and semaphore synchronization, are easy to learn, but seemingly unhelpful in the grander scheme. Nobody seems to completely adhere to the rules. As a result, these small…

I found the book Growing Object-Oriented Software Guided by Tests to be very inspiring. The book demonstrates how to evolve the code architecture, how and when to add new concepts and abstractions, how to listen to the tests, when to refactor etc. The tech in the examples is dated, but the gist of the book is very relevant.

Another classics are: - Working effectively with legacy code - Refactoring: Improving the Design of Existing Code

All of these books have a lot of depth to them

Re: Ask HN: Programming Courses for Experienced Coders?

#133

I've taken 2 of David Beazley's courses.[1] And, I highly recommend them. If you haven't seen some of his talks, he's very good at explaining things by building them from nothing. I took 2 courses: "Rafting Trip" and "Write a Compiler". Both were awesome. The Rafting Trip took us through implementing the Raft consensus algorithm from scratch. And the "Write a Compiler" course had us build a small language using LLVM.…

I've also taken David's compiler course, and it was excellent. I highly recommend taking any course he offers that interests you.

Re: Ask HN: Programming Courses for Experienced Coders?

#134

Earlier quoted context omitted.

> Personally, I just read a lot. What books would you recommend? I find it hard to learn real world patterns and codebases. Smaller patterns like inheritance, composition, traits, functional monads, async coroutines, RAII, MVVM, dependency injection, and semaphore synchronization, are easy to learn, but seemingly unhelpful in the grander scheme. Nobody seems to completely adhere to the rules. As a result, these small…

> (...) are easy to learn, but seemingly unhelpful in the grander scheme. Nobody seems to completely adhere to the rules. As a result, these small patterns never seem to lead to clean code. Good. That is very useful state of mind to be in. Because these things do not produce cleaner code. They are tools to solve problems. Coders are like photographers. The ones who like talk the most shoot walls head on and then peep…

The next step is to realize that there is no clean or unclean code.

Re: Ask HN: Programming Courses for Experienced Coders?

#135

There is a general lack of advanced materials in software engineering. This is one area where market economy works against common good, unfortunately. People who have the knowledge and want to capitalise on it are highly incentivised to preparing beginner level materials and maybe a tiny bit to prepare the something for people who already have a bit of knowledge. After that, the number of people who are your potentia…

I highly disagree. There's a huge amount of material out there for advanced software engineering. The problem is this material is exponentially harder and most programmers aren't interested in this stuff. What OP is talking about is essentially learning a new language which is sort of trivial and not advanced. It's sort of a parallel track and he likely wants something that doesn't start at the very beginning. Someth…

[deleted]

Re: Ask HN: Programming Courses for Experienced Coders?

#136
post #52

It's not Elixir, but I'm working through Jeremy Koppel's "Advanced Software Design Course". I've been coding for 22 years and it is definitely growing me. https://www.mirdin.com/

That looks interesting. If you don’t mind me asking. What did you learn there that you couldn’t learn from books or talks?

Same difference between reading a textbook vs taking a lecture. He brings it to life. There's also personal feedback. His content isn't available in any other format I know of.

Do have a look at the testimonials. He hits the nail on the head on many ideas I could intuit but didn't have words for.

I don't know of any books or speakers to compare him to. He's a unique bridge between academia and industry. I suppose you could say his teachings are available in the many academic papers he sources, but those papers are dense. His curation and contextualizion gets the ideas in a form I can comprehend and apply at work.

Re: Ask HN: Programming Courses for Experienced Coders?

#137
post #15

When writing a small application in Go I had great success asking Chat GPT specific questions. It helped me figure out which packages I needed to use and how to interact with them. I understand that this might not fit your use-case, but it's worth a try. Just be aware that it tends to hallucinate APIs.

If it does hallucinate, you can just paste it the latest documentation and the hallucination rate goes to nearly zero.

I mean you can just run the code and verify its functionality, right? I guess you could be in trouble if you get functioning hallucinations and try to build more around a false foundation.

Re: Ask HN: Programming Courses for Experienced Coders?

#138
post #90

There is a general lack of advanced materials in software engineering. This is one area where market economy works against common good, unfortunately. People who have the knowledge and want to capitalise on it are highly incentivised to preparing beginner level materials and maybe a tiny bit to prepare the something for people who already have a bit of knowledge. After that, the number of people who are your potentia…

> There is a general lack of advanced materials in software engineering I wonder how much this is true in other areas (not counting academic papers). It's not exactly true in law due to the plethora of giant treatises in any specific subject of law, as far as I know that might be a one-off due to US law putting such an (insane?) emphasis on precedent. Basically need a professional lawyer+historian to compile all the…

I think it depends on what you mean by advanced and what exactly you're calling engineering.

As you've pointed out in other engineering disciplines, there are researchers who are pretty deeply immersed in the academic papers and help to move the state of the art forward.

In other cases, there are the societies like ASME, IEEE, ASCE, etc. that put out standards or guidelines. These could either be viewed as documents that you use to plug numbers into formulas or you can try to derive the equations from first principles. Often there are training courses or workshops run by these societies, so that's a place to learn. There are trade publications to learn from as well.

Re: Ask HN: Programming Courses for Experienced Coders?

#139
Both of Robert Nystrom’s books are awesome and don’t feel beginnery http://stuffwithstuff.com/

Building games and interpreters both feel niche, but i really love working on dramatically different problems than usual. Really helps expand my perspective

Re: Ask HN: Programming Courses for Experienced Coders?

#140
post #31

Well it's not popular (even though it ought to be), but Edsger Dijkstra's A Discipline of Programming is an approachable and informal (by the author's standards) look at solving non-trivial problems in a provably correct way. In fact the entire EWD archive[1] can be arranged into a course pretty readily, although you'll definitely want to skim or skip large chunks of it. Also some of the papers are just acerbic obser…

You can use Coq to teach yourself many of the same ideas from ADP using Penn's Software Foundations (probably the first two books are sufficient).

A somewhat more modern approach of related concepts to ewd's work is the work of Richard Bird which teaches you about using equational reasoning to take a correct naive algorithm and systematically optimize it into a correct and fast algorithm. [0] [1]

Regarding Dafny, there's actually a new book out that should be approachable to anyone with programming experience. [2]

[0] https://www.cs.ox.ac.uk/publications/books/functional/

[1] https://www.cs.ox.ac.uk/publications/books/adwh/

[2] https://mitpress.mit.edu/9780262546232/program-proofs/

Post reply on HN