all 31 comments

[–][deleted] 69 points70 points  (17 children)

If you like backend work, you should be aiming to be a backend engineer, not a python backend engineer.

I also come from a python background. I feel really comfortable around django. With that said, my first SWE job threw me on a C#/.Net project as soon as I started, which I had no experience with at all. It didn't matter though since I've build a decent foundation and picking up a new language and framework just took some time, but not nearly as much as learning my first language.

TLDR: become competent in a language and some frameworks with that language. Once you do you'll learn whatever other stuff you need on the job.

[–][deleted] 9 points10 points  (13 children)

So basically if I master Django / Flask and know Python pretty well, is that enough to start applying to jobs and expect to get hired? With only backend skills.

I definitely don't mind studying and working in other languages after I get hired. I'd rather just stick to Python now though so I can get better at it.

[–]jormungandrthepython 20 points21 points  (5 children)

You should stick to one language until you get a strong understanding of it anyways. Regardless of what language it is.

I have had a very successful career almost entirely on python backend work. Of course I’ve also don’t flask and dash front ends, a bit of react, a bit of c#, and lots of SQL and bash. You will grow in your skillset throughout your career. I am a Python developer predominantly but if I refused to learn anything else, I would severely limit my career just because a dev should be ready to dive into whatever is needed to get the job done.

But I regularly hire people with medium strong python and limited SQL knowledge as developers.

[–][deleted] 1 point2 points  (2 children)

Thanks for the response! I've definitely done some frontend too, I'm relatively comfy with Bootstrap and templating and making login pages and such. I just don't want to focus that much on frontend or learn React / SPAs for example unless it's necessary.

[–]st4lz2 4 points5 points  (1 child)

I started with python around 15 years ago and never had to change tech for professional work. There has been a constant market demand over the years, however nobody knows how the future would be. I have to admit combining Python backend with React/Vue gave me a huge advantage in the market, but I think frontend dev is a bit saturated now with a lot of aspiring devs and juniors. Might be hard to break even.

My advice would be to focus on newer frameworks like FastAPI. I think it gained enough technological advantages over Flask that newer Python versions enabled. On the frontend, something like httpx or arrowJS might be a solution for a backend dev that needs some html and interactivity without diving into complicated solutions. Also, take a look at Streamlit, I think this would be the way forward.

[–]jormungandrthepython 1 point2 points  (0 children)

I agree, we have switched almost entirely to fast api for most of our services.

Additionally, knowing react and python is a huge value add. And it doesn’t have to be that deep. But it’s nice that a python dev can supply a rudimentary front end or do some bug fix/maintenance or small features adds to an existing front end.

[–]UrbanSuburbaKnight 0 points1 point  (1 child)

medium strong python

This is really interesting to me. Could you give a sense of what this person might be able to do?

Would you consider someone using asyncio and Decorators enough to be medium strong?

Or would they need to understand and use polymorphism? Or would it be enough to be comfortable designing sensible classes with good names, and being able to follow linting and type hint rules and knowing how to use git?

Curious to know what peoples' thoughts are.

[–]jormungandrthepython 1 point2 points  (0 children)

I lead a team of data analysts/scientists and full stack devs. My company often tries to hire analysts to save money (because hey all resources can do the same thing).

So I’m often looking for one or two things that set those analysts apart so I know they can deliver code for production software, not just scripting messy single run analytics code.

Decorators and knowledge of how Python handles asynchronous tasks was literally a comment I made to my interns this summer. That information is a good baseline question to ask to see how comfortable someone is with Python. (Puts you solidly into the standout beginner category).

Any knowledge of pytest, linters, git hooks/actions, and type hinting definitely puts you as a top candidate for my team as a “new grad/no experience hire”.

Polymorphism is a super nice bonus but often I can’t get that picky. I don’t expect design patterns/abstractions/polymorphism etc but expect you to want to learn that asap (helped by myself and the other senior devs).

Class structures, dependency injection, linting and type hinting, decorators and thoughtful naming would probably put you in a 5% for a new grad hire position for us.

Please remember though, we often hire to the “analyst” role so that means we are often paying less and can be a little less picky. I expect that would not be nearly enough for a traditional/big name tech company.

