Thatās what self-learning is about. All the information we need cannot be compressed into a single course, and starts with a lot of terminology to get a handle on, as well as grappling with concepts that eventually prove themselves to be very simple, on the face of it. Learning involves struggle, confusion, frustration, exasperation, exhaustion, and yes, lots of failure.
Whatever language we are learning there are official documentation sites for all of them. python.org, docs.python.org, wiki.python.org, are all possible URLs for Python docs. Often the lesson will not cover every aspect of a concept, nor put into practice the more intuitive avenues we can travel down.
Take for instance the range()
function. This came up in another topic, yesterday. The problem has us write a function that will return a list of all the numbers between an input value and 100, inclusive, counting in threes.
The naive approach we typically see implemented always uses an if
statement to qualify the input.
if start < 101:
# return a list
else:
# return an empty list
which often looks similar to thisā¦
if start < 101:
return list(range(start, 101, 3))
else:
return []
This does not take advantage of the behavior of the range function, which is to return an empty list if the bounds are exceeded.
return list(range(start, 101, 3))
accomplishes the same thing without the if statement. If this is not explored in a lesson then it is left to the learner to discover how this behavior can be used in place of explicit logic.
Bottom line, a lesson may omit intuitive aspects which can only be gleaned from reading the documentation to learn what a function actually does, and practice so we can see it in action in all manner of scenarios. Whatever investment we make in ourselves is never wasted if we do not walk away. Take responsibility for doing the leg work, and call the course what it is, a starter, or introduction that only gets us out of the gate. Itās up to us to set the pace after that.