
An Illusion of mastery - daegontaven
https://www.codementor.io/vivekjoshy/an-illusion-of-mastery-7kji11zok
======
biocomputation
This 'article' starts out with the following generalization:

>> Most people a few months after taking up programming will reach a certain
point where they feel they are the best at what they do.

I don't think this is the least bit true. I think the opposite is true. After
a few months, there will be a small cohort who believe they are well on their
way to mastery. I'm not sure that 'most' people feel this way after a few
months of programming.

These 'lite' articles are starting to infect both Reddit and HN. I'm all for
short pieces, but really, this is like buying a bag of chips at 7-11: it's all
air and no chips.

------
sgentle
I have this conversation with beginners a lot - in fact I usually use the
exact same iterative-vs-functional list construction question. I think it's a
good place to talk about the generality of computing and what that means.

There are an infinite number of possible computers, an infinite number of
possible programming languages, and an infinite number of possible programs
you could write to solve a given problem.

When you start out, just finding any way to solve your problem is so exciting
that you stop there. When you get a bit more experienced, you start finding
more solutions and naturally gravitate to the most clever and interesting
ones. Check it out! I can implement all control flow in our Javascript
application as an infinitely nested function call expansion with a trampoline!

Yes, you can. But should you?

When there are an infinite number of possible solutions, the fact that you can
find one of them is not so impressive. Your skill as an advanced programmer is
rather to choose which of those solutions best conveys your ideas. The
computer can't perceive meaning, but other people can, and every choice
between equivalent solutions is your way of telling them what you were trying
to do.

In that sense, it's no different from any other kind of communication. Why are
you writing this? Who is it for? What do you want them to get from it? And
will it help your goal to drop in some 17th century vocabulary, or construct
your sentences entirely without the letter e?

------
Klockan
Written by a student who calls himself "Python Wizard".

~~~
hoodoof
Let's not discourage youthful exuberance.

------
esturk
I like the 1st method simply because its a generative approach vs a
discriminative approach of the 2nd and 3rd one. Put it another way. This is
analogous to yielding prime numbers through a sieve generation method vs a
filtering method that checks for primality.

~~~
enord
A sieve is _literally_ a filter...

------
millstone
> Who wrote the better version?

The one who moved on instead of bikeshedding.

------
colorint
Of those three, the third is the best because Python uses eager evaluation. Or
else the list(range(0,1000,12)) approach is fine too.

------
hoodoof
There's no right approach, unless specifically defined as such by some Python
standard.

------
DarkKomunalec
Option 4: numbers = list(range(0,1000,12))