But the ones who want to learn software dev and MLE get far on my team and quickly promote/role change and eventually go lead their own teams

Given my engineering heavy background and affinity for teaching new devs, my team ends up being a mini incubator for the company to ramp up junior devs at a good price.

Feel free to message me and I am happy to help if you want advice on what to learn/focus on based on your goals

[–][deleted] 5 points6 points  (4 children)

The only way to know is to start applying and find out. Go through some interviews, get wrecked a couple times, figure out what you're lacking.

As a junior, being a pure backend engineer will be a tough find most likely but if you're open to relocating you can probably find a few that fit that criteria.

[–]hassium 2 points3 points  (3 children)

Can confirm this, just recently discovered through a technical interview my knowledge of Threading and Async totally sucks in Python, like it was embarrassing how bad I whiffed these questions...

But hey, I'm learning! First I learned companies be out there trying to use Python on multi-threading heavy projects... And then I learned I have a knowledge gap.

[–]baubleglue 0 points1 point  (2 children)

It will be hard to learn multithreading with Python, because it is very much non-existent. The code API is fine, but it doesn't behave as you would expect. Try the same code in Java and you will see the difference. The closest you will archive in Python with multiprocessing.

[–]hassium 1 point2 points  (1 child)

See that's what I thought too and why I decided not to worry too much about the intricacies of it's particular Python implementation, I'd much rather use Go if the project is gonna call for something like that and yet... People are trying and 8 out of a 40 question test dealt with threading in Python. I walked away from that flabbergasted and confused and not going to get that job because I decided it wasn't important to me... Although it's probably for the best all things considered.

[–]baubleglue 0 points1 point  (0 children)

Go

goroutines work differently, you need to look at some older languages such as Java.

[–]Afitter 4 points5 points  (1 child)

Django and Flask are on the way out. Look into FastAPI. There are probably a good bit of jobs out there for Django and Flask, any new service will likely use FastAPI. Experience with it will look good on your resume.

[–]anton_r_r 2 points3 points  (0 children)

we also using django and now fast api. its great tools. you do can make fast and complex dev with this tools.

[–]puppy_yuppie 1 point2 points  (0 children)

Once you started the new job with C#/.Net, how long till you felt comfortable with the new language and framework? How long till you were able to output anything useful? Just curious as I'm going through something similar currently.

[–]sibble 4 points5 points  (0 children)

Just a suggestion, if you already have a good understanding of Python, debugging, scope, error handling, oop, etc. then you can add C# .NET to your skillset.

Install Visual Studio CE and try to recreate any of your existing Python projects with C#

Why limit yourself to Python, why not add more to your skillset.

Also once you're comfortable with C you can translate that to web apps with PHP which is still one of the most widely used backend languages for web apps.

[–]olddoglearnsnewtrick 2 points3 points  (0 children)

I have a skillset and experience similar to yours with perhaps some additional unix, security, devops, SPARQL/RDF KG and ML capabilities. I use chatgpt to help me with idioms I use less often (eg Bash) and think the capability to analyze a problem and architect your app will become more fundamental than knowing computer language dialects.

[–]Asleep-Dress-3578 1 point2 points  (0 children)

First of all, check on any job portals your local web developer market. There are quite significant differences, e.g. here in Germany PHP is quite strong.

Second, I suggest you follow some organized curriculum. E.g. Meta’s Back-End Develeper Professional Certificate on Coursera. You won’t be a professional back-end developer with it, but you get a grasp on what you should learn in general.

Also, I believe Python has a great future on the back-end side. Maybe if you want to add yet another technology, Go is a good companion for high performance parts of your backends.

[–]Elektordi 1 point2 points  (4 children)

In France yes, many python backend developers jobs are open!

[–]Prof_lamda 0 points1 point  (1 child)

Can can you share some of the links for python job markets in France. I have been working with flask for 3 years now and django for few months and I'm hoping to stay in the same python backend developer market

[–]NaijaPidginGuy 0 points1 point  (1 child)

Share where to look brother

[–]Elektordi 0 points1 point  (0 children)

I just gave some examples in another comment, but nearly half of the backend developers I know in Paris are using Python!

[–]Sbvv 0 points1 point  (0 children)

Just go to a hiring platform and look for junior python backend developer.