Posts

derive the backpropagation algorithm..

I'd like to be the best person I can be. I'm certain you do, too. Deep down inside, we all do. In my own lifelong quest of self-betterment - both as a software developer, and as a person - what's often helped is when I become aware of some negative habit I didn't realize I had before. Some kind of error in thinking, or trait I'd adopted into my personality, which isn't helping me achieve my highest, best goals in life. Because recognizing them is a good first step to changing them. Awareness, followed by new intention. A few qualities I've recognized in myself, all worth changing, that seem to be common among programmers: 1) Dismissiveness I'm evaluating an idea. Someone's opinion, as they share it with me. And I think: That's stupid. Or: that could never work. Or: that's just (equate it to something else I can easily dismiss). Which is convenient, because if it's stupid, etc., I don't need to think about it any more. After al

But one of most popular web frameworks

This article won't make sense to all Python developers. It only makes sense if you know how to write decorators in Python. That's not a beginner skill. I wouldn't even say it's intermediate, if you're doing it right. Which is why only 1% of all Python developers will ever learn to write them, by my reckoning. That's a shame. The most important libraries in the Python world - Django, Flask, Pytest, SQLAlchemy, and more - use decorators EXTENSIVELY. So when you're in this top 1%, you can start to develop massively powerful libraries yourself. If you're not in this elite 1% yet, there's a way to get there. But first, I'll reveal my taxonomy of decorators. What is a decorator? It's a way to add behavior around a group of functions or methods. Every part of that definition is important. Read this whole article 10 times, if you have to, until you understand it. You apply a decorator to a function (or method). Actually, a group of them. The r

don't have all day to do the interview

Recently I was interviewing some Python developers for a job opening. And I thought I'd share my unorthodox methods for evaluating someone's skill as a developer using Python. That's different from "how well do they know Python". Because I really don't care how well they can rattle off arcane details of the language. Instead, I want to grasp whether they can balance getting-things-done with doing-things-right, in situations that are not completely unlike what I might actually be paying them to do. So rather than having them sketch out bubble sort on a whiteboard or something, here's a few things I might do: 1) Process CSV data I tell them to bring their laptop to the interview, and make sure it's set up for Python development. I'll give them a CSV file of some kind of interesting data. Nutrition info for different foods, for example - something like that. And I will ask them to write a program to ingest and answer questions on that data. S