Three things I wish I knew before becoming a software developer

Three things I wish I knew before becoming a software developer

Featured on Hashnode

Especially as a woman in tech!

Kumusta! My name is Adrienne Tacke. After almost 8 years as a developer in the US, I have gathered some insightful advice that I’d like every developer to know, especially those who are just starting out.

Here’s to helping the next wave of developers!

Insight 1: You’ll need to fail fast and fail often if you want to get ahead.

Kitten trying to jump onto shelf, catches on, but ultimately falls off Failure is inevitable. Embrace it.

Failure is inevitable in a software development journey. Just look at how many concepts, frameworks, and tools there are to learn in web development alone! I’m willing to bet that most new web developers have gone through the agony of trying to set up Webpack for the first time or were deathly afraid to run a git command or two.

Jared from Silicon Valley covering his eyes and rocking back and forth in a frustrated motion Learning web development in ${year}.

The point is, when something is overwhelming or new for someone, there is a great chance that person will make a mistake. And when that something is also ever-evolving and quickly changing (like software development!), you can be sure that the chances of making a mistake are guaranteed to increase.

The fear of failure is also something that hinders a lot of new developers. I remember when I was an intern for my university's software development department, I rarely asked questions and always tried to portray that I knew what I was doing. I didn’t.

Buddy the Elf nodding and pretending to understand Not really. Not thoroughly.

By allowing this fear of failing and looking stupid consume me, I never asked how a certain piece of code worked or why we implemented a certain solution over another. I spent hours trying to piece together StackOverflow answers and other parts of our codebase to try and make sense of things instead of just asking for help or a pair programming session. These are the questions and learning opportunities that, had I encountered them sooner, would have made me a much better developer in a shorter amount of time. Instead, I spent an exaggerated amount of time learning things superficially rather than fully experiencing and building a solid foundation of core development concepts and best practices. Bummer.

So what do we do if all of this failure is inevitable?

Embrace it.

Don’t be fearful of it. Acknowledge it. Use it as a catapult in your journey, not as a ball and chain that drags you down. This is probably the most important piece of advice every new developer should know and is the reason I listed it first.

By experiencing failure at a faster rate, you are inevitably catapulting yourself to the top of the steep learning curve that seems to discourage a lot of people.

When you fail fast and fail often, it likely means you are learning things at a significantly faster rate than someone who does their best to avoid failure. The sooner you learn how to deal with merge conflicts, run into console errors while setting up Webpack, or experience what happens when you forget a WHERE clause in your SQL query, the greater your growth as a developer.

Insight 2: Imposter Syndrome is normal at every stage.

There will be points in your career where you’ll feel crippling doubt. It can come when you bomb a technical interview, are stuck on a bug for longer than a few days, or start several side projects that never get completed.

It can also creep in when you start comparing yourself to other developers who are in different fields, seem more accomplished, or generally seem like they know their shit. This happens to me sometimes. Even though I have eight years of experience, made key contributions to several production-level applications, and have a pretty accomplished career if I look at myself objectively, I suddenly feel irrelevant the moment I see another Boston Dynamics video.

Boston Dynamics robot Atlas impressively doing a backflip Boston Dynamics, if you read this, I will quit my job and totally intern for you ❤

I mean, look at how much progress they are making in the field of robotics!

infatuated sigh

What you and I need to keep in mind, however, is that every example and moment of comparison I just mentioned can happen at ANY point in a developer’s career. From interns to architects and self-taught to formally educated, every developer I have ever met, including myself, has felt imposter syndrome at multiple points in their journey.

And you know what? That’s ok. What’s important to remember is that if you feel these pangs of imposter syndrome, it absolutely does not mean you are a bad developer. In fact, I like to think that it actually means one of the following things:

  • You don’t understand some fundamental concept, a language’s syntax, or a new tool well enough yet
  • You don’t know or fully understand the scope of the problem/task that is before you
  • You don’t know the entire depth and breadth of hard work and circumstances the person you are comparing yourself to has faced to get to the point they are at now
  • You did not prepare || study || learn something new as well as you think you did
  • You may be lacking a good night's sleep or be under other stress.
  • You've set unreasonable expectations for yourself when it comes to learning and becoming skilled in something new.
  • You did not have enough || any coffee before starting your day.

You know what’s awesome about all of these potential causes of Imposter Syndrome? They are all actionable things that you can control! Things you can work towards, improve upon, and change. Most importantly, they are all things that are hardly indicative of being intrinsically bad at software development.

