I originally joined Thoughtworks as a graduate, and now that I am about to celebrate my two-year anniversary I would like to share some of my experiences with other people, especially grads. I hope this article can help them adapt faster as a grad. We can use the Dreyfus Model to map my progress.
Chapter 1: From Novice to Advanced Beginner
When I first joined the delivery team two years ago as a novice developer, I felt the same as most grads: simultaneously excited and nervous in the face of many unknowns and challenges. But in the first couple of days, it was mostly tension and pressure and not that much excitement.
The team did have expectations and requirements of me, but that was not the source of my pressure. In fact, most of it came from myself. I placed high expectations on myself and felt eager to contribute and be recognized and acknowledged. I sometimes felt bad about myself when other team members would talk about product-/project-related things that I did not understand during stand-up, or when joining tech discussions that I couldn’t contribute to at all.
But those feelings soon went away. Below is my advice for you if you are experiencing similar feelings. Those tips not only can help you with handling negative emotions, but also can help transitioning from novice to advanced beginner.
1. Actively communicate with the team
When you are stressed or anxious, talk about your feelings with team members or your buddy (mentor) as soon as possible. They will give you customized suggestions and tips. Speaking out can really help you relieve stress. Frankly speaking, after I shared my feelings with the others, I realized that most of my negative emotions were unwarranted. For example, when I was struggling with a story card and hesitated to ask for help because I felt it would reflect poorly on my ability, my team assured me that it is ok to ask for help.
2. Don’t be afraid, just ask more questions
When you have questions, do not be afraid to ask. No one can read your mind. We are developers, not mind-readers. Oftentimes, project members are too close to a body of work and may forget to cover the basics or background with new teammates. Luckily, we aim to have a sensible default of pair programming, which is the perfect time to ask questions (either technical or business-context related). If you do not ask questions proactively, what you do not know will always remain that way. But if you keep asking, and document the answers for future reference, you will gradually become confident and stop feeling the anxiety of missing out. This can also serve as a reference for your teammates.
In addition, after getting the answer, try to summarize and confirm to see if you understand it correctly or not so as to maximize the quality and efficiency of the conversation. Otherwise, even if you get the answer, your understanding of it might be biased.
3. Choose your field and take it step by step
There’ll be many tech stacks used in different projects. At the beginning, if you try to put everything in your head at the same time, you won't build self-confidence and a sense of accomplishment easily. It's better to only focus on one direction at first, such as front-end, back-end or DevOps, etc. In this way, within a short time, you can truly feel your progress and growth, and see the delivery value that you can bring to the team, which will quickly eliminate your anxiety and self-doubt (if you have any).
In order to grow from novice to advanced beginner, I personally think that it is very important to lay a solid foundation. We must not be overly anxious about achieving quick success. Just stay calm and take it slow. No one will blame you for not knowing everything from the start.
In the next part of this article, I will explore the rest of my journey as a Thoughtworker graduate.
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.