What I Wish I Knew Before My First Developer Job
If you’d like to read about how I transitioned into development, you should read How I Went from Sales to Front End Developer in 16 Months.
I started as a front-end developer at Pleo in August 2019. There are some things you can’t prepare for while transitioning into a full-time developer role.
Most rational companies maintain the expectation that there will be some time spent learning in your first few months on the job. Even as a seasoned professional, it’s impossible to know everything.
Looking back, there are a few key areas that, had I spent more time looking into, would have made the transition easier and less intimidating. I’m not saying you should be an expert in everything I’m about to mention. Having a rudimentary understanding of the following points will smooth the transition into your new career.
Avoid the Shoulder Tap
There is no way to hide from the mountain of questions you’re going to have in the first few months at a new job. There were so many days where I felt way in over my head.
It’s expected that you’re going to have many questions. What’s more important is how you go about getting answers to those questions. You’ll likely be assigned to a buddy or have a team lead that will guide you the most initially.
This shouldn’t be used as a license to bombard them with every question that you think of. Don’t spend an entire day stuck on one problem, however, you should usually spend more than ten minutes troubleshooting a problem on your own.
Ask questions asynchronously when possible. It’s considerate to allow others to respond to a message when it’s convenient for them. If you know it’s going to require a more extensive session, schedule in a 15–20-minute meeting with them instead.
Using Git with a Team
When learning to code, I never felt I had a reason to be strict with version control. It was actually a while before I stopped using Google Drive to store my code remotely and conceded to pushing everything to Github. Creating branches or running pre-commit checks was completely foreign to me.
Comfort in using more advanced git workflows would have been a huge benefit. An easy way to challenge yourself would be to only merge code into master via a PR from a branch.
Explore tools like Husky and see if you can run automated linting before you make a commit. It’s a great way to make sure you’ve removed any unwanted console.log
before deploying!
Life After localhost:3000
I rarely deployed my little personal projects. When I was following a course, I would usually pay less attention to the sections where we handled deployment since it wasn’t directly involved in writing Javascript.
Obviously, your code can’t live on your computer in isolation forever. Once you start working on a team in production, everything will be running through continuous integration and continuous delivery (CI/CD) pipeline.
If you google CI/CD, you’re going to find a bunch of dev-ops articles that make it seem complicated and intimidating. I definitely felt that way. CI/CD is simply the process of automating the deployment of your app from the code living in your project's repository.
The easiest way to create your own CI/CD pipeline is to create a new site from Git on Netlify and have it build whenever you push to master. If you’re interested in reading about more advanced tools, look into Github Actions, Travis CI, or Jenkins.
Testing and Typescript
Half of the job postings I have seen recently include Typescript in the description. They don’t always mention testing, although, I’d be surprised if you’d ever be allowed to add a feature without accompanying tests.
I think you can get pretty far without fully understanding Typescript. It can be frustrating to learn in isolation and it wasn’t until I was working in a large project that I gained my footing. At the very least, you should become comfortable with the basic syntax so a project in Typescript isn’t completely foreign.
Writing tests you should absolutely be comfortable with, although, it can be tough to figure out where to start. I would recommend researching Jest and learning how to write simple unit tests. After that, you can explore integration tests using something like Testing Library.
What Now?
I wasn’t an expert in any of the areas I mentioned when I got my first developer job. Here is a list of resources that have either helped me along the way or I wish I had utilized way sooner in my learning:
Podcasts
- Syntax FM: A Tasty Treats Podcast for Web Developers.
- The CSS Podcast
- Full Stack Radio: A podcast for developers interested in building great software
Articles
- How to do a code review by Google
- How to add testing to an existing project by Kent C. Dodds
- What is the difference between unit, integration, and e2e testing? by Kent C. Dodds
Blogs
- https://mariusschulz.com/blog — Great blog for Typescript
- https://www.freecodecamp.org/news/
- https://dev.to/emmabostian
Don’t be a stranger! Feel free to write if you have any questions, email me your favourite book recommendations, connect with me on Linkedin or follow me on twitter!