February 20, 2021 · 5 min read
My Experience Learning Redux & Django
Like many web developers, I built my first applications using JavaScript frameworks such as React. To reach the point where I could create a project in React, I spent hours honing my HTML, CSS, and JavaScript skills through trial and error…and error…and error.
Front to back (end)
Like many web developers, I built my first applications using JavaScript frameworks such as React. To reach the point where I could create a project in React, I spent hours honing my HTML, CSS, and JavaScript skills through trial and error…and error…and error. There were times when I dabbled in other programming languages like Python, but I never committed myself to building a project in Python, because it was not immediately relevant. So I focused on React and related technologies until I found my first position as a frontend developer.
After accepting the position, Mr. G, my future boss, sent me the company’s tech stack. I was excited to explore the frontend tech, but I was also curious to learn more about the company’s backend. Redux (frontend) and Django (backend) were the two technologies that jumped out to me, because I knew the least about them. So, the next step felt clear: I would expand my skillset by creating a guest list with React-Redux and a Django backend.
From the start of this new project, I was stumbling in the same way I did when I made my first React project. Doubtless, installing React-Redux was a small adjustment to my habits, but the Python landscape was entirely foreign to me. Working with Python, I was a German living in Amsterdam — the language looked and sounded familiar, yet I understood little. “Das ist mir egal,” I said to myself as I drank a boot of Homebrew and wandered the canals of Django.
Always back to square one
Despite my feelings of disorientation in the Python environment, I had a better sense of which avenue to turn down in comparison with my first experiences in React. Learning React was the largest undertaking of my development career, in that it was not solely about learning React. My time spent learning React was a larger lesson in learning new programming technologies. This experience showed me that I was capable of learning any technology, but, as I also heard from programmers of all levels, there will always be challenges.
Learning how to learn in one’s given field is always the hardest lesson, because it is often a tedious and time-consuming process. Many natural-language learners ask themselves how they might improve their language skills. Instead of improving, many people get stuck asking themselves why they fail to improve, when they could be spending time speaking, writing, and — most importantly — making mistakes. The rules are the same for Dutch and Python: write, write, write. Creation is the key to fluency. And in the pursuit of fluency, some exercises must be repeated endlessly. Hence, the idea for a React-Redux/Django guest list.
The first React project I was instructed to make was a guest list, and while I suspected that this was intentional at the time, it is now clear to me why this was the case. A guest list, or any type of list for that matter, is a wonderful playground to make simple operations between the frontend and backend (Django) or experiment with state management (Redux). If I can create a simple list with a new technology, then I can build off of that foundation to create more complex projects.
Relax and tinker
As I mentioned above, the creation of this new guest list took more time, because I had neither worked with Django, nor had I connected a React project to a server. I felt lost at first, which lead to a bout of anxiety, but after calming myself I loosened up and I began to tinker with Django. And I asked myself a few questions while I tinkered. Will I break something by adding this line of code? What if I print this statement out to see what it does? Where can I connect Django to my React project?
The great thing about learning a new framework is this: You don’t need to worry about breaking stuff. Take the code the install gives you, and rip it apart if that helps you learn. What is there to lose if you break a blank slate? There is a lot to gain from reading each file and methodically changing lines of code until you have a better sense of where you are. Once you feel you understand the default files, you can move on to a tutorial or check out some repositories to accomplish your next goal.
As for me, I’m still working on the next goals for my guest list, which include having a better understanding of Redux (and how to explain it to others). Along the way, I will inevitably feel frustrated, doubtful of my abilities, and confused, but, from my experience learning React, I know those feelings will subside. So don’t be afraid — take a trip to Amsterdam, grab a boot of Homebrew, and wander the canals of a new framework.