My first months as a full-time web developer
My first months as a web developer
At the start of 2016, I started on my first job as a web developer at Inspire. A couple of months before this I had finished an intense developer’s boot camp program. If you want to know what that was like you can read the blog of a fellow student here.
Not very long before I started that program I didn’t even know what a class or an object was in programming, and now I’m working on big and complex web applications that are used by thousands of people. If you are interested in what it’s like to switch a career to become a developer, you can read my first Medium post: ‘When athletes become developers’, but in this post, I partially zoom in to my personal experience as a starting web developer and even give some advice for new developers who are looking for a nice company to write code for.
I have to add that this may not only be interesting for new developers, but also for employers who are curious about what they can do to successfully add juniors to their team.
The company
The experience of working as a developer for the first time is of course impacted a lot by the type of company you work for. To give a quick summary, the company builds software for clients with different backgrounds, but most companies or organizations that have social relevance and are focused on improving people’s lives such as health care, educational publishers, research institutes, charities, and startups. At the moment it has about 10 employees and is based in the center of Utrecht, the Netherlands. Most applications they build are in Ruby on Rails and the developers are mostly very experienced.
What’s it like?
In my first days of working at Inspire, I and another intern got the assignment to improve the Team Happiness application that was built and used by the company itself. It’s a small app that basically sends an email every week, at a random day and time, to employees asking what their team's happiness is at that moment. Employees can reply with one of the five smileys, giving a score to how happy they are at that moment.
This application says a lot about the vision of the company and shows that it really cares about the employers. This is expressed in multiple ways, like the monthly one-on-one conversations with the founder, the flexibility to occasionally work from home, or the experimentation-days.
Experimentation-day is every last Thursday of the month and that day can be spend completely on learning a new technology that we’re interested in.
The nice thing about working on the Happiness App for the first days was that the consequences were not that great if you made any mistakes, because it’s only used by ourselves. This took off a lot of the pressure when your first pull request is going to be merged. Also, because every line of code is always reviewed by another developer, it’s very nice to get feedback on how to write better and cleaner code. This is one of the nice things about working in an environment of experienced developers.
After the first couple of weeks, I joined the team that was working on a much bigger and more complex application. By mostly working on small bugs and styling issues, I slowly started to get a nice feel about the whole project. Most of the time I could always ask someone for help so I didn’t have to stay stuck. But even with all the good intentions, it can still be a bit disturbing for colleagues when they are intensely focused on solving some big issues, to have somebody asking them about “easy” stuff all the time. So if you are hoping to start working on your first developer job soon, be prepared to figure a lot of things out yourself. Of course, the best friend of every developer, Google, is always there to have your back.
while ( ! ( succeed = try ( ) ) );
You will run into problems that look like you just can’t solve them at the moment, but most likely someone else did as well, so it’s really nice that there is an amazing community actively helping each other on platforms like StackOverflow. I’m not familiar with every programming language, but the Ruby community is great and can be your saving buddy in moments when you’re totally frustrated about things not working as you want them to.
Things to think about for starting developers
Which players are on my team?
Most of the time learning to code is a process that you do by yourself. You try, fail, try again, fail again, try another time, and fail another time. While thinking, trying, and reading, you break this infinite loop of failure with small achievements of success, only to be followed by that same loop again. It sounds depressing, but it’s not. It takes effort and determination to continue trying, but that process is what’s actually making you slowly become a better and smarter developer. That said, learning to write good code will take a lot more of your time and effort if you don’t have access to help, tips, tricks and code explanations from experienced people. When I first started to learn how to code, my best feedback has always been the fact that what I’m trying to achieve is working or that it’s giving me errors. For me, there was no difference between good and bad code, only code that’s working and code that’s not. Of course, my first pull request at Inspire had a lot of comments, and I was amazed by how much more reliable and cleaner my code looked after I finally had improved it together with a colleague so that my PR was mergeable. Having colleagues around you that can help you not only provide the understanding of every line of code but also the reason why certain code can be best written in a certain way, is an extreme advantage.
Do they have the time?
If you are looking for your first job as a developer, it’s very important to know if the company also has the capability of giving you the time you need to spend on educational needs. If there is only one medior/senior developer working at your next “dream job”, don’t expect him to be available to you every time when you might need some help. He is probably working on a lot of things that are usually more urgent than your personal development. One of the nice things about Inspire is that they have given me the responsibility to make sure I spend enough time learning. This means that I should schedule pair-programming sessions with colleagues and use some of my work time particularly for educational purposes like following a JavaScript course on Code School. Combining actual work with theoretical learning is a great way to develop your skills in your early development career.
Why do they want me?
Lots of startups are looking for junior developers and sometimes for the wrong reasons. If they are looking for a young developer because it saves them money, you can get in trouble if they have big expectations and small technical knowledge. It can be awesome to work at a nice new startup, but it can be a good thing if you first figure out if they have realistic expectations of you. You’re probably not yet ready to build the next Airbnb of whatever just by yourself.
To hire someone for an internship or a junior position can be a big investment for a company. You have to learn a lot on the job, your time may not yet be billable to clients and you need more help from colleagues than mediors/seniors do, but learning on the job and spending at least 40 hours a week coding will boost up your skills really fast. If you are a self-taught developer or just really passionate about programming, you shouldn’t be doubtful about going out for job interviews. I know it seems that most companies are just looking for experienced developers, but to build a great development team it’s also important to add juniors (read here why). There are a lot of companies looking for developers and sometimes you just have to be a bit lucky to find one that really fits you. If you are looking for your first job as a web developer you can find some great tips over here, or you could read this nice blog post.