I worked eclectic jobs after getting my bachelor’s degree in economics such as pastry commis and government employee. Then I enrolled in an Information Technology master’s program and realized that I was interested in the beauty of the computer world.
How I encountered SuperX
When I came back to China after my graduation, the employment market for new graduates was intense because of Covid-19. Given my lack of a computer science background, my chances of getting a developer position were slim. But just when I was about to give up, I saw the recruiting campaign for Thoughtworks SuperX. It’s a special recruitment program especially designed for graduates whose majors aren’t software engineering-related. Instead of testing coding skills, this program evaluates other qualities such as learning capabilities, teamwork skills and willingness to learn. This SuperX position description looked like a perfect fit for me, so I applied without hesitation.
The two rounds of interviews during the SuperX recruitment process didn’t directly include any programming assessments. The first round was a group interview mainly focused on teamwork capabilities and basic understanding of agile development. The second round was about judging the candidate’s potential and whether they’d be a good fit for Thoughtworks’ culture.
As a graduate from a non-computer major, this training really helped me build a solid programming foundation: I learned not just about how to write code, I also became familiar with concepts such as TDD, clean code and refactoring.
New chapter as a new employee
After onboarding, I was assigned to attend a Spring Boot and TWU (Thoughtworks University) course before working on a client project. The former was a two-week training on Spring Boot, a Java-based framework to create microservices, as most of our projects use Java for backend development. Every day during those two weeks, we learned new concepts in the daytime and got assignments to finish at night. Usually, by the time I finished, the clock already pointed to eleven o’clock.
I was left frustrated; I thought my lack of formal computer science background was holding me back. However, when I brought this up with my coach, he was quite surprised. In fact, he hadn’t even noticed that I’d been recruited through SuperX and saw no difference in quality between my ideas or my code compared to other graduates. I wasn’t noticeably slower than them either. This made me realize that I wasn’t that far behind the computer science graduates and gave me a boost in confidence about becoming a developer. I realized that I should stop worrying so much and just focus on my own learning progress.
The real work begins
On my first project after graduation, I was assigned to work as a backend developer, as I’d hoped. However, this project used Kotlin, with which I had no experience at all. Working on an actual project was also very different from my practice projects. So, for the first two weeks I was overwhelmed by having to learn Kotlin and the project's business context at the same time.
Being a SuperX newbie had its advantages: colleagues had a higher tolerance for mistakes and were very willing to help. The downside was that my colleagues often assumed that my lack of familiarity with Kotlin was the root of all my problems, when in fact I was more often confused by business contexts.
Once I figured out what was dragging me down, I intentionally started to read and understand project documents by myself instead of waiting for my colleagues to give me the information. After doing that, I found I no longer had problems keeping up with group discussions and could even contribute constructive ideas of my own. As for coding, once I did a detailed investigation before kick-off and tasking, I had no more issues about writing it. Then I got feedback from my buddy that I should pay more attention to refactoring and DDD while coding instead of focusing on Kotlin basics only.
Looking back on the journey
Right now, if anyone were to ask me how it felt to be a SuperX graduate at Thoughtworks, I’d say it was a very worthwhile life experience. Learning programming was difficult, as it does require more effort to fill in the computer science knowledge gap, but it's also rewarding since you gain a little more knowledge every day, which makes you so sure you are on the right track to becoming a qualified and experienced developer.
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.