Diving Into Python
I started making websites when I was in college, almost a decade ago. It was out of fascination of technology and the idea of online presence. I didn't dream that I'll ever be embroiled in it as much as I am now.
For all those years, I've always been satisfied with using content management systems (CMS) like ModX, SilverStripe, and WordPress. These CMSs have low barriers of entry; plus the instant gratification of seeing an actual website in just a couple of minutes. There are also tons of plugins and themes that can be used to personalize and extend the site's core functions, which made them even more gratifying.
Over the years, my web skills evolved from tweaking templates to actually making my own and porting them into the CMS. A path that has slowly brought me from the front-end to the the server-side. In fact in the last couple of months, I found myself hacking my way through lines of PHP codes, most of which I barely understand. It's frustrating.
I don't have a warrior's heart and can live with some frustrations. Then one day, I came up with an ambitious project that has been incubating for years. The problem is that I don't have the programming know-how to implement it nor do I have the money to hire someone who does. After spending days searching for an applicable CMS, I gave up. There's no way I can hack my way through this project. So I decided to learn how to program.
The many wisdoms of the internet collectively points to the most beginner-friendly programming language â€“ Python.
Python is not alien to me. I've read about it before along with Django, Ruby and Ruby on Rails. I've watched dozens of videos on YouTube of people talking about it and saw it on resumes of applicants I got to interview. It was supposed to be easy and powerful. Descriptions that programming noobs like me will have a hard time wrapping their heads around.
The next months will be very challenging. I will encounter thousands of difficulties. Some days will be spent scratching my heads; some will be 'Aha!' moments. I'll keep on.
What's the goal?
Am I suppose to answer something within the lines of "To become a better person"? Honestly, I just want to transform my idea into a real product. So I'm trashing the higher callings and set the following goals:
- 0 to 6 months : Understand the basics of Python.
- 6 to 12 months : Understand web development with Python
- 12 to 18 months: Build a site prototype
- 19 to 24 months: Polish prototype and deploy
Ambiguous goals, I understand. These will be refined as much as I understand more about Python and programming, in general.
Of course, I'll post updates of things I learn, concepts that sounded alien to me, sample scripts and more.