So the next time you are banging your head on your desk because the same console error is appearing in DevTools for 4 hours, take a break and get some more coffee. Then remember that just because you are caught in a snag today DOES NOT mean you are a “fake” developer.

Insight 3: There is no developer “uniform”.

The following insight and advice applies to everyone, but unfortunately feel it will be more relatable to women in tech.

There is still a large misunderstanding regarding what a “real” developer is and what they’re “supposed” to look like.

Essentially, when asking an average person to describe a software developer, the stereotypical example of a white male that’s socially awkward, poorly dressed, and poorly groomed is usually brought up.

Kung Fury character hackerman slowly looking at the camera

Of course, most of us know this is fundamentally incorrect. Or do we?

If you follow my Instagram, you’ll know that I like to wear what others consider feminine/body-conscious outfits. Nothing too drastic or revealing as my job requires a business-professional dress code. Unfortunately, with the internet being the predictable beast that it is, I found that one of my Instagram posts suddenly became a semi-popular meme on Facebook one day:

Cool, I’m a meme! Wait, what do the comments say?! Cool, I’m a meme! Wait, what do the comments say?!

That’s cool. Until you read the comments…

"Real" developers, as described by some Facebook comments 🙄 "Real" developers, as described by some Facebook comments 🙄

What was even more disheartening were the comments from other females:

Yay for women supporting women. :( Yay for women supporting women. :(

When we are already battling the same fear of failure as everyone else, trying to overcome regular Imposter Syndrome as well as Imposter Syndrome Because You Are A Woman ©, and constantly working a little bit harder to prove ourselves and our skills, is it really necessary to add “appropriate” attire to the list of things we need to worry about? sigh

Now don’t get me wrong. This IS Facebook, and I’m not saying that everyone holds these prejudices. In fact, there were a few brave souls that were speaking out against the misogynistic comments and even defending my existence:

Michael is awesome. Try to be like Michael. Michael is awesome. Try to be like Michael.

Esa is also awesome. Be like Esa too. Esa is also awesome. Be like Esa too.

Someone even linked my Instagram profile, but that wasn’t enough. I was a unicorn:

Nah, that can’t be a real profile! 🙄 (FYI, my IG handle is now @adriennetacke) Nah, that can’t be a real profile! 🙄 (FYI, my IG handle is now @adriennetacke)

Salamat! Salamat!

Ultimately, I’m just trying to show that there is still a large majority of society that maintain this mentality and continue to perpetuate the stereotype; that, in my 8 years of experience thus far, there is still work to do in terms of women supporting other women instead of tearing each other down; that this exact post is a clear example of why so few women enter software development in the first place or continue to stay in it.

Despite all of these factors, what I want everyone to know and take away from this is that it truly doesn’t matter what a person looks like or chooses to wear. And it certainly plays no part in determining whether or not someone is a developer or is a good one for that matter. Typing that out and reading it sounds a bit silly, doesn’t it? A little too common sense? And yet, I take the time to dedicate my third insight of this article for it because it is still a stereotype we need to break.

Silicon Valley female engineer saying 'I am not a *woman engineer*. I am an engineer.

For me, a “real” developer is someone that likes building things and solving all kinds of problems. It’s someone that enjoys learning new things, constantly challenging themselves, and is inquisitive. And that’s it.

There’s no dress code, official operating system, or master programming language that you need to have or use to be a developer.

So what does this mean and how do we deal with the existing situation? We do everything we can to break the stereotype. Wear what you want to wear. Reach out to fellow developers and learn things together. Support others who are more knowledgeable than you and mentor those who know less than you. And probably the most significant thing we can do is to keep sharing our individual stories so that we can see different perspectives and show society that developers are more than just white, male, and casually dressed.

That’s why it’s so important for me to continue sharing my journey on Instagram and to keep wearing the outfits I wear. I don’t need to dress down, switch to a MacBook, have 10K followers on Twitter, or post every line of code I write to prove my skill or worth as a developer. Why? Because these things don’t bear any weight in my skill as a developer!

Sharing my story inspires other women, and anyone else, to continue wearing what they want to wear and worry less about the things that don’t matter. Volunteering to speak to school children shows that jobs in tech aren’t limited to boys. And sharing my insights to you all hopefully provides the guidance I wish I had while navigating through my software development career.

Thank you so much for taking the time to read through my article. If you enjoyed it, please let me know in a comment below. Or even better, if you feel this article would be helpful to other devs, please share it/tweet it to spread the knowledge and love. ♥️

For more from me, be sure to follow my blog! And to see what I'm currently up to, follow me on Twitter && Instagram!