How I became a developer
TL;DR: I was a Video Editor, 3D Animator and a Designer, but I needed to code.
The last 2 years I’ve been working in Atcom S.A where I’m responsible for the implementation of a cross platform mobile app. It is data-driven, offline-ready and incorporates real-time features that pose great challenges in the process of making it. I also do some freelance work on the side, developing mobile apps with React-Native.
I’ve had the privilege to be recruited by a very gifted person with great technical background that inspired me and helped me learn, grow as a developer, and most importantly realise my passion about Software Engineering and the skills required for it.
I didn’t always want to follow the software engineering carrer though. I genuinely thought that programming is the one and only thing I would never be able to do with a computer, and hadn’t written a single line of code until I was 25.
A little backstory
I was born in 1991 and raised in Rethymno, a small city in the biggest Greek island, Crete. I’ve been playing around with computers since Windows NT 3.1 but I didn’t own one until I finished school at the age of 17, when I moved to Athens to study 3D Animation.
The Designer in me
The passion for 3D Animation came through a summer job I was offered right after school was over, as a Video Editor, which exposed me in all kinds of video effects and intrigued me to learn more advanced techniques. Even though my growth was very promising in certain aspects of the Industry like Animation and Environmental Rendering, I never chased my dream to become a 3D Animator, fearing that there wouldn’t be enough oportunities for work in Greece at the time.
Thankfully Graphics and Web Design were easier to approach proffessionally, so soon after my military services I was recruited in 2011 by a small eCommerce team to work as a Graphics Designer in their Cyprus offices. I worked as a Designer in various other places and positions until 2016, doing mostly web related work (aka: data entry. I hate how some people believe data entry is part of a designer or developer’s job).
The developer in me
By 2016 I had gained some clients of my own, whose Email Marketing campaigns were designed and ran by me. As their needs were growing and becoming more demanding, I soon found myself in a situation where time was just not enough for all my daily - often repetitive - tasks, so I had to start automating as many as I could.
The thing is, I had never written a single line of code by that time!
Sure, I had created some Wordpress sites, and had tweaked some values in a javascript code before, but software development, in the context of actually writing code and creating logic flows, was a complete black box for me. I could tear apart a computer and reassemble every last component of it, but, for some stupid reason, coding felt very intimidating for me, and I genuinely believed that I would never be able to code, let alone be good at it.
So I made a life-changing decision. I would try to learn JavaScript!
I started with a few tutorials here and there, but couldn’t keep up because they were either talking about a specific framework, or they assumed knowledge of certain things I hadn’t even heard of yet. I kept reading about how you need to implement the code in the tutorials to be able to learn it, but It wasn’t what I was looking for. I wasn’t interested in memorising a certain example of code of a given aspect of the language, but to realise the way the language works in a more foundamental way.
This is when I found Anthony Alicea’s course JavaScript: Understanding the Weird Parts on Udemy.
I wish every tutorial ever made had the teaching style this guy uses. This course assumes you have ZERO knowledge on the subject and focuses on helping you understand the WHYs. After I finished the course I read the whole MDN’s JavaScript Documentation writing everything down in my own words.
This was a 2-month process but when this was over, everything skyrocketed. I immediately started my own projects most of which where daily task automations I needed for the design process of the Emails, then started diving more into the whats and hows, and whys of software development, deployment, and maintenance. Soon after I started - and still am - working as a React Native developer in the company I mentioned above.
What now
I believe that what makes a Software Engineer great at his job, is his ability to solve problems at design time, way before they even appear. This, among many skills, requires a wider knowledge and deep understanding of how things work. Since my first line of code, I’ve been trying to learn other languages and get my hands dirty with all kinds of various technologies, like microservices, continuous integration / deployment, etc. I’m actually planning on a blog series to document my learning journey in various languages like Swift, C++, Go and Java.
My goal is to be able to understand the differences between the problems each language was designed to solve, in order to better design software according to its needs.
That’s a looong way ahead, I know. I’m counting on it!