Teach your mates to code
Half a year ago I was drowning in work. I had a lot on my mind, and I didn’t have any time to move forward with my personal projects. And I can tell you one thing: I’m always full of new ideas, but completing them takes a lot of time.
Half a year ago I talked a lot with Szabi — a friend of mine — that he would be interested in learning mobile programming; at the same time, my brother also decided that he needs a career change, and he could imagine himself as a front-end developer. Higher education takes a lot of time, and they often teach outdated knowledge when it comes to fast-moving technologies. Besides that, they were both busy with their lives, no time for universities. They needed something faster and more efficient.
So the idea was born: if I would spend some time on teaching them, they could help me with my own projects. It would be a great practice for them too, as they need experience, and my projects would finally move forward 😃 A real win-win situation. Let me explain how they went from zero to hero in just less than half a year.
We started with establishing a roadmap: as an experienced developer, I knew what technologies and skill set do I use on a daily basis, I tried to focus on real-life problems. So no algorithms, no programming paradigms — I don’t say that they are not important, but they are way more advanced, and to be honest, even I don’t know all of them, but luckily there are pre-written functions and libraries that take care of those.
Even though the guys wanted to learn different technologies, we began learning with the common tools: I taught them how to use Sublime, how to use Git (with Sourcetree, not console, I really tried to focus on making it as simple as possible, but still covering everything) or how to use Chrome’s Developer Tools.
Practice makes perfect — while they were gathering new knowledge, they needed to gain experience. Luckily both of them were self-starters and came up with exercises for themselves, but I also wanted to make some of my ideas come alive, so they were practicing on them too. This way they could get insights into project management (we used Trello to keep track of tasks, with simple boards such as backlog, in progress, done, cards, deadlines, and subtasks).
They worked on the mobile and web version of an application that lets users keep track of their previous flights (an app I created a few years ago but I wanted to create a new version of it). I could explain many concepts through this project, and eventually everything fit together piece-by-piece, so they could take part in an actual development process.
Oh and have I mentioned, that they both lived more than 1000 miles from me during the whole process? Distance doesn’t make teaching difficult (but there were a few times where I met them personally, especially at the beginning when I explained object-oriented programming — you really need to draw a lot with that).
I was very confident about their knowledge after 5 months of learning, and to conclude it, I organized a hackathon: we rented a house for a weekend, where we built a website and a simple app from scratch in just two days. The enthusiasm in the two guys’ eyes and the satisfaction when we saw the results in the browser and on mobile were priceless. We had a lot of fun together and I could see that they have a solid understanding of everything they’ve learned, and from now they can extend their knowledge by themselves.
You can download the app that the three of us created during a weekend.
We also have a website: http://guesswhatapp.net
Keep in mind, all of this was created during a weekend, and the guys had a few months’ experience in development! Kudos to them! 🙌👊
So why teach coding for a friend?
- You can work on your own projects, the ones that you always neglected because of the lack of time — so at the end, you’re not ‘wasting’ time
- You can learn a lot of new things, get a better overview of what you already know, organize your existing knowledge
- You can spend more time with your friends (although I managed to find a lot of materials online which really reduced the times when we had to talk directly — they learned from articles, books, and video tutorials, and asked questions if they had any)
- And for good karma: coding is an extremely valuable knowledge, you might help them in changing their careers, get better jobs or start working together in the future