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 :)
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.
- Look at current and future opportunities.
- Consider what you enjoy working on.
- There may not be one best path, there could be multiple.
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
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.
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 :)