Bootstrapping a Programming Career

Short version

Become (reasonably) proficient in Python

Apply for Python jobs

Long Version

Part 1

Why Python?

  • Designed for developers, not machines
  • Community, community, community
  • Employers like 'Pythonistas' (loadza jobs)
  • But then, you're here, you probably knew this..

How Python 1

How Python 2

Use Python to solve problems

How Python 2a

Code reviews

  • Been called the only thing that improves code quality
  • Both people learn
  • I'll do them! (terms and conditions apply)

How Python 3

Generators and Decorators

  • Both complicated, powerful, important parts of the language
  • Both very useful for looking like you know what you're doing

How Python 4

PEP 8

  • Easy to write working Python, pretty is harder
  • Pretty is also subjective
  • Style is less subjective
  • Consistency is important
  • Most companies have style guide based on PEP8
def this_one():
    print "this one is the same as the other"

this_one()
def              this_one                  (




):


 print "this one is the same as the other"

this_one()

How Python 5

Questions - you will have them

How Python 6

 The Zen of Python

    "Beautiful is better than ugly.
    Explicit is better than implicit.
    Simple is better than complex.
    Complex is better than complicated.
    Flat is better than nested.
    Sparse is better than dense.
    Readability counts.
    Special cases aren't special enough to break the rules.
    Although practicality beats purity.
    Errors should never pass silently.
    Unless explicitly silenced.
    In the face of ambiguity, refuse the temptation to guess.
    There should be one-- and preferably only one --obvious way to do it.
    Although that way may not be obvious at first unless you're Dutch.
    Now is better than never.
    Although never is often better than *right* now.
    If the implementation is hard to explain, it's a bad idea.
    If the implementation is easy to explain, it may be a good idea.
    Namespaces are one honking great idea -- let's do more of those!"

How Python 7

Community

Python adjacent tech

  • Git
  • Github
  • Virtualenv
  • Pip

 

 

Part 2

Apply for jobs

  • Be prepared to not get the first several jobs
    • Always ask for feedback on why
    • Every interview is a learning experience
    • Every code challenge is a learning experience

Apply for jobs

  • Apply for jobs you're not sure about
    • You can always say no to an offer
  • Apply with a bad cover letter if you can't do a good one
    • My cover letter for my current job was awful

Apply for jobs

  • Apply for jobs you don't have the requirements for
    • Everything is 'nice to have'
      • if they can't find their unicorn
  • Apply for jobs you don't have the experience for
    • Pretty much no job ads say '0 years experience'
      • But everyone starts somewhere!

Apply for jobs

Apply for jobs

Apply

for

jobs

Good luck!

@saoili

(gmail, twitter, github,

most of the internet)

Seldom updated Python blog

Appendix - Other useful resources

OpenHatch and Open Knowledge for Open Source

the django tutorial

Suggestions for more stuff to go here? Let me know.

Bootstrapping a programming career (full version)

By Sorcha Bowler

Bootstrapping a programming career (full version)

  • 1,979