What My First Website Taught Me
It’s easy to get trapped in tutorial limbo. Anyone who had spent any amount of time learning to do anything surely knows that feeling. The feeling of watching/reading countless tutorials and how-to’s only to realize that you don’t feel ready to take on a project alone.
My first project finally broke me out of tutorial limbo and it’s the most liberated I’ve ever felt. Not only that, but it’s taught me that I don’t actually need to know how to do everything before diving in.
It’s been a learning process, for sure, so here’s a few things I learned along the way.
A Clearly Defined Vision is a Must
Before taking on my first site, I knew exactly what I wanted to do. I wanted to practice with django first and foremost. I figured that a neat little novel idea was to create a website in which people could send one way messages akin to that of sending a message in a bottle.
It was simple enough, but complex enough to keep me interested and see me through to the end. This idea of one-way communication was pretty clear to me (and more unique than a forum in my opinion). It was this clear vision that allowed me to plan accordingly and be prepared for what was ahead.
Tutorials Are Useful… In Moderation
I relied on tutorials pretty heavily at first. This was my first genuine foray into django, so of course I needed a reference point to anchor myself from. I completed the entirety of the tutorial on the official django docs before I even got started on my MessageInABottle website.
This tutorial was essential because it let me know not only how to get started, but also what to look out for along the way. Without any reference, it’s easy to get sucked back into a tutorial.
Perhaps it was because I had a clear vision before doing the tutorial that it worked out, however, because I knew what I was learning and I was looking for how certain information was going to be applied.
It’s Okay to Not Know Everything
Even after I finished the official tutorial, I was still a little fuzzy on what was going on. I’ve dabbled with Express.js and django before (sticking almost exclusively to tutorials), but I never let myself not know things before getting started on a project.
I constantly told myself that I needed to know more before I got started. I told myself that what I knew wasn’t enough to make anything. What I didn’t tell myself, was that I didn’t even know what I was making yet.
There was no way to know what I needed to know. The only way to know that, was to find a project which brings me back to the first point: a clear vision is a must.
I Learned Everything I Needed Along the Way
Even though I didn’t truly know what I needed to know until I got started, my vision carried the weight because I knew what I wanted to do. I knew what to look for and I knew how to apply what I learned with my first encounter with the tutorial.
Roadblocks were a given though. To think I could execute my plan flawlessly without help would be foolish.
I referenced the tutorial constantly, and seeing as it was programming, I practically lived on stack overflow. I know that I’m never the first person to have a problem, so it’s easy to find help.
For example, one thing I needed to do was to have information on the messages page refresh when a user hits the back button from viewing a message in detail. I looked all over the internet and couldn’t find anything on it, but I knew exactly what I wanted to do, so I asked a question on SO and got an answer within the day. By the next day, my problem was fully solved thanks to a stranger and knowing what I wanted.
Excitement is the Secret Ingredient
Last but certainly not least, I was excited. Way before the project was even completed, implementing each little feature was very exciting. I’m no front end developer, so the site is still something of an ugly-duckling, but it was fun through and through.
Each time a new page was completed I felt overwhelming satisfaction. With each new person I could make look at my site I felt joy that I followed through on something.
I’ve started projects before, and I could have learned then what I know now, but I didn’t because those projects weren’t as exciting to me. This is the first time I stuck to something I was excited about which only made it feel even better.
Don’t Get Caught Up On the Small Things
In the wide world of web development, there’s countless frameworks for development: django, Express.js, Laravel, and the list goes on. I used to spend countless hours doing tutorials in each without actually doing anything with what I was learning because I kept wondering which one was the “best” one to use.
Despite which one may be the better framework, I realized that I really enjoyed django and that the principles were similar enough that if I got a job where I had to use Express.js, I could transfer what I knew easily enough.
It’s the small things that really don’t matter. If there’s a goal you have in mind, do what it takes to get there, but also have fun along the way.
If nothing is at stake, don’t add something for the sake of risking something. Have fun with it and just make something. It doesn’t have to be for anyone. This project was for the sake of learning and I think it turned out pretty awesome.
If you are so inclined to check out my project, feel free to visit it at http://minab.herokuapp.com.