A Creative Kid's Journey in Tech

From Excitement to Demotivation; From Demotivation to Maturity

As a young creative developer who loves building software that helps people, I always aim to do something that has never been done, at least in the way I do it. I'm not a fan of copying anything or building clones just for practice, it's okay to do so but I get more excited (& learn a lot more) when building something unique.

When I get on with my daily life, most of my free time is spent imagining stuff. My inner child always wants to do something new, this makes me keep my mind open while doing anything so that I can identify a problem and start something new to build. The Urge for Innovation kicks in and I research if people need it and if something like that has already been made.

A New Idea

Recently this incident occurred and I thought of a new idea for a Chrome Extension. What if I could search the element I want to click on, based on the text visible, for example, a button, a link, or anything visible on screen and click on it by typing its text. This may not sound very exciting but even the dumbest ideas give you a spike of dopamine because it's brand new to your mind and you quickly start imagining things (what if it goes viral aahh XD).

Building the project

So I did what I always do, plan the project, set a time every day or week to work on it and have a good idea of what it will do and how. JUST JOKING!! I opened VS Code, the Chrome docs, and My Web Shortcuts' GitHub repo for quick reference, and started working on it, for two days straight. Not just that, I have my practicals in about a week, I have prepared nothing, so it is definitely the best time ever to work on this crappy little project with no great benefits. Huh, what a dumb little kid.

I built the basic version just to see if it's possible, all code written from scratch, learned about a few new things on the go, like Shadow Root, a few useful JS APIs & Functions, and tried writing a nice algorithm to efficiently do the job. It's still not ideal & needs improvement. But who cares, the final output is what matters, I will grow with time and it's good to write crappy code in the beginning (this is what they say).

It worked! I loved it, I was in awe, oh how cool Prakhar you are such a nice little developer, you quickly build solutions to these small problems, and you work your ass off on the User experience by putting yourself in their shoes and imagining various scenarios and building the best possible solution.

The disappointment

All this gave me a temporary satisfaction that would be clouded with sadness when I started searching and experimenting with a famous extension, Vimium. I saw someone using it in a YouTube coding stream, and I was fascinated that this is like an absolute god-level thing compared to what I am building, and it has existed for more than 10 years.

Huh, seems like you aren't so innovative buddy, you just solved a little problem of your own, by writing the worst quality code.

How my project works

The whole functionality of my project is this, you use the shortcut Ctrl+Shift+F to open a little search bar in the centre of the website, you type the text of whatever element you want to click on, and it highlights the matching elements with the text, a little number appears on them, the visible elements get smaller numbers and the ones outside the Viewport are given larger numbers just for a better experience as one wouldn't want to have 56 as a number for something present exactly in front, it's better to have 5 as its shortcut and 56 for something that's outside the Viewport. You then press the respective number keys, if less than 9 elements exist for the searched text, it will directly click on it once you press the number key, but if there are more than 9 you need to press the number keys and press Enter, it's because there are multiple number keys to be pressed and it won't be good if it clicks on an element with the number 1 when you wanted to click on the one with the number 12.

...And guess what, I read the docs and discovered they have a feature called Filtered Link hints, which is identical to what I just built, you press F, numbers appear on the clickable elements, you type the number or their text and press Enter to click. Fk.

What I was thinking of as a whole project is a small feature of an old but alive & well-built project. Well, this isn't a big project obviously, it's a small thing, even though I built this in less than 48 hours. Actually, it will be less than 24 hrs if we only consider the time to build the main functionality.

It's not a great innovation, but is it all waste? That's what I felt for a few moments after all this. But only for a few moments, as my higher self kicked in and shared some nice wisdom.

The reality

Hundreds of products do the same thing, and still, most of them manage to get many users. Shouldn't everyone just use the original product? Why use anything else?

Choices. People love choices. There are all kinds of people, and no single product/software can cater to all their needs. When we think of something as useful or not, we only think of our experiences, or at most the experiences of people in our circle, which, a lot of times isn't something we have in plenty, so we rely mostly on what we know.

There is always a demand, you just don't know how to get to those people. And by the way, didn't you build that project to solve your problem? Tada! you're the first user, and there will always be at least one person using your tool.

Nothing's a waste

It's easy to think of something as a waste if it didn't meet your expectations. Our expectations are a major cause of sorrow, as the world doesn't work how we want it to work, and expectations make us attached to a desired output, which in most cases, doesn't happen.

We're talking at a personal level here, and in my current situation where I'm a starter in tech, nothing is wasted for me. Everything is a learning opportunity. Every project, every line of code, and every web search is improving me.

I have nothing to lose. It didn't get a thousand users? No problem! It didn't get 100 users? No worries. I didn't get any attention? Well, who cares (literally). You at least have a new project to show off, I don't like saying this, but you can show it to employers, put it on the Resume or whatever. People say shit about it? Ignore all that, it doesn't help. Keep your senses open to valid feedback & constructive criticism only so that you can improve.

Ending note

So this was my experience in the past two days of building the project. I will work on it and refine it for a few days, giving myself little time every day so I don't fail the exams, LOL (it's hard NOT to work on a new project, it's like stopping to breathe).

I think some people will like it. It won't get a lot of users, but there will be a few loving it. That's all I need. I will keep getting better, building projects to solve problems, help people, and make this world a bette... oh for fuck's sake I am building shitty Chrome extensions you think I would say that?

Oh yes, this is all just the beginning, who knows what I might build in the next 10 years, haha, so yes, I will try to make this world a better place!

HK, Take care :)