How Neurodiversity Helps (And Can Stand In The Way) When Learning Python
It's okay to struggle sometimes
Neurodiversity refers to variation in the human brain regarding sociability, learning, attention, mood, and other mental functions in a non-pathological sense. It was coined in 1998 by sociologist Judy Singer, who helped popularize the concept along with journalist Harvey Blume. (Wikipedia)
Hello, I Have A Funny Brain
Welcome to a normal day in my neurodiverse brain. In my case, I welcome you to a brain that contains a decent amount of Aspergers and maybe also a little ADHD (not diagnosed yet but highly assumed). Aspergers is an older description of a branch of ASD which is the autism spectrum disorder. Despite the rough past of the term Asperger, being an "Aspie" always had a more positive tone to me than putting a "disorder" onto my label.
The Nerd-Trope
There is this big trope that as soon as someone mentions Autism, people assume, you are great with computers. In fact, they assume you are born as a highly skilled programmer and nothing is complicated to you. And oh, boy that couldn't be further from the truth. It is true, I love to find patterns and logical structures in things, but have you ever noticed how many things in programming are just pure chaos? Example?
How Nannette Saved My Day
When diving into JavaScript, I learned about the different notations. camelNotation
, yes makes sense. snake_notation
- Kinda cute, makes sense too. And then I was offered this in Python: PascalNotation
. First of all - What kind of an animal is a Pascal and how did it deserve to have its own notation? We can't just start and naming stuff after animals and then just go "Yea no, not this one."
So my autism being upset and my ADHD being on 200% trying to fix this black hole of missing consistency. First of all, I was upset that the camel case
wasn't the dromedary case
while Pascal case
COULD have been camel case
because of the two and one humps on their back. That was a chance someone clearly didn't take.
I could further hold myself back from learning everything about dromedaries (because when do you ever get the chance to) and look further on the Wiki where I found older suggestions on how to call Pascal Case.
Nannette Thacker mentioned on her now-deleted website in 1999 the term "HumpBack" Notation. Humpback, Humpback whale! That's an animal! Finding this felt like the biggest success in the whole evening. Thank you Nannette! I will not mention the 30 minutes research about Nannette Thacker to see how much value that mention of it has, but she seems like a good woman with principles, so I am okay with carrying her idea further.
Turning This Into A Method
And then and just then, I could go on learning. My brain was okay with processing more information because this little thing was cleared for me.
While this little story was probably amusing to read and it is most certainly also amusing for me to talk about, sometimes these research loops will go on for hours without me getting anything done. But I mentioned in the heading how it also helps me.
When learning Python, I found out that I have a special way of learning things and how I stay excited about a topic. I choose a project, that is way too far into the knowledge that I have. I chose something so hard on purpose. If I don't know how to do it, then it's perfect. And then I go back and research. How could I solve things? Classes? Okay what are classes and how do I make them? Decorators, uhu, where do I find an explanation to those. So I need for loops here, what kind of for loops exist and how do I use them? And suddenly my excitement about researching things and gathering knowledge becomes a very effective learning method.
Make Something Useful
My first Python-Project was a Discord-Bot with an API connection. Did I know discord.py
? Nope? Did I know how to connect to an API? Nope. Did I watch a video about how to use Python together with the Notion API? 5 times! With the help of a friend, we figured it out. Once it ran - while he clearly did more work than I did at this point, I was able to find new ideas and solutions on how to solve problems within the bot. And it feels good. I made something that I needed. I was able to research the methods and functions and while I was still struggling on how to write the correct code, I got the theory behind it right.
Because he explained a lot to me and because I went further in my course, in the next project I could even do more myself. In the third project, I wrote the complete logic to a program myself, while I still struggled a bit with Objects and Classes (I just learned about them) and how to use the logic right, I felt more and more confident in my solution progress.
Embrace the Features That You Come With
And I think that's a wonderful way to learn. My brain is different and it sometimes needs different ways to explore and discover things. I sometimes need to trick myself into getting myself excited about something, but the more experienced and comfortable I get, the better.
Photo by Thomas Kelley on Unsplash