[melbourne-pug] How do I become a python developer?

John Knight john.knight at tequity.com.au
Thu Sep 7 20:58:50 EDT 2017


Nice helpful comments there - I would also suggest getting involved in local
MeetUps and offering your "services" pro-bono to solve some real life
problems and get projects  under your belt

All the very best, John

John Knight / Tech Agent & Founder 
M: +61 402 234 813
Saltworth Pty Ltd 
P: +61 3 9670 9056 
Atlantis Tower, Suite 3201/288 Spencer Street. Melbourne, Victoria 3000
http://www.saltworth.com.au
         

-----Original Message-----
From: melbourne-pug
[mailto:melbourne-pug-bounces+john.knight=tequity.com.au at python.org] On
Behalf Of William ML Leslie
Sent: Friday, 8 September 2017 10:25 AM
To: Melbourne Python Users Group <melbourne-pug at python.org>
Subject: Re: [melbourne-pug] How do I become a python developer?

On 4 September 2017 at 15:04, Dylan Pereira <perdylan at gmail.com> wrote:
> Hi,
>
> I just had a general question. I have used python before and have loved
it.
> I would love to work as a python developer. I don't have any previous 
> experience except for writing a few python scripts in a previous role. 
> What would employers like to see when they hire a junior python dev. 
> What does it take to break into the industry?
>

I've got a bit of a list of things I expect people to know if they say they
are a professional developer, and all in all it's a few days of study to
become familliar enough with all of this set.  You don't have to know any of
these inside out, but if they were bought up in an interview you should be
able to show some familliarity.

* Know how to use a DVCS.  The one you are most likely to be asked about is
``git``; and both github and bitbucket offer free git hosting so try to get
good at managing and describing your changes.  Ideally learn to manage
feature branches, too.  Version control is a matter of good hygeine.

* Know how to use a debugger, either in your IDE or editor, or PDB in a
python terminal.  You won't often need to use one (as writing tests and
printing stuff is usually so much quicker), but it will mean a lot for your
sanity if debugger commands are not something you have to learn while
frantically trying to figure out what went wrong.

* Oh yes. Tests! Know how to write a test, and run it using the test runner.
Do not get into the habit of running the test file directly, it teaches you
bad import hygeine. If you're on a posix system, Ctrl-R in bash is a
lifesaver for finding your last test command, modifying it, and running
again.  Mine often look like ``pytest foo/bar/test/test_baz.py`` and pytest
can figure out from the ``pytest.ini`` in the current directory where the
package root is.
With unittest, use package names, like ``python -m unittest
foo.bar.test.test_baz``.

* Know at least one web framework. Even if you're not doing web stuff, it's
really handy to be able to go from "these two systems need to talk" to
working communication in a few minutes. And also requests.
For bonus points, lxml.html or BeautifulSoup if you must.

* Be familliar enough with some database library that you can spin up a
database for trivial tasks.  For small stuff, I tend to use sqlalchemy.core
on top of sqlite3.  Be able to declare a schema, create a database, insert
rows, query for them.  Some Pandas and postgres knowledge tends to come in
handy too.

* For bonus points, be able to build python packages.  Know how to write a
``setup.py`` and upload your package to pypi.  It goes without saying that
you should understand how to lay out your source package - understand how an
import statement becomes a lookup in sys.modules and a number of lookups on
the filesystem, and then finally how paths are mapped to module and package
names.  Here's a really nice article on that subject:
http://blog.habnab.it/blog/2013/07/21/python-packages-and-you/

I want to thank you for the question, too.  When I got my first programming
job, the largest program I'd written was probably around
100 lines, to visualise something for a school project. Programming was just
something I did in the quiet hours.  So I give the above list not to
discourage you from applying for work already, but rather that these are the
things an employer will most appreciate not having to teach.

--
William Leslie

Notice:
Likely much of this email is, by the nature of copyright, covered under
copyright law.  You absolutely MAY reproduce any part of it in accordance
with the copyright law of the nation you are reading this in.  Any attempt
to DENY YOU THOSE RIGHTS would be illegal without prior contractual
agreement.
_______________________________________________
melbourne-pug mailing list
melbourne-pug at python.org
https://mail.python.org/mailman/listinfo/melbourne-pug



More information about the melbourne-pug mailing list