Why I spent St Patricks Day learning Django

Why I spent St. Patrick’s Day Learning Django

I remember the good old days when St. Patrick’s Day was about corned beef & cabbage and lots of beer (black, not green – I used to Guinness on the 17th). So WHY did I spent this weekend learning a web development framework instead of joining my friends at the local pub?

The short answer is “for a job”.

My current job search

I’ve been working on my current job search for a few weeks now and have made some progress. Given the breadth of my skill sets (marketing, programming, media production, business management) I’ve been applying for a wide range of jobs. More specifically I have been applying to companies where I want to work for jobs they have open that fit in one of my skill sets. Previously I had been applying for jobs and the companies were an after thought. This time I have a bit more time to spend researching before applying because once I am hired, I do not have plans on leaving for a while.

One of the jobs I am currently interviewing for (which is why I am not disclosing the company for now) is a web developer position in the marketing department. Just in case my potential employer is reading my blog, I won’t share much beyond my enthusiasm for writing code and working with marketing folks. In reality, they know I want to work there or I wouldn’t have spent my weekend creating a website from scratch using a language (Python) and framework (Django) that are new to me. Python isn’t that new for me because I used to teach it to my advanced students in the “kids coding” classes as a volunteer at Selby Library. Django was new to me, but after the first hour or so of reading through the documentation I could tell I was going to enjoy this.

About Django

Here is the definition from the official Django Project website (Easier than paraphrasing and I am exceptionally tired this morning):

Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of Web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source.

https://www.djangoproject.com/

The Django Project website describes it as:

  • Ridiculously Fast
  • Fully Loaded
  • Reassuringly Secure
  • Exceedingly Scalable
  • Incredibly Versatile
Jazz Legend Django Reinhardt
Jazz Legend Django Reinhardt

While I have only been working in Django for about a week, I can see where many of these attributes are accurate. Once I learned the syntax it didn’t take more than a few minutes to install Django and create a basic skeleton website. From there it took me a couple hours to create the structure of my website, add content, test the code, and push it to a production server. To be honest the part that took the longest was setting up my development environment and production server settings – neither of which have anything to do with Django. All that being said I am entertained by Django being named after the jazz guitarist Django Reinhardt (not the Tarantino film).

Django is new to me, so how long have I been coding?

While I am new to Django, I am not new to writing code or web development. I’ve been programming off and on since I was 6 and have been working on various website projects, mostly freelance, since 1997. Yup, I am an Internet OG. (Yes, I really said that. You’re welcome.)

Old school websites Yahoo!
How the web looked in the 90’s

While my 20-year stint in the furniture industry wasn’t tech-focused, I often used code to make my job functions more efficient. Everything from ActionScript to write shortcuts in Photoshop, VBA for editing macros in Excel, and SQL to make bulk updates to the database on our point of sale system. The past 5 years I have been taking a deeper dive on coding learning a lot more about CSS, PHP, and JavaScript, as well as learning languages I’ve never tried previously like Ruby and Python. I’ve especially enjoyed learning frameworks like Bootstrap and now Django.

What if I DON’T get the job? (*gasp*)

Well, that’s always a possibility, but I tend to not focus on “what if’s” or on failing. I am confident that I have a good shot at getting this job, but it’s not the only job I am applying for, but it has required the most work in the application process. While I like all of the jobs I am currently interviewing for, this one would be a step in a new direction so it has bit more excitement. Worst case scenario I’ve made some great new contacts and learned a brand new set of development tools. It might be old-fashioned, but I tend to believe that hard work is it’s own reward and effort is never wasted even if the ultimate goal is not achieved.

What if I DO get the job?

After Shelley and I are done doing the happy dance all around Sarasota I supposed I will need to reorganize my personal schedule to take an even stricter focus on web development, especially with Django. Either way, this project has changed my web development workflow for the better.

Time machine

Installing Ubuntu in VirtualBox in Windows 10 via Chrome Remote Desktop and FaceTime

If I am not careful I will time travel!

The job search is in full swing and one of the developer positions I applied for uses Django & Python. Right now I am working on a work sample to submit built on Django. While I have a bit of experience with Python from learning and teaching it to my “Kids Coding” classes from 2016, but Django is a new animal for me.

Django is a framework built with Python and named after the legendary jazz Django Reinhardt. This is the type of web development that requires more than a text editor, browser, and FTP software. The code is written locally then pushed up to a development server for testing then pushed to production for public viewing.

While I am not a Mac OS kind of guy it is the BEST set up for this type of development, but I can’t justify buying a new Mac computer for this exercise. Linux is as good, if not better, for this type of work so I opted to install a copy of Ubuntu on my desktop computer. First I attempted it using the fairly new Windows Linux Subsystem and it worked okay, but not very seamless. The next best option was to install it into a virtual machine (essentially a computer inside a computer) so I chose Virtual Box by Oracle.

So it wasn’t complex enough to be running my Windows 10 desktop via Chrome Virtual Desktop to install Ubuntu Linux inside my new virtual machine, I had to FaceTime with my beautiful and talented wife Shelley so she could reboot the system and update a few BIOS settings to make it all work. After years of being together Shelley and I have never had a fight and if this scenario didn’t trigger one I don’t know what could.

I am now typing out this blog post while waiting for my installation to finish so I can get back to coding. Thanks for keeping me company!