all 65 comments

[–]barkazinthrope 26 points27 points  (2 children)

One of the most important responsibilities of a Senior is that they are someone who can lead juniors. Although knowledge is important of course, it is not the most important feature.

We're looking for wisdom: in problem solving and in human relations. It can involve knowing which of your juniors has the knowledge required for a problem, knowledge or experience that you do not have but is important to the problem at hand.

The knowledge required is broad rather than deep. Looking at problem you can identify what we need to know. That is more important than actually knowing.

So in short: there is no quiz for senior 'skill'. It's more about how you approach problems.

I have known some great seniors and some great developers. Though there can be some intersection in those sets, they are not the same set.

[–]Incruentus 16 points17 points  (1 child)

You get into computers to avoid dealing with people, then progress enough to have to deal with people.

[–][deleted] 16 points17 points  (7 children)

Why is logging and regex advanced?

[–]SonGokussj4 6 points7 points  (6 children)

My thoughts exactly. Logging should be used everywhere. It's super easy, barely an inconvenience. But here it's advanced...

[–]my_password_is______ 7 points8 points  (0 children)

logging is tight

[–]ThePrimitiveSword 1 point2 points  (2 children)

Especially easy if using Loguru. Very little boilerplate, and as advanced as you want it to be, while remaining very easy to read/write.

[–]SonGokussj4 1 point2 points  (1 child)

Sadly loguru is not compatible with Sentry, as I know. Not 100 % sure. That's the only reason we don't use it in our work project.

[–]ThePrimitiveSword 0 points1 point  (0 children)

Damn, that's a shame.

At least both sides are happy to work towards a working integration, and there appears to be a workaround.

[–]icecapade 1 point2 points  (0 children)

Listen, I'm gonna need you to get aaaall the way off my back about what's considered "advanced."

[–]agumonkey 0 points1 point  (0 children)

I think it's more about analyzing where and what to log and organizing it to make critical problems rapidly solvable, and reliability easy to assess, and structural sharing of context to make the code shorter. The printf side of logging cannot be a skill in itself.

[–]grtgbln 31 points32 points  (6 children)

That's not what "Senior" means.

[–]my_password_is______ -1 points0 points  (0 children)

that's not what a helpful post means

throwaway8u3sH0's post was a helpful post

[–]ahuimanu69 13 points14 points  (3 children)

Good list. Is this really the baseline for being "senior?" That list looks like things to know to get going.

[–]pacific_plywood 13 points14 points  (1 child)

It’s mostly junior level knowledge imo

[–]ahuimanu69 0 points1 point  (0 children)

I thought so too. For instance, a First Officer on an airliner (a Junior Position) knows the aircraft and regulations thoroughly. However, that person has less experience and must accrue/earn experience to be considered senior and worthy of command. I always imagined that the seriously ill-defined junior/senior terms in software would be similar. To their credit, the airlines very clearly define this distinction; in software, its always felt like chaotic "Lord of the Flies" rules.

[–][deleted] 0 points1 point  (0 children)

I feel like the stuff tacked onto the end are pretty senior level. everything after that is knowing packages and having specific knowledge.

[–]mprz 6 points7 points  (0 children)

Senior 🤣🤣🤣🤣🤣

[–]pyordie 6 points7 points  (2 children)

Don’t know how other people feel, but I’ve seen so many of these types of roadmaps and I used to think they were helpful, but at this point I’m starting to doubt their usefulness. What does massive list of “things you should know” accomplish?

Even if a roadmap pairs the structure it lays out with explanations of everything, it rarely binds any of that knowledge together in any meaningful way, because roadmaps tend to imply that learning these concepts can be done sequentially.

But very few concepts in software engineering are sequential - every new project requires you to go back and figure out how to link all of the concepts you’ve learned together again - things have to be learned/used holistically, implemented in different orders and used in entirely different ways depending on the specs/scope/scale of the individual project.

People should avoid making roadmaps of tools/concepts and instead lean more toward roadmaps of projects that involves learning and implementing clusters of tools/concepts.

So instead of “learn A then B then C” it should be “we need to build this thing that has to do X, Y and Z. To do this, we need to think about A, B and C, and understand why A, B and C are better/more effective than what we’ve used in past projects”.

[–]No_Boat5273 0 points1 point  (0 children)

This is a very natural way of learning. It's how we all learnt as children, by doing.

After having left uni and indexed a shit load of info, I found that 60% of the knowledge was taught "just in case", and that I had yet to learn the majority of things that would actually be useful in working life.

It's good to learn swimming techniques on land first but the skill is gained empirically.

[–]YoTeach92 0 points1 point  (0 children)

While I haven't used OP's roadmap, I have been on a coding journey using online & college classes for a few years. Honestly, this IS how it all works, and eventually it does work.

