koshak
Joined 13 years ago
Joined 13 years ago
The only font designers who care about clear distinction of symbols are those who create fonts for coders
Simple clarity test:
Il10O
All 5 chars should have clear distinction. Otherwise the font is shit.
The truth is: 1. No one cares 2. Choose one of two and stick to it 3. Care to maintain a redirect from the second option to the chosen one.
Cheers!
>Sie können ganz einfach einzelne Einträge oder ganze Themenbereiche löschen. Außerdem können Sie in den Einstellungen festlegen, welche Daten mit Ihrem Konto verknüpft werden sollen.
In two out of three occurrences I read "Sie" as "They" )) Fun!
2. '{}'.format(). besides, print is a function
3. python versions you use as a ref in your book were released more than 5 years ago. All major projects have dropped support for them in favor of python 3.3+. Today it is difficult to find a project that doesn't support python3. There's not so much diff between py3.4 and py2.7. What is frustrating?
4. Occam's razor and K.I.S.S. tell me keep my stack as small as I can. Beginners better learn right principles than "easiness". Show them what's really effective. Programming is 95% mental work, 1% coding, 4% testing/debugging/optimizing. Teacher cannot inject knowledge into student's mind, but he can show the right direction and help make first steps.
5. comprehensions are idiomatic. context managers are idiomatic. Begin from the beginning. Begin from "import this".
6. well, yes. Your "they will learn that later" mantra is one of them.
I ditched the idea that learning programming begins with choosing a language and learning its basics. Instead you go learn KISS, DRY, YAGNI, etc., history of programming languages, stateful vs stateless, and learn this by practice, by exercise, just like playing the guitar. You begin with handling the instrument the right way and learning basics of music theory and once you get the idea of pentatonic scale and bebop you can go practice it, not vice versa. Well, you can play bebop in pentatonic and not be aware of what you're doing, but understanding the underlying theory and alternative approaches is the key to learning more complex things and discovering new horizons.
Relearning is a bad habit. Reusing your knowledge and expereince is a good one.
Later on I was taught some C and x8086 assembly. I needed to forget Pascal. But I didn't get C.
Then I was introduced to OOP and C++ and was pissed off. I needed to forget procedural programming (at that time I didn't even know it was called that). But I didn't get it.
When I started to learn Python I dove deep in its OOP, data model, magic methods, functools, itertools, datatypes, any "writing idiomatic" and "top mistakes python programmers make" articles. When I didn't understand something (and it was a lot!), I walked to read theory about programming approaches, duck typing, functional programming, Guido disgusted by functional programming, difference and tragedy of py2/3 dichotomy, by the way learning a lot about programming, design patterns, computer science and history of all of that.
When I started all my knowledge about programming before learning python this way was just buzz words and almost no real experience.
But learning python this way - the hard way - allowed me to learn programming, its theoretical concepts. When I got stuck with something, I just hadn't move on till I understood everything the right way.
Where do you teach your readers to think right?
Python 2.6.5
no use of context managers when working with files
no use of format when working with text formatting and output
"Avoid any project that mentions "Python 3""
"Every if-statement must have an else"
no list|dict|generator|set comprehensions.
no idiomatic hints
no gotchas.
Definitely a hard way.
Having learnt wrong leads to hard learning to do right.
I delegated the fine tuning and customization to a third party once I realized I don’t have time for it anymore.
I am fine with it although it is not ideal and there is room for improvement. There is always some. Everywhere.
Please ping me from future when Linux (or Fuchsia or whatever is there in the second half of 2020s) is capable of that as well and there are vendors/providers who are honest, dependable and trusted who I can allow to store my data, identity and privacy and have good sleep.
Cheers.