How did you determine which career path to choose in software engineering?

Hi, I recently joined the community and I would like to ask for your thoughts on this question. I would like to introduce my background a little bit more to help you understand the question better. I graduated in 2016 and I decided to explore different software engineering path in 3-4 years, I started as DevOps engineer where I did CI/CD, containerization and automation, then after 1 year and 4 months I did Data Engineering where I developed ETL pipeline with Hadoop, Yarn, Spark, Scala and Oozie. After 6 month, I quit the company for some reason and joined a medium startup consultancy where I am doing full-stack development. Now I feel very confused on which career path I really want to go since I enjoyed DevOps, I enjoyed Data Engineering and I am enjoying full-stack development as well since all of them are creating huge values introduce challenges in different ways.

I heard a lot of words saying that you should not be a generalist, you should be specializing generalist or generalizing specialist in order to get competitive enough to get you a better job and more promising future. So I have been thinking about which career path I really want to go, but how could I approach this decision? Is my decision of exploring different path after graduation correct or wrong? What kind of company I truly fit in?

In my heart, I want to do data engineering since I feel the role is much more challenging and complicated because it is challenging to deal with large volume of collecting, storing, transforming and analyzing data, thus I feel more thrilled about it. But is it the right voice in my heart, what piece is missing?

I would like to hear answers from you who struggled with it before and who have determined on which path you want to go.

Any answers or feedbacks will be greatly appreciated :)

Comments (17)

Mark's photo

My philosophy is that if you enjoy all of them and they have similar prospects, then it doesn't really matter :-) It seems you've done enough research to know whether you'll really enjoy it. Perhaps all the choices are good choices.

I've also chosen paths just because they were/seemed more difficult, like it seems you are proposing. It was interesting, but I would not do it the same way again. All the options would have allowed me to challenge myself by trying to excel.

In general:

  • Look at current and future opportunities.
  • Consider what you enjoy working on.
  • There may not be one best path, there could be multiple.
Steven Ventimiglia's photo

You don't choose a career path - it chooses you, based on experience.

Life is a dynamic mix of; things you want to do, things you don't want to do, and things you never thought of doing.

Most successful careers are based on embracing the "things you never thought of doing", when they finally present themselves. The trick is never allowing yourself to become antiquated and rooted in a self-defined career path - because eventually there's always a fork in the road, and it will be up to you in making a proactive decision.

Skill sets need to evolve over time, and to do so, you should always be brave enough to accept challenges on a personal and professional level that will test your ability to expand and adapt.

Everything has unpredictable results in any industry, however, experience and adaptability will help you find solutions that you wouldn't have found otherwise. This is not only how great things are created, but also how greater leaders are defined.

"Don't tell people how to do things, tell them what to do and let them surprise you with their results." ~ George S. Patton

Jason Knight's photo

I consider the question itself flawed, but that could be my decades in IT talking. The mere notion of a "career path" is nonsense given the rate at which technologies and needs of the industry change.

The mere notion of setting out on a single path with a single focus is foolhardy given the sheer number of new paths that show up every few years, and the number that die off.

It's like programming itself -- it isn't something you 'learn once and are set for life' -- it is something you have to struggle at and continue learning and growing across your entire work career.

... but that's not what "Career educators" sell their students on to put buns in seats, so we now have an industry where the majority of IT grads end up flipping burgers or working at Walmart by the time they hit 30 wondering how in the blazes they're going to pay off a lifetime worth of student debt. Only a handful of the passionate, the devoted, the determined are able to stay in the field for very long.

Well unless you count the just plain ass-kissing suck-ups who always seem to magically fail upwards into middle-management.

It also leads to the problem we have right now of overspecialization, where most people working in a specific field end up unqualified to do so. At the extreme you have the people so specialized they magically think they're SO great at their one thing they don't have to know anything else... like the alleged SEO "experts" who don't know the first damned thing about HTML, or the PSD jockey artists under the delusion they are "designers" when they don't know the first damned thing about UX or accessibility.

