HACKER Q&A
📣 Arisaka1

I just got my first job and I need to learn faster and better


A little background: Self-taught web developer, hired to work with both frontend and backend code. This is my first software development job.

My problem is, I'm slow to pick the technologies needed to start working on JIRA tickets. I'm working together with another junior developer (also self-taught, started same day with me) but I'm just stuck eating his dust. I decided to put egos aside and ask him for help and the only thing I got was generic advice, which I already do (read the docs, understand what you read, try building their tutorials/getting started section, read more code, trial and error).

Either I'm inherently slow and it's time to accept the natural limits of my brain or there's a better method that would work for me and I'm missing it.


  👤 tomlockwood Accepted Answer ✓
Hey, I'm also a self-taught developer and was hired as a junior alongside another self-taught developer, who taught himself in the space of 6 months after being a chef for his entire career. He smoked me! I had been programming for 5 years at that point. What was the difference between us?

After working with him for a year, I still didn't know and I still don't know. I offer this to you because, you will not always be better than the people around you.

That being said, its worth investigating the python debugger if you haven't already. import pdb; pdb.set_trace() - this will drop you into a debugger at the spot in execution that will allow you to examine variables and iterate through for loops. This has previously helped with my understanding of Python.

But, my big message to you is to not get taught up on comparing yourself to other devs. You will excel on some things and not be great on others. You will be slower than some and faster than some. Try first of all not to stress about your performance, but keep a learning mindset. From my perspective you seem to have your heart in the right place!!!


👤 serjester
I wouldn't overthink this, no ones expecting a new hire to instantly pick up the codebase. You mentioned you only got generic advice from the other developer, did you ask generic questions? It's difficult to answer vague questions. Most importantly I wouldn't extrapolate your experience at this company to sweeping generalizations about how smart you are - there's close to 0 correlation.

Just focus on breaking down problems into manageable chunks. I can't emphasize this enough. As for FastAPI specifically I'd check out the sample postgresql project tiangalo made, it's incredibly well put together.

[1] https://github.com/tiangolo/full-stack-fastapi-postgresql


👤 999900000999
Start a side project using the same exact stack.

You need to start practicing outside of work. I'm also self taught. But you need to never stop self teaching. I learn 90% of what I know outside of work, and I've been a software engineer for a good while


👤 AlchemistCamp
You may just have less of a background / less fluency with the tools you're using than your coworker does.

I'd try focusing 100% on getting the task at hand done while at work, but noting areas that are difficult for you and then doing some experimentation and side study on those areas after you get home. In order to make it at your first software job in a new industry, you'll possibly have to put 2 hours a night into self-directed learning.


👤 _benj
Great suggestions here. I’d add to understand the problem that you are trying to solve.

I often thought that my inadequacy at a previous company had to do with lack of technical knowledge, and even though that was true I was not familiar at all with the project I was working with.

Use the debugger a lot, step through code until you have an idea of what is doing what and why is doing that. This knowledge would help you have better questions, i.e. instead of something like “how does the widget X works” have questions like “why when X happens are we making Y API call?”

At the end of the day, remember that you are paid for making money for your company, not for above-average technical skills! So, focus on the task at hand, throw console.log and debugger everywhere and understand your company’s app and how they are using whatever technology they are using.

I’m also self taught and I’ve been there, you got this!


👤 aristofun
3 steps that work for me (in CS i'm self-taught, but still after 20 years in the industry regularly put my ego aside to learn another new idea/techstack etc.):

1. Focus on specific task first. The most simple you can have.

2. Find someone more experienced in this area to mentor you to achieve the task.

3. Repeat with more complicated task.


👤 awb
What language? And what kinds of tasks are you finding yourself slower at than the other junior dev?

👤 machiaweliczny
You need to learn to Google fast. Really. I mean the most important skill is to come up with correct question to your current problem.

Also follow people that lead given tech and competing/emerging solutions


👤 gaws
> I'm working together with another junior developer

> I decided to put egos aside and ask him for help and the only thing I got was generic advice, which I already do (read the docs, understand what you read, try building their tutorials/getting started section, read more code, trial and error).

Useless advice from a useless junior. Ask someone more senior to help. You'll have better results.


👤 veryfancy
Take that “put egos aside” attitude into a pairing session or three, either with this person or someone else working in the codebase.

👤 xaxaxb
I would say search for the task at hand you are finding hard to do. There would be a similar problem somewhere. Look at the code and try to apply it to your own problem by modifying it to fit your task. Reading docs are okay but they won't teach you to solve the task at hand. This from my experience.

👤 heybecker
Focus on what interests you most. Listen to the concerns of the business. Do not compare yourself to other devs, the business doesn't care (unless your at Google, Apple, etc). It's only worth it if you enjoy it.

👤 kindofajsdev
First, congratulations on the new job! First programming job is exciting!

We have all been there before. Don’t sweat it too much but also don’t ignore it (you don’t seem like you are so that’s good).

Idk what you’ll be doing more of. Identify where you’ll do most of your work on focus on that. DO NOT try to learn everything at once. Maybe that means building a react app with no backend and using 3rd party services. Maybe it’s making a pure api backend and using paw/insomnia/postman to query it.

1. Go to seniors before you go to Jrs for advice. There’s a reason someone is labeled “senior”.

2. Read read and read. Go find a book on fastapi if it exists.

3. Document anything you find weird. Your coworkers will love you for it. Documenting is like teaching and you can’t do it without understanding that piece of code. Furthermore, when you make a PR with those new docs, your coworkers get a chance to say “hey you don’t fully understand this”.

4. What areas are you weak on in fundamental programming? I find most people that struggle with a framework really lack understanding in the fundamentals. If you do not, go read a book.

Python: https://www.amazon.com/dp/1449355730/ref=nodl_?tag=hackr-20&...

Js: (No book just read mdn) https://developer.mozilla.org/en-US/

  - Do you actually know OOP?
  - Can you articulate the difference between pass by value vs reference?
  - Do you understand how the HTTP request cycle works? What about Tls, cors, http methods, etc?
  - Synchronous vs asynchronous code?
  - Scope & closures?
  - The DOM? 
  - (This one bothers me now a days) Can you actually write vanilla js? Do you understand what react (or others) are doing under the hood?
None of these are attacks. Be honest with what you don’t know and go learn it!

5. Create a project with the exact technology. Deploy it to the same services. Yes deploying is Ops but understanding the lifecycle of your code is important. Yes you will rip your hair out deploying on aws instead of heroku. Yes it will suck. But yes, you will be a better programmer.

This is going to be the most important one: 6. Stop comparing yourself to others. Time of programming means nothing. Unless you both read the exact same books and did the exact same projects and solved the same leet code problems, you’re comparing apples to oranges. For all you know, they could have a mentor. Maybe you were reading the worst guides ever and they read the best. Pondering how this happened won’t do you any good. Just keep moving forward!

Programming is not a job you get to walk away from after your 8hrs. You can but others will leave you in the dust.

You can do this! Do your best not to stress the day to day. Focus on growth. I promise you, if you focus on learning, 90 days from now you’ll question why you were even stressed out. You just have to be honest about what you don’t know and learn it.


👤 DougMellon
Have you identified what it is that you are specifically slower at?