Now? Simple- a secure, lucrative career path.
I bought into the “do what you’re passionate about” narrative, to my detriment. I studied Music (BM/MM) to discover that a) the business of music has very little to do with music and b) I was, in fact, not prepared or interested in what the music business actually is.
So, I would paraphrase Chris Rock here- “Do what you like, that you’re good at, and is hiring”. I strongly disagree with your career needing to be this all-consuming marital relationship. I like code, but if I was a trust fund baby I’d still be making music. Plus, my good career in IT makes it possible to pursue my passion in ways not previously possible.
So, in short, I would encourage you to pursue what interests you enough so you can become proficient enough to get a good job.
This post really resonates with me as it's a path I have taken myself. I do struggle with "pursuing creativity/pursuing a decent career" argument in my head a lot.
In recent years, I've kept music as a hobby and focused on coding for a career path, and it has worked out better. But like you said, if money was no object, then I probably keep doing music.
My jazz professor in undergrad, when I was struggling between opera and jazz and a career path, told me “do the thing that affords you the most time to do the other thing.” I feel that way about my career now - I can afford to buy nice gear, play gigs without worrying about making money and consequently like music more. Plenty of composers and artists have had day gigs over the years. You and I can do the same thing.
Great advice there, thanks!
I'm in mobile, but I feel that mobile chose me.
I said yes to every opportunity I had the chance to explore. My path went a bit like this:
Keep following the path that you're enjoying, stay away from things you don't enjoy, and you'll find your spot. It takes patience and persistence... but the reward of enjoying what you do and getting paid for it is so worth it.
I've struggled with "What do you want to do?" all my life. As much as I enjoy talking to computers, I know it won't be "the thing" since I still want to learn carpentry, I still want to farm for a bit, I still want to do a lot of things.
That said, what brought me to programming and what drives my self-tutelage is finding problems I want to solve or coming up with solutions I want to create. Of all the things I've tried in life, few things outside of talking to computers allow for such a wide range of "things to do", so, even as I learn to whittle wooden blocks or whatever, I'll still probably be typing vi newproject.py or tclsh pretty regularly.
20 years ago I liked *NIX a lot (and I still do!), I learned it for fun, but when I was looking for a job, it turned out it was useful even for profit. Back in the days, at least in Italy, there was a shortage of decent Linux system/network admins. So it wasn't difficult to get a job.
Then I felt that the field was too overcrowded and, after all, it wasn't so funny as in the first days, once you learned some tricks and gained some experience. Also, wages became lowering, time to switch.
I've always loved programming too, so I switched to full-time developer. I used mostly C and Python (from my sysadmin days) and PHP for web development (along with JS on the client side), but I hated PHP, especially after I discovered Ruby. But Ruby was very niche (or at least it was exploding in popularity in USA, around 2006-2007, not in Italy for sure). So I embraced Ruby: it was fun and very fast to write programs, BUT in Italy was barely known. So I kept learning Ruby/Rails while still working with PHP. At some point I eventually decided to work only in Ruby. Today a lot of job offers are looking for Rubysts.
10 years later, I did the same with Elixir and Erlang, for the same reasons.
An so on :-) Choose something you (would) like to use/learn, not too much overcrowded and that adds something more to your toolbox (skills, programming patterns, experience, tools, whatever...). That way you'll always be on the bleeding edge, well paid because rare to find. And when it will be more popular, in the worst case, you'll have collected several months/years of experience :-)
It worked (and is still working) for me ;-)
Choose something you (would) like to use/learn, not too much overcrowded and that adds something more to your toolbox (skills, programming patterns, experience, tools, whatever...).
Choose something you (would) like to use/learn, not too much overcrowded and that adds something more to your toolbox (skills, programming patterns, experience, tools, whatever...).
In the spirit of this, I encourage anyone to learn the Tool Command Language and Toolkit.
It's really nice!
I always loved it ;-)
Unfortunately is too much a niche :-(
Too true. I missed its heyday 90s.
If I wanted to find a job, I might be more worried about TCL's lack of modern appeal. Thankfully, I can just use it because I like it. Maybe it'll be cool again in 10 years! lol
Easy. You get up and you do stuff, preferably stuff you can do.
Early on in life, I was primarily motivated to live outside of my parents' house. As my savings and my ability to earn grew, my motivations changed because I was able to do more things with it.
At one point, I had saved up a month's worth of living expenses. So I took a month off of work and built an iOS app that propelled me into my software career. That app still makes passive income for me.
Once I was able to leverage that success into something more lucrative, I started investing in nicer computers and gear (for a little while). As soon as I exhausted my spending power on tools that might make me more productive, I started putting all of that extra money into investments.
Now I'm in this weird spot between having "FU money" and what you might call financial independence. I have enough to walk away from a bad situation but not quite enough to fully pursue only the things I want to, all of the time.
This is okay. This is normal. I should be so lucky to have this as my sole problem.
You often see people doing the opposite, or following their passion before putting themselves in a position of power. That's almost never a good thing. Nothing makes you more burned out than failing to earn a decent living or feeling like your life isn't going somewhere. Passions can quickly turn dark.
So whenever I have to make a decision, I always ask myself if it will make me more powerful. By that I mean, will it increase my net worth or will it decrease it? Will it cost me, or will it pay me in dividends? Will I have more control over my life or less?
You can't achieve anything until you have enough control over your life to achieve it. Nobody was inventing computers when our primary concern was avoiding mountain lions and trying to feed ourselves. Only now are we so lucky that we can work a job for ten years and save enough to never have to work again.
Depending on where you start, the path to getting where you want might involve all kinds of things that seem tangential to the goal. I'm talking about weird things like washing zip lock baggies so you don't have to spend stupid amounts of money buying them over and over again. Decisions that make you more powerful are often right under your nose.
I didn't really intend to become an iOS developer. I saw an opportunity and went for it (but only after being financially stable enough to do so). The experience I gained propelled me toward that, I specialized, and then got so good people started paying me ludicrous sums of money to do it from home.
Don't get me wrong, I really enjoy it and sometimes find it pretty satisfying too. I also find it frustrating, but that's fine too. Nothing in life is perfect like that.
I would say do what pays well in the moment, and study for the next thing in your free time.
I'm doing that right now. I work during the week and I make game prototypes on the weekends because that's what I'm into. The games might or might not do anything for me, but at least I'm building them from a position of strength. Eventually, I'll have enough saved to do that full-time, whether it makes money for me or not.
I think there's a small fallacy here, that is that many people 'decide' what they are going to pursue as a career.
Of course, I can only speak to my own experience. I started my career back in the 70s as a musician. I had a lot of interests, but at the time music was what I was 'good' at without trying too hard. A few years into college (on a music scholarship) I realized that a career in music didn't jazz me at all, and I drifted into the military (Air Force). There another interest, electronics, was useful in that it landed me in in a small lab in NY, supposedly to fix broken gear, but what ended up being a four-year stint doing primary materials science research. There was a pretty good engineering school nearby and so I picked up a degree in electrical engineering.
When that was done, a few coincidences led me to magazine publishing, and I was Editor in Chief for a few years of a large electronics hobbies magazine. Money called, and I left to do course development at Digital Equipment Corp, learning and writing about operating system internals and networking. Another degree, this one in CS.
Then a marketing job. Then a decade as a consultant. Then a director at a research firm, and a director at a startup. Founded a small publishing company doing 400+ fiction titles. These days I'm a professor in computer science at a prestigious university.
I didn't plan any of this, really, and my advice to students who ask me this question is to be open to every opportunity. Life just happens, and things come up, and you have to be ready to jump. The but first part is that when something interests you, let it consume you. Dig deep, be the expert, but when something else catches your eye, be ready to move on.
My career in tech kind of just developed on its own. I started working at a computer shop when I was still in high school. One day, a customer came in and asked if we could connect his two business networks at his locations across town from each other. My boss (also the owner) asked if I could do it. I said "yes" without hesitation. But here's the thing...I had never even tried something that before and didn't know the first thing about point to point VPNs, firewall access rules, ports, WAN vs LAN, any of it. But, I dove into it anyway and figured it out as I went. Myself and both of my brothers are engineers in the tech industry and, while my dad is the least technical person on the planet, he taught us a simple rule to follow for personal development: "Be humble about what you know and arrogant about what you can learn." All three of us lived by that and it took us far. After that network gig worked out, that customer referred us. Two years later I was recruited by a bank to come on as a routing and switching engineer. The staff at the bank was super skeleton in IT (as in there were 6 of us, including only one software developer caring for 1200 employees and their equipment and managing office and ISP issues in 20 states) so a lot of us wore a bunch of hats. One of the hats I decided to wear was as a Windows Automation technician. Basically, I used Google to learn enough Powershell to help take some of the load off. Eventually, the employee number rose even more and Powershell wasn't enough. So I started developing some automation scripts and basic reporting software using C#. Out of pure luck, I happened to automate some process that was on our Software Engineer's task list. To him, it was a simple thing, but to find it already done led him to ask who had done it as he was the only code jockey at the company. Eventually, he tracked it down to me and asked if I wanted to help him with some other projects. I agreed immediately because writing the scripts were really fun and interesting. Fast forward 6 months and I joined him as his junior, then eventually left to pursue other things. That was 5 years ago and now I write web automation, data aggregation, and ML software for local businesses.
I guess, long story short, if it interests you, dive into it. The idea of a topic being "beyond your abilities" is only going to get in your way. Yes, learning how to think in algorithms, debug your code in your head when your not at your computer, take the math of statistical and predictive analysis and translate it into functional or OOP terms, are difficult things to do. But as with any niche, there are things only experts can do, and things more suited to junior devs. But the difference between those two groups is two things: experience and fearlessness. So if you like deep learning, machine learning, AI, and the like, go with that. Technology changes so fast that even senior guys have to pretty much relearn the ropes at EVERY new job they go to. So if you work in that field for awhile and you don't like it, try for a different niche. Your experience with one niche will pay dividends in any other niche. And even if you went to a new company doing the same job, you'd likely have to learn how to do that job on a different stack, with a different codebase and different colleagues which is basically like starting at square one anyway. Do what you like but be flexible. Most of us are specialist developers who will make decent money doing what we do so, at the very least, you'll pay the bills while you find out whether or not you want to stick around.
As I read your post, I dont even know how to answer this question...
I think its a balance between what you love to do and what pays the bills. If they happen to be the same thing, then you’ve won the lottery!
I think the biggest thing is trying and failing many times. You’ll never know if you like/dislike something unless you try. We are, as software developers, fortunate to be in an industry that pays a lot better than most other industries and with a lower barrier to entry (Thank you, the internet). As such we have a great landscape of knowledge we can go through to learn something new and keep the fire going.
Personally, when I started, I had no idea what I was going to do. With a bit of time, open-mindedness, and willingness to learn, I found what I like and what I dont like.
And what did you found?
I’ve simply followed what I believe I am strong at.
Honestly, I could have been a good doctor. But I didn’t want to spend another 10 years studying.
I could have been a good lawyer, but I do not want to end up protecting a criminal.
Programming was my best choice, and it is what I am strong at.
I don't know what I want to do in life. I've just been kind of winging it. One day, my Mom made a joke with an HTML page. I didn't really care about the joke, I was curious as to how she did that. She showed me, then told me there was a book about it on the shelf.
I took it upon my own initiative, took the book, and learned about HTML and CSS. Once I finished the book ... I went online and started research and learning. My first year was dedicated to web application design, with custom HTML & CSS, no libraries or frameworks.
The third year I refined my designing skills for both front-end and back-end, heading back into custom code rather than relying upon heavy amounts of libraries. I dedicated it to web application security, protecting data etc.
And now I've gotten into the offensive side, trying to break my web apps, and make them more robust with better security and performance.
I reinvent the wheel, and I love it.
Ultimately I've just been going with the flow, picking up things as I go along. And it's quite fun. I learn a lot, and my math skills have greatly improved because of programming.
Perhaps you shouldn't worry about what to do ... and just pick up thigs as you go along? That's up to you. If you go deeper- well, you go deeper. Who knows what you'll find along the way?
I'm bossy, I like telling computers what to do, and what they shouldn't/can't do.
And as a note, I'm a writer of tales, a farmer, learning to cook, and I also knit(I stopped for a long while, but I hope to get back into it). They're many things I wanna do in my life. And I'm not gonna let anything stop me from achieving my goals. Also, I have no idea what all I want to do. But those're just the things I've found so far.
I just do whatever, go with the flow, have fun where things take me and learn a lot.
This was about me. Now, stop reading my self-centered biased stuff(let's be honest, it was) and go do something that you find awesome.
(hopefully this helped XD)
I haven't decided. This is one of the toughest questions I've experienced in recent interviews because I have so many interests, some of them I haven't begun to explore. For now, I enjoy building things that people can use to make their lives easier. Is that vague enough? If I were interviewing me, I'd feel disappointed with the answer, so I always go with something more concrete like, "I'm fascinated by the way we interact with machines, so I've been focusing on UI/UX design." It's technically true, but I haven't planted a flag just yet. I feel the same trepidation you feel when I think about committing to a narrow field like sentiment analysis or augmented reality, for example. Right now I'm learning as much as I can about two different subject areas, testing and WebAssembly.
Maybe your question is even broader, though, and I've had thoughts about that, too. Should I be leveraging my situation to prepare for a career as a lead engineer, or should I focus on PM or business? In that aspect, I am giving myself more time to figure it out. Good luck!
Followed my heart, after I realized ppl are also paying good money for what I liked, I liked it even more :)) and got a full-time job.
Now I'm doing the same, as I change my stack and specialization, from a full-stack engineer I'm going to a back-end distributed system and architecture consultancy, because I enjoy them more.
What does a back-end distributed system and architecture developer do?
Back end developer but involved only in custom made services and use technologies that scale horizontally (on more servers), like microservices, Cassandra, Redis and so on.
As for the architecture you can search for "software architect and solutions architect", these are the 2 positions I like.
Lemme tell ya something, there is no other way yet in 2018 to find what suits you better other than TRYING EACH SINGLE FIELD !
My journey since 2009 has gone through (all online courses & forums):
Guess what... I like the last one more than any other, and I feel that I can master that.
Sadly, there is no existent system that finds your passion.
Even, the educational system won't help choosing your passion, it kills your passion actually.
What is "Ethical Hacking"?
I think I just picked the most interesting opportunity in front of me. You have to always be learning, so I wouldn't be afraid of learning something you might not stick with. In fact, I'd assume you won't stick with it. But that doesn't mean it won't be useful. Over time, these experiences give you better answers of what to do next and develop your unique value by connecting the dots.
"...I'm not sure I'm ready to go even deeper..." Then you already know that path is not the one you want right now.
The great thing about tech is there are so many paths. Not to derail the question, which is very legitimate, but I like to look at questions from different angles.
Why are worried about the path? Find what you are a) good at b) enjoy and c) can pay the bills with. Everything else is extra.
The answer the question of how did I find my way? I wanted to make a website, PHP was the most approachable (Visual Studio was/is very expensive). So I built a the entire thing front to back. Found I was good at it and easily grasped the abstract concepts involved in system integrations. 20 years later I've been a professional for nearly a decade and for the most part go home at the end of the day and general feel ok about what I did that day.
A good friend of my parents was always taking care of our computers at home. He developed the logic for car parks (lifting the barrier, payment and stuff) and was always somewhere else in the world.
It fascinated me to watch him typing really fast when he was fixing things on our computers or setting up something. I wanted to do this too so I started to dig into the topic and learned VB6 and later C++.
Back then a year before I was graduading I had no idea what I want to do afterwards.
My parents told me I should study but I didn't want to spend a single day in school anymore.
The deal was either I do an apprenticeship in a company or I have to study.
So I applied as software engineer trainee (in Germany you have 3 years combined working with school education) and got two offers with 2 applications (lucky me :-) ).
Since then I moved along the path, learned new stuff, met new people, switched companies etc.
Got to a certain point and decided it was time to grow up and get a real job, because I needed $$$... most things computers have always just sort of been second nature, found a place that would hire me, started working.
This career, for me, has always been pretty exclusively about cash. It's a means to an end really. I can't say I'm particularly passionate about software development.. I dunno maybe I am, but I surely don't feel that I am. At the end of the day I just want enough cash to not have to worry about it, and to not have to work if I don't want to -- or put another way, to be able to do whatever I want, whenever I want.
It's been a long road, but I'm getting close to that point. :)
I'm actually dabbling myself if I should move to lead, or architect. Apart from that there are some many cool things. I had a couple of weeks I was really blocked by this. Eventually I decided to just pick one of the projects I probably could finish in some weeks. I also had some poc using graphQl which was never more then that, and current project seems 'stuck' at rest. Also for languages, because of the market I'm 'stuck' at Java, while I would rather do Clojure, Rust or Kotlin.
I'm still in the process of getting my CS degree so my path can still definitely change, but as it stands I want to get into Mobile or Database development.
At one point I saw the world of software development as a buffet and I wanted to try everything. I would read articles about new tech, talk to my peers about their passions, watch videos of live-coding; I tried to get a taste of everything to figure out what I liked.
But then I took a class where I had to do a group project. My team wanted to make an Android app and my primary job was to get the DB working...and truthfully that's when it clicked for me. I was coding and reading Stack Overflow and coding and thought to myself, "Oh snap, this stuff is pretty dope".
So for now I'm sticking with it. I've been spending some time on a personal project and I'm taking a DB class right now. So far so good, i.e., I haven't changed my mind...yet.
In university I focused my studies on systems programming because that's what I found the most fun and challenging, but when I looked at the job market I had to pivot. Viable choices in my area are web, mobile, and medical. Medical dev is a special kind of Hell from everything I've heard (MUMPS, anyone?), so I experimented with Android dev and web dev in my senior year. Turns out Android app development is also one of the circles of Hell. So now I work in web dev and play with my TRS-80 CoCo III and μCs on weekends.
tl;dr What I wanted to do isn't a viable career path any more, so by process of elimination I landed in web dev.
Personaly, I just fell into my job. I was an artist, I wanted a portfolio, I liked making the website more than the painting.
I started writing code in the 90s and I found that I am quite good with it, so now I make money with something with which I am quite good.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.