Your First Day as a Software Engineer: How to Prepare
So it's your first day on the job as a software developer. What should you expect? How should you carry yourself? There are many ways you can prepare ahead of time. Let's start by looking at what to expect technically, and then talk about non-technical issues.
What to Expect Tech-wise
Although any employer is going to expect some learning curve, the sooner you get up to speed the better. If you plan on the first day to be somewhat technically challenging, you'll be able to hit the ground running and leave a terrific first impression. Your best bet is to simply ask as many questions during the interview or after they've offered you the position, so you'll know exactly what you'll encounter.
For a developer position, the first thing you'll be faced with on your first day is the developer environment. On the broadest level, that means operating system. Most developers today use Linux, although you also see Mac and Windows depending on the projects. You don't want to fumble your way through the introduction to the environment.
While the directory structure will be new to you, you should easily be able to move about the directory structure using familiar commands. If you're on Linux, you'll likely need to know the bash shell and the usual commands for managing directories, files, and permissions, as well as how to ssh into a server. For Mac you'll need to know similarly with its terminal. Windows is tricky; you'll likely need to know the traditional command line prompt; or, you might need to know Powershell. Ask before you arrive for your first day.
Additionally, you might see a virtual environment such as a Linux distro installed inside VirtualBox on a Windows machine, or perhaps the new Windows Subsystem for Linux running on Windows 10. Find out beforehand, and study up so you're ready when you start.
Next will be the build system itself. Which you need to know depends on the language. For C++, you'll need to know the various make tools. For node.js, you'll likely need to know gulp, npm, and so on. There will also be libraries. Most languages these days have dozens of open source libraries that are the most commonly used. The more familiar you are with these the better.
For example, on node.js you might see request.js and async.js. If you're already familiar with these libraries, you won't have to spend hours or days reading documentation. And if you're doing web work, you'll see some front end libraries, such as angular or vue.js.
It's not likely that you'll be actually producing any new code the first week, although if you do, great! In any case, you'll want to take time to familiarize yourself with the source code. Most companies have huge projects with hundreds or even thousands of source code files. This can be overwhelming. But remember: At heart, code is a bunch of functions. Find the main entry point to the software, and trace through the code function by function. Look at how functions are groups and organized and what class and object structure is used.
Most likely on your first day you'll be given access to the source code control system. These days git is the most common, often in conjunction with GitHub. Explore the different branches and releases in the company's code. Look at the issues and pull requests. Look at who is assigned what issues. Are there any open issues that look like you can fix? Bug fixing is a great way to learn a new set of source code.
No matter how much you prepare, remember that you will likely be overwhelmed. This is okay! Most jobs are overwhelming at first. Now let's talk about some non-technical odds and ends.
Scheduling Your First Day
When the job offer comes in, it will most likely be in the form of a phone call. During that call, they'll likely offer a dollar amount and when they would like you to start. Negotiating the pay is something we cover elsewhere. Don't be afraid to schedule your start date at least two weeks later, especially if you have to give notice at your current job. Ask what paperwork you should bring the first day, especially IDs and bank information for direct deposit. Also ask if you need to bring your own computer, how you should dress, what time to get there, who you should report to, and where that person will meet you. You might also ask where you're supposed to park if you're not sure.
In the case of a remote position, ask if they'll be sending you a computer and if you need to install any particular software such as a VPN client or video conferencing software.
Your First Morning
It's normal to be nervous, but do your best to relax. Take a notepad and pen with you so you can take plenty of notes. And expect a few glitches. For example, you might get to work and find out your desk or computer isn't ready. Or with a remote position, your computer might not have arrived yet. But don't take any of that personally; mistakes and oversights happen.
More Tips to Make Your First Day Successful
Here are some other general thoughts on how to approach your first day.
Ask lots of questions
Don't forget non-technical questions like where are the restrooms and kitchen. Can you bring coffee and snacks to your desk? Where is your manager's desk? When it comes to benefits questions, most likely you'll be meeting with an HR person who will go over the benefits package. This is the person you'll go to with future questions about benefits.
Learn who to go to for help
Most likely there's a team lead or some type of expert who you can go to for questions. But there might be others as well, such as a go-to person for IT questions such as what to do if you get locked out of your computer. Bigger companies sometimes have an in-house tech support phone number you can call for help.
Learn names and people's desk locations
This isn't always easy, because you'll likely be meeting a lot of new people, but do the best you can. And don't be afraid to apologize and ask for somebody's name again.
Learn other tools
Companies have lots of tech tools such as Trello and Jira. You might find out in advance if they use any of these tools and you can explore them before you come in.
Write everything down
Take lots of notes because it's going to be nearly impossible to remember everything. Write down names of tools, your usernames, network drive and Google drive locations for important files, and anything else they throw at you.
There will be a lot on your plate your first day. So, don't be afraid to get up and walk around a little. Don't go overboard on this, but feel free to go into the kitchen and grab another cup of coffee. Use this time to introduce yourself to your new coworkers.
Don't Expect Perfection
Although the first day can be both exciting and scary, you'll likely have very high hopes about the new job. This is your dream job and this will launch your career and only good will come out of it, right? Well, that's probably true to an extent, but the reality is no place is perfect by any stretch. Soon after your first day, you'll start to see office dynamics, and you'll hear people complaining, and you'll start to experience your frustrations. That's okay. Work with them, and remind yourself that there will be problems no matter where you work.
In any case, work hard, and stay committed. Do the work your boss asks you to. Don't be afraid to raise concerns. The first day will quickly come and go, and before you know it, you'll be long-since settled in and no longer the new person. Then after perhaps two years, or five or more, you'll be ready to start sending out resumes and starting the whole process over, looking for something even better. But first, have fun and make it through the first day of this job.