Ask HN: What jobs can I have knowing Python?
I have known python for a long time but have never done a proper project or earned money through writing Python code.
I like the core Python but I'm not interested (don't like them personally) in any frameworks. I have used python to write small scripts to do small things like automation and stuff but honestly writing (or even working on) big projects seems terrifyingly arduous to me.
As far as I have seen almost all jobs related to Python are either back-end development using Django or something related to data.
Considering I like neither of those, is there any other careers I can pursue? Especially if it involves writing many short script! I know there must be other jobs out there related to Python but the number of those seem to be really low and hard to find.
86 comments
[ 2.6 ms ] story [ 166 ms ] threadAlso, if you don't like Django, give Flask a try. It's much simpler and easier to get started. If you can tolerate that it opens up a lot of opportunities writing backends.
Note: first good rating really help. Need to install the Phone App to make sure keep response rate green.
Anything worth coding for a client will take at least an hour when it's all said and done. I made $12/hr flipping burgers before.
I'm wondering if GP is actually doing people's homework or something.
That said for some tasks and people I'd do it for 10$.
I would like to explain if they asked. And give some comments on the code to tell what is the code doing.
sre/infrastructure/automation.
release engineering.
web scrapers/some etl.
scientific python.
tech writing/examples for python apis.
solutions engineer/professional services/post sales engineer.
they all require some domain knowledge though and some likely require the use of popular libraries/packages. maybe have a look at the libraries used for each and find one you like?
So here is the thing: Just knowing a programming language, isn't enough of a skill to land a job! That's why you learn other things too on university, like math, data science and so on. I for example work in the robotics industry and I do exactly what you ask for. I write many short python scripts for ROS. But my ability to write python code isn't what makes me valuable. It's because I studied robotics, know how to solve complex problems using math, and then implement said solution in python. The last part being the easiest. Coding is like writing. Just because you know how to read and write, doesn't make you a bestselling author. That's just a basic requirement, and even back-end devs need some knowledge about databases, distributed systems, etc.
About three years ago, I switched to a developer role at my work, and then a lead developer not too long after that. I didn't land my dream job because my coding was so good. It was because of my underlying understanding of what we actually do and how the network stuff actually works, coupled with the minimal fact that I also know how to code that was ultimately responsible.
I really like blender and have experience working with it and love 3D in general. Surely I'll look more into your suggestion. Thanks.
When you say
> probably I would focus on AsyncIO
do you mean you would use frameworks that make use of AsyncIO like FastAPI? And do you know other examples besides FastAPI itself?
This is initial blog post, about creating a raw web server https://fatih-erikli.com/creating-a-web-server-in-asyncio.ht...
This is some boilerplate for creating a router and endpoints etc. https://fatih-erikli.com/asyncio-boilerplate.html
And this is about interacting with other services such as Redis, Mongo, etc. https://fatih-erikli.com/asyncio-streams.html
DevOps - you'll quickly run into requirements to write parallel work. Not using something like fabric is a waste of your employer's money hiring you. You'll quickly run into requirements to use ansible/terraform/other. Same applies here; surrounding tools with subprocess and parsing stdout/stderr is a waste of your employer's money. Use appropriate packages, instead.
DataScience - all the cool toys, from simple stuff like pandas, or more focused ones like working with spark and the plethora of big data libraries require indepth knowledge of both the library and the underlying datastore. Combined, you make the most of your time and hardware. Not doing so, and only writing something that works on a small scale is a common costly mistake.
Security - python is just a helper tool. Your requirements, depending on position, will be focal knowledge about a domain and its set of tools. From highly skilled domains like research onward to threat hunting, PT and to the entry level stuff like NOC.
You're better off enjoying the little wins in life and dealing with the less pleasant moments. That'll give you a nice career in anything you choose.
Totally depends on what you mean by framework.
But once you know Python, it's a small/short step away to learn another language :)
Depends on what you're doing. Using an inappropriate or over-heavy framework can be a millstone around your neck.
I think understanding what values frameworks deliver and their pros/cons is super important before blindly jumping into them.
I think a role in DevOps or writing internal Developer Tools (many larger firms would have this role) would be perfect for you, given this preference.
Regardless, you say working on such frameworks "seems" bad to you... have you spent like a solid week trying to make something work in one? There is definitely an up-front investment of time, but once over the initial hump, working with a well-designed framework can actually be very liberating, enlightening and enjoyable.
Things I enjoyed in the past include numpy, flask, Django and sklearn (the latter in particular, no offence to any maintainers, seems like a mess but is actually very well designed and thought-through IMO). Things I don't enjoy are Ansible and Pandas, though both look like they're polished and well thought-through. YMMV.
In some cases, "trying" might be actually succeeding, but finding out that the same could be done with 1/100 of the time/effort. In other cases, you just find out what you want to do is just not feasible as a single developer and leveraging others' work is a must.
That approach also makes it much easier to evaluate if the framework is good and is good for you and your project. Otherwise you're trying to figure out if a hammer is good without having any nails to drive.
It can also sometimes work the other way, and show that the framework is not actually that useful. I had this with Ansible, where going down to raw fabric made my life much, much nicer (yaml is not a great programming language...).
I'm a bit baffled on your stance not liking frameworks. If you really now python then using frameworks should be do-able... And long term you notice it makes achieving your goals easier.
So, not liking frameworks, makes you less efficient of an engineer... Tip: Try some frameworks, pick and choose the one you like. And learn from there.
Also: Try other programming languages. Its about the concepts, not a specific language.
But if you know how to program: The oppertunities are endless... You can work in any field, any domain. BOOM
If the hard is still hard in a framework, you might be using the wrong framework.
Skipping them causes problems if you don't have any experience with software architecture. This in turn creates a vicious circle where you avoid software architecture because it's hard, and they keep being hard because you're never exposed to software architecture problems.
Last but not least you can look into automated testing. Not the most interesting job for many but Python is widely used there.
I am not a fan sir but an admirer of work that teaches and helps others. Btw, if you're into PRAW, you may find this helpful as well: https://pythonprogramming.net/introduction-python-reddit-api...
Frameworks offer a standardised way to build things, sometimes I don't like how some frameworks do stuff, but that's not a problem. I can set aside my personal feeling and just go with the flow.
For example, every scientist I know struggles with a cobbled mess of bash, R, and Python scripts. Reading and writing CSV, cleaning data, moving things about, renaming and merging files. Drawing a pretty graph at the end. That sort of thing. Thousands and thousands of files. TBs of data.
Few scientists can program, but every single one would profit immensely from somebody who can set up small scripts. The coding itself isn't tricky but some of the domain knowledge is.
Though I don't know where to find such a position. The labs I'm familiar with work with first year bioinformatics students and similar and don't publish job openings as such.
But to be clear, there is a lot more to know in devops than just Python, and you will not make money if you don't learn frameworks and libraries. This is because while it's possible, you won't get anything done in a timeframe that anyone will pay you for.
Learning Python and then not using frameworks is like saying "I like playing with glue, what can I make with JUST GLUE?"
This is exactly it. The power of Python comes from exactly two reasons:
- The syntax being easy, productive, fun, forgiving, intuitive, and readable
- The immense volume of high-quality frameworks and modules
So many fun and expressive languages have been lost to the graveyard of time, and often (usually? almost exclusively?) this is due to lack of a 3rd party ecosystem.
Python is the Bash pipe operator of programming: it’s useful only in the context of where you’re piping from and to. But that usefulness cannot be overrated.
(A follow-up: Python also has a well-defined C FFI which enables modules like NumPy and TensorFlow. This is a critically important part of the language, but I include it under the ‘frameworks and modules’ bullet)