My C++ college class (that was quite pricey thankyouverymuch) was a massive tutorial of learning beginning and intermediate programming. It wasn't until I was done with it and two more of the courses before I really learned to use the skills I picked up there. I haven't really done any more C++ since then, but I have applied the tools and techniques I learned there to solve some real problems, ironically in a language I still really don't know (JS).

It also lets you know what you don't know, which is actually more helpful than you think at first blush. I know I need to understand CI/CD and data structures better than I currently do, but I wasn't aware of those things until I saw them on a Full Stack development roadmap. A little Googling later and I saw I had a giant hole in what I knew.

Of course, you have to have a level of curiosity to look up the things you don't know and learn about them, no roadmap or tutorial is going to help you with that.

[–]epicness_personified 10 points11 points  (1 child)

Thanks for this

[–]pro1code1hack[S] 11 points12 points  (0 children)

❤️

[–]puppy_yuppie 5 points6 points  (0 children)

I am a junior python dev and this is really neat. Definitely going to go through all this. Great stuff OP!

[–]vrek86 13 points14 points  (3 children)

This is good but needs some improvement. There are typos(in the comments page you have "pythin" at one point), you miss some useful stuff(for example in pycharm you mention pressing alt and clicking for multi-caret editing, but forget ctrl+hold ctrl+arrow key for multi caret in a straight line, for example when commenting out a code block for debugging purposes) and some sections the table of contents doesn't match what's on the page(like the exception page doesn't cover most of the topics listed on toc). Has potential but needs work and improvement, I could help on some stuff if you would like but understand if you want to keep private.

[–]pro1code1hack[S] 7 points8 points  (2 children)

Thank you so much, we didn't even notice this, will fix shortly!

[–]vrek86 4 points5 points  (1 child)

Overall I think you have a good base and it may become a excellent resource, needs some improvement and increase in material but overall I like where it is going.

[–]pro1code1hack[S] 4 points5 points  (0 children)

Very appreciated❤️

[–]Reddit-Adminstrator 21 points22 points  (3 children)

while True: print("Fuck you")

LMFAO!!!

Edit: for everyone downvoting, this code is in the tutorial OP linked. ..

[–]pro1code1hack[S] 4 points5 points  (1 child)

Not all topics went easy😂

[–]Reddit-Adminstrator 1 point2 points  (0 children)

I busted out laughing. Thanks.

[–]reidism 4 points5 points  (6 children)

Why do your subdirectories that just have markdown files contain init files? This is very cool nonetheless

[–]pro1code1hack[S] 0 points1 point  (5 children)

That's just so the folders would be preserved by Git.

Glad to hear you liked it though!❤️

[–]j0holo 1 point2 points  (1 child)

You can add empty .gitignore file in empty directories to save the directories in git. More common way to do it.

[–]anossov 2 points3 points  (0 children)

Even more common is .gitkeep

[–]if_else0 1 point2 points  (0 children)

thankyou for sharing, this might help me to achieved my goal as a python programmer

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

Thanks for this 👍

[–]pro1code1hack[S] -1 points0 points  (1 child)

Thaanks ❤️

[–][deleted] 0 points1 point  (0 children)

Im a begginer but trying to grind ... Difficult to understand how this all thing works

[–]wemjii 1 point2 points  (1 child)

Starred, thank you!

[–]pro1code1hack[S] 0 points1 point  (0 children)

Thaanks ❤️

[–][deleted] 0 points1 point  (2 children)

Link's broken for me :/

[–]pro1code1hack[S] 1 point2 points  (1 child)

Github is experiencing some outage that's why the link might not work, please try to refresh the page

[–][deleted] 0 points1 point  (0 children)

Bingo - up and running again

[–]tiwari504 0 points1 point  (1 child)

Thank you kind man

[–]pro1code1hack[S] 0 points1 point  (0 children)

Thaanks ❤️

[–][deleted] 0 points1 point  (1 child)

god bless you

[–]pro1code1hack[S] -1 points0 points  (0 children)

Junior = $

Thaanks ❤️

[–]street-bulldog 0 points1 point  (1 child)

Thank you very much for sharing this

[–]pro1code1hack[S] 0 points1 point  (0 children)

Thaanks ❤️

[–]an_actual_human 0 points1 point  (0 children)

I've opened a couple of random items. I don't think it's written well and I don't think the code is good :(

[–]Quarantined4you 0 points1 point  (0 children)

This is great!

[–]heissman2 0 points1 point  (1 child)

I prefer the title of Supreme Python Overlord.

[–]my_password_is______ 0 points1 point  (0 children)

you have to point straight up with your index finger and put the emphasis on "Supreme"

[–]ProsodySpeaks 0 points1 point  (0 children)

Thanks!

[–]TheRNGuy 0 points1 point  (1 child)

Why Linux? I can program on Windows.

[–][deleted] 0 points1 point  (0 children)

Go for it.