4 Things I Wish I Had Known When I Started My Software Development Career
Software development is about a lot more than just the code. Learn how to take charge of your career early on and set a great path for future success.
Join the DZone community and get the full member experience.Join For Free
My software development career began about 17 years ago. But only in about the last seven years did I really start to see a large boost in my software development career.
In this post, I'll share some of the things I wish I had known when I got started in the software development industry — things that would have made me more successful, much earlier, if I would have known them.
Have a Business Mindset
A business mindset is the first thing you must have in your career; to conceive of yourself as a business, change your mindset from an indentured employee to a business owner. Simply adopting this mentality from the beginning will transform the way you think about your career and force you to be more conscious and present in its active management.
The business mindset is critical for your career management because when you begin to think of yourself as a business, you begin to make excellent business decisions.
It’s easy to acquire the attitude that you’re merely an employee of a company when you’re used to earning a monthly salary that isn’t actually based on your performance. While it is true that you may work for a certain company at any point in your career, it is critical that you do not allow that position to define you or your career.
Consider an employer as a client for your business of software development. Sure, you may only have one client. That client may account for all of your earnings, but understanding the relationship in this light shifts you from a position of powerlessness and reliance to autonomy and self-direction. (In fact, many “real” businesses rely on a single large client for the majority of their revenue.)
It’s a huge mistake not treating your software development career as a business, and this is one of the big mistakes most software developers make at the beginning of their careers.
Where Do You See Yourself in the Future?
Define your goals. Without a defined direction, every step you take is a random step to the unknown. So don’t go through life aimlessly without a purpose for your career.
Now that you are thinking about your business in software development, it is essential to define your objectives.
I’ve discovered that most individuals, even software engineers, drift through life without a clear sense of what their goals are or what they want to achieve. Unfortunately, this is the normal state of most people. We don’t give enough attention to what we should focus on, and as a result, our actions lack purpose or direction.
Everyone is not the same. You may have quite different professional goals than I do, but if you want to achieve any of them, you must first understand what they are.
Think about taking a road trip. You can get into your car and start the engine as most people do. But if you don’t have a clear destination picked out and don’t take steps to steer the vehicle in that direction, you’ll just drift aimlessly down the road. Perhaps you’ll end up driving your car by chance to a nice place or other scenery, but you’ll never really make any solid progress until you define where you want to go. Once you know your destination, you can use all of the tools at your disposal to actively drive the car in the direction that will take you there.
Although it appears simple, relatively few software developers actually establish career goals — why is this? I can only guess, but I believe that most software developers are frightened of committing to a long-term career vision. They want to leave all choices open because they are stuck in "what if?" situations of picking one path and following it. What if I choose the incorrect path? What if I don’t like the direction it leads me? These are certainly frightening questions.
Some developers haven’t even given it a second thought. When left to our own choices, we tend to choose the road that has been mapped out for us. It is a far more difficult task to create our own path. Therefore, we just do not do it. Instead, we take the first job that is offered to us and stay there until a better opportunity presents itself or we become redundant.
Whatever your reasons for not setting career goals, now is the moment to do so. Not later, not later this week, but right now.
Every move you take without a clear plan is a waste of time. So don’t go through life aimlessly without a plan for your career.
You Need People Skills More Than You Realise
I used to be under the impression that just writing code was the job of a software developer. I know that I’m not alone in thinking like this.
In reality, we spend the majority of our time in the software development field working with people rather than computers. Even the code we write is intended first and foremost for human consumption and only secondly for computer comprehension. If that weren’t the case, we’d all be writing our codes in machine language—1s and 0s. If you want to be a competent software developer, you must understand how to interact with people efficiently (even if writing code is the part of your job you enjoy the most).
Consider how much of your time at work is spent interacting with people, and you’ll quickly realize the importance of improving your interactions with them.
What is one of the first things you do when you sit down to work in the morning? Check your email. That’s correct.
And who is it that sends you an email? Is it computers? Is your code sending you emails urging you to finish it or improve it? No. People do it.
Do you attend meetings throughout the workday? Do you discuss problems you’re working on with coworkers and plan on how to address them? What do you code when you finally sit down to code? Where do the requirements come from?
If you believe your job is to write code, you should reconsider. Your job as a software developer, and in almost any career, is to interact with people.
If you’ve never worked on your people skills, there’s no better time than now to start. You’ll discover that knowing how to connect and pleasantly deal with others will make your life much more enjoyable, and the advantages you’ll gain from learning those abilities now will last a lifetime and are challenging to quantify.
Having a Community Is Highly Essential
I made the mistake of not going out to the community for getting help and providing assistance to others early in my career.
I was usually good at helping my coworkers and being social at the many positions I held, but I never truly got out of my company.
I spent a significant amount of time attempting to engage in my career at a specific company at the price of investing in the software development community in which I was involved.
I spent way too much time preparing internal presentations on technology or best practices, time that could have been spent developing content and material that might have helped the community as a whole while also bringing me attention at work.
I also made the mistake of not believing that I had anything valuable to offer.
I interact with many beginner software developers these days. I think they have a lot more to offer the community than veterans because they understand the challenges that other newbies are dealing with better.
If I could go back in time, I would have been much more involved in conferences and community groups early in my career. I would have started my blog much sooner, and instead of just reading a book, I would have spent much of my learning time creating projects and materials that might benefit others.
Published at DZone with permission of Mandy Masoom. See the original article here.
Opinions expressed by DZone contributors are their own.