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
(Free, online) Courses
How Python 2
Use Python to solve problems
- Project Euler (if you like maths)
- Code Eval
- Got a project idea? Go for it
- Get involved in Open Source
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
- Ask on the Python Google+ page
- Tweet with the Python hashtag
- Ask me
- Ask other Python people you know
How Python 6
- Zen of Python
- Idiomatic Python
- Avoid Python Gotchas
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
- Go to PyCon (particularly sprints)
- Keep coming to PyLadies
-
Come to Coding Grace workshops
- Volunteer to mentor, slightly before you feel ready
- And Python Ireland meetups
Python adjacent tech
- Git
- Github
- Virtualenv
- Pip
Don't be afraid to commit will help
- Linux
- Sublime Text
- Anaconda
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
-
Everything is 'nice to have'
-
Apply for jobs you don't have the experience for
-
Pretty much no job ads say '0 years experience'
- But everyone starts somewhere!
-
Pretty much no job ads say '0 years experience'
Apply for jobs
- Apply directly if you can, immediate brownie points
-
Join the Python Ireland LinkedIn Group
- If you don't have a LinkedIn account, get one
- Keep an eye on the #jobfairy hashtag on Twitter
Apply for jobs
- Read (or at least skim) Ace the Programming Interview
- Apply before you feel ready
- Apply before you've done all of the stuff in part 1
Apply
for
jobs
Good luck!
Appendix - Other useful resources
OpenHatch and Open Knowledge for Open Source
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