In this post, I'll share my entire journey about how I became a professional mobile developer.
I hope that reading about my experience will help you reflect on your present and your future, and will either help you start your career as a developer or motivate you to move forward in achieving your goals.
My university degree and how it all started
I finished high school with a mathematics-informatics degree in a small town in Romania.
Like most of my friends, you had two choices in terms of cities to go to for university. I chose Bucharest, the capital of Romania.
I grew up thinking that university is a mandatory thing. That probably happens in most countries.
All our parents want it for us.
I never felt a desire to choose a specific degree. Sound familiar? Never saw myself working as something after I graduated.
In the end, I chose to go to an economics university in Bucharest. Again there were two options. One was considered a good university, and another where you would pay a lot of money just to get a degree.
I took some exams at the first one, without studying, to be honest. And obviously I did not pass.
I had to go with the second option.
Fast forward and I graduated from my economics university. But I graduated two years late. I never had a passion for economics and never saw myself working as a banker. I always thought I wanted to get the diploma, and that's it.
I never considered how much I paid for that useless degree, but I needed a diploma to be accepted by society, right?
I was a failure, with an economics degree, but no experience or knowledge. In the following years, with the help of my family, I managed to create two businesses that failed, too.
I will not discuss those in the story, but let's just say that I learned a lot. I also played online poker, and I was pretty good at it.
Seven years after graduating from high school I found myself with no job experience, no successful business, and no money.
I knew I had to take action, and I knew that all my dreams about having a successful business would not happen soon unless I had a backup plan.
That's when I thought:
What job can I get that will make me happy, pay me well, and allow me to have a good life at 30 - 40 years old, even if I never manage to create my own business?
The only answer that came to mind was programming. I had some prior experience in high school and built a few websites.
There was only one problem – I did not like mathematics in high school, and I always thought that I would not be able to learn professional programming without an excellent understanding of it.
I was wrong.
There are probably a lot of people like me, people who have the same thoughts and doubts. But all you have to do is take action and start learning.
Learning Android and Java
It was 2014 when I first started looking into the idea to learn to code.
First thing I did was to Google for some courses in Bucharest, and I found a company that invited me to their offices. I went there, and I remember they had a lovely furnished office with a lot of iMACs. I told myself, "That's what I need."
Ten minutes later I found that they were doing all their courses online and that it was more like an office to sell the course rather than do the course.
I don't remember the exact price, but it was around 1500 - 2000 USD. I didn't take it.
I let go of the idea for a few months, then 2015 came. New year, new plans, new life, you know?
I started to look into an in person course again, and found out that they were called bootcamps.
Discovered one in Bucharest and they were doing Java, and it only cost around 800 USD for four months. It would be a few hours a day with a teacher and other students.
Looking back, I think they were cheap for what they offered, but I think we were the second batch they had.
They were telling us all kinds of things about being hired after the bootcamp, but I did not care.
I wanted to learn to code, and I thought that I would manage to find a job quickly after just a few months. I was right, but it was not as easy as I thought.
The classes started. They always told us that it is not enough to do only lessons during our hours together.
I tried to listen. But at home, things never made sense. Programming was hard, and I often thought that I would not be able to finish the bootcamp.
I pushed myself harder and harder. It was one month into the courses when I found that we were going to learn Java with Android, but again, I did not care. I was falling in love with Eclipse and things happened on the screen as we coded.
Eclipse is an Integrated Development Environment that was originally used to develop for Android. Now we use Android Studio.
It was hard. Lesson after lesson I was trying to learn variables, classes, inheritance, encapsulation, for loops, and so on.
But I struggled. I didn't have a clear picture of how I could use all these in a bigger app. It did not make sense a lot of times.
If you just started programming and you feel the same, I want you to know that it's normal.
Our mentors always told us: "You do not have to know all these off top of your head. Just try to understand what they are and how you can use them."
They were right, but I found that out later. At that specific moment in time, it did not help.
One thing which I regret is that I did not do projects from the beginning. I always thought that I needed a teacher and that you cannot learn anything online on your own. I was lazy and again, wrong.
After four months, I managed to make my first "non-working" app. It was an app where students could rent rooms from other students or people.
I said "non-working" because it did not have any backend or any users. It was more like a demo app that was using some SQLite for storing data.
I was proud of it, because a few months before, I never imagined I could do it.
The bootcamp finished, and I don't think I ever spoke with anyone from their management again.
Not sure if they tried to get me a job, or maybe they thought I was not good enough for a career as a developer.
First interviews and first job as a Junior Android Developer
I started interviewing, and I remember that my first one was for a Java role at a big international company located in Bucharest. (Hint: they have over 300,000 employees, and their revenue from 2019 was about 77 billion.)
I did not take the interview, but I think that the conversation was a good one. I probably wasn't hired because I didn't have any experience.
After that, it took me another month to get the next interview.
A friend I made in the bootcamp helped by recommending me. If he reads this post, I want to thank him.
The role was actually as an Android developer for a Romanian outsourcing company that had a contract with a telecom company.
I had two interviews with them, mostly technical questions, and I still remember when they called to offer the role.
The salary was small, but it did not matter.
I think I started the bootcamp at the end of May 2015, and I began my first role as Junior Android Developer in January 2016.
It was quite an achievement.
My manager assigned me a project, and then I started learning about version control and how to work Agile, and how to work in 2 weeks sprints.
If you've started learning programming or you want to start, I recommend three things.
- Start today (Optional if you already started)
- Do as many projects as possible
- Learn version control (Git, Bitbucket, or Gitlab) and push all your projects there.
Maybe I will write another article about all these things.
During my time at that company, I met a lot of friendly and helpful people. I was probably annoying to a lot of them because, at the beginning, I was asking for a lot of help.
New country and more Android jobs
9 Months later I decided that I wanted to move to London because I was getting a lot of messages from recruiters. Also I thought that it would be easier to further my career there, then return to Bucharest.
I was lucky that my sister lived there, and she was kind enough to let me live with her.
Even when I had recruiters promising me interviews and stuff like that, when I got there I had zero meetings.
I knew that it would not be easy, and I applied to a lot of jobs online.
After two weeks, I got an interview at a British Telecom services company. They had a small IT department, and their Android developer was leaving. They had internal Android CRMs apps, used by their employees, and they needed someone for maintenance and to develop new apps.
It was a one year contract, and the pay wasn't great (I found that out later), but again, I was happy.
I learned a ton in that year (on my own).
I learned Android specific technologies like:
- What's an architecture like Model-View-Presenter and how to use it in an app
- How to do proper Unit Testing
- The SOLID principles
And so on.
I learned all that at work and in my free time. I was working, and in my spare time, I was building apps for myself.
To this day, all my apps (5 on Android) have more than 100k downloads, mostly organic, but only one of them made more than 2,000 USD.
I worked for the telecom company for precisely one year. I wanted to try something different thing in London and work with more Android developers.
It took me some time to understand that, as a software developer, you always have to do more than what you do at work. It's the same with doctors or lawyers. They regularly need to improve their knowledge to be better than others.
I felt ready to work on a more significant project, but I don't think I was skilled enough.
It did not discourage me, and I took an Android role at a global outsourcing company.
I was going to work for a big British bank in London.
I was scared initially, but it took me one month to feel like I was part of that project.
I did three interviews before I entered the project.
During my career, all the interviews I did had two or three steps.
The first one is usually with HR where they ask you things about your experience.
The second interview could be with technical questions, take-home assignments or technical questions with some algorithms.
The third interview might be with a tech lead or with a manager or again with someone from HR.
I started working at the bank in a proper Scrum team. We were 4 Android devs, 4 iOS devs, a Project Manager, a Product Owner, 2-3 Quality Assurance Engineers, a Business Analyst, Copywriter, Designers.
All these people were developing a crucial part of the app. The project was massive.
Just in the development team there were more than 30 Android and more than 30 iOS developers.
I stayed at that role for one year, like with my previous job. The reason? I wanted to go back to Romania.
I was lucky enough to have only good colleagues around me.
It's never wrong to ask for help if you want to learn. We've all started from the beginning, with zero knowledge. I feel that it's terrible not to want to learn when you don't know.
The year at the bank taught me a lot, and it felt like a few years. I learned:
- How to do code reviews
- How to work on a project that required 100% code coverage for Unit Testing
- How to deliver features on time
- What is clean architecture and how to write code that's easy to read without leaving a ton of comments
And many more that I probably don't remember.
Going back home with more knowledge
It was November 2018 when I went back to Bucharest, after two years and a bit of living in London.
It was an excellent experience, but it did not feel like home.
I got a new job for another outsourcing Romanian company quite fast (2 weeks) after I came back.
It took me only four months to leave again for a new six months project in London.
I was not happy to leave my girlfriend alone, but the money was good for only six months of work.
I'm not allowed to disclose any information about the project because I signed a non-disclosure agreement, and today I'm still working for them. But I'm located in Bucharest right now. I've been working for the current company for more than a year and a half.
What did I learn on this project?
- How to create a team
- How to start a big app from scratch. I will probably be very proud once we launch and people will use it.
- How to adapt requirements with a lot of unknowns.
- How to deliver by working with people all over the world.
It's been a crazy journey.
Conclusion and what I learned
My post is at over 2000 words, and I feel I did not give you a lot of details about what I learned. I only scratched the surface.
It was not easy, but I don't regret choosing this career.
If you are me from 5 years ago, just start.
You will feel like quitting. You will think that you are not smart enough, you will feel like any developer that takes a few hours/days to solve something without any luck and then has a moment of brilliance.
It's not wrong not to know, and no question is stupid. It's terrible if you don't want to learn.
Today, more developers than ever are willing to help. You can easily find Discord groups where people are happy to answer your programming questions. There are a lot of Reddit communities that will be helpful. Maybe even Slack channels can work for you. Finding a mentor can be a solution too.
Websites and YouTube channels like freeCodeCamp are all you need to get started.
Here are all the things I hope you learned in this post:
- Starting is hard, but every day of learning something new will give you enormous satisfaction.
- You need to do all kinds of projects. Knowing the basics is good, but building things and working with version control will help you prepare for a future job.
- People are willing to help (both online and future colleagues)
- There will be days when nothing will work. You will not find a solution easily. Either relax and come back to the problem later or just ask for help.
- All developers (junior, mid or senior) search for solutions on Google and get stuck frequently.
- You will feel impostor syndrome, but trust me when I say that I met developers with CS degrees who are worse than me.
- Being a developer it’s not only about coding. Soft skills are important too.
If you liked this article and want more of this, please follow me on Twitter. I write about my journey as a mobile developer, my failed/successful start-ups, about app marketing, and all kinds of other things I learned in the past 10 years.