What I’ve learned after 2 years in Software Engineering

Ed Putans
7 min readOct 17, 2020

--

Aye everyone! Been a while, eh?

Recently it hit me —I’ve been programming for over 2 years if you count the time spent in bootcamp. Time does fly; it feels like I’ve just graduated…

Anyway, I’ve been in the industry long enough to share some tips for someone trying to get into development, yet consider myself fresh enough to still remember all the struggles.

So here goes: 7 tips for those who are thinking of switching careers.

It’s worth noting that it’s coming from a person who has never had an office job (or one you get to keep your dignity) before picking up programming - me.

What I’ve learned

1. Make sure programming is for you

It is cliche at this point, however I can’t stress this enough. Make sure programming is something you are trully passionate about.

I’ve seen countless people that at are so dead inside and overall done with their hopes and aspirations at the age of ~35, it’s unbelievable. After speaking with a few — they would gladly change their careers but nothing else pays as well (lifestyle inflation — google it) and their livelihood relies on it. If only more people adopted simpler living. But I digress.

Try building something tiny while following a Udemy course or a tutorial on Youtube. Commit if you think it’s something you will enjoy. Remember — everything is fun as long as you don’t have to do it for a boss. Applicable to any job in any industry, programming is no exception.

2. Embrace impostor syndrome

Boy, this feeling is a part of my identity at this point. In 2 years I’ve spent a couple weeks in my comfort zone. Combined. At best. The overwhelming feeling that you are underqualified, the “ I can’t do it” and “Mom was right I should’ve gone to law school instead” keep reminding of themselves almost every time you hit a challenge you don’t know where to start addressing. Which happens on an almost daily basis.

I suggest you research techniques how to deal with it, but never try to get rid of the feeling — let it in instead. Acknowledge the fact that you are learning, solving issues, and that everyone else, no matter how long in the industry, feels like this occasionally. This sort of stress is what makes you grow as an individual and a problem solver.

3. Try working in companies of different sizes.

Big companies pay more. Your role is usually pretty defined and you rarely get to do things outside of your job spec. However the tech often feels overkill. Especially if you’re a Junior. You’ve just finished your first couple React apps and now that someone employed you, your first week is setting up all the dependencies. You deal with Docker, Kubernetes, the company’s linting rules, documentation, their massive codebase AND their infrastructure. And that’s just the tip of the iceberg.

At the moment of writing I am 3 months into my current position at a company with a tech team of ~150 devs. I still have trouble doing the basics like pushing to dev properly sometimes.

Small companies, on the other hand, usually have it much more simple. They have to push out a product and accrue new users. Startups usually pay less, but the atmosphere is often more… personal? You learn faster since less time is spent on the corporate overhead, you get to try other things that the company might need, such as design work, help making decisions, marketing, etc.

IMHO, you should start with a start up for a fast skill level up. Likely your pay has increased compared to your previous job (let’s admit — developers are paid pretty well in general) and you can afford a “lower” pay for a while, and then move onto other ventures, depending on your preferences.

4. Chill the f out.

Take your hands off the keyboard. Take a step back. Rethink your approach. See how other people online solve similar problems.

Remind yourself that you earn a living by solving problems, not crapping out lines of code. A 30 line solution to a problem written in 2 days is MASSIVELY better than 500 lines in 5 hours, even if on paper it looks like you’ve been less productive. Your code becomes more easily maintainable, you decrease technical debt, and your turd (let’s be real — nobody writes decent code immediately) will be less of a headache down the line.

A technique I employ often is a “I don’t value my time whatsoever” where if my work grows to be bigger than I anticipated, I undo all changes and erase all commits irreversably. And start from scratch. Works everytime.

5. Don’t overdo it

This is a topic I’m pretty passionate about in a negative way.

Story time, sort of. From personal experience.
During your time at the bootcamp (in many places) you are being conditioned to become a coding machine, to talk code, live code, breathe code, think about code during… um… coding? You only do that when you get home, right? Work on side projects all the time, go to coding meetups, meet other developers. Become one with you IDE!

I think it was due to the fact that Flatiron was an american bootcamp, and we have all heard about how stupid the work culture is on the other side of the Atlantic. But that’s just a thought.

Yeah, no. Been there. Done that.

This notion that you should be working at all times is pretty unsustainable. In my case, working a full time dev job, going to meetups in the evenings and working on my side project during the weekend got me burnt out way faster than I would like to admit. It got to the point I had nightmares about my propTypes being defined incorrectly, and because of poor sleep I was less productive at work, and I can’t even stand the thought of finishing that project I was so enthusiastic about at the start.

At this point I am struggling to bring any new idea to fruition, mainly because of that one case.

There is nothing wrong with having hobbies outside of programming. Sure, there’s nothing stopping you from working on an app that may become your full time business eventually. I fully support that, but in moderation. You can and likely will start to hate coding with a passion as soon as your brain starts associating coding with being exhausted, sleep deprived and sacrificing free time and hobbies for it. You grow to resent it strongly eventually — good luck building a career with those building blocks.

I highly recommend you check out Josh Fluke’s youtube channel, where he often talks about how unrealistic expectations are from you as a dev, roasts times when corporate entities try to stay hip and relevant to the youth to squeeze out extra overtime, and how to have a more healthy approach to work overall.

6. Health

“Your body is a temple. Treat it like one” — someone sometime, idk.

I’ll keep it short. You can do your own research on this topic.

Remember to often take breaks. And do sports. And eat healthy. Your productivity will suffer otherwise. You will also stop feeling like poop throughout the day. Oh and NEVER NEGLECT SLEEP.

Oh and easy on the coffee. I know it’s a meme at this point but devs don’t need more coffee than the average human being to work.

My approach — no more than 3 cups of coffee a day. I do a HIIT workout every 3 days during lunch (I highly recommend this series), and a walk around the block on other days.

7. Downtime

Might not be the case for everyone, but at my current place I often do not have things I can be working on directly — either I’m not competent enough (yet), a managerial decision has not been made (yet), or a miriad of other reasons. So what do you do then?

This is the perfect time you make up for the expectations discussed in point 5. Learn a new tech stack. See how you can improve your current code. Write the missing bits of the documentation we all now has not been updated since the time Brezhnev was still in charge.

This way you will remain productive, avoid drifting into a rut, improve as a coder, and, if it involves an improvement on an existing company project — keep your management happy.

And at the end of the day you will close your laptop, knowing you didn’t waste your time on cat pictures, and that you compensated for that overrated dev meetup you didn’t go to (yes, I’m fine, thanks for asking).

Conclusion

Not much to add here, really.
Try to get a job that solves a cause you actually care about.
Stay curious, stay a junior (mentally, not experience wise).
Love your work, but love yourself more.
Stay safe.

--

--

Ed Putans

Eastern European web developer sharing his thoughts of life and work in Western culture.