My PyGrunn 2015 tech talk – Leveraging Procedural Knowledge

photoPyGrunn 2015 SLIDES Leveraging Procedural Knowledge

ONE

Hello. I’m Rain.

I encourage you to send your comments, feedback, and snide remarks to my twitter handle @rainsdance during the course of this presentation.

I am a Technical Account Manager with Red Hat and I know a lot about a few specific technologies, I am a django / python newbie. At Red Hat we have SBRs – specialty based routing – it means that I know a lot about Satellite, but very little about clusters. We realize that everyone’s a newbie about something even if they know a lot about something else.

While you may not be new to django or python, this talk will show you how to leverage the knowledge you already have to learn something new.

TWO

In this talk I will define procedural knowledge. I will discuss how, in order to leverage procedural knowledge, you need to know what you know.

I will talk about one of the first time I leveraged procedural knowledge – when I was initially hired at Red Hat I had to drink from the firehose.

Then I’ll share lessons learned at a recent Django Girls workshop and what I’ve done since. And finally share my next steps as a django python newbie.

THREE

There’s procedural knowledge and declarative knowledge and it’s sometimes easier to understand declarative before procedural.

Declaractive knowledge is that Amsterdam is the capital of the Netherlands. J is the 10th letter of the ISO basic latin alphabet. It rains in Groninge ALL THE TIME.

But procedural knowledge is HOW to ride a bike. HOW to prepare for a marathon. HOW to learn a new language. You may know the importance of a perfect arm stroke and the use of coordination while swimming, but drown in the pool.

There are two schools of thought – one is that declarative knowledge precedes procedural knowledge. You need to PRACTICE for hours, days, weeks, years before you can DO without effort. The other school of thought is that you need to know the theory before the substance.

Both are correct.

You do need to practice, but you can also use procedural knowledge to make practice more efficient.

FOUR

But first, KNOW THYSELF.

In order to leverage procedural knowledge, you need to know who you are and what you know.

My first computer was a TI-99/4A, a clunky keyboard thing you connected to a television to program BASIC. I love languages and logic puzzles and math. I danced and choreographed for twenty years and didn’t have money for rehearsal space or performance space or costumes or lighting rental. Therefore I taught myself HTML and CSS in order to barter web and graphic design for goods and services. I have a Master of Information Technology.

This is who I am.

FIVE

I heard of Red Hat back in 1993 from a friend who taught me about open source. I thought, “Wow, cool.” And then finished my degree in dance.

Years later I ended up moving to North Carolina, right near Red Hat headquarters and they changed their hiring policy for frontline support. You had to have two out of three of the following criteria: customer service, technology ability, or linux experience. I had customer service and technology ability – I was hired.

At the time, you had to pass the Red Hat Certified Engineer test within ninety days or you’re fired.

No pressure.

I applied logic and my afinity for languages to learning linux command line.

I passed the RHCE within sixty days.

SIX

A few months ago, I was looking through the devconf.cz presentations and came across the Django Girls talk.

Before joining Red Hat, six years ago, I had a blast as an HTML / CSS / PHP / javascript developer with several internet marketing companies.

I googled “django girls groningen” and there was a workshop in two weeks.

I applied.

I got in.

The day before the workshop.

Part of the workshop is a two to three hour preparation with a Django Girls coach – but with only one night notice, there wasn’t a coach available. Time to drink from the firehose.

The email to prepare for the workshop was something along the lines of:

– install python3
– install django
– set up a virtual environment
– introduction to html
– read the first few chapters of tutorial.djangogirls.org

Have you ever taken that ‘trick’ quiz with about a hundred steps – the first step is read all of the steps before doing *anything* then the 99th step is don’t do steps 2-98 and step 100 is put your name on the quiz and hand it in? It’s evil, but effective and the end result is you learn to read. And maybe patience. But mostly read.

Also, are you familiar with RTFM?

It means ‘read the … manual’.

I did not read the manual nor patiently peruse all the steps before beginning and therefore went down the rabbit hole and created a virtual Red Hat Enterprise Linux seven machine. It wasn’t until I got to the last step, read the first few chapters of tutorial.djangogirls.org, that I realized that setting up a virtual environment is part of coding with django.

Learned that lesson the hard way.

A little aside, I also installed python2.7 because RHEL7 doesn’t offer python3, it backports the stable functionality of python3 to python2.7 as long as it’s secure / doesn’t conflict because when RHEL7 was released python3 wasn’t enterprise ready yet.

At the workshop I zoomed along, troubleshooting and figuring out my own issues until [queue dramatic music]:

“OperationalError at /admin/ no such column: django_content_type.name”

I googled, I searched, I hacked, I raised my hand and asked for help. My coach googled and searched and hacked, he raised his hand and asked for help. Another coach googled / hacked and shrugged.

We let it go.

That night I rebuilt the app, saving constantly, and it worked.

http://leanderthalblog.herokuapp.com/

Which is not a Good Thing ™ because I don’t know *what* broke it in the first place nor *how* I fixed it, so if it happened again… [more dramatic music]

SEVEN

After the workshop I did the Django Girls Tutorial Extensions https://www.gitbook.com/book/djangogirls/django-girls-tutorial-extensions/details which includes adding more to your website, creating a comment model, and postgreSQL installation.

A colleague challenged me to deploy on OpenShift. I tried.

http://django-leanderthal.rhcloud.com

And I got the EXACT SAME ERROR MESSAGE “OperationalError at /admin/ no such column: django_content_type.name”. I walked away from that error message in order to prepare for the PyGrunn 2015 conference.

I am reading “Learn Python the Hard Way” which told me not to use vim because only people who want lots of control and have big beards use vim.

I beg to differ.

I highly highly highly recommend this tutorial for those new to python, though, seriously, as it’s thorough and breaks things down perfectly.

EIGHT

What’s next? I WILL finish the OpenShift deployment. Dangit.

Django Girls recently switched their deployment from Heroku to PythonAnywhere – I’m going to tackle that deployment, too.

Lots of practice.

I will contribute to the Django Girls community.

I am building a couple of applications with a friend of mine who is also new to django and python.

Girls Who Like to Code, a group of people from the March Django Girls Groningen workshop is getting together on June 19th to hack a bit.

And Django Girls is having another workshop in Groningen on September 19th which I will join as a coach.

NINE

This talk was written on and presented using Red Hat Enterprise Linux release 7.1 and LibreOffice 4.2 Impress.

Please be sure to leave any feedback, comments, questions, snide remarks on my twitter account @rainsdance.

Thank you for your time.

Share this nice post: