Daniel Düsentrieb<p>tl,dr: imho beginners should start with with either Go or Lua</p><p>Friends hit me with the age old question for their child which wants to learn programming: which language should one start with?</p><p>This had me thinking quite a bit. First thing that came to my mind was <a href="https://social.linux.pizza/tags/Kotlin" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Kotlin</span></a>, my favourite, but I wouldn't recommend it for beginners, because it is quite heavy in high level concepts. </p><p>To get results quickly the obvious choice would be a dynamic language like <a href="https://social.linux.pizza/tags/Python" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Python</span></a> or <a href="https://social.linux.pizza/tags/Lua" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Lua</span></a>. The later being embedded in many games. </p><p>On the other hand, to get a good understanding of data structures a strongly typed language would arguably be better. <a href="https://social.linux.pizza/tags/Java" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Java</span></a> wouldn't be bad for this because its verboseness makes these things visible at all times. But since I tipped my toes into <a href="https://social.linux.pizza/tags/Go" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Go</span></a>, I think this has actually the best balance between ease of use, use cases and teaching important concepts.</p><p>Anyway, maybe I'm missing an important point here. What would you recommend for beginners?</p><p><a href="https://social.linux.pizza/tags/programming" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>programming</span></a> <a href="https://social.linux.pizza/tags/beginner" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>beginner</span></a></p>