How Not To Suck as a New Software Engineer
Photo by Tim Gouw on Unsplash

How Not To Suck as a New Software Engineer

How Not To Suck as a New Software Engineer | Original Post

I don’t know about you, but I enjoy learning new things… Well, assuming I enjoy the topic and it’s not forced upon me in some sort of educational detention center like High School. Though, every new learning-adventure inevitably comes with the dreaded learning-curve. You know, that time when you’re just garbage at it, nothing makes sense, and for some masochistic reason, you keep moving forward. Programming is just like that.

To give you an idea of where I’m coming from, I started learning to program in January of 2018. Besides making my MySpace page dope af, I had zero experience in programming. I signed up for Lambda School, which at the time was a 6-month Computer Science program meant to give you the job skills necessary to be competitive in the wild.

I can talk at length about that experience and how it changed my life, in fact, you can check out this cringe-worthy video I made about it on YouTube. The tldr version is, the program worked for me. I ended up landing a great job in Silicon Valley at Clover Network, Inc. Being a new developer with limited experience, surrounded by seasoned engineers definitely came with some growing pains. I hope to provide you with a handful of very simple but effective ways you can learn from my experience so that you can make the most out of yours.


1. You Probably Do Suck Right Now

It doesn’t matter if your learning experience was through a college or university, a coding boot camp, or you’re entirely self-taught. There are things that you simply cannot learn without real-world job experience.

There are going to be unfamiliar work-flows, tooling, and general expectations to learn. You have to digest new codebases, acronyms, conventions, architectural preferences, and team dynamics. Worst of all, deciding on the ideal snack!

Having your first dev job is pretty far from console.log('hello world'). You’re out in the wild with next to no context on the things you’re working on, so orienting yourself can feel overwhelming. Remember that dreaded learning-curve? Fear not, there are ways to effectively operate during this awkward phase to mitigate those not so subtle feelings of drowning.

It All Starts With Acceptance

We often find ourselves in a state of frustration when we’re resistant to the circumstances of the present moment. These feelings weigh us down, obscure our perception, and waste precious mental energy that could otherwise be spent on progression. Accepting where you are is vital if you plan on efficiently navigating to where you want to be. This allows you to break things down into small, actionable steps. Not only will you be able to track your progress over time, but it’s a great reminder that no matter the journey, small steps get you there too.

Remember That You Belong

In your new work environment, you may find yourself surrounded by senior talent, management, CEOs, and all sorts of other more experienced people than yourself. It’s easy to let imposter syndrome creep in when you’re in unfamiliar territory. The reality is that you wouldn’t have the job if you didn’t deserve it. You worked hard to get to where you’re at. You’ve displayed competency and you’ve been judged by the over-lords who have deemed you worthy. Feels good right? Own that shit.

Communication Is Everything

If you don’t express yourself, no one will know what’s going on. Lean on your peers, ask questions, and be patient. In one form or another, everyone has been in your shoes. Apply yourself, and if you’re experiencing a blocker it’s so much better to reach out and get the guidance you need than it is to senselessly struggle and delay progress. Not only will your peers respect your work ethic, but doing this will give your team more confidence in your abilities, and more importantly, you’ll gain more confidence in yourself.


2. Develop Your Problem Solving Super Power

As a Software Engineer, your job is quite literally problem-solving. Maybe a new feature has to be implemented and you have to decide on the best way to approach it in a scalable way. Perhaps a bug made it through testing and you’ve been gifted with the opportunity to fix it. Or my personal favorite, ensuring that everything looks and operates as expected across all browsers (while wishing death upon IE).

Either way, refining your problem-solving process greatly reduces the pressure associated with any task. Here are a few things to keep in mind while finding what works best for you (prepare yourself for some contrived, naive examples).

Understand What’s Being Asked of You

Before you start throwing out console logs machine gun style like some sort of evil coding ninja with an unlimited supply of Shuriken, it’s important to take a few minutes to understand what’s being asked of you. Try to explain it out loud, write it down, draw a picture or pseudo-code how things are supposed to work. The better you understand your task, the easier it’ll be to make headway.

Skim the Code

Once you have a good understanding of what the problem is, it gives you some information about where the said problem might exist. If the issue was with a button on a webpage, I’d locate the file that deals with the button, and working backward, find the files that this code feeds into. If data is passed around, where is it passed? I open all of them or at least take a peek and start developing context about this little buttons’ world.

Identify the Symptoms

