The joy of Kotlin (4 Part Series)
How to start a programming career? Should you do study computer science, do a bootcamp? Well those work, but there is more than one way to do it. You can also do something else entirely!
I met Adele Carpenter at KotlinConf. She now works as a Backend developer at Trifork where she does Spring & Kotlin. One year+ ago, she was working in finance, sales and marketing. I found this unconventional but super interesting: I think anyone who has the mindset of a peretual learner can become a programmer. You mostly need to find this stuff interesting and some company smart enough to give you a chance.
So I asked her a few questions that I'm only publishing now because I've been procrastinating hard :D
Adele, can you first tell a bit about you? Who are you as a person and what makes you tick?
Haha what a deep question!
I guess the honest answer is that I am still trying to figure out exactly what makes me tick. What I do know that I am intensely curious and love learning.
I also love to travel and experience new things and places. Originally I am from Australia, but I have been living in the Netherlands for three years now. I absolutely love living in Europe. So much culture and history, right on your doorstep!
You are today working for Trifork in the Netherlands. What is the simplest explanation of what your product does?
Trifork is a project-based software development consultancy. We provide our customers highly-skilled and self-sufficient software development teams. We use open source technologies such as Java and Spring Boot to build custom, business critical applications for our customers. The project I work on is a Swiss education platform, which makes it easy for teachers to create and set test for students and review the results. The students can also use the platform to complete practice tests.
You told me that one year ago, you launched a Terminal for the first time. And today you are a professional programmer.
How do you went from 0 to 1?
The short answer is drive, persistence and support.
I have always been quite nerdy by nature, but was never really exposed to programming, so completely missed getting the bug when I was younger.
After working at Trifork for around 1.5 years in a sales and marketing role, I knew I wanted to work in a technical field. Not long after, I was helping out at KotlinConf Amsterdam, and won a book, Koltin Apprentice, that teaches programming in Kotlin for absolute beginners.
By this time I had already had a couple of false starts trying to learn to program. One of the hardest things I found when starting out is just the sheer volume of topics and resources. It is really hard to know where to start.
So I took winning the book as a sign, and decided to lock myself away from the outside world. I took 2 weeks off work and dived into the book, meticulously doing every single exercise. When I came out the other end, I told my company that this was what I wanted to do, and they allowed me a “Developer Day” every week, where I could learn to program.
Over the course of the year, I just kept learning and absorbing and asking questions. The best bit of advice I got was “build a project”. So I started off with some simple server-side rendered web apps using, where possible, the same basic stack that Trifork uses. With this approach I got more familiar with the JVM and the technologies around it such as Spring (Boot, MVC, Data, Security), Gradle, Hibernate, MySQL, Flyway, Thymeleaf and Docker to name a few.
The other great bit of advice I got was “put a hello world in production”. Just as I was getting a little comfortable with development, a whole other landscape opened up. But I am so glad I persisted with that as I got some exposure to CI/CD pipelines and build scripting.
After about 8-9 months, I realised that I could only go so far with this learning model. I needed real world experience. So I asked my employer to put me on a customer project, the rationale being that I could really step up the pace of my learning. They agreed and here I am. I still have so much to learn, but I build experience and confidence with every completed ticket.
I really just want to mention again the wonderful network of support I have while I learn to program. The team at Trifork for example, are some of the most helpful and intelligent people I have ever met. I also feel that they enjoy passing on their knowledge. I also have support at home as my boyfriend happens to be a software developer as well. We have spent many evenings discussing computer science fundamentals over dinner.
What were your main struggles in your journey to become a developer? And what did you find helpful to overcome them?
The first immediate struggle was knowing where to start. To get over this, I just picked something and focused on it. For me, backend on the JVM was the obvious choice. Had I not won the Koltin book, I probably would have completed a course online that went through the fundamentals of programming using Java. After I had a language foundation down, I needed to build something. Being a fan of RuPaul’s drag race, the first app I built was a (probably over-engineered) random drag queen name generator. It takes some simple user input and then gives you your drag name. I chose to build it with Koltin, Spring Boot and MySQL, so I was gaining skills that I could use in the workplace later on.
The other major struggle I had was feeling stupid. A lot. There were some days where I made literally no progress. I got over this by speaking up, asking questions and leaving all ego at the door. Programming is hard. You will have lots of questions that you think are silly (if you can put your question into words at all), but that is just part of the process. It’s not what you know at the beginning that matters, it’s how you persevere and keep improving. And funnily enough, I opened up to my colleagues about this feeling, they all laughed and said, “that’s part of the job!”
Generally, how do you feel about your first year in code?
Overall I feel really positive. Of course there is always a part of you that wishes that you knew more, could study more, could learn faster. But I have come to accept that I am where I am, and I do what I can do. It is easy to focus on all that you still have to learn, but I try instead to look back at how far I have come. And I have come a long way!
How can people reach you if they want to know more?