But it plagues other aspects of development too... The front-end developer who knows nothing about art or accessibility nor understand how to lessen the workload of the back-end dev. The back end developers who don't know enough about the front end to even know if what the "specialist" gave them is any good, much less how to slice up what they are given.

Or even the jokers who claim to be network administration "gods" but have to call tech support to come over to hook up a monitor for them and/or can't even figure out how to connect to an already running server via serial. (True story bro)

As such IMHO planning a 'career path' is foolhardy nonsense. It's ok to learn a specific thing and to get good at it, but start learning what goes above and below it in the "stack". Keep learning. Keep researching, and be ready to change path at any point since what you end up wasting money and time on could go the way of the dodo at any time.

See my oh so useful list of certifications like "MacOS ACSP", "Digital Equipment Accounting Certification", "Paradox Professional", and of course "Certified NetWare Engineer"

To go with all that time I spent learning 8 bit machine language, IBM SNA, DiBol, Fortran, Smalltalk, Token Ring, and of course OS/2.

Show all replies
Mark's photo

Currently focussed on [every programming languages and all of the projects]

Jason Knight Hmm I guess things just work differently in different parts of the world. Sounds bad there, fortunately it doesn't sound much like here.

Josh Montgomery's photo

In my heart, I want to do data engineering since...

Listen to your heart / gut / whatever internal voice you argue with several times a day :) Do something that you enjoy doing, and not just something that pays the bills for you. I have always believed the mental health aspect of any job is vastly under-appreciated.

To answer your question more directly on how I got into software engineering, well, i wasn't exactly pushed into it, but i was definitely nudged in that direction. Back in the 80s, when I was growing up in a small suburban town outside Boston, I was the only person in the school at that time that had a physical disability. My parents and teachers all thought it was a good idea to get me a computer as I took longer to write things out than it did typing them, so the school bought and paid for my very own laptop (I believe it was one of the earlier Tandy models from radio shack). The next couple of years, I got to know a lot about computers, and I always assumed that when I got older, I would do something with computers.

Fast forward 15 or so years, and I'm starting as a freshman in the field of computer technology (a hybrid of computer science and computer engineering) and I got my first co-op job (essentially a paid internship) as a desktop support specialist. Up to this point, I was pretty good with computers, as well as programming, as I had self taught myself a lot. After a few months on the job, I was loving it and thought I would make IT my choice of profession once I graduated. I graduated and immediately joined a small (5-10 person) software company as an IT guy. But since I also had programming experience, I did some dev work for the company when things were slow, and I gradually started to like it more and more. After 7 years of this (I had reached as far as I could go as I was now the IT manager), I was feeling burnt out, and decided to make the switch to a full time web developer, and it was one of the best life decisions I ever made.

The point of this story is that you may think you know now what you want to do, but until you get in there and start doing it, you'll never truly know. Always keep an open mind, as others have pointed out, technology is always changing, and something may come out in a few years that'll blow your mind and you want to get into that!

Don't be afraid of change, sometimes it's the best thing to ever happen to you :)

Anjali Jain's photo

Now, I want to learn reactjs with backend properly.

virabawuc's photo

the more and more brands are available to the home depot survey customers, which makes the potential customer focus a little more on the service than the real product.

Md Zaid Imam's photo

Which path in Software engineering - I shall explain, but let me tell you one small incident. My father wanted me to join engineering, and joining Information Technology is decided by one of my cousin brother who is Mechanical Engineer. When i asked why not ME why IT he told me that you will get more opportunity in IT. No further question ! And i ended up joining IT. After completing my 4 years of engineering degree my family came-up with different set of requirement, that was so called "Government Job". And i was thinking, then why they asked me to join engineering is this just to have a tag, Bullshit.

Zhongshi Xi : As you are changing your domain so frequently you are getting different taste which is nice to have but in long run its your call. I can add only one point here,

If you really like experimenting too much you should stick with DevOps.

You can evaluate the current demand as well.

PhiGuy's photo

I chose a path that is ripe with opportunity. More specifically, I chose a path wherein there is tons of room for improvement and innovation.

