Get Django, Get Hired - An opinionated guide to getting the best job, for the best salary, fast

Post on 13-Jan-2017

123 views 0 download

Transcript of Get Django, Get Hired - An opinionated guide to getting the best job, for the best salary, fast

Get Django, Get Hired

An opinionated guide to getting the best job, for the best salary, fast.

Section 0: Why?

• Knowledge vs Experience• Confidence• Swagger• Tool Chest

Section 1: Learning

Look through job boardsCreate an outline of skillsResearch tutorials and libraries for each skillCreate a personal projectIntegrate each skill learned into your personal

project

Section 2: Preparation

Create a github repo for side projectCreate a dev account on major social

networksCreate a dev account on amazon, heroku,

cloud providersKeep notes

Section 3: LEARNING

Section 3: Learning

BasicsLanguage & FrameworkModels/QuerySetsViewsAuthTemplatesTesting

Learning: Language & Framework

Python: basic modules, languageDjango: basic framework features

Python: standard library, collections, itertoolsDjango: DRY, contrib, utils, features, docs

Python: internalsDjango: deep knowledge of 3rd party lib ecosystem

Learning: Models/Querysets

Build basic models, relations

Query Performance, table structure, usage patterns

Deep profiling, extra/raw SQL, alternative ORM

Learning: Views

function views

specialized Class-Based Views(CBV), mixins & generics, forms, uploads

exotic content-types, API views

Learning: Auth

local passwords

OAuth, JSON Web Tokens (JWT), API keys

exotic 3rd party providers/endpoints

Learning: Templates

basic syntax: blocks, tags, context, extends, includes

building templatetags, filters, context processors

incorporating 3rd party engines like jinja2

Learning: Testing

No tests (oh noooo)

Nose

Jenkins, Continuous Integration, git integration, etc

Section 3: Learning

BasicsLanguage & FrameworkModels/QuerySetsViewsAuthTemplatesTesting

Not-So-BasicsDatabases3rd party data sources/APIsRESTful APIsTasks & EmailNoSQL and Alt. BackendsHosting/Deployment/AssetsSearchFrontend

Learning: Databases

Basic setup (create, drop, auth, etc)

Query optimization, caching

Routing, replication

Learning: 3rd Party Data Sources/APIs

Basic requests using 3rd party libs

Deep site integration, error handling, tests

Streaming, high-performance and/or async integration

Learning: RESTful APIs

returning JSON responses

using basic REST framework (Django-REST-Framework, etc)

Advanced REST interface w/custom auth, api keys, etc

Learning: Tasks & Email

synchronous

async w/RQ

async w/Celery or Amazon SQS

Learning: NoSQL & Alt. Backends

None

memcache, redis

MongoDB, Cassandra, PouchDB, DynamoDB, Kinesis

Learning: Hosting/Deployment/Assets

Local only, or Heroku w/effortless setup

Production system, manual setup (gunicorn, nginx, local storage, fabric)

Production system, scaled bigtime (uwsgi, nginx, shared file storage, CDN, CI)

Learning: Search

Database queries

Whoosh (python solution)

Solr/Elasticsearch/Cloudsearch (externally-hosted solution)

Learning: Frontend

Basic HTML/CSS/JS

Bootstrap or Foundation, jQuery

Sass, Angular/React/Ember/Backbone, Grunt/Gulp

Section 4: Specialties

Section 4: Specialties

• DevOps• Big Data• Machine Learning• Web Scraping• GeoLocation• AWS & Cloud

Providers

• Social Networks• Real-time Apps

Section 5: Getting The Job

Section 5: Getting The Job

• Review job requirements• Resume• Interview• Negotiation

Getting The Job: Job Requirements

• Ignore the BS filler requirements• Focus on core technologies they use• Come prepared to talk about their

requirements• Prepare questions in advance. Their

business model, their tech, their goals, their past employees

Getting The Job: Resume

• Focus on real-world, production usage of your skills, technologies used, APIs

• (But doesn’t have to be commercial)• Tune resume to highlight the exact things

they asked for, using the words/phrases they used

• Update your LinkedIn

Getting The Job: Interview

• Ask what is most important to the, then speak to those points

• Talk about overlap: needs/experience• Familiarity with tech landscape as a whole• Push back against riddles, quizzes, “gotcha”

questions, things that don’t reflect real-world challenges

Getting The Job: Negotiation

• Don’t feel guilty about money. Companies won’t feel guilty about asking for overtime.

• Research comparable job positions, then ask for that much (at least). Bring examples.

• Research their funding beforehand, in case they claim to be broke

• Slightly overcharge so they can negotiate down.

@MarcelChastain@LADjango

Questions?