How Neurodiversity Helps (And Can Stand In The Way) When Learning Python
It's okay to struggle sometimes

Search for a command to run...
It's okay to struggle sometimes

I have been thinking about writing something down for a long time and didn't do it because I had so many thoughts about it and felt like I lacked a structure to this article but with the recent discussion about content moderation and what is appropri...

Python is a well-known and flexible programming language. It is used in many different fields, including data science, web development, and automation. Python is well-known for its ease of use and simplicity. It has a clear and concise syntax, making...

SvelteKit is a framework for building web applications of all dimensions, with a solid development experience and flexible filesystem-based routing. It compiles your components into a vanilla JavaScript that is highly optimised. So the question of wh...

It's time to be realistic about how long it can take to become good

Meet our latest project, we built the ARK Utils app using Svelte, and we learned how to combine experience, creativity and data to a useful product

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)
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.
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?
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.
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.
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.
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