Cutting Edge: I really enjoy being on the cutting edge of technology, so I gravitated to Blockchain tech. Primarily being a Javascript developer, one of the things I noticed immediately after I started working in this field, is that the javascript libraries in this field is rather messy. I think this is because Blockchain related libraries are relatively new and haven't had the opportunity to be refined by programmers that have a high expectation for quality code that conforms to a recognized style.

Job Demand: I chose a path that has a high job demand. Blockchain related programming jobs are plentiful in todays job ecosystem. I see Blockchain as a blooming industry, meaning its in its beginning stages, and will be around for years to come. I see this as an excellent opportunity to start my career and even make a name for myself.

Todd's photo

The thing about this for me was that I didn't choose it - it chose me.

I chose to get into programming, the rest was history and experience and trial/error. Basically, I naturally found that I gravitated towards security-related programming and code analysis. This drew me to go to security-related events, conferences, meetings, and also apply for security-related coding jobs.

I never really struggled with what I wanted to do in computer science. I love it all but my "why" is helping to keep other people and their data safe.

Ilango Rajagopal's photo

The first time I went online in an internet cafe, I was fascinated by it. I wanted to know how it worked. When I learned HTML in high school, I didn't know I would end up being a Full Stack Developer. But the thrill of finding out was there. It was still there when I wanted to switch fields when I didn't think I had enough motivation to pursue a career in Electronics Engineering after about a year of working in the field (studied Electronics and Communication in college).

So I turned to what interested me and it was the web. So I started refreshing my knowledge. Years later, the internet still fascinates me. I find the web intriguing. The same way that I found data science intriguing recently. Web and data science, both capture my attention and I love working in both fields. Granted that I'm still a beginner in data science and I've a lot to explore. I'm also planning to switch fields to a job in data science. That's because I want industry experience. Tutorials and courses can only take you so far.

This doesn't mean that my love for the web will go away. Moreover, I have a goal I'm working towards. My goals need me to be an expert in the web and data science.

Conventional wisdom says a lot of things. Things that were relevant 2 decades ago are no longer relevant. The notion that you should "find your passion" is bullshit. How will you find it if you don't build up enough experience in it? Reading about a field you're interested in is not enough. What if you found out later that what seemed interesting on the surface is not what you want to continue with.

If you feel that you want to work in data engineering, then do that. It seems like you like a good challenge. This is the era of data and there's still so much that's yet to come. But IF you don't feel like continuing in the field after a few years, you have skills in full stack and devops to fall back on, if that's your cup of tea. If not find something else. Don't let anyone tell you different.

David Ravinkat's photo

After facing these sort of thoughts plenty of times during my professional life, I vote for the famous:

"Follow Your Heart"

, adding {as Much as you can} to the end. Then things get better, as it was for me. Follow your heat & enjoy it.

And please avoid overthinking about it, instead, decide quickly & take actions to touch the real sense of that new job/topic/etc.

Good luck :-)

周丰's photo

People may have different opinions on this question, but for me, passion really matters. I have five years back-end development experience, and now I am learning front end stuff. I just so love the feeling that I make something by my own and only back-end experience cannot help me do this.

At the same time, I also learnt machine learning and AI during last year. These are the buzzwords now and may take the world in the future, but I figure that it's difficult to do something interesting without considerable computation resources and big data (in general cases). Also, IMO, the most challenging part in ML is to investigate algorithms and improve them or even invent new ones, it is not only an engineering task but also a research question. As a software developer, I have to admit that I can use or understand the existing algorithms in general, but cannot further it, but I am open to change my opinion if one day the cost of playing with this stuff decreases. While for web development, it's all about engineering and I can know every detail of it if I want to.

Now my goal is to become a full stack developer and enjoy it. Today is web, tomorrow may move on to mobile. I feel It's not that difficult after I have several years of experience and thinking. By the way, it's exciting to get the chance to try different things.

Aakash Mallik's photo

Hahaha.. My education system did it for me. Welcome to India.