<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="147225" data-post-id="147225">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Maartz" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Maartz/120/18629_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Maartz
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Oh that’s a good surprise ! Directly bought it !</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="147225" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-for-programmers-pragdave/6335/74">Post #73</a>
	                </div>
	            </div>
              <div id="likers-container-147225" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="147225"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #73"></div>
  </section>
</div>
    <div class="postbit" id="161381" data-post-id="161381">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="dogweather" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/dogweather/120/1906_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  dogweather
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I recently bought the course and love it: opinionated, and filled with wisdom and design notes. Going through it, there are just a few things that I’m a little unsure of. Caveat, I’m only 38% of the way through it:</p>
<ul>
<li>He makes changes to code first, and gets the tests passing again <em>afterwards</em>. I believe, though, that this takes away some of the tests’ strength, as opposed to first changing the tests, and <em>then</em> the code.</li>
<li>I think that an implicit state machine is created, and to understand it, one must read the whole code. A small improvement would be to create “constants” for the various state symbols, to allow the compiler to catch misspellings.</li>
<li>The function naming confuses me every time I come back to the code. E.g., <code>tally/1</code>. Maybe I’m used to Ruby, where we try to signal whether it’s a function or procedure, and what the return value is. I’d expect (depending on what it actually does) something like <code>compute_tally</code>, <code>tally_for(game:)</code>, etc. Likewise, <code>score_guess()</code>.</li>
<li>So far, there are no “keyword parameters” (not sure what these are called in Elixir. This also makes it harder for me to understand function inputs. And then, I find that I often have to read through a function or two to determine one’s output. It’s very possible I’m not approaching Elixir the right way.</li>
<li>He doesn’t use the <code>{ :ok, ... }</code> &amp; <code>{ :error, ... }</code> convention and so more functions are impure than I would personally make.</li>
</ul>
<p>Overall, though, a very valuable course.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="161381" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-for-programmers-pragdave/6335/75">Post #74</a>
	                </div>
	            </div>
              <div id="likers-container-161381" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="161381"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #74"></div>
  </section>
</div>
    <div class="postbit" id="169581" data-post-id="169581">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="L0cutus" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/L0cutus/120/15981_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  L0cutus
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hello,</p>
<p>is this course still up to date ?</p>
<p>thanks !</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="169581" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-for-programmers-pragdave/6335/76">Post #75</a>
	                </div>
	            </div>
              <div id="likers-container-169581" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="169581"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #75"></div>
  </section>
</div>
    <div class="postbit" id="169583" data-post-id="169583">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="LukeWood" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/LukeWood/120/17097_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  LukeWood
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I can personally attest to Dave’s talent as a teacher - he has a really unique perspective and problem solving approach.  I’d highly recommend the course!</p>
<p>I was lucky enough to take his university course and have been active in the elixir community since!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="169583" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-for-programmers-pragdave/6335/77">Post #76</a>
	                </div>
	            </div>
              <div id="likers-container-169583" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="169583"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #76"></div>
  </section>
</div>
    <div class="postbit" id="223395" data-post-id="223395">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="maxdevjs" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/maxdevjs/120/23683_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  maxdevjs
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hello <a class="mention" href="/u/astonj" rel="nofollow">@AstonJ</a></p>
<p>Would you recommend the course nowadays? The “<img src="https://forum.elixirforum.com/images/emoji/apple/thinking.png?v=15" title=":thinking:" class="emoji" alt=":thinking:" loading="lazy" width="20" height="20">” about Elixir presented in the course is still relevant today? I guess most of it should be still valid, but as I am starting now I do not know how things have changed in four years <img src="https://forum.elixirforum.com/images/emoji/apple/thinking.png?v=15" title=":thinking:" class="emoji" alt=":thinking:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="223395" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-for-programmers-pragdave/6335/78">Post #77</a>
	                </div>
	            </div>
              <div id="likers-container-223395" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="223395"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #77"></div>
  </section>
</div>
    <div class="postbit" id="223403" data-post-id="223403">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Maartz" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Maartz/120/18629_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Maartz
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>The only drawbacks from this course, is that, it teaches GenServer in a very unconventional fashion. Albeit that, it’s a very good course!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="223403" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-for-programmers-pragdave/6335/79">Post #78</a>
	                </div>
	            </div>
              <div id="likers-container-223403" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="223403"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #78"></div>
  </section>
</div>
    <div class="postbit" id="231895" data-post-id="231895">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="AstonJ" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/AstonJ/120/15_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  AstonJ
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This course has been re-recorded and released as a new edition, please see the thread here:</p>
<aside class="quote quote-modified" data-post="1" data-topic="43856">
  <div class="title">
    <div class="quote-controls"></div>
    <img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/astonj/48/15_2.png" class="avatar">
    <div class="quote-title__text-content">
      <a href="https://forum.elixirforum.com/t/elixir-for-programmers-second-edition-pragdave/43856/" rel="nofollow">Elixir for Programmers, Second Edition (video course) (self-published)</a> <a class="badge-category__wrapper " href="/c/learning-resources/courses/62" rel="nofollow"><span data-category-id="62" style="--category-badge-color: #3AB54A; --category-badge-text-color: #FFFFFF; --parent-category-badge-color: #3AB54A;" data-parent-category-id="8" data-drop-close="true" class="badge-category --style-square --has-parent" title="Elixir Courses Section"><span class="badge-category__name">Courses</span></span></a>
    </div>
  </div>
  <blockquote>
    [Screenshot 2021-11-14 at 13.30.44] 
<a class="mention" href="/u/pragdave" rel="nofollow">@pragdave</a> has just released the second edition of his course - it looks like it’s changed quite a bit since <a href="https://forum.elixirforum.com/t/elixir-for-programmers-pragdave/6335" rel="nofollow">the first edition</a> so am posting it as a dedicated thread. 

A Little History
This is the second edition of this course; the original was written in 2016. 
Perhaps surprisingly, the Elixir language itself has not changed much in the intervening years. Some of the tooling works a little differently, but not enough to worry about. The major changes are in …
  </blockquote>
</aside>
 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="231895" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/elixir-for-programmers-pragdave/6335/80">Post #79</a>
	                </div>
	            </div>
              <div id="likers-container-231895" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="231895"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>