blog 1

From Zero to iOS developer. Going back on a 4-year learning journey. [Part 1: From zero to my first (real) program]

November 4, 2018

learning iosdev coding programming ios skills

Part 1: From Zero to my first program πŸ€–


Everything started in the Summer of 2014, I had just left my job at a tech startup with a bitter taste of having failed.

I had been leading growth (user acquisition) there for a year and early on, with a very small budget, I had to be clever to hack our way through growth and I unfortunately wasn’t technical (understand I didn’t know how to code) which could have really useful. Of course back then I didn’t know that, and it took me some time to find out why things didn’t work out as planned. Today, it’s pretty obvious to me that growing a startup as a non-technical marketeer with no budget is a pretty daunting tasks but back then I was naive and thought everything was possible.

So I was jobless and I knew that my Master’s degree in Business Administration wouldn’t be good enough for a successful career in a tech industry. But at first I didn’t do much about it.

Learning to code would be cool but everytime I would consider the idea, one of my worst memory from University would come haunt me.


I had taken a minor in Computer Sciences. My understanding was that we would learn how to build websites… but I signed up without thinking and without really caring about the actual courses I would have to follow. I was just naive and things turned out to be much more complex than I thought they’d be.

This attempt resulted in a major failure, I had to switch minor and request a special exemption from our Dean to do so … basically a mess and my first failure at learning how to code 🀣.

1. We’re in the Summer of 2014 and I’m between two jobs. 🧐

This period was a real struggle. Trying to find a job in France, after graduating from a University in Belgium: not easy.

French companies give too much importance to the Business School you attended and they like French degrees so I guess a Belgian graduate with a failed startup experience didn’t look that appealing.

I was applying for jobs, going for interviews and never really hearing back. I was getting really bored of sending resumes.

2. I had to stay busy and do something productive that makes me feel good. 😀

I decided to launch my own channel to share the music I liked. I remember discovering Tropical House music at the same period. This genre was getting big and many people were launching YouTube channels to promote smaller artists.

That sounded something simple to do and I thought I could even make some money with Adsense if I managed to get enough views.

This idea of generating money passively became a thing for me after I read “The 4-Hour Workweek”. This book blew my mind when I was 21 and I always thought a day would come where I could earn a few $$$ while I sleep at night.

Writing these lines today makes me shiver as I’m on a much clearer path to that goal now.

alt text Link to the book: The 4-Hour Work Week by Tim Ferriss

3. Growing on YouTube is hard … even back in 2014. 😨

I knew if I could give my YouTube channel an initial push, I could start driving a significant amount of views… but getting views is hard. I had to find a better way to hack my growth.

This is where learning to code went from something cool and valuable I should learn to something I need to achieve my goal right now.


Instead of being the goal itself, it had become a way to achieve my goal.

4. Building a script in Python to generate traffic on my YouTube videos. βš™οΈ

Back in my startup days, we had built a website dedicated to fashion lovers and my goal was to acquire as many users as possible. One of the techniques I was using was to ask questions to Ask.fm users to try to get them to sign up to our site.

“Have you heard about Famest.co?” (our website back then, still alive today)

“Would you like to be rewarded to share your style online? If so check out famest.co”

etc…

I’m sure you get the point. I was nicely spamming a community of young (and bored) people to drive awareness on the product we were building.

I was doing all of that manually and had no idea how I could automate this process.

This time around I thought I could reuse the same technique to drive traffic to my YouTube videos and that’s what I did… again … manually at first.

It became boring relatively quickly and I kept asking myself if I should invest the time to learn how to code to make this less painful. I knew all I needed was a script that would repeat a bunch of steps over and over again.

Programming was going to be the key to this problem and I didn’t want to pay someone to build that for me because:

  1. I had not much money
  2. It was kinda black hat
  3. I didn’t want to give away my traffic generation growth hack to anyone else (I can talk about it now because Ask.fm has changed a lot and increased their security which makes this impossible #DontTryThisAtHome).

5. Learning to code, ok but how … πŸ€·β€β™‚οΈ

It was working… traffic was slowly growing on my videos but I was bored to death with this manual process.

I needed a way to learn how to automate this, but the first question triggered another one which triggered another one etc…

What are bots?

How do they work?

What do I need to learn to build one?

What languages can I use to build one?

… and the list goes on.

5. Googling my way to a solution πŸ‘¨πŸ»β€πŸ’»

I broke down the problem into smaller ones and from “how to build a bot?” I went to “how to automate actions in a browser?”. After a few searches I discovered Selenium, a library that helps automates things in the browser, primarly to run automated tests for web applications. I figured I could easily use that to create a script.

Selenium supports many languages … so I still had no clue what to learn but I found a tutorial written in Python so I figured I’d learn how to understand and write Python first.

The language you learn really doesn’t matter as long as it helps you get closer to your objective.


6. Computer Science 101 - Udacity πŸŽ“

A few Google searches later, I signed up for the β€œIntroduction to Computer Science” course (also called CS101) on Udacity.com. This free, video-based course explores the core concepts of Computer Science using Python. It taught me that programming really pushes you to think logically to solve problems. Learning Python is an excellent way to prove yourself that you can teach yourself how to code and on top of that the syntax is simple to write and easy to read.

Introduction To Computer Science

Link here: Introduction To Computer Science - CS101

The course is still available today, it is free and has been updated a few times to cover new topics so I highly recommend it if you want to get the basics right. The core fundations of programming are needed to build anything so you will learn useful things that you will reuse later.

CS101 was meant to take 3 months (according to Udacity) but I enjoyed it so much I finished it in 3 weeks. Shortly after I had a functional bot generating thousands of real views on my YouTube videos which were already generating ~10€ per day.

I will forever remember this amazing feeling I had when I realised I was literally making a few euros every night while I was sleeping.


The Adsense revenue kept growing until the channel got shut down due to copyright infringment.

I had lost a substantial source of passive income but somehow I had no regrets because I had learned so much along the way.

7. I had taught myself how to learn. πŸ€—

In the span of a few weeks, I went from not knowing anything about programming to generating pocket money using Python scripts. And the most important of all, I had thought myself how to learn.

I used to be scared to deep dive into the unknown and Google my way through problems, but once you overcome this fear, you enter a whole new world of possibilities and from that point onwards there is no limits to what you can learn, build and achieve.

8. If you close this tab with nothing else today, leave with this. 🧠

  1. Find a driver… something that gives you the kicks. Don’t learn for the sake of learning. You’ll fail. Learning to code should be a way to achieve something bigger, like bring your ideas to life, get a job, move abroad, become a freelancer and location independant, you name it.
  2. Break the goal down to the smallest possible problem, this way every time you search and read about something, you solve a mini problem that makes you move forward.
  3. Do not wait until you know exactly what to learn before starting. Starting to research a problem will give you the clues you need to know what to do next.
  4. Learning how to learn is the most important thing you can do and it’s all about tricking your brain into thinking that it’s possible.
  5. If you can, make sure you have a substantial amount of time to invest when you get started. That’s the best way to make rapid progress and convince yourself that you can do it!

9. What’s next? πŸš€

In Part 2 I’ll discuss how I went from this first successful but short-lived side project to becoming a full blown iOS developer who ships his own apps on the App Store.

Stay tuned for that and come join me on Instagram or follow me on Twitter if you don’t want to miss the next updates.

10. Want more before Part 2 gets released? πŸ‘

If you want more tips about the right mindset to adopt when you start to teach yourself how to code, I wrote another article recently where I share a roadmap to become a self-taught iOS developer. It contains 10 tips to stay motivated on your learning journey.

Until next time, happy coding πŸ’»!



comments powered by Disqus