3 ms·
So, when I decided to ask I wanted it to keep it as language-agnostic as possible because, I don't believe that whether it's Python, Rust or Ruby changes the ov
by Arisaka1 5y ago
So, when I decided to ask I wanted it to keep it as language-agnostic as possible because, I don't believe that whether it's Python, Rust or Ruby changes the overall approach/method.
But just for the sake of being specific, it's Python with FastAPI. But it's not just the FastAPI docs (which help) it's also the architecture. The project is in a scale I never worked with before and I'm so bad I don't even know how to debug it. It also uses a microservices architecture, so it's not just the FastAPI but also Python scripts running inside multiple Docker containers.
I told them I've only worked with Python for small projects and coding challenges, the other guy also claims the same but still he does a much better job covering ground compared to me.
Just today I've spent 4 hours going through the FastAPI docs, poring over every single line of code to understand what is happening. Googling every unknown line, making anki cards, etc.
- awb 5y agoYeah, so they threw you in over your head. Sorry about that. If they let you sink, it's not all on you and don't be afraid of the next gig because not all companies are like that. As others mentioned, I'm also entirely self-taught and it comes from personal projects. I'm sure you've seen it, but if I was going to learn it I'd start here: https://fastapi.tiangolo.com/tutorial/ https://fastapi.tiangolo.com/tutorial/ Then I'd build something for myself, something that actually works, that I actually deploy. Because so much learning comes from doing. Pick a project you want to launch, or build an open source tool. After 3-5 you might feel quite comfortable. But it probably will require a lot of extra time outside of work. I learned Rails outside of work and I spent most weekends and a few nights a week for a month before I felt comfortable enough to work on production code. I also like video tutorials, so maybe try Googling and see if there's a YouTube video series that clicks for you. Sometimes the medium of spoken word just works better for me than reading. The other thing to remember is that no two projects are the same. The FastAPI project you might be working on might be in a very different style than the ones in the tutorials. Just so you don't overwhelm the other dev, maybe write down a few questions in the morning and ask them all at lunch time. Otherwise, if you're asking every hour it might get overwhelming. Good luck!
- Arisaka1 5y agoThank you. To be honest, I haven't really asked them much, because they (senior devs) have their own plate full, and I'm only trying to ask project-specific questions not things that I would find on Google. Also, I'm feeling like I may get too obsessed with syntax. I author multiple anki cards throughout the day. Some are things like "difference between concurrency and parallelism", while others are like "3 ways to add a new item in a list", "docker command to run a container detached".
- LilBytes 5y agoThe Senior devs are there to help out new starters, especially those that have just started their career let alone starting a new job. I respect they might be busy but two new starters who are at an equivalent experience level should be getting support. Reach out to them, find the one that has the best personal skills and lean on them. If they are really busy make sure you're making the most of their time. * Take notes * Ask good questions * When they provide you information, ask for them to provide you a link to supporting documentation so you don't need to ask the same question twice Even with all of this, you might not get the support you need. If that happens, it's not a reflection on you but a reflection of the organisation or it's current (or permanent) situation.
- gknoy 5y ago> The project is in a scale I never worked with before and ... I don't even know how to debug it. To echo the other people who replied, this isn't a You problem. It's normal to feel somewhat lost when thrown into a new codebase. I felt that way when I started at my current job, and three years later I don't feel lost but there are definitely parts that I don't fully understand. Talk to your senior engineers, and/or your on-boarding buddy, and tell them that you're feeling lost and are trying to understand how to debug the problems better, or how to understand what's going on. It will help if you have a specific question (e.g. "how does this code even get executed?", or "where does the data come from that this is using?"). However, a BIG part of being a senior member of the team is being able to help newer people navigate the new codebase. ("New" as in new to the team, new to this code base -- it applies even to engineers with more experience than you.) Consider asking if you can shadow them and watch how THEY debug similar problems, or find where the code + tests is for things. If it's in multiple projects and repos, ask how they know which one to use. Ask them to show you how to get a usable debugger (`ipdb` or `pdb`) prompt in the code you're trying to work on, and how to find (and execute) the tests that exercise its behavior. If it's non-trivial for you to do it, they almost certainly have their preferred way to do it. Also, talk to more than one engineer -- they may have different solutions.
- machiaweliczny 5y agoYou should have at least one senior, someone with knowledge of architecture to help. Seems like they throw bodies at the problem instead of having proper engineering. You probably lack a big picture, try to create architecture diagram this will help you orient. You don’t need details of FastAPI. You have docker but how is communication between services done? How its deployed? How you debug? Do you have distributed tracing? What DBs? Learn the data schema and also problem domain.
- machiaweliczny 5y agoYou should also have readme/docs of how to run, debug and tests given project. If you don’t then lobby for seniors to create such docs.