Learning on the fly, impostor syndrome, and Vim dumbassery

One of the things I love about working in IT is that you can often learn on the go. It’s possible to learn something so quickly during the job, that you can come in with no experience at all, and become productive enough to add value to a project in a small timeframe.

Getting into programming

This is actually how I got into programming in the first place: for my Law master’s graduation project I joined an official law evaluation. My wife was learning to program for her study, and I became fascinated by code. I don’t know what got into me, but at the next meeting for the law evaluation I said I could create a script to do my task for me. That task was to check if government agencies were acting in compliance with the law when gathering biometric data from foreigners, and at that moment I had written 0 lines of code in my life. So I quickly learned the basics of Python online, started coding, and it actually worked out. In fact, I liked it so much that instead of applying for a job at a law firm, I applied at IBM and got hired.

Working at IBM

At IBM, a similar pattern emerged:

Q: Can you drive to Germany (Frankfurt) to create a front end application for a bank?

A: Sure!

This was my first project. With zero front-end development experience, I said yes, worked 12 hour days, learned on the fly, and delivered the application on time. The customer was happy, and I had my first real work experience. Needless to say, I was terrified the entire time, because of what I’d gotten myself into. That didn’t stop me from saying yes to every opportunity, though:

Q: Can you create another front end app? You can choose your own tech stack.

A: Sure! (Quickly learns the basics of Angular.) I’ll do it in Angular!

Q: We’ve got this Ruby on Rails app…

A: OK!

Q: Can you put this old Meteor/MongoDB app in a Docker container?

A: I know none of those technologies, but I’ll do it!

I was always honest about my (lack of) expertise, and I was always afraid I couldn’t do it, but it always worked out. Luckily, I had severe impostor syndrome / fear of failure due to not having a computer science background. Combine that with saying yes to all projects that come on your path, and your brain has to adapt. Don’t get discouraged by your fear. Every morning, tell yourself you can do it. The fear will still be there, but instead of crippling you, it may fuel you.

Use your fear as a superpower.

Outro: merging 9 databases, using only Vim

This is a bit random, but I couldn’t leave it out:

Q (also from IBM): Can you merge these 9 SQL databases into 1?

A: Eh.. Let me see. I wouldn’t know how, but I guess I can try?

I had almost zero SQL experience at this point, and I had no clue how to do this. I could (and should) have asked a more senior colleague to help me out, but at this time I was fascinated by yet another piece of technology: Vim. And I knew you could extract database records as insert into […] lines with IntelliJ. After that, it’s just text that you can manipulate however you want to, right? I’ll just use this “macro” thingy and write some Vimscript functions?

My god, what a stupid idea, and how terrifying to realise you’ve dug yourself into a very emberrasing hole. But I nailed it! I wrote the most horrible 460 lines of Vimscript ever written, but it worked. The script took forever to run, and during execution my screen would flash in a crazy way, so my colleagues would ask me how things were going with the “Epilepsy Machine” when seeing its glorious test runs.


Ciao for now!


Legal notes: