It’s interesting how as I’ve progressed as a programmer the things I turn to for therapy have also progressed.
At first it was Scratch: after a span of getting frustrated by Python I would play with Scratch to at least make things that did what I wanted them to.
A little while later I wrote HTML and CSS to feel good about myself, because even when the default padding for <body> screws up your positioning there’s at least SOMETHING on the screen instead of an aggressive error message.
Now, it’s python. When Scheme or Haskell or C or Java or C# (less so C# - it’s actually pretty nice) or even Javascript are bothering me I can always turn to Python to feel better.
I wonder what it’ll be next? Maybe one day I’ll see C++ as my relief. Probably not. But maybe. Perhaps the final evolution of a programmer is when you can feel completely peaceful while writing Posix level C. Perhaps even assembly. Probably not. But perhaps.
and an unholy amount of linear algebra
A lot of computer science algorithms are just means to describe activities humans do naturally.
Sorting a list? Humans do it no problem; heck, in a vacuum one might adhere exactly to a quicksort + insertionsort hybrid (a speedy combo on many datasets) without even knowing it.
Bigger example: graph theory. The foundation of modern databases, neural networks, and gps routing came from the contemplation of the people of Königsberg. Euler just harnessed raw thought into a concrete set of rules and instructions that further our innate abilities.
Tragic news like half the ways people talk about magic in fiction could irl be applied to maths
Well of course. Mina is an ELITE data wrangler.
Want to go on record and say that the owner of this blog did, in fact, read dracula daily. Time and time again I tried to think of fun ways to relate it to programming. Yet time and time again I couldn’t bring myself to do it.
Not because there weren’t ways I could shoehorn in a weird analogy, but because I admired the characters too much to force one. Idk it just felt disrespectful to bring code into this.
Will happily disrespect Dracula, though. Got some real cobol energy from that dinosaur. Particularly the way he drains the life out of a lot of happy, wonderful people.
So I RECOGNIZE that the .NET framework is immensely popular for a good reason. I RECOGNIZE that Visual Studio is a wonderful, amazingly built tool that can probably cut my development time in half. I also RECOGNIZE that simply MAKING A PROJECT has taken me entirely too long.
All of that being said, I RECOGNIZE that the problem definitely is with me rather than with one of the most prominent frameworks, development tools, and collection of programming languages in the industry.
That doesn’t mean I’m not still angry.
This is BY NO MEANS an exhaustive list. In fact, there are MANY, MANY, MORE. I’m just trying to draw attention to the major contributions black people have made to the Computer Science / Programming community.
BLACK LIVES MATTER.
- Lindsay Grace : Designing games with social impacts.
- Marsha Williams : First black woman to earn a PhD in Computer Science. She also lead many initiatives to increase black representation in STEM careers.
- Clennita Justice, Aggrey Jacobs, and Travis McPhail : Employees at Google improving Google Play Books and Google Maps.
- Katherine Johnson : Her work with NASA was critical in putting humans in space.
- Clarence Ellis : First black man to get a PhD in Computer Science. He pioneered Operational Transformation, early group collaboration software for plaintext documents.
- Dorothy Vaughan : Paved the way for African American females at NASA and in programming in general. TAUGHT HERSELF FORTRAN. BEFORE THE INTERNET WAS INVENTED. Imagine trying to learn a low-level programming language WITHOUT Stackoverflow or even ctrl + f.
An epistle on an “oh duh” moment I just had while pondering switch functionality in Python.
Every couple of months when I get back into some hobbyist Python development I find myself DuckDuckGo-ing “switch in Python” and am subsequently always reminded that that’s not explicitly a thing. You, of course, get that functionality from dictionaries.
I’ve always thought that was dumb, but today I was considering it and realized that it’s all because of the interpreted nature of the language. Switch statements have the wicked performance improvements over if ladders in compiled languages because the switch tells the compiler to put a bunch of branches in the intermediate assembly so a lot of unnecessary condition checks are skipped.
Without in-depth knowledge of how the interpreter works, it now becomes clear why you have to use the dictionary. It’s not the Python lords being pretentious and imposing their pythonic ways; you have to be more explicit to the interpreter about where to look for the logic to run because the interpreter doesn’t craft intermediate assembly, it just plows straight through. So a switch in Python would ultimately perform no better than an if ladder.
That doesn’t mean a switch wouldn’t make me happy, mind you.
Writing mergesort in Scheme makes me sooo grateful for python. And Javascript. And Java. And Ruby. And C#. Heck, I’m even grateful for C, at least it lets you access specific list indices.
he/himComplaining on Tumblr is a good alternative to punching my computer screen, right?
72 posts