Let me give you some advice about how to learn programming:

  1. Read books about algorithms. I can recommend anything written by Sedgewick.
  2. Program "find substring" in the language you want to learn. Don't avoid 
this exercise because the language's library already offers it -- the point is 
to program it yourself.
  3. Avoid: regular expressions and PEGs.
  4. Focus on programming tasks: Ideally you only use functions from libraries 
that you could have written yourself but didn't for the lack of time, not 
because you couldn't do it at all.



As your programs grow bigger, avoid the `string` datatype. `string` indicates a 
lack of structure, it's effectively dynamically typed code. Use the static type 
system to the best of your abilities.

Nim is not optimized for beginners but it's not a bad choice either:

  * The static type system enforces good programming habits and helps you 
structure your problem.
  * Its notation is not so far off from Python/Java so that code snippets can 
be translated rather easily.
  * The language grows with you, there is no need to switch the language once 
you get past a certain program size.



Sure, the documentation could be better and sometimes "2 line helper procs" are 
missing from the standard library, but that's details that won't help you as 
much as you seem to think. You don't need "more fish", you need to learn how to 
fish.

Reply via email to