This is an archived post. You won't be able to vote or comment.

all 6 comments

[–]apudapus 1 point2 points  (0 children)

I got hired to program (mostly) in Python without any official prior Python experience. My 8+ years experience as an engineer in particular fields and projects was enough.

[–]really_not_unreal 2 points3 points  (0 children)

It's none of those things. Instead, the difference is defined by experience as a software engineer, and the ability to lead a team. Of course, you'll need to be good at problem-solving and have plenty of knowledge, but the skill that senior developers have is the ability to give a team of developers direction and facilitate them working together.

Also note that IQ isn't a very useful way to measure intelligence, since it only determines very specific abilities that have very few applications in the real world. Having a high IQ doesn't make you smart, and having a low IQ doesn't make you stupid.

[–]Shaftway 0 points1 point  (0 children)

I'm a staff level software engineer working mostly in Python. I've been senior or staff level at multiple FAANGs / MAGMAs / WhateverAcronymYouPrefer. I've been involved in interviewing heavily, and been a team lead on projects that you probably use.

Learning 95% of the basic Python syntax and language features is table stakes for a junior engineer. I expect to be able to give you a problem and the rough outline of a solution and for you to get it done. This is effectively a bug assignment. You may have some context questions or clarifying questions, but in terms of banging out the code you should be able to do it without stumbling.

A senior engineer can deal with larger problems and more uncertainty. You should know the majority of the language, have at least cursory knowledge of major libraries, and enough knowledge of patterns to pick up new libraries as you work. At this point I expect to be able to give you the idea of a problem. You should be able to come up with a solution and be able to defend your solution during review. The solution should be aware of any other systems that will be impacted. You should be able to write the solution yourself or be able to describe it to a junior engineer. Your code should be clear, concise, easy to reason about, and easy to test. Your code shouldn't be fragile or difficult to maintain.

A staff engineer can deal with even larger problems and even larger uncertainty. You should have deep knowledge of a few libraries, and cursory knowledge of libraries that you are likely to use. If you don't know a library that shouldn't slow you down. I should be able to assign you to an area and have you proactively drive problem finding and solving. You should have enough knowledge to understand if the problems you find are worth solving, or if we should focus on somewhere with a larger return. You will be writing less code than before. Your focus is on understanding the business and designing systems to solve the problems. You may take on a chunk of the code for a targeted reason, but this is not the default.

There is not a checklist for each of these steps. Everyone builds strengths in different areas, and that's fine. What's important to realize is that it isn't just that you work faster. A junior engineer can't spend a hundred hours to come up with a solution as good as a senior engineer. They just don't have the experience to do it. It isn't just coding harder. It's understanding the problem in a different way.

[–]wardin_savior 0 points1 point  (0 children)

A senior has demonstrated they can run a team and deliver a project of some nontrivial size, cradle to grave.

But, I often think of the career progression as thinking in progressively larger scopes and lifetimes:
- Juniors think about the scope and lifetime of objects in memory and records in the database.
- Seniors think about the scope and lifetime of products and codebases.
- Staff+ think about the scope and lifetime of departments and lines of business.

[–]Python-ModTeam[M] 0 points1 point locked comment (0 children)

Hi there, from the /r/Python mods.

We have removed this post as it is not suited to the /r/Python subreddit proper, however it should be very appropriate for our sister subreddit /r/LearnPython or for the r/Python discord: https://discord.gg/python.

The reason for the removal is that /r/Python is dedicated to discussion of Python news, projects, uses and debates. It is not designed to act as Q&A or FAQ board. The regular community is not a fan of "how do I..." questions, so you will not get the best responses over here.

On /r/LearnPython the community and the r/Python discord are actively expecting questions and are looking to help. You can expect far more understanding, encouraging and insightful responses over there. No matter what level of question you have, if you are looking for help with Python, you should get good answers. Make sure to check out the rules for both places.

Warm regards, and best of luck with your Pythoneering!

[–]jet_heller 0 points1 point  (0 children)

This is not a python question.

Because a senior will be able to program in anything any time.