Photo by rawpixel.com on Unsplash
Before Becoming Technical™, I had about a hundred ideas of what I would build. Something to automate this and that, something else to make this or that less painful. But as I became more and more technical, something insidious started to take root inside me. I became less, not more, confident in building stuff. It’s so bad that since graduating from General Assembly, I’d stopped working on personal side projects altogether.
I gained the ability to predict how difficult it was going to be to build something.
I became daunted by the time I would need to set aside to see through a project.
I think a part of me was also afraid to potentially discover that I’m not technically proficient enough to execute on the idea.
But today, after meeting a fascinating engineer and entrepreneur, Steven, I’m determined to get out of my own way and build tools and apps again next time (if the problem is something I care enough to try to solve and it hasn’t already been solved).
Chatting with Steven over coffee provided me with a key insight that, in effect, disarms all of my above-mentioned worries. The insight? Developing anything invariably gets easier over time.
To his credit, Steven did not preach this to me over our first coffee together. He made me realise it through his personal history of developing many, many useful things.
Started a new company and need to hire your first few core engineers? Why not develop a scraper that tirelessly works to find you a list of people (and their email addresses) in your city that have the most GitHub contributions in the past year?
To build this scraper the first time would involve learning many new tools - something to traverse the DOM, something to sift out qualified candidates, something to hold the information as they are built up, and something else to circumvent scraper-detection.
But once you’ve done this the first time, successfully or not, you’d have unlocked the possibility of reusing parts of the code for a similar project in the future. That is saying nothing about the utility of knowing more.
I think it’s safe to say that after the first experience, you’d predict a similar project to be less difficult, less time consuming, and less likely to fail. Ultimately, you are an effective engineer again.
I need not envy Steven for his ability to build complex applications in two days because the fact is, I have not done once what he had already done many times. Once I’ve built a scraper, future projects that require a scraper will be much easier.
Finally, I want to point out something worth pointing out despite being obvious: on top of training your development skill, developing software will also very often save you time in the long run. Invest time to build it now to potentially save much more time in the future. I believe if I keep this in mind, I’ll have the courage to build again.