Only Bayes Can Judge Me

  • 17 Posts
  • 638 Comments
Joined 2 years ago
cake
Cake day: July 4th, 2023

help-circle

  • There is nothing wrong with learning python in general or as a first language. My gripe is more that if you self teach it with no software engineering thought, you end up with some real bad habits that lead to bad code, like:

    • not documenting code with comments etc.
    • not testing
    • not understanding data types
    • RE: micropython, and other python wrappers: not understanding the underlying wrapped thing.
    • complaining when other languages are as easy or convenient as python

    So as long as you avoid that you might be good.

    Also specifically with micropython: it’s good to get something working, just don’t expect it to be fast. And if you want it to be fast, you’re going to have to learn C.


  • Great question that I don’t have a good answer to. My bit about python was more just a throwaway joke that was also supposed to indicate that my own opinions aren’t sufficient to write the linked article.

    Here are some wrong answers, but with reasons for and none against:

    • Assembly: really gets you to understand that you are contending with a computer chip, and that anything interesting that you want to do requires abstraction.
    • C: similar to the above, but also gets you to understand some of the fundamental aspects of programming languages, mostly memory.
    • Perl: if you’re willing to teach python, why not Perl? Less readable, more magic, fun language to play golf with, so tutorial exercises could be fun.

    By coincidence, these are the first three languages that I encountered as a CS student with no preexisting knowledge of programming (not in this order).

    Anyway, for something approaching a real suggestion: Dart/Flutter could be an interesting choice, for some of the reasons given in the article for HTML. I haven’t given this much thought so this might still be a bad answer. Also this is the language I’m using at work right now.