One month on the job

OK, it’s been one month on the job. For those who don’t remember, I started FCC about two years ago, finished it about a year and a half ago and have been learning and applying for jobs. Last month I started a new job as a React Native developer with an entry-level job with large company. I had to move to Arkansas for it, but that’s life. I can’t say I’m a fan of Northwestern Arkansas yet, but the people in the company are very nice and have been very supportive. The team is also a lot more diverse than you’d expect.

So - what I’ve learned. If you’re like me…

  1. You don’t know as much as you think you do. Now, I’m not exactly cocky, but I thought, OK, I’ve got this React Native thing going pretty well, I can figure out the rest. What I didn’t realize is that the “rest” is a lot. There are a lot of other technologies I need to learn: Azure devops, Appium, Jest, Firebase, Redux Sagas, and a lot of other libraries. Really, this has been my biggest struggle.

  2. You need to master git. Sure, I could add, commit, push, and pull with the best of them, but I also needed to be a wiz at merge, rebase, and the whole pull request work flow. I really needed to master all of this and get the git conceptual framework down. I recommend the free ebook, Git Pro. And learn how to merge like a Shaolin master. Work on some projects with some buddies where you all are pushing and pulling and merging to the same repo. Work on some open source. Really, you need to know this. I had one PR where they wanted me to fix something. The coding took me 30 minutes and pushing up the changes took me 90 minutes because I completely screwed up something because I misunderstood a few key git concepts.

  3. Working on your own code is not the same as diving into someone else’s code. I had gotten pretty good at organizing my own projects. But they have an extremely large app and it is organized completely differently. And that’s taking some getting used to. I guess I wish that I’d spent some more time going over other people’s code. Open source is also a great way to learn this skill.

  4. “Hacky” solutions won’t cut it. When working on your own stuff or tutorials or the FCC challenges, you can have a lot of liberty to find something that “just works” and move onto the next thing. But when every PR needs to be reviewed by three experienced coders, that don’t fly. They will (politely) point out that there is a better way to do it. We’ve all had that feeling on the challenges - “I don’t care - just get something that passes and move onto the next one!” But that is unacceptable in this environment.

  5. Linters are important. Sure, who doesn’t like being constantly nagged? [rolls eyes] But many places use them so you might as well get used to it.

  6. There will be a lot of struggling. Remember all those times on FCC where things weren’t quite explained as much as you’d like and you had to spend time coming though SO and documentation? Get used to it.

  7. There is a difference between and experienced dev and you. I thought I could do just as much, but it might take a little longer. Nope. Some of these guys and gals can easily do this much faster and better than I can. I still don’t know if I believe in the “10X developer”, but there certainly is a difference. In one instance I got to pair code with one of these guys. The interesting thing is that where I would have just dove in and started trying things and logging things to the console, he took 10 minutes reading and tracing through the code and then made all the changes in one go, successfully. If I’d done it, it would have taken three times as long, at least and been more prone to error. It was fun to watch.

  8. You’re going to be confused and make mistakes, but that’s OK. My team has been very supportive. They know where I am as a coder. I’ve contributed, but they know it’s going to take some time until I’m fully up to speed. But I learn a little bit more each week.

Don’t get me wrong - it’s been a struggle so far, but it’s also been fun. I keep learning and getting stronger. I like that everyone is so helpful and I also like that they trust me to use my own judgement when it’s something with which I’m comfortable.

Oh well, just thought I’d let you guys know how it is going so far.

60 Likes

congrats man! very nice read. It sounds like things are going well and keep up the good work! I recently got let go after 2 weeks because the senior dev couldnt give me as much support as i needed. Disappointing, but moving forward. Look forward to your 3, 6 months and one year right up

Congrats again on the new job. Everything you said here checks out with my experience. Since your description lines up with my experiences, I want to chirp in and say that if you’re like me (and many developers I know), you’re going to hit a few valleys of frustration/self-doubt/anxiety and maybe even some depression during your first six months on the job. It’s a lot and it’s hard and you don’t feel like you’re getting better fast enough. This isn’t just a first-job thing. A new programming job feels a lot like a first job.

Have fun out there in Arkansas. (At least you probably didn’t have to shovel snow this weekend like we did.)

7 Likes

Congrats, thank you for sharing your experience and for the tips. Great read.

Awesome update, Kevin!

I’m only 2 months ahead of you job-wise and everything you wrote was identical to my experiences.

I’m currently up late banging my head against 4 failing Rails tests that I’ve been banging my head against all day. As a card carrying, freeCodeCamp, “MERN Stack or GTFO” kinda guy, you can imagine how I am feeling about being so deeply entangled in Rails world. It’s quite uncomfortable, to say the least.

Still - onwards and upwards!

We got dev jobs with Arts degrees, so we can do anything :wink:

1 Like

Sorry to hear about that. A couple thoughts:

  1. Remember that this is their fault. They evaluated you and hired you even though you weren’t what they needed. That is their mistake.

  2. There is a position out there for which you are perfect. The more you learn that bigger the body of “jobs for which I am perfect” will grow, but even as you are now, there is something out there if you can find it and don’t give up.

  3. Any experience is good. You got a glimpse inside, at some things you need to learn. That is invaluable,

