Mtf, that is really nicely said however, as almost total beginner I think I would have to disagree with you. From my experience so far, I came up with solutions which while working were mostly quite cumbersome. Quite often I would do things and it was only later when I was told that it is not even recommended to approach the solution in such (my) way.

Just to illustrate, what I mean. I was trying some exercise on website called 'codewars'. The instruction of the exercise was:

For every positive integer N, there exists a unique sequence starting with 1 and ending with N and such that every number in the sequence is either the double of the preceeding number or the double plus 1.

For example, given N = 13, the sequence is [1, 3, 6, 13]..because:

3 = 2*1 +1

6 = 2*3

13 = 2*6 +1

As you can see from the screenshot (further below), I managed to come up with the solution. However, in totally reversed manner.

I think that would you said probably makes sense but for someone with minimum knowledge of the language (as myself) probably not. I would never be able to come up with the suggested/cleaner approach to the problem simply because I didn't even know that such syntax is possible.