Live data from Hacker News

Ask HN: Programming Courses for Experienced Coders?

news.ycombinator.com

111–120 of 192 posts

Re: Ask HN: Programming Courses for Experienced Coders?

#111
I'm hijacking a bit, but one thing I've been really wanting is some advanced optimization material for C++. There's so much that goes into data locality, branch elimination, faster ways to copy word-aligned data, and so on. I've picked up all I know on the fly, but would love some great resources which go deep into this. Is there something more instructive than Intel manuals?

Closest thing I found recently is this: https://agner.org/optimize/optimizing_cpp.pdf

Re: Ask HN: Programming Courses for Experienced Coders?

#113

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 patterns never seem to lead to clean code.

I loved coding as a child and pursued CompSci in college. But having worked a few years in the industry, I really think I do not know how to solve anything. At one point I felt as if everyone is gaslighting me. But if multiple people from different companies say I need to learn, then I should.

Right now I want to read to know what exactly I am missing in my knowledge about how code works in large codebases

(Edit: Thanks for the reply!)

Re: Ask HN: Programming Courses for Experienced Coders?

#114
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…

Not sure a treatise is exactly a good comparison. That would be more like documentation, where the question here is more “how to get better at programming?”. A treatise isn’t going to tell you how to be a better lawyer.

I’m not sure there’s great content like this for lawyers either even with mandated continuing education requirements. They’re typically a bore and surface level. About the same quality as your average “What’s new in Elixir 1.15” blog post.

Re: Ask HN: Programming Courses for Experienced Coders?

#115

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…

The problem with a $200 book is that it's hard to tell the difference between a book that contains $100k of knowledge and a book that contains $100 of knowledge.

ideally that's what reviews and word of mouth are. But I imagine like other sectors that book publishers are risk averse.

But if anyone is like me and interested in taking a risk on those $80-150 tomes, CRC Press' books have been more hits than misses for me.

Re: Ask HN: Programming Courses for Experienced Coders?

#116

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…

The problem with a $200 book is that it's hard to tell the difference between a book that contains $100k of knowledge and a book that contains $100 of knowledge.

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 if you tried to measure your return for investment on a single page of a cookbook? For half a dozen coobkooks? For a shelf of cookbooks?

If you continue buying and studying cookbooks, you will find some good recipes in some cookbooks and what you need to look for is the total return on the total of investment. I spent a ton of money on cookbooks but my life is much better for it and I have zero regrets even if many of these cookbooks yielded zero results.

So now back to technical books.

Some of these books will yield new knowledge and some may yield very little or even none at all. You may not know before you buy a book whether it will pay for itself, but you know if the whole business of buying books and learning from them is worth it. I chose to buy and read books even if some of them yield little results because I think I am a better person and a better developer for it. I learned a lot of useful stuff even if I completely ignore majority of everything I read and then forget majority of everything I thought valuable.

Re: Ask HN: Programming Courses for Experienced Coders?

#117

Earlier quoted context omitted.

Or it apologizes profusely, tells you you’re correct, and fails to fix its reasoning or the examples it gives you.

I told it to stop apologising all the time. It apologised for doing that :)

probably chatgpt is Canadian :)

Re: Ask HN: Programming Courses for Experienced Coders?

#118
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?

Re: Ask HN: Programming Courses for Experienced Coders?

#119

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…

> 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 potential target drops off sharply and you would have to increase the price dramatically. I think, even aside from the incentives, its a matter of interest a…

That seems to be why the most popular advanced topics are conference talks instead of books. Still takes prep and you lose the quality of a tome, but an hour long talk (possibly with decently annotated slides for later viewings) is probably better worth for the speakers and audiences alike. conference foots the bill with the costs gathered from participants, participants get a variety of talks (so they aren't paying for one tome but maybe a dozen nuggets to serve as jumping off points. Which may be all an advanced participant needs), and the industry gets advertising/potential recruiting from the staff they dispatch.

Of course, I'm sure I don't need to explain the downsides of a talk, Especially one presented by very knowledgable people but not ones who are necessarily expert speakers. But at the same time, that lack of polish may be a light in the darkness that is false platitudes in every other ad.

Re: Ask HN: Programming Courses for Experienced Coders?

#120

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…

> (...) 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 at pixels and mostly discuss hardware. The ones who know how to make good photos do not care about who uses what kind of camera. A camera is just a tool to capture light field.

Clean code is what happens in your mind and as a result of your mental process.

Patterns, composition, inheritance tricks, and so on -- these are things you add to your toolbelt to use it when it is needed. You should continue adding tools to your toolbelt to be able to solve wider variety of problems and have more alternative solutions. But on its own, more tools do not mean mastery and do not lead to clean code.

If anything, more tools without knowledge how to use them leads to less readable code. This happened to me for the first half of my career..

What get you to mastery is by building taste for simple code and ability to self reflect on your work. Taste for simple code means you know why code needs to be simple and you know how clean code looks like.

Self reflection is trying to be objective and judgy about your results. When you write the code, you keep refactoring until you like the results. You write a module, then you polish it until there is nothing else to remove and it does exactly what it is supposed to be doing. You do it long enough and you will have experience to start it closer to a clean result. You may never get to be able to write clean code on the first try but you might get better at having much cleaner first approximation.

Ideally, you also take some responsibility longer term for what you produced. You compare your initial ideas with how they fared over time. You learn some things you thought smart weren't so smart at all. You learn what works and what doesn't work in general.

There is one more way and this is mentoring. I do pair programming with people where we design and implement solutions to progress. Lets me get to know the person better and the person gets to observe the process which can be a huge shortcut in the process of learning to write clean code.

Post reply on HN