5 Likes

Thanks for posting, it’s a great read! I love the fact you’ve given some thoughts/resources to how to improve at each of these things!

I think the big factor here is that you actually work at a big company with a huge app. I’d love to read a similar story but from someone in a small-medium company or a startup. Obviously, the experience for that person would be completely different and the comparison wouldn’t be 100% fair, but it’s still would give us some glimpse into just how much 2 environments can vary which would be really interesting to read.

Good luck and keep us posted if you will :slight_smile:

1 Like

I worked for a year and a half at a company that had just recently transitioned from “startup” to “small company”. I currently work at what I would consider to be smallish medium company. What would you like to know about it?

Congratulations on getting the job! Also your view of everything about the job is really positive.
Thanks for sharing!

What is your tech stack?

At my first company I wasn’t doing web work (althout we did have a web interface, I was just on a backend team). I worked with Postrges (using Pentah), Java, and Drools with SVN as our version control.
At the large company I worked at I was first on a Python project with Git as our version control, then a web UI built on C++, Java + Selinium (for tests), JavaScript, JQuery, and a custom framework. They were working on switching over to using React, but I wasn’t part of that effort.
At my current job our backend is in C++. The front end uses Node, Webpack, Jasmine, AngularJS, Angular 6, RXJS, and we’ll soon be writing integration tests in Python. Our version control is Perforce (ick).

I’m leaving off important technologies and tools for all of these, but you get the idea. There are a lot of pieces and you’re always going to be facing several new ones when you start a new job.

2 Likes

Oh, that’s cool!

Basically, I’m interested in things that you’d expect to be common for companies this size and that can be compared to kevinSmith’s experience.

  • Would you say you can get away with not knowing too many technologies/frameworks in a smaller company? I saw your other post where you described some of this, it still seems like you need to know a lot about everything.
  • How about the gap of experience between you and other developers in the company compared to big companies who’ll have way more senior devs?
  • Also, the general culture. In big companies, you could be taking care of apps used by millions of people and you really don’t want to mess things up, so the pressure is high. But at the same time, there’s a lot of experience you can draw from and guidance if you need it. How would that compare to a smaller company?

A smaller company is probably less able to afford to provide you with training and/or pay you while you’re still learning the technology. When it comes to unfamiliar technologies, it really is a matter of how quickly and effectively you can learn them. This is why you’ll see advice along the lines of “It doesn’t matter whether you learn Angular or React right now, just make sure you really understand the one you choose.” You need to be strong in the core technology used and you need to have transferable skills related to other parts of the stack or process.

I have learned to chose my jobs based on the team I would be working with rather than the technology I’ll be working with, and I’ve been mostly successful. One aspect of the small company was that often more senior developers were too busy to be able to help me for very long at a time. And sometimes there just wasn’t really anyone around who actually was an expert. This meant that I became the expert in certain areas, despite being a baby, and had opportunites for advancement much faster than I would have at a larger company.

The smallest company I worked at made software for hospitals. As an intern, I made a commit to production that exposed a bug and one of the largest hosptial systems was unable to run our software the next morning. The memory of that has stuck with me. The first project I worked on for HP was a tool that administrators could use to try to find the cause of problems in their private cloud configurations. I’ve worked on bigger and smaller responsabilities since then. One thing about being on a larger project is that responsability is shared. I was able to screw things up at my first company, because I was one of just a couple people who could do it. Now I work on stuff that would be VERY BAD to screw up significantly, but I’m at a company that knows this and has its teams and its process set up in such a way that if something is broken, then several people screwed up to varying degrees and a flaw in our process is probably exposed.

1 Like

I like the part about being able to rise quickly in a smaller company where there aren’t likely to be many experts. At the same time, it means you have to really know your stuff and keep up with the technologies, which definitely isn’t for everyone.

Anyway, I just wanted to thank for the response, this was a really interesting read! :slight_smile:

Very well summarised :slight_smile: It’s nice to feel newbies feel alike :smiley:

I’m no expert, but some thoughts…

I initially thought a small company would be the way to go. I thought a startup would be the best bet - they have less money to spend so they’d be willing to take a chance on someone.

In the small companies with whom I interviewed, they often wanted a jack of all trades. They needed someone who could help out with other responsibilities, things in which I had no knowledge. The nice thing about the team that I’m on is that they only needed someone competent in React Native - they have enough people to cover the other stuff.

Of course YMMV. I’m sure there are exceptions. But that has been my (limited) observation.

I have joined a company since 4 months. I had the same experiences which you mentioned here.
Thank you for the wonderful message. Because I would thought this is happens only for me. And Congrats for the Job… Keep doing well.
Regards,
Parathan

Congratulations and thank you for sharing your experience!!! This is very similar to what Ive learned in these past few months.

Like others, I am looking forward to your updates and advice as time progresses :smiley:

Congrats on the job! When did you start applying for the job hunt? After the year and a half of FCC?

Yeah, I probably started applying about 9 months into FCC, and then really hard in the last 6 months.