On 4 September 2017 at 15:04, Dylan Pereira <[email protected]> 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 [email protected] https://mail.python.org/mailman/listinfo/melbourne-pug