Often bugs are symptoms of the underlying problem, not the problem itself. For instance, if this button isn’t working as expected it doesn’t necessarily mean that the issue rests within the logic of the button itself. It could be an issue with the wrong kind of data being passed around elsewhere, CSS, or even server-side. Identifying the symptoms are important because they provide you with leads, but don’t fixate. Follow them down the rabbit hole, and then use those Shruiken (console logs) as a skilled Shinobi.

Break the Problem Down

At this point you know what you need to do, you’ve developed context surrounding the problem, you’ve identified symptoms by stalking your prey, and you’ve used your elite skills to hone in on the issue, it’s time to break things down into actionable steps. If the problem is multifaceted, you’ll want to develop a plan. First, understand how the pieces fit together and then tackle one thing at a time. This is important because it allows you to track your progress and in the event you ever get stuck, you have clear information to communicate to your team. You know what needs to be done, you know what you’ve accomplished, and you know why it’s still not working.

Practice

Find out what works best for you and continue to develop your problem-solving formula. You’ll use it a lot, so the more conscious you are of your process, the more efficient you’ll become. For me, if I were to break down my process into an audible format, it would sound something like this:

“Uhh… Wtf?”
“… oh, okay…”
“Ohhhh!”
“Got it”
“Wait… wtf?!”
“Haha, okay, yeah… Got it”

3. Pick Your Battles Wisely

Once you start feeling more comfortable, you’ll start getting all opinionated about the code that you read daily. I mean, that just comes with the territory because developers are an opinionated folk. However, before you pass judgment consider that your team probably made the best decision that made sense at the time.

That being said, no one is perfect. If you see things that you believe can be improved, or you simply don’t understand why something was approached the way it was, speak up. Talk to your team, it makes a difference, shows your curiosity and passion, and often leads to some good laughs about the dumb shit we do as developers sometimes.

Yes... speak up. But don’t be a dick about it…

4. Take Notes!

Have a notebook or something handy to jot things down you don’t know. If you have a question, hear a new acronym being passed around, or someone is trying to provide you with context on an issue but you’re having a hard time retaining it, don’t feel ashamed to write it down! It not only helps you to develop good habits, but you’ll thank yourself later when you can’t recall something but you wrote it down like a boss. Adulting is hard enough, don’t make it harder on yourself.


5. Be Empowered!

Empowerment is feeling confident in your ability in such a way that you feel encouraged to apply yourself. Practicing the above 4 things naturally lead to feelings of empowerment. You should feel confident in yourself, in your abilities and your perspective. Being able to make decisions, explain your reasoning, or offer friendly criticism on other decisions being made is why you’re on the team. Don’t feel timid, own your greatness. If you don’t feel empowered, it’s a symptom that you shouldn’t ignore. Find out why, what’s missing, what you need, and refer back to why communication is everything.


No alt text provided for this image

Treasure Yourself,

Chris

Michael Free McGlothlin

?? Code Jesus - I wash away your code sins so you can live in code paradise! ??Maker ??????Software Engineer ??Software Architect ??Legacy System Modernization Consulting ??E-Commerce Consulting ??LION #ONO

5 年

Start by making every effort to make your code readable. Don't try to be clever. When in doubt be more verbose in your naming and more terse with the number of lines of code in a method/function. If classes or structures begin to be unwieldy remember that they should have a single purpose - break them down and compose the larger from smaller.

Chris PaRDo

#://CNXT | $://THeXDesK | #://CuRReNCyx $://ANCHoRx | $://ASSeTx $://iSSueRx | #://BoNDx | $://CeNTRaLBaNx | $://THeFeDWiRe $://THeCeNTRaLDesK_x_#://CNXTAi_x_#://CoNTRax

5 年

#SoftWareEngineer #SoftWareEngineers

Marc Foreman

Co-CEO, Buzz 3D. Interactive 3D Planograms for Sales & Research.

5 年

Always made me laugh how on Silicon Valley Dinesh and Gilfoyle could knock out a major programming job that would take a team of 10 3 weeks to produce in just a few hours. Why they ended up hiring all those people, I'll never know!

Mike Jolgren, MBA

Account Manager at DS Smith

5 年

Great thoughts and insights here Christopher Beards, thanks for sharing!!

要查看或添加评论,请登录

Christopher Beards的更多文章

  • A Simple Meditation on Surrender

    A Simple Meditation on Surrender

    A Simple Meditation on Surrender | Original Post “It is important to understand that most of the karma that you go…

    2 条评论

社区洞察

其他会员也浏览了