DEV Community

Cover image for An Epiphany While Learning Django
Shasten Marshall
Shasten Marshall

Posted on

An Epiphany While Learning Django

I’m a middle-aged gringo who lives in Mexico. More than once, I have taught English here, and all too often; most of my students would completely over-complicate their learning path on their journey to learning English. There are so many times I would tell my students, “If you do exactly as I tell you, you will be proficient at speaking English. One day, who knows, you might even attain fluency. Seriously, the process is easier than you think.” Recently, I was reminded of how oblivious I was to heeding my own advice when it came to learning to program in Python.

A couple of years ago, I embarked on the journey to becoming a software engineer, and it has been so difficult because I wouldn’t do what people who were trying to help me suggested that I do. Seriously, I fought this process so hard that I now understand something that I didn’t understand before.

If you are like me, and are doing the self-taught route, no-doubt you have heard of courses like Python For Everybody by Charles Severance. I have never taken any of his courses, but I have watched a few interviews of him outlining the learning process of a Developer. So, I wasn’t surprised when I found myself learning things like Object Oriented Programming when learning Django because he explicitly said that Django teaches you OOP.

Honestly, I really feel like I let Django intimidate me. After a year of dragging my feet, I started out on the Django website building that blessed Poll App, and then I realized that Django isn’t as hard as I thought. It’s funny because I had the same exact experience with Arch Linux where I wouldn’t do the command-line installation for about 3 years because of the same reason. When I finally did install it, I realized that there was just an imaginary boogeyman scaring me away, and I now feel this way about Django.

If you haven’t guessed by now, I have some skills loosely related to programming. I had created a few websites without a back-end, and I could get it to resize to where you could make sense of it on your cellphone. I knew HTML and CSS so well that I felt confident that I could look at any free template online and remake the layout. Also, I built a few development tools for development with the extensive use of google, Stack Overflow, IRC Chat, and many other forums. Unfortunately, none of that prior experience helped me here.

Being hip to Single Page Apps (SPA), I knew there was a lot that I could do without a back-end; but I might as well build WordPress sites if I'm honest. I had some friends doing this, but it never appealed to me. I just thought that if people knew how painless it is to get a WordPress website up, that they would stop paying for it. It would be better to learn to programming where you could actually solve problems, but learning how to do this was proving much more difficult than I ever imagined it would be.

The thing I didn’t realize was the role that databases played in web development, and how this just streamlines the whole development process. I would just visualize databases as information in rows and columns, but it never occurred to me that with OOP, you can have an admin account, post pages from there and it will automatically be renamed in the url. And this is all thanks to the database you set-up with a little basic OOP. This facilitates the process so much, and also adheres to the DRY (Don’t Repeat Yourself) philosophy of back-end development.

I remember preparing for my capstone project that a mentor told me that it had to have a database of some sort. To be very honest, I drew a complete blank at the time because I had this project that meant the world to me that I was busy developing, but there was no databases involved. Unfortunately, I had the opportunity to scale my project into a kick-ass project by getting a Django app to do a lot of the dirty work of my project. If I'm honest, I think I could have managed to get a Django app up when I was working on it, but that's not what I did.

It was so overwhelming that I gave up for a few months, and I don’t know exactly what changed in the air to get me to try again. That was almost a year ago, and things were still intimidating and the learning curve is still kinda steep. I still get stumped most days on Leetcode, but I know that if I continue to grind; I will be that kick-ass developer for a good company or I might freelance. Either way, there is a rainbow at the end of the tunnel. Well, kinda...

Today, I know a few people who are like me, trying to hustle their way through learning how to code. I think you have to have a little bit of a chip on your shoulder in order to stick with this because there are a lot of ups and downs. Maybe, you are like me in that you are smarter than the average person, in your forties, but you have been marginalized by people or circumstance.

Bottom line, I think it is natural for people to get stuck at certain points in software development. If I had to do this again, I think I would try to heed my own advice to my English students in that I would relax and trust those who were trying to tell me how to evolve into a competent developer. When they were talking databases, I would realize how far I was from my goal and that I need to just trust the process and trust those people trying to help me.

It might have been an easier process.

Top comments (0)