Hi there, fellow coders!
Weâre all on a quest to level up our programming skills, right?
So, how do we become coding wizards? Well, hereâs what people generally do:
-
Scouring through other peopleâs code â because we all know thereâs wisdom in those curly braces.
-
Devouring programming articles â the ones that reveal secrets, shortcuts, and maybe even a joke or two.
-
Sifting through documentation â yes, those sprawling tech manuals that often make us feel lost in a maze. But they hold the keys!
But hereâs the fun part: to reach greatness, youâve got to be a detective and search for those telltale signs of being, dare I say it, an âaverageâ developer. đľď¸ââď¸
My mission is to guide you in discovering these four telltale signals of a short-sighted programmer, so you can steer yourself down the right coding lane.
They donât âdesignâ prototypes, they âbuildâ it!
Let me tell you a little story about my journey from a code-centric prototype skeptic to a design enthusiast. I used to be all about code-based prototypes, and I couldnât fathom why anyone would bother with non-code-based ones. Iâd ask questions like:
âWhy on earth would we need a figma prototype when we can whip up a code-based one that mimics real user interactions?â
I mean, I loved the fact that with a code-based prototype, you could thoroughly test all the features and squash those pesky bugs early on. Plus, youâd get a head start on understanding the nitty-gritty technical challenges from day one. Not to mention, having something tangible to show customers was pretty sweet.
But guess what? In the grand scheme of things, it turned out to be a bit of a dud.
Hereâs why: First off, building a code-based prototype is like a time-sucking black hole. It can drag your project timeline into a never-ending abyss. Once you and your team dive headfirst into coding, youâre stuck on that roller-coaster, even in the projectâs infancy.
Making changes to a code-based prototype? Buckle up for a bumpy ride because it means a truckload of adjustments down the line. And letâs not forget that customer requirements are about as stable as a Jenga tower in an earthquake.
Itâs way smarter to give them a sneak peek at a non-tangible product and gather their feedback.
Letâs picture this with a scenario â Imagine youâre building a ridesharing app, and you decide to kick things off with a code-based prototype. Your team puts a ton of effort into designing a system where users can book rides and make payments via a third-party API. The client loves it, and you start charging full steam ahead, adding more bells and whistles.
But then, oh snap, you realize the API costs an arm and a leg! Youâd love to hit the brakes and switch gears, but youâve already invested so much time and energy that youâre essentially handcuffed to the code.
Rolling back? Good luck with that; youâll need a time machine.
Learn the difference between a prototype and an MVP (Minimum Viable Product)
If youâd started with a non-coded prototype, you couldâve easily shown it to the client, discussed options, and if necessary, hit that undo button in a jiffy. No extensions, no drama.
So, the moral of the story? Iâve learned the hard way that code-based prototyping isnât all itâs cracked up to be. Itâs time to embrace the non-code-based way â your projectâs sanity and flexibility will thank you! đđ
They think they can just hit the âUndoâ button on lifeâs big choices! (Like choosing the right tech stack)
Back in the day when I was just a code-writing newbie, I had some wild ideas. I was basically a self-taught programmer, and I had this grand notion that I could whip up any project using any tech stack under the sun.
I was notorious for my random experiments. If I was building a blog site with Flask and stumbled upon some dude on YouTube singing praises of Django, you bet Iâd jump ship without hesitation.
Iâd scrap all my previous code right in the middle of the project and switch to Django. And guess what? If Django didnât tickle my fancy, Iâd casually saunter back to my old stack like it was a stroll in the park.
And it wasnât just limited to the back-end stuff. Frontend, libraries, payment processors â you name it, I flip-flopped between them more times than I can count.
So, what did all these shenanigans teach me, you ask?
Well, I developed this quirky belief that I could reverse or change any decision, anytime, anywhere.
As time went on, I started reading stuff by other developers, and a couple of times, I heard them griping about their choice of tech stack. They were moaning about how it had made their lives miserable.
But in my mind, I was like, âWhy are these folks whining? Canât they just flip the switch to their preferred tech stack?â
What I didnât get back then was how darn hard it is to do a 180 in the professional world (I was just out the college at that time). You canât do major transitions on a live product with thousands of paid users, nor you can simply plug-and-play major elements in real-world.
See, when youâre building your own pet projects, youâve got all the time in the world. You can try things out, switch libraries, flip-flop between programming languages â itâs all a walk in the park.
But once you venture into the professional realm, thatâs when the headaches come rolling in. Even if youâve dotted every âiâ and crossed every âtâ in your code, adhering to all the best practices like DRY and crafting code thatâs as flexible as a rubber band, it wonât save you.
Why? Because if the higher-ups decide to change a major design element, all those best practices go out the window. One little tweak to a crucial step, and your projectâs timelines are about as reliable as a weather forecast.
So, whatâs the takeaway from this?
In the real world, decisions you make often have no U-turns. So, before you dive headfirst into picking that quirky, unsupported third-party library, take a step back. Do some good old requirements gathering, research like your life depends on it, evaluate your options, assess the risks, and maybe even whip up a prototype.
Make sure youâve covered all your bases before committing to a big decision.
Itâll save you a world of trouble down the road!
Theyâre totally clueless about whatâs coming up!
You know, itâs like developers sometimes forget that the future is a thing! I mean, they swear they get it, but come on, they keep repeating the same old mistake.
So, when do they mess it all up?
Well, itâs like a clock ticking down to the deadline, and they start panicking more about the here and now, forgetting all about whatâs down the road for their software. They ditch those crystal balls for shortcuts, just to wrap up the project.
Imagine coding up an analytics tool for your company, and you go, âOh, that shiny third-party API looks cool!â No research, no second thoughts. But then, down the line, you need some fancy features, and guess what? No documentation! How would you feel? Pretty much like youâd bitten into a sour lemon, right? â Regret City, population: you.
Hereâs the lesson: Trendy APIs might seem all the rage, but theyâre like those one-hit wonders in the music world â here today, gone tomorrow. Go for the trusty folks whoâve been around the block, the ones with a solid track record of dependability.
Itâs like picking the rock-solid friend over the flaky acquaintance for the long haul!
They go for the full app in DIY mode!
I still remember that initial rush of feeling like a tech wizard when I whipped up a simple HTTP server in C without using any third-party libraries. Man, that was fun!
I thought I was the beeâs knees when I first used my app. I was like, âI can build anything I want, exactly how I want it!â
But hereâs where I took a wrong turn. I used to be obsessed with crafting the ultimate, perfect product right from the get-go. I didnât want to waste a minute building a stripped-down version.
I had to create an app with 20 different features, but only 2 of them were super crucial. Instead of just putting together a simple app with those 2 must-haves, I went all out, trying to make the mother of all apps with all 20 features from the very start. Silly, right?
You see, because I thought I was a genius, I believed I had it all figured out and didnât need any client feedback.
Hereâs a nugget of wisdom for all you fellow developers out there: Donât fall into this trap!
Loads of developers, like me, dream of building that flawless app right from the beginning. They donât want to âwasteâ time on a basic version.
But trust me, building that simplified prototype is the way to go. It helps you spot problems early on, and you can gather feedback to keep improving.
Just by having a basic version, you can test your ideas and make sure everythingâs working smoothly. Plus, youâll catch those pesky issues before they turn into big headaches down the road.
So, whatâs the takeaway here?
The next time youâre starting from scratch on a software project, kick things off with a stripped-down version of your product, focusing on the most vital feature. Itâll save you a ton of time and hassle in the long run.
Also published here.