Tag Archives: beginning

The Plan

My most recent surge into web development was inspired by a post over on LifeHacker: How I Taught Myself to Code in Eight Weeks

Just to avoid confusion, I can code, I have been coding as a career for six years now. My issue is that I only know the absolute basics about web development. I knew so little about web development that this was actually quite informative to me. I have been poking and prodding at different portions of web development for a couple of years now. I ran into some HTML/CSS/JS at work for a few weeks, I created version 0.1 of this website about a year ago at the time of this writing, I did some Rails tutorials, I created an Android app that ran off of Parse, etc…

There isn’t anything particularly interesting about the article. It is a hit-list of tutorials and actually includes a prologue that basically says “learn enough to get to the point where you can hire a professional to code a good web experience.” But the takeaways I had from it were 1) to come up with a concrete plan to learn a skill and 2) Django looks pretty useful.

I’m in the throws of 1) now, I walked through some Python tutorials to sharpen my basic working knowledge of the language and I started learning Django. The second half of my plan is to spend some time learning Javascript. Another language I have a working knowledge of the basics but would be hard pressed to put together something unique and useful in short order. So that’s my plan, learn more of the stack by diving into Django (learning more Python along the way is an added bonus) and then learn to make it look pretty by diving deeper into Javascript (and eventually JQuery).

It is a plan with somewhat defined steps:

  • Step through Python tutorials
  • Learn Django through tutorials and Django By Example
  • Present Django-served data into a basic HTML/CSS driven website
  • Research and complete Javascript tutorial(s)
  • Liven up website with Javascript
  • Research and complete JQuery tutorial(s)

None of these steps individually seem difficult. Each one results in me either learning a new skill or applying the results of a recently learned skill. Seems downright logical to me.

I also wanted to put a non-arbitrary timeline on this project. I assumed I would get through the Python tutorials relatively quickly since I knew a fair amount about it going in, so that got chalked up as a few days. Django was a complete unknown going in so I allocated two weeks for tutorials and then the Examples reference. I had a feeling Javascript would be the big one. I had exposure to it which only served to convince me that it would take a substantial effort to learn. I gave it a full month. JQuery being a JS library I figured it would come a little easier, how about two weeks?

Add it all up and my somewhat non-arbitrary timeline for the launch of a halfway decent Django-serving website was about two months.

This is well and good, but will I stick with it? Going back over my previous good-intention/half-finished forays into various types of development, I found the common thread among the failures/incomplete tasks was that I didn’t have a well defined end product that I was motivated enough to see through to the finish line.

I started learning Android apps because I thought that would be fun. I started writing a few different golf-related apps since I like golf. None of them were terribly interesting or at all unique so I learned the skill I wanted to learn (whether it be basic Android dev. or JSON calls or geolocation options or whatever) and stopped developing the app. Basically, I got the point where it was functional but I gave up when it was time to make it publishable. That means ironing out functionality, optimizing and making it look presentable. The one Android app I have published at this point was a completely unique app for a very small, specific audience. I saw it through, learned a lot and produced a reasonable looking product at the end of the day. Perfect? Far from it, but I relative proud of it as “My First App.” There are dozens of tweaks I want to make but I don’t have motivation given the 10 person audience.

So, I know my blocking points, do I have a plan to hurdle that for this Great Plan? Not really. I sit here having gone through most of the django tutorials and probably a couple of good days away from planning and attacking my first unique django web app. But I don’t know what the app will be. I have a few ideas but I have to better understand what, exactly, django provides and fit my idea into that framework.

If you’ve made it this far, thanks. I think the point to all of this is that if you want to get something done, identify concrete steps you can work on to achieve the goal. Also recognize what has held you back in the past and be prepared to push through that stage this time to see something through to completion.