8 Takeaways From 8 Years In The Software Industry

Recently I gave a talk at the same university
where I graduated eight years ago. It was nice and funny to see the reactions
and the behavior of Computer Science students in the third semester. I’ve been there, of course, and it got me
thinking what I learned since then working full time as a software developer. Many graduates and even experienced engineers struggle with confidence in what they do for
a living. We all know imposter syndrome, for instance. But trust me, if you’re passionate about
software development, love to write code and are always eager to learn more, you already
know a lot and you deserve your spot. Software development is a field where you
get a lot better with intrinsic motivation – as with every other profession, I guess. If your motivation comes from writing code
alone, you have nothing to worry about. Because of your interest in programming languages,
frameworks, and new technologies, you already have a huge advantage over others. Hopefully, as a graduate, you still have this
motivation. Hold tight to that. Chances are you land your first job and all
of a sudden you work faster than experienced developers. Maybe they even want you to slow down. And it’s almost sure that after suggesting
changes or improvements you will hear the phrase “we always did it like that”. Ooh, that hurts. But please, don’t let your head down. Stay curious. Stay hungry. Get experience, and if you’re not getting
along with the culture of the company you’re working for, find another. All that motivation doesn’t change the fact that lots of stuff you learn in college are
just theories that are not suitable in the real world. Yes, it would be great to write a UML diagram,
maybe. But is it really necessary? I mean, really really necessary? Test-Driven Development is a wonderful practice,
but sometimes you just don’t have the time. I know it might ensure high quality in the
long run, but people in the industry often think short term or simply need a feature
fast. It does hurt, but that’s the reality. And even if you don’t want to hear it, but
it’s your job to make sure that the requirements end in good code. If it’s unlikely to do that in the given
timeframe, it’s your job to tell your boss. And if things like that don’t work out,
again, maybe it’s time to look elsewhere. The thing is, if companies don’t understand
the consequences of bad behavior and demotivating their employees, they will always have to
look for new people. But always have respect and a little patience
as a graduate, before you judge the culture of your employer too early. They might have their reasons. It is absolutely okay to write code only when you’re working. There’s really nothing wrong with that. You’ve got your responsibilities, you’re
stressed, you deserve to chill out on the couch. Many people learn a lot through side projects,
though, and maybe even get opportunities for a better job thanks to their side projects
or thanks to the new skills they acquire while working on their side projects. As an example, I was interested in certain
technologies (Web API 2) I couldn’t use at work. They had their legacy monolithic applications
and used pretty old web service technologies for that. Trying to make things better and suggesting
some improvements did not help at all, so I learned Web API 2 with a side project, applied
for a new job where they needed someone with this knowledge and in fact got the position. But it’s not only about getting a better
job and learning stuff you otherwise wouldn’t. Side projects are fun! You’re doing something you want to do. You are your own boss and only you decide
what you’re going to do and when you do it. And in the end, you’ve been productive and
have built something out of nothing. I just love that fact. So many times I was confronted with the prejudice that tech guys usually sit in the basement,
never see sunlight, smell terrible and are not able to talk to other people. I’d love to put an end to this view of my
kind of people. Fortunately, the world is already changing
a lot. Still, sometimes a bit of personal development
might help. I consider myself an introverted guy. This won’t ever change. For me, this means that I recharge my batteries
with being by myself. Extroverted people might get energy when they
are with other people. I’m not like that. This doesn’t mean I don’t like being around
other people, but it can be exhausting. That’s why I love being alone or with my
family because that’s not draining my inner batteries. I think you get the idea. Anyways, being introverted or shy sometimes
can stop you from reaching your goals. That’s where the development of soft skills
comes in. I highly recommend the book Soft Skills: The
software developer’s life manual by John Sonmez. Learn to be more open, smile more often, have
a chat at the coffee machine, get some negotiation skills, work out from time to time. All that increases not only your daily well-being
but also the chance to improve your career. I already mentioned the difference between introverts and extroverts. This time it’s not about being more open
in the office in general, it’s about communicating with your team and your boss. I cannot state this enough, communication
is key in every part of software development. Communication surrounds every stage of the
software development lifecycle. As an introvert, you can still be amazing
at communicating with your team. Talk about the current problems you are facing. Show your coworkers what you have learned
lately. Tell your boss or project manager that some
of her requests might not really work out but you already have an idea to solve this
problem. Most bigger issues have been caused due to
a lack of communication, in my experience. Either the requirements haven’t been clear
enough, tasks haven’t been assigned correctly or the worst, developers were afraid to tell
anyone that they made a mistake. Stop this! Talk to your teammates. You’ll sleep better at night. If you’re not happy at your job, it may be better to quit. Of course, there are many reasons to stay. You might have responsibilities that make
your job necessary. But maybe you still have the option to apply
for something else. If, however, you’re totally on your own,
have no responsibilities whatsoever, there really is no excuse to quit your job except
you’re scared or lazy or both. It really is okay to look for something else
and then quit. Weigh the pros and cons if you have to. I just want to make clear, that you shouldn’t
let other people judge you if you think there is a better place for you. I know people that are miserable, don’t
change anything about their current situation and use loyalty and similar things as an excuse. Never ever work yourself to death for a company
that would replace you within a week if you would really die. That’s a lot of negativity, sorry about
that, but some people have to wake up. There are enough great companies and employers
that would love to hire you and create a space you like to enter every morning. (Almost every morning. Some days just suck. You know what I mean.) It’s a simple truth. In particular in the software business. Technologies develop so damn fast, you have
to learn new stuff all the time. Stay curious, read articles, try out something
new. I’m sure you already need some time to learn
through articles and videos at work. If not, start today! It is absolutely okay to use some time at
work for that. Nobody writes code eight hours straight. This doesn’t mean that you have to learn
every new programming language or framework that’s trending now. Knowing that this stuff exists is enough. If you’re that curious that you want to
start a side project with anything new, great! Go for it! But doing your daily work and learning something
new while doing that is sufficient most of the time. We often come across new challenges and mastering
them is not only a great feeling, but also improves your craft. The worst thing you can do is stay at your
current level and decline tasks because you don’t know how to solve them immediately. In the end, it doesn’t really matter. People often take their job way too seriously. For me, writing code alone is what drives
me. I love the result and solving problems with
code. Learning new technologies is a lot of fun
for me. I had so many first times with different programming
languages, frameworks, libraries, game engines where I just got that wonderful feeling of
excitement. In web development, for example, the jump
from jQuery to two-way binding with Knockout or Angular was amazing. Making games with Unity gave me the feeling
that I could create anything I wanted. That’s what this is all about. Of course, there are times you have to work
on a project that doesn’t spark a lot of joy. But if you look closely, maybe you still find
something interesting or a new challenge for yourself. Just don’t take it too seriously and don’t
pressure yourself too much. Making software should be fun in the long
run. And never forget: You can code. They cannot. That is pretty damn cool.

Tags: , , , , , , , , , , , , , , , , ,

There are no comments yet

Why not be the first

Leave a Reply

Your email address will not be published. Required fields are marked *