TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Programming Courses for Experienced Coders?

377 pointsby trwhiteover 1 year ago
Lately I've been learning Elixir. Many of the popular resources seem beginner-focused, which feels a bit tedious when you've been coding for over a decade. Are there any popular programming books or courses for more experienced coders?

62 comments

onetimeuse92304over 1 year ago
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 potential target drops off sharply and you would have to increase the price dramatically. And it happens that people will not buy a $200 book even if it had $100k worth knowledge in it.<p>There are some positions available though. For example, I recently found Let over Lambda by Doug Hoyte. Excellent book if you are <i>that</i> kind of programmer.<p>Another problem with advanced materials is that frequently people are even unable to recognise them as advanced or valuable. It is easy to look at and evaluate things you have experience with, it is much more difficult to impossible to do the same with stuff that is beyond your experience (also called The Blub Paradox: <a href="https:&#x2F;&#x2F;www.paulgraham.com&#x2F;avg.html" rel="nofollow">https:&#x2F;&#x2F;www.paulgraham.com&#x2F;avg.html</a>).<p>Personally, I just read a lot. I try to keep an open mind and even if I don&#x27;t agree fully with the contents of the book, I try to use the ideas as inspirations for my own thinking. You can read codebases written by other people and learn new ideas. Over time, you gather a library of solutions to problems and knowledge of when to and when not to apply them.<p>If you do enough of it, you will find useful knowledge in unusual places.
评论 #38807424 未加载
评论 #38808695 未加载
评论 #38808663 未加载
评论 #38807689 未加载
评论 #38810208 未加载
评论 #38809259 未加载
评论 #38810069 未加载
评论 #38807633 未加载
评论 #38807661 未加载
评论 #38809660 未加载
spicemongerover 1 year ago
I&#x27;ve taken 2 of David Beazley&#x27;s courses.[1] And, I highly recommend them. If you haven&#x27;t seen some of his talks, he&#x27;s very good at explaining things by building them from nothing.<p>I took 2 courses: &quot;Rafting Trip&quot; and &quot;Write a Compiler&quot;. Both were awesome. The Rafting Trip took us through implementing the Raft consensus algorithm from scratch. And the &quot;Write a Compiler&quot; course had us build a small language using LLVM.<p>Both courses (but especially the Rafting trip one) were definitely for experienced programmers. In the courses I took, people generally had at least 5 years of professional work. And even still, there were a few people that really struggled to stay on pace in the course.<p>But at the end, most people had a (kinda) working Raft library or compiler!<p>[1] <a href="https:&#x2F;&#x2F;dabeaz.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;dabeaz.com&#x2F;</a>
评论 #38808462 未加载
评论 #38810324 未加载
评论 #38809860 未加载
评论 #38807774 未加载
评论 #38807370 未加载
评论 #38813176 未加载
评论 #38813426 未加载
评论 #38812353 未加载
评论 #38807795 未加载
评论 #38807430 未加载
anonymoushnover 1 year ago
Hello, recently I&#x27;ve enjoyed Casey Muratori&#x27;s Performance-Aware Programming course[0]. You could read Algorithms for Modern Hardware[1] to learn similar set of stuff though. Casey&#x27;s course is aimed at bringing beginners all the way to a nearly-industry-leading understanding of performance issues while the book assumes a bit more knowledge, but I think a lot of people have trouble getting into this stuff using a book if they don&#x27;t have related experience.<p>I&#x27;ve also found Hacker&#x27;s Delight Second Edition[2] to be a useful reference, and I really wish that I would get around to reading What Every Programmer Should Know About Memory[3] in full, because I end up reading a bunch of other things[4] to learn stuff that&#x27;s surely in there.<p>[0]: <a href="https:&#x2F;&#x2F;www.computerenhance.com&#x2F;p&#x2F;welcome-to-the-performance-aware" rel="nofollow">https:&#x2F;&#x2F;www.computerenhance.com&#x2F;p&#x2F;welcome-to-the-performance...</a><p>[1]: <a href="https:&#x2F;&#x2F;en.algorithmica.org&#x2F;hpc&#x2F;" rel="nofollow">https:&#x2F;&#x2F;en.algorithmica.org&#x2F;hpc&#x2F;</a><p>[2]: <a href="https:&#x2F;&#x2F;github.com&#x2F;lancetw&#x2F;ebook-1&#x2F;blob&#x2F;80eccb7f59bf102586ba362c17626f02275168a9&#x2F;02_algorithm&#x2F;Hacker&#x27;s%20Delight%202nd%20Edition.pdf" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;lancetw&#x2F;ebook-1&#x2F;blob&#x2F;80eccb7f59bf102586ba...</a><p>[3]: <a href="https:&#x2F;&#x2F;people.freebsd.org&#x2F;~lstewart&#x2F;articles&#x2F;cpumemory.pdf" rel="nofollow">https:&#x2F;&#x2F;people.freebsd.org&#x2F;~lstewart&#x2F;articles&#x2F;cpumemory.pdf</a><p>[4]: <a href="https:&#x2F;&#x2F;danluu.com&#x2F;3c-conflict&#x2F;" rel="nofollow">https:&#x2F;&#x2F;danluu.com&#x2F;3c-conflict&#x2F;</a>
评论 #38808105 未加载
评论 #38812362 未加载
cobertosover 1 year ago
I&#x27;m still partial to LearnXinYMinutes[0]. It&#x27;s how I learned enough MatLab&#x2F;Octave in a couple hours to test out of an intro CS course.<p>Usually I just use that site in addition to the official tutorial when a concept really stumps me.<p>Here&#x27;s their article on Elixir[1]<p>[0]: <a href="https:&#x2F;&#x2F;learnxinyminutes.com" rel="nofollow">https:&#x2F;&#x2F;learnxinyminutes.com</a><p>[1]: <a href="https:&#x2F;&#x2F;learnxinyminutes.com&#x2F;docs&#x2F;elixir&#x2F;" rel="nofollow">https:&#x2F;&#x2F;learnxinyminutes.com&#x2F;docs&#x2F;elixir&#x2F;</a>
评论 #38814858 未加载
评论 #38807489 未加载
评论 #38806036 未加载
imjonseover 1 year ago
Peter Norvig&#x27;s programming course from 10 years ago. It says there &quot;no experience required&quot;, but it&#x27;s intermediate-advanced actually.<p><a href="https:&#x2F;&#x2F;www.udacity.com&#x2F;course&#x2F;design-of-computer-programs--cs212" rel="nofollow">https:&#x2F;&#x2F;www.udacity.com&#x2F;course&#x2F;design-of-computer-programs--...</a>
评论 #38805356 未加载
评论 #38837341 未加载
caromover 1 year ago
This is something the computer security industry is great at [0][1] that the software industry really needs to catch up on. I would love a weekend to week long course on writing an SMT solver, building a 2D game, training a neural net on custom data, modern C++, peer to peer networking, integrating the lightning network into an app, building a darkweb application, etc. I have not seen many options for that.<p>Two free resources are Karpathy&#x27;s neural net zero to hero [2] and Gamozolab&#x27;s fuzz week [3]. Even just recordings of people who are top in their domain writing code are so useful.<p>0. <a href="https:&#x2F;&#x2F;ringzer0.training&#x2F;index.html" rel="nofollow">https:&#x2F;&#x2F;ringzer0.training&#x2F;index.html</a><p>1. <a href="https:&#x2F;&#x2F;www.blackhat.com&#x2F;tr-24&#x2F;training&#x2F;schedule&#x2F;index.html" rel="nofollow">https:&#x2F;&#x2F;www.blackhat.com&#x2F;tr-24&#x2F;training&#x2F;schedule&#x2F;index.html</a><p>2. <a href="https:&#x2F;&#x2F;karpathy.ai&#x2F;zero-to-hero.html" rel="nofollow">https:&#x2F;&#x2F;karpathy.ai&#x2F;zero-to-hero.html</a><p>3. <a href="https:&#x2F;&#x2F;youtube.com&#x2F;playlist?list=PLSkhUfcCXvqH2sgJa8_gnB41_hO485Lsl&amp;si=HHLHl2T380lpavlT" rel="nofollow">https:&#x2F;&#x2F;youtube.com&#x2F;playlist?list=PLSkhUfcCXvqH2sgJa8_gnB41_...</a>
sbarreover 1 year ago
When I want to take the next step with a new language, I usually find a popular or interesting framework&#x2F;library for that language, and I do a deep dive into the codebase.<p>Set it up for local development, then step through calls with a debugger, look at the whole call&#x2F;request lifecycle, start to tinker with the subsystems..<p>It&#x27;s a great way to see the real-world usage of all the core concepts you&#x27;ve been introduced to in the intro&#x2F;learning courses or tutorials, and be exposed to more advanced patterns.<p>For Elixir, the obvious choice would be Phoenix if you&#x27;re on the web app side of things..
sltrover 1 year ago
It&#x27;s not Elixir, but I&#x27;m working through Jeremy Koppel&#x27;s &quot;Advanced Software Design Course&quot;. I&#x27;ve been coding for 22 years and it is definitely growing me.<p><a href="https:&#x2F;&#x2F;www.mirdin.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.mirdin.com&#x2F;</a>
评论 #38816702 未加载
评论 #38808078 未加载
评论 #38806296 未加载
评论 #38916886 未加载
评论 #38809421 未加载
评论 #38806992 未加载
__mpover 1 year ago
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.<p>I understand that this might not fit your use-case, but it&#x27;s worth a try. Just be aware that it tends to hallucinate APIs.
评论 #38805429 未加载
评论 #38805624 未加载
评论 #38805465 未加载
User23over 1 year ago
Well it&#x27;s not popular (even though it ought to be), but Edsger Dijkstra&#x27;s <i>A Discipline of Programming</i> is an approachable and informal (by the author&#x27;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&#x27;ll definitely want to skim or skip large chunks of it. Also some of the papers are just acerbic observations on life, which some people like and some don&#x27;t.<p>And there&#x27;s it&#x27;s big brother <i>Predicate Calculus and Program Semantics</i> by Dijkstra and Scholten that more rigorously formalizes the same approach.<p>Dafny[2] is one approach out of Microsoft Research that attempts to provide automated tooling around some of those concepts.<p>All of the above are excellent places to start if you&#x27;re interested in learning how to write better code with the imperative languages that you&#x27;re actually going to use professionally.<p>[1] <a href="https:&#x2F;&#x2F;www.cs.utexas.edu&#x2F;users&#x2F;EWD&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.cs.utexas.edu&#x2F;users&#x2F;EWD&#x2F;</a><p>[2] <a href="https:&#x2F;&#x2F;dafny.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;dafny.org&#x2F;</a>
评论 #38811733 未加载
AlchemistCampover 1 year ago
The more advanced a book or course is, the less popular it can be. What are you looking for in a resource that you don’t get from the docs? Knowing that might help narrow down the recommendations.<p>If you’re looking to understand what makes Elixir different from the most popular languages and how OTP works, I’d suggest <i>Elixir in Action</i>: <a href="https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;elixir-in-action-third-edition" rel="nofollow">https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;elixir-in-action-third-edition</a><p>If you’re already familiar with that, then take a look at the books from Pragmatic Bookshelf. They have quite a few books that cover different aspects of Elixir development including a recent ML-focused one: <a href="https:&#x2F;&#x2F;pragprog.com&#x2F;categories&#x2F;elixir-phoenix-and-otp&#x2F;" rel="nofollow">https:&#x2F;&#x2F;pragprog.com&#x2F;categories&#x2F;elixir-phoenix-and-otp&#x2F;</a>
whalesaladover 1 year ago
I don’t have any general course recommendations but the strange loop conference videos have been the most inspiring for me. I hope to attend soon, and a life goal of mine is to have something interesting enough to present there.<p>For Elixir, Dave Thomas’ coding gnome “elixir for programmers” course skips all the menial BS about “what is a string” etc and goes right into the meat and potatoes of leveraging the language correctly. I loved it.
评论 #38806525 未加载
评论 #38813104 未加载
评论 #38806741 未加载
Q6T46nT668w6i3mover 1 year ago
The obvious “next step” is experiential, i.e., write complicated programs. Books about writing compilers, databases, operating systems, emulators, file systems, etc. are all useful.
评论 #38805324 未加载
eatonphilover 1 year ago
David Beazley teaches weeklong intensive courses on Raft and interpreters and SICP. Good use of a corporate education budget.<p>I have no affiliation with it I just love the idea and hope to see more like this.<p><a href="https:&#x2F;&#x2F;www.dabeaz.com&#x2F;courses.html" rel="nofollow">https:&#x2F;&#x2F;www.dabeaz.com&#x2F;courses.html</a>
angarg12over 1 year ago
As others have said, expert-level material tend to not lend itself well to a book format.<p>Instead I find a lot of advance level knowledge is usually shared in tech blog posts and tech talks. The quality of these tends to vary a lot, so you need a bit of curation and due diligence. I myself found the videos from InfoQ very useful with 15 yoe (particularly in the software architecture track).<p>And if you want the really advanced stuff, you can also read papers. The barrier to entry is higher and sometimes is difficult to connect them to your everyday problems, but it doesn&#x27;t get more cutting edge that than.
endukuover 1 year ago
Mirdin[0] can be helpful too.<p>[0] <a href="https:&#x2F;&#x2F;self-service.mirdin.com&#x2F;products&#x2F;advanced-software-design-self-service&#x2F;categories&#x2F;" rel="nofollow">https:&#x2F;&#x2F;self-service.mirdin.com&#x2F;products&#x2F;advanced-software-d...</a>
jventuraover 1 year ago
If you&#x27;re learning Python, and know other programming languages, I have this online ebook [1] that I use with my students so that they learn Python fast enough so that I can teach them about socket programming.<p>Basically, in each chapter I give a small detailed introduction to the topic and then students do some exercises to solidify things.<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;joaoventura&#x2F;full-speed-python">https:&#x2F;&#x2F;github.com&#x2F;joaoventura&#x2F;full-speed-python</a>
评论 #38825485 未加载
dartosover 1 year ago
<a href="https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;the-little-elixir-and-otp-guidebook" rel="nofollow">https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;the-little-elixir-and-otp-guid...</a><p>I read this book years ago when i was first learning elixir. I was coding for about 8 years at the time, so not new to the game.<p>I liked it a lot. I don&#x27;t think i wrote every project in the book, but it helped me wrap my head around OTP and how erland&#x2F;elixir projects are structured.<p>Highly recommend it.
评论 #38805887 未加载
aristofunover 1 year ago
There are no decent educational resources for experienced programmers (except books for narrow specific technical topics).<p>I know that from personal experience as an engineer and an educator.<p>There are strong economical reasons for that:<p>1. Experienced engineers can only learn something worthwhile from much more experienced ones<p>2. Extremely experienced engineers are rare kind on its own<p>3. Being a good teacher is a standalone set of skills and attitudes<p>4. It is extremely small set of intersection between being good engineer and a good teacher.<p>5. Courses from such people would cost a fortune to cover time and effort.<p>6. Experienced developers while being a paying audience, are at the same time extremely picky and hard to educate (because they already feel smart and know how to do things). Which makes situation even worse.<p>7. At the same time there are millions of noobs ready to consume almost anything you throw at them.<p>So imagine you are an engineer capable of teaching something. What would you do?
dceddiaover 1 year ago
For Elixir specifically, I liked Dave Thomas’ Elixir for Programmers. <a href="https:&#x2F;&#x2F;codestool.coding-gnome.com&#x2F;courses&#x2F;elixir-for-programmers-2" rel="nofollow">https:&#x2F;&#x2F;codestool.coding-gnome.com&#x2F;courses&#x2F;elixir-for-progra...</a><p>For learning about performance and low level stuff, Casey Muratori’s Performance Aware Programming course has been great. <a href="https:&#x2F;&#x2F;computerenhance.com" rel="nofollow">https:&#x2F;&#x2F;computerenhance.com</a><p>For higher level software design stuff (beyond just GoF patterns), check out James Koppel’s writing at <a href="https:&#x2F;&#x2F;www.pathsensitive.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.pathsensitive.com&#x2F;</a> and his courses at <a href="https:&#x2F;&#x2F;mirdin.com" rel="nofollow">https:&#x2F;&#x2F;mirdin.com</a>
jugjugover 1 year ago
Lately, I have been struck by pragmatism of approaches discussed in <a href="https:&#x2F;&#x2F;clojuredesign.club&#x2F;" rel="nofollow">https:&#x2F;&#x2F;clojuredesign.club&#x2F;</a><p>For example, one can start separating pure functions from side-effects, aiming for aggressively minimal side-effecting functions. Applying this approach to calling REST APIs, one would first create a full request (including the http method, body, headers, etc) in a pure function, and only then send that request to the wire. With such a split, one can easily unit-test the request construction (it&#x27;s a pure fn), and also explore the request.<p>It was mind-bending to me when I first heard it. The podcast is full of such approaches and it seems that Chris and Nate, the hosts, have quite some battle scars to source from.
评论 #38808805 未加载
dinvladover 1 year ago
For Elixir, take a look at Phoenix LiveView course from <a href="https:&#x2F;&#x2F;pragmaticstudio.com" rel="nofollow">https:&#x2F;&#x2F;pragmaticstudio.com</a> - they don&#x27;t start from the beginning, and assume you are already familiar with Phoenix from the guides.
weinzierlover 1 year ago
Besides most courses being beginner-focussed, there are at least two other related problems:<p>- Most advanced courses sell themselves dishonestly as beginner-friendly even if they aren&#x27;t after the first couple of lessons. On the free market everyone is after every single potential customer, no matter what.<p>- Everything is stretched out so much that information density is annoyingly low. Again free market pays per page and minute and not value.<p>You might have more luck looking at resources produced free from these constraints and the best place I know is university courses. Still, good ones are hard to come by, but I learned a ton at uni I&#x27;d never had learned outside.
Jeayeover 1 year ago
I&#x27;m hijacking a bit, but one thing I&#x27;ve been really wanting is some advanced optimization material for C++. There&#x27;s so much that goes into data locality, branch elimination, faster ways to copy word-aligned data, and so on. I&#x27;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?<p>Closest thing I found recently is this: <a href="https:&#x2F;&#x2F;agner.org&#x2F;optimize&#x2F;optimizing_cpp.pdf" rel="nofollow">https:&#x2F;&#x2F;agner.org&#x2F;optimize&#x2F;optimizing_cpp.pdf</a>
评论 #38810283 未加载
评论 #38812774 未加载
bmacover 1 year ago
<a href="https:&#x2F;&#x2F;www.destroyallsoftware.com&#x2F;screencasts" rel="nofollow">https:&#x2F;&#x2F;www.destroyallsoftware.com&#x2F;screencasts</a> are classics and the content and presentation have aged quite well over the years.<p>The topics demonstrate intermediate&#x2F;advanced web development&#x2F;tdd concepts in Ruby but the lessons can easily be applied in other languages. There are even a few videos that show this approach with Python and C.
sn9over 1 year ago
A little known book that many might find interesting is Cristina Lopes&#x27;s <i>Exercises in Programming Style</i> which takes a single problem and solves it in 40 different ways using Python. [0]<p><a href="https:&#x2F;&#x2F;www.amazon.com&#x2F;Exercises-Programming-Style-Cristina-Videira-dp-0367360209&#x2F;dp&#x2F;0367360209" rel="nofollow">https:&#x2F;&#x2F;www.amazon.com&#x2F;Exercises-Programming-Style-Cristina-...</a>
cassianolealover 1 year ago
Specifically for Elixir, I found the first edition of Elixir for Programmers [0] by Dave Thomas to be very good.<p>It&#x27;s now on the second edition which I haven&#x27;t done.<p>[0] <a href="https:&#x2F;&#x2F;codestool.coding-gnome.com&#x2F;courses&#x2F;elixir-for-programmers-2" rel="nofollow">https:&#x2F;&#x2F;codestool.coding-gnome.com&#x2F;courses&#x2F;elixir-for-progra...</a>
评论 #38805141 未加载
christofoshoover 1 year ago
The ideas shared in the post replies are great. My approach has been more hands-on and puzzled together recently. I&#x27;ve been digging into harder problems on sites like leetcode to learn more math, and solidify some algorithm and data structure concepts. It has really helped me feel more confident and erase some of the lingering imposter syndrome around the algorithm-side of programming. A great guide that got me started on this was the tech interview handbook[1], which helped me dig into specific concepts instead of just randomly targeting. I&#x27;ve found my ability to review code has also improved through this, as I am picking up different libraries and concepts that I wouldn&#x27;t have otherwise.<p>1. <a href="https:&#x2F;&#x2F;www.techinterviewhandbook.org&#x2F;algorithms&#x2F;study-cheatsheet&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.techinterviewhandbook.org&#x2F;algorithms&#x2F;study-cheat...</a>
neillyonsover 1 year ago
For Elixir Dave Thomas has a video series <a href="https:&#x2F;&#x2F;codestool.coding-gnome.com&#x2F;courses&#x2F;elixir-for-programmers-2" rel="nofollow">https:&#x2F;&#x2F;codestool.coding-gnome.com&#x2F;courses&#x2F;elixir-for-progra...</a><p>For a general programming book I recommend Unit Testing by Vladimir Khorikov <a href="https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;unit-testing" rel="nofollow">https:&#x2F;&#x2F;www.manning.com&#x2F;books&#x2F;unit-testing</a> which was recommended by Saša Jurić
Arubisover 1 year ago
Getting more focused on a particular subtopic seems to be a good way to get somewhat more advanced material. PragProg has a bunch of books for the Elixir ecosystem that might be up your alley (<a href="https:&#x2F;&#x2F;pragprog.com&#x2F;titles&#x2F;smgaelixir&#x2F;genetic-algorithms-in-elixir&#x2F;" rel="nofollow">https:&#x2F;&#x2F;pragprog.com&#x2F;titles&#x2F;smgaelixir&#x2F;genetic-algorithms-in...</a>, for example).<p>I recently went through the Typescript resources over at <a href="https:&#x2F;&#x2F;executeprogram.com" rel="nofollow">https:&#x2F;&#x2F;executeprogram.com</a> and found them really effective at solidifying the edges of that particular language for me; wish that was available for more ecosystems.
评论 #38807455 未加载
rubicksover 1 year ago
Here&#x27;s a heuristic that works for me, for $foobar, any language and&#x2F;or sufficiently complicated tech:<p>Within the documentation, find the sections that deal with the following topics:<p><pre><code> * extending $foobar * embedding C in $foobar * embedding $foobar in C * packaging&#x2F;distributing $foobar * porting&#x2F;cross-building $foobar </code></pre> In my experience, these topics are inherently hardest to implement, last to be documented, and trickiest to understand. As such, they make for worthwhile reading for advanced practitioners.
Jtsummersover 1 year ago
More towards the advanced side I&#x27;d recommend Fred Hebert&#x27;s <i>Property-Based Testing with PropEr, Erlang, and Elixir</i> - <a href="https:&#x2F;&#x2F;pragprog.com&#x2F;titles&#x2F;fhproper&#x2F;property-based-testing-with-proper-erlang-and-elixir&#x2F;" rel="nofollow">https:&#x2F;&#x2F;pragprog.com&#x2F;titles&#x2F;fhproper&#x2F;property-based-testing-...</a><p>It&#x27;s also one of the best resources I&#x27;ve come across on property-based testing and is something I recommend to non-Erlang&#x2F;Elixir programmers as well.
barracuthaover 1 year ago
In this regard, has anyone tried codecrafters.io? Is it worth it?
评论 #38805480 未加载
评论 #38807886 未加载
pmarreckover 1 year ago
I&#x27;m guessing that anything functional-language-focused aimed at a higher level would work. But I would also like to know the answer to this (and also am focused on Elixir).<p>Informally I just tend to write tight modules that loosely adhere to hexagonal architecture and are easy to unit-test.<p>I&#x27;m at a startup that is hiring, btw (I would be the one to reach out to). Seeking someone that is... probably like you, actually. Interested in Elixir but trying to aim higher as a self-motivated learner.
评论 #38805125 未加载
评论 #38805094 未加载
weatherlightover 1 year ago
Dive into the BEAM VM. <a href="https:&#x2F;&#x2F;github.com&#x2F;happi&#x2F;theBeamBook">https:&#x2F;&#x2F;github.com&#x2F;happi&#x2F;theBeamBook</a>
hoenieover 1 year ago
You might like <a href="https:&#x2F;&#x2F;exercism.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;exercism.org&#x2F;</a><p>Learning by doing, with the help of mentors. Excellent way to learn a next language (as you are already familiar with the programming concepts).
LouisSayersover 1 year ago
I was quite impressed with Ardan Labs go tour[1] (free) for learning go.<p>More of an intermediate resource, but was really good for helping to nail down some golang basics.<p>Would be interesting to hear from people that have taken their courses.<p>[1] <a href="https:&#x2F;&#x2F;tour.ardanlabs.com&#x2F;tour&#x2F;eng&#x2F;list" rel="nofollow">https:&#x2F;&#x2F;tour.ardanlabs.com&#x2F;tour&#x2F;eng&#x2F;list</a>
jasonjmcgheeover 1 year ago
Both of Robert Nystrom’s books are awesome and don’t feel beginnery <a href="http:&#x2F;&#x2F;stuffwithstuff.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;stuffwithstuff.com&#x2F;</a><p>Building games and interpreters both feel niche, but i really love working on dramatically different problems than usual. Really helps expand my perspective
netbioserrorover 1 year ago
Aside from raw theory, the best thing you can do is try to translate a project you have, maybe a toy project of reasonable complexity, and rewrite it idiomatically in the new language. Use all the preferred methods, semantics, and modeling tools of the target language. Use the language&#x27;s docs and X in Y Minutes page.
评论 #38805784 未加载
andixover 1 year ago
Advent of Code (<a href="https:&#x2F;&#x2F;adventofcode.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;adventofcode.com&#x2F;</a>)<p>It&#x27;s not a programming course per-se, but it&#x27;s a great resource to master the skill of coding and problem solving.<p>It&#x27;s just one part though, it won&#x27;t teach you anything about architecturing a bigger system.
fuzztesterover 1 year ago
Publishers like Wiley, Addison-Wesley (?), Pearson, Springer Verlag, etc. used to publish some good quality books on advanced topics, at least some years ago. Don&#x27;t know how it is these days.
sberensover 1 year ago
I&#x27;ve heard good things about Bradfield CS[0] and CSPrimer[1] (both run by the same person).<p>[0] <a href="https:&#x2F;&#x2F;bradfieldcs.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;bradfieldcs.com&#x2F;</a><p>[1] <a href="https:&#x2F;&#x2F;csprimer.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;csprimer.com&#x2F;</a>
trmpakufnfeeover 1 year ago
I would not call myself experienced, but I often find myself glancing over documentation first (building a mental model and a map of what features are offered by this thing), then trying to build something, rather than sit through a slow paced course. This may or may not work for you.
theususover 1 year ago
I will suggest doing SICP. It teaches good FP patterns, and might complement another FP language well.
8BitArmourover 1 year ago
<a href="https:&#x2F;&#x2F;app.codecrafters.io&#x2F;catalog">https:&#x2F;&#x2F;app.codecrafters.io&#x2F;catalog</a> not exactly a course but worth doing it
cpursleyover 1 year ago
This is a pretty great Elixir course that goes into advanced topics: <a href="https:&#x2F;&#x2F;kamilskowron.gumroad.com&#x2F;l&#x2F;cSGdY" rel="nofollow">https:&#x2F;&#x2F;kamilskowron.gumroad.com&#x2F;l&#x2F;cSGdY</a><p>&quot;Hands-on Elixir &amp; OTP: Cryptocurrency trading bot&quot;
freetonikover 1 year ago
Gary Bernhardt&#x27;s Execute program is a nice resource <a href="https:&#x2F;&#x2F;www.executeprogram.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.executeprogram.com&#x2F;</a>
drwlover 1 year ago
My take is that there’s such variance in people’s skill levels and so it’s really hard to cater educational programming content. Personally, I’ve found getting introductory books&#x2F;courses and skimming through it until you hit something that you don’t understand and then diving deeper into that bit.
评论 #38805241 未加载
snicker7over 1 year ago
SICP. Lectures are on YouTube.
zaptheimpalerover 1 year ago
There are so many great books on specific domains but it depends on what you want to learn and you can then search for that. &quot;Programming&quot; is obviously too broad a category for experienced people.
mmmBaconover 1 year ago
If you’re looking for advanced courses in Python, I highly recommend a workshop or class from James Powell.<p><a href="https:&#x2F;&#x2F;www.dontusethiscode.com" rel="nofollow">https:&#x2F;&#x2F;www.dontusethiscode.com</a>
tomjakubowskiover 1 year ago
The Practice of Programming by Kernighan and Pike. Intermediate-ish level<p>the latter part of the book is especially good. chapters on performance and notation stand out
_astover 1 year ago
Yeah, I see this problem. And I found some solution for this issue. We need to promote coaching relationships between starters and experienced engineers.
crabboneover 1 year ago
I don&#x27;t know anything about learning Elixir, so, cannot help on that specific topic.<p>But, here&#x27;s how I conceptually think about advancing one&#x27;s understanding in programming.<p>First, you can aim for breadth or for depth of knowledge. So, learning another language is, in itself a kind of &quot;advance&quot;. However, for depth, you&#x27;d usually want to pick a specific sub-discipline in programming and concentrate on that. You will have better luck with choosing theoretical disciplines, because those usually are rooted in math, and so have longer history and more systematic approach. The more &quot;practical&quot; aspects usually follow the arc of having an introductory course (at best) with the next learning stage being an &quot;area of active research&quot; (also, the intro course would typically be bad).<p>To give you an example: in college I became interested in regular languages. So, I was looking to expand my knowledge on the subject. Out of all things that I could dig up on regular languages two seemed most appealing: approximation of context-free grammars with regular languages and equivalence between generating functions and regular languages. In a short while I realized that I don&#x27;t have enough of mathematical background to go after the generative functions part, but the approximation part turn out to be fun and interesting. I was able to dig up some papers and even try my hand in doing something with the concept.<p>You&#x27;d have similar success if you went after types in programming languages. There are plenty of publications, and you will have multiple steps ahead of you before you run up the wall of &quot;area of active research&quot;. My journey down that path started with Benjamin C. Pierce&#x27;s Types in Programming Languages.<p>Another direction you may consider is to try to generalize your knowledge. For example, of programming languages. In this regard, I find the book by Shriram Krishamurthy, Programming Languages: Application and Interpretation to be a good introduction to the theoretical side of crafting and evaluation of programming languages.<p>There are, also, unfortunately, some areas where a lot of programming work has been done, but very little learning material is available, and, especially nothing deep has been produced. For example, if you want to go down the system programming route... there are books, that&#x27;s true, but the level of generalization leaves a lot to be desired. It&#x27;s often boggled in all kinds of &quot;practical advise&quot; and very concrete examples based on Linux Kernel code long ago replaced by something else (or worse yet, but original Unix code etc.)<p>Or, even worse, if you consider fields like testing. Or even GUI. It&#x27;s surprisingly common and yet surprisingly without much analysis or structure.
roumenguhaover 1 year ago
On a similar note, does anyone have any resources for traditional computer vision, SLAM, and computational geometry?
falcor84over 1 year ago
Here&#x27;s a &quot;life hack&quot; - get a good book that doesn&#x27;t make any assumptions about your background but otherwise goes deep, and then use an LLM&#x27;s &quot;talk to pdf&quot; functionality (e.g. via the paid ChatGPT subscription). You can then describe the LLM your particular background and ask it to walk you through the book while skipping through &quot;the boring parts&quot; you are already familiar with.
7sidedmarbleover 1 year ago
What would you be interested in learning about Elixir? I&#x27;m writing educational content now.
demon-code-999over 1 year ago
are you talking about learning better ways to organize code &#x2F; systems to buy into? i mean literally just pick up books on IL and there you go. I dont understand what &quot;experienced&quot; coder means here... you should be able to research on your own @ 10 years+
weaksauceover 1 year ago
the Architecture of open source applications is a pretty interesting book to see real world examples of design <a href="https:&#x2F;&#x2F;aosabook.org&#x2F;en&#x2F;index.html" rel="nofollow">https:&#x2F;&#x2F;aosabook.org&#x2F;en&#x2F;index.html</a>
GuestHNUserover 1 year ago
computerenhance.com is a course focused on understanding how to measure and write high performance software. It&#x27;s a great course targeting experienced programmers.
jantypas2over 1 year ago
Well, I don&#x27;t know how advanced I am (except in age). But I have found the best advanced training is the same as it was in college. No book makes up for the late night hours. I find other projects and offer to help -- there&#x27;s always a shortage of coding labor (especially if it&#x27;s free). You learn what the book or course never discusses -- things like &quot;What the heck was the person trying to do here?&quot; and &quot;Even God doesn&#x27;t know how this code works!&quot; You know you&#x27;re in trouble when you see &quot;Oh God! What an evil hack! But it works... don&#x27;t touch anything!&quot; or &quot;Good luck future Matt! You KNEW this was a horrible job, but did you come back in time and stop me?&quot;
revskillover 1 year ago
No, there&#x27;s no such thing as &quot;advanced&quot;. It&#x27;s just that people &quot;forgot&quot; fundamentals of things, then they see those &quot;fundamentals&quot; as advanced.<p>I do think, teaching is hard. It basically turned &quot;advanced&quot; into &quot;fundamentals&quot; with correct teaching&#x2F;learning approach.