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.
That's a terrible take. Programming is often a rarer and more difficult skill to hire for them many of the domains programming jobs touch. Most places will hire you just based on programming knowledge, and will train you in the domain knowledge.
All of the jobs you've listed are highly technical fields, and unusually specialized among programming jobs. A general SWE position doesn't often require much more than just programming.
I have not been able to find a place like that, most have a long list of requirements. Can you suggest any?
The problem is, the employer is probably wrong (they did not do the correct requirement analysis on this), and actually don't want a "just a Programmer", they want a "Requirement Analyst"/"Functional Analyst"/"Design Analyst", and those are the rarer and more difficult skill to develop and find at all.
Based on my observations, biased due to my specific niche, most people who program just ... well ... shouldn't. If there were doctors practicing medicine as bad as some people who call themselves programmers program, then we'd have riots!
Really curious, what counts as "programming knowledge"?
In my opinion Python's strength does not lie in the language itself but rather in its third party package ecosystem. Libraries such as NumPy, Requests and PIL/Pillow provide optimized (and often native) black-box implementations of common tasks and wrap them into simple APIs, turning Python into basically the modern equivalent of shell scripting. You can usually "pipe" data from one library to the other and create complex pipelines in just a few lines of code, without sacrificing too much performance since most of the magic happens within the packages' DLLs. I guess this is what made it popular for data analysis in the first place.
I would strongly recommend OP to familiarize themselves with NumPy and other popular packages, including the data-science-oriented ones, as they might come in handy when writing nontrivial scripts. Writing simple command line tools is also useful for getting used to the standard library.
When you see a list like "processors, memory, motors, sensors, etc" the first thought might be "Oh no I don't know any of that", but that's not a problem. Nobody starts off knowing it. You just pick a problem you want to work on and you start reading and trying things, usually failing over and over along the way until it works.
I only knew a little programming when I started on a web development career, and I just learned a lot along the way.
I'm surprised this comment even showed up on HN.
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.
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.
Totally depends on what you mean by framework.
But once you know Python, it's a small/short step away to learn another language :)
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.
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)
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.
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.
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.
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
[https://www.gwern.net/docs/cs/2005-09-30-smith-whyihateframe...]
I really like blender and have experience working with it and love 3D in general. Surely I'll look more into your suggestion. Thanks.
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.
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?
Look at the job postings for hedge funds (look for quant / ml researcher):
https://www.investopedia.com/articles/personal-finance/01151...
Looks at job postings for ML companies (look for data science / ml):
https://technologymagazine.com/top10/top-10-machine-learning...
Also, look at Google, Tesla, etc.
Here's a good crash course:
If you’re not a student then you need to bring something additional to the table besides python.
A few avenues for python jobs involving short python scripts are:
- solutions architect/sales engineer at a cloud company or consultant at a cloud partner, AWS certs are pretty easy to get and can help you go down this path
- government contracting, there’s a ton of jobs especially related to healthcare/scientific data where they need python engineers to build scripts
- bioinformatics, there’s lots of genomics companies looking for software engineers to help build scripts under scientists direction
- election data, there’s a large number of firms that need people to build and maintain ETL scripts for election data and demographics
Can I suggest visiting a local python meet up?
You are where I was almost 10-years ago. I had taught myself enough python to be dangerous to automate the boring parts of my job as a SQLServer DBA but I didn't know Python well enough to be considered a Python developer.
At this level though you could get into automation or even system administration using things like Ansible and get a good paying job and learn the software engineering stuff later.
Also, 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.
Last but not least you can look into automated testing. Not the most interesting job for many but Python is widely used there.
Universities, large scientific labs/facilities, etc.
I ask because it's a very common problem and the solution is much different than most of the advice that has already been given.
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.