Ask HN: Web developer and looking for a career change, what are my options?
After a year at my job it seems like I'm no longer interested in programming - I am no longer excited about new frameworks, etc and I feel like my skillset (Python and Django) is slowly fading into irrelevance (everyone seems to be about machine learning and data science nowadays), and I don't feel interested in learning those fields (ML looks like magic to me and involves lots of math, which I suck at). I also would like more interaction with people instead of spending my days in front of a monitor. Note that I am only 20 so I don't have that much experience either, and finding a good developer's job seems hard given the competition for all the good startups.
Anyone else feels that way? How did you solve this issue in the end, and if you did switch careers, what job are you doing now?
81 comments
[ 2.7 ms ] story [ 166 ms ] thread> I feel like my skillset (Python and Django) is slowly fading into irrelevance (everyone seems to be about machine learning and data science nowadays)
Machine learning and data science are certainly trendy, but there are still 100s of developers for everyone in those areas, and will be for a long time. These skills are highly sought after and you'll likely naturally shift to new technologies to solve problems as you need to.
> I also would like more interaction with people instead of spending my days in front of a monitor.
I think the best engineers get a lot of interaction with people. Building something isn't worth much if it's not the solution to the right business problem. I'm an engineer but I'm heavily involved in the product thinking process, talking to "stakeholders", brainstorming ideas, liaising with external companies, etc. I'd estimate my time is roughly 70% at a computer and 30% talking to other people in various ways.
There are many opportunities to do this sort of stuff if you're interested, and you may even want to go into Product Management if you want to remain close to technology but spend more time getting human interaction.
> Note that I am only 20 so I don't have that much experience either, and finding a good developer's job seems hard given the competition for all the good startups.
I'm assuming you're right at the beginning of your career, or only 1-2 years into it. I would encourage you to find a different place to work, try more companies of different types, teams that work in different ways, etc.
I'm yet to see a job listing for a PM that doesn't require experience as a PM.
I've seen 2 people do this at my current company and have heard similar things from other companies where it worked very well.
As far as my work experience goes I've been a developer for a year but was working as a technical advisor for a mobile phone retailer before that - the job was actually quite nice but unfortunately the pay was nowhere near enough to sustain myself and the company had pretty scammy sales practices so I left.
"Oh, I need to go join a trendy startup" is a pretty good way to stick your foot in a bear trap. There's more to life than a keyboard, as you have seemingly realized--college is a very good way to find out what (and, if you work in tech, there's no need to go broke doing it; I had my entire loan package paid off from my university by 26 because I didn't go to some crazy school).
If nothing else, you should explore it more seriously than "well, high school bored me." The experiences you get at college are really hard to replicate outside of it.
What i do now is i work with non-technical businesses as my clients, they come to me with a problem, not a spec. I gather requirements, give them my opinions, tell them how to solve their problems, then deliver solution for it, which 90% of the time is an internal web app.
For instance, a current client is a distillery that was using 2 pieces of shitty software, one of which they originally got in the early 2000's. The software was running their health and safety requirements for the staff. I wrote an internal web app that replaced a old creaky system that didnt work very well and they're absolutely flabbergasted that this problem could even be solved at all. Its an extremely easy problem to solve, but to them, i'm basically doing magic.
They dont care what i code it in, they dont care if i'm up to date on the latest framework, they dont care how i deliver it as long as i solve their problem and save them money, which is what i focus on. This is infinitely more interesting to me than keeping up to date on the latest tech. Also, as a side note, i'm now earning about 3 times as much as i used to earn as a contract web developer.
Perhaps you could apply your skills in a different manner.
This may seem like a conspiracy theory to some, but it is extremely consistent with my observations from over 20 years in the industry. I see inefficiency and incompetence everywhere I look, I simply cannot believe this is mostly accidental, there must be forces acting to keep things this way.
There are a lot of medium to large retail companies looking to front the cash for startups willing to "move fast and break things". The catch is that they will disown you when you break something.
So the headlines are: Be as boring as possible, Networking, Focusing on the outcome, rather than the product and start studying business instead of tech.
Be as boring as possible
Tech to tech guy is sexy, i avoid the sexy, because thats where all the other techys are, you know where they're not, boring businesses. When i say boring i dont actually mean they're boring, i find them interesting, they're just not considered fashionable and sexy and the "in-thing". If you go through life like i do, as a customer wondering why a difficult process isnt made easier using technology, then you already know what you can go after. I rent cars quite often, car rental companies have to take my details EVERY SINGLE TIME! Why dont they have a system that looks up my info for next time? The local chamber of commerce runs free business workshops, you can even register online, however after the workshop, they give you the slides on paper, ask you to fill out a feedback form on paper and that paper asks for your email address if you want to hear more? Why isnt the first part married with the second part? My local council that does my refuse collection required me to phone them, get a paper form posted to me, i had to fill it out, post it back, then pay over the phone, then i had to go to the local office to collect my trade waste bags? SERIOUSLY???
There are SO MANY boring problems out there that can be made better, its all LOW HANGING FRUIT, why? Because most of the tech world is making a salt dispensing centerpiece for the dining table that has an app for your iphone to pick how many pinches of salt you need, oh and bluetooth! https://www.indiegogo.com/projects/smalt-the-world-s-first-i...
Networking
Go to your local networking meetups, don't go to any tech ones. Go to ones for Oil and Gas, Construction, Local Government, Textiles, Motor vehicles, etc. Find and talk to people there, be helpful, give away your knowledge for free. Establish yourself an an authority on making business processes better. Join your local chamber and volunteer your time to grow their membership, this will not only benefit them, you can develop some software to make the process easier, they get to use it for free and you get exposed to their membership, also, you can sell this software to other chambers in the area. (We're doing exactly this.)
Focus on outcome, rather than the product
Your business client does care about code quality, or test coverage, or continuous integration, or git branching methodology. Just write the damn app and make it look pretty. Write it well and secure, but dont spend time on shit that wont ever be appreciated by anyone but you. Deliver it, show them you just saved them £XXX,XXX per year now they use your software and they'll love you forever.
Study business, not tech
Read business books, read Patio11's blog, especially the one about not calling yourself a programmer, realise that what you are delivering is value, not exchanging your time for money. Charge accordingly, I recently charged £16,000 for about 5 days of work from my junior developer and about 3 days of work from me, why? Because it was for Kodak and the tool allowed their salespeople to make more sales by displaying pretty graphs for their clients. The value to them was easily 6 figures a year. This was through a middleman, and i know he charged a lot more than i did.
Sorry for the wall of text, i could talk for hours on the subject.
We are all sitting on the edge of our seats, waiting for you to launch your blog.
I am sure you could find an audience. You sound like a rich source of much-needed wisdom on the subject of small business of a sort that would be highly relevant to lots of people on HN.
Edit: It is also fine to interpret my first remark to mean "No apologies needed re the length. Lots of people here would be happy to read more." I mean, you aren't obligated to start a blog because a random internet stranger flippantly suggested it, but I have the bad habit of taking objections literally when people really mean "I don't actually want to do that" but they don't actually say that, they say "I would, but (reason)" and then I'm all "That's totally solvable!" because I am compulsively helpful.
I shall stop digging my grave deeper now. kaythxbai
Do you have any advice on how to find these meetups? Is meetup.com good enough or is there a better resource such as something at city hall?
Thank you for the elaboration in your comment above, very useful in my journey as software focused consultant!
Clients come from all over. Do things, tell people works well. Whats a problem that affects you that you could easily solve, your local activity group terrible at organising a date? Setup an email list and doodle for organising dates. Then write a blog post saying what you did and how it improved things, then mention that to everyone you know, submit it on HN, Reddit, email it to other local groups, etc.
So my suggestion is to take a look at databases before you decide to move on to anything too much different.
To me this is rather a sign of common sense than a lack of interest in programming.
You could try moving to a company that has its own product - these often have interacting with customers or other companies listed as one of the responsibilities.
EDIT: paragraphs.
For me, I usually extra-hate new frameworks, because I realize that I'll have to learn them, then I end up loving them.
I used to get excited by imagining millions of people using my software.
Autonomy, Mastery, Purpose. Those are exciting. Perhaps this is his autonomy screaming.
To me it is a sign that someone is finally becoming a senior (sane) developer.
My city is full of these and there is the disconnect online I get from interview prep guides on algorithms, but none of that benefits me in the local companies I apply for.
A lot of these companies flat out ignore me, despite that I know OOP development well enough for a couple of years.
So much revolves around taking in new tools and frameworks that it's become fashion. That's a big reason why I want to head out of web dev too.
Along with that, it seems like most web dev jobs just are hooking up API endpoints for applications that don't get a lot of traffic, so there are no interesting speed/performance problems to solve.
I know why they're doing this and IMHO it's a dead end. Among companies with tight budgets(I worked for a few of those) there's a notion that you'll get more value out of someone who already knows the required framework so you should focus on that in the recruiting process. That may be true for small, short-lived projects(3 months max.), but what matters the most in the larger, longer ones is something, that can only be expressed as the ability to program.
Basically it's a sign that this company is mainly occupied with doing the grunt work for larger companies. A job like that sure, pays your bills, but is also soul-crushingly boring.
> Along with that, it seems like most web dev jobs just are hooking up API endpoints for applications that don't get a lot of traffic, so there are no interesting speed/performance problems to solve.
Well, this is web development for you. Hell, most of the time this is software engineering for you.
But there's a way out of this: Like I said before - a company with its own product that does something fundamental(like e.g. a framework). I spent two years in such a company and I can tell you this - I only dealt with interesting problems there.
GL
If you don't have a CS degree, then I would pursue it if I were you. I used to be like you (I was 20, now I'm 30 with CS degree), and it's been the best investment I've made.
> After a year at my job it seems like I'm no longer interested in programming - I am no longer excited about new frameworks, etc
Yes. This is because you've hit a ceiling with your learning. In order for you to move forward, you should touch up on basics.
> I don't feel interested in learning those fields (ML looks like magic to me and involves lots of math, which I suck at).
If you played Diablo, you need to learn your pre-requisites before taking these on. Once you have the basic fundamentals, it will come to you.
Right now, you are still too early in your career. I would focus on building a strong foundation (CS degree). Everything else will come to you over time.
Whilst CS != programming, there is a lot of overlap.
I changed careers more than once between 20 and 30. To/from radically different fields.
Besides that, your skill-set as a programmer is _much_ more than your choice of language/web framework.
You have skills in:
- Building things
- Decomposing and solving abstract problems
- etc..
And don't let a perceived lack of math skills intimidate you. This stuff is learnable, with effort and time. ML is most-decidedly not magic. You can learn it, if you have an interest.[1]
That said, if programming is losing its luster, but you still enjoy software -- try product/project management. Good pay, and it's a very social job where your tech skills will be valued.
If you want something dramatically different -- the sky's the limit. At 20, you could switch to Business, Law, Medicine, Journalism, Banking, whatever. Biggest lesson I've learned: don't be afraid to try. Good luck!
-----------
[1] (For context, I started studying math much later than you (~27), and have worked on ML in a research lab, since then. But when I was 20, I barely passed college algebra... Point is, you have time and can learn if you want.)
Do you have an opinion on how much of product management is politics and posturing, and how much is actually building good products? For example, one doesn't have to look very far to find substandard software and features on hundreds of highly trafficked sites or commercial products, yet I'm under the impression that getting a job where one would have the authority to fix these things would be next to impossible. (And yes, I absolutely understand that decisions are, or at least should be, first and foremost economic decisions, and subject to competing priorities. For example, just look at the positive cultural change Microsoft has undergone relatively recently, they are a good example of a company who has changed in respect to what I'm talking about.)
My guess is that a lot of this depends on the organization, and product/projects.
But as an opinion...
The politics/posturing & social aspects of the job are integral to shipping products, making positive incremental changes, and "getting things done".
As a PM, I definitely was not the boss. (Even though the success of the project was ultimately my responsibility.)
This meant I had to lead, persuade, and _negotiate_ very effectively -- always arguing what's best for the product, or the end-user.
So I guess I'd say that these sorts of politics aren't separate from building a good product. They're sort of the process for getting things done.
But again, that's limited & personal experience. My companies were relatively small (20 - 50 people). In essence, I was figuring things out as I went along. (These were small businesses, and we all were.) Big organizations with lots of really established process may be different.
I got a degree totally unrelated to CS. (Think "arts". Decent school. Top 50. But not prestigious.) Bounced around at not-great jobs for awhile, living in NYC and barely making ends meet.
Then I managed to get a job at an online media startup (essentially a management role), which was a very lucky break.
That got me into software, and I was able to use that experience to move into product/project management. I did that for a few years at some boutique companies, working crazy hours but learning a lot.
Then I decided to go back to school and study CS (starting at undergrad level again)... so I spent a few years re-learning everything from the ground up. That includes all the math, stats, etc... that you'd expect from a typical undergrad engineering program. It took awhile to finish, and was frustrating at times, but it was worth it.
Fast forward a few years... and now I work as software engineer. I focused on ML during my studies, and again (with lots of luck) managed to get a job at an R&D lab doing machine learning, during my final year in school.
I've since moved and now work at a company that does low-level OS-type work. (Which I actually enjoy more than ML.)
It's been a wild ride, but it's been fun.
Non-linear paths like this rarely get mentioned, but I met dozens of people with similar stories when I went back to school. It's hard, but can definitely be done.
You could also switch roles into something more people - facing. Sales engineering or solutions engineering might interest you.
Product manager is also a possibility but you'll need to work your way to it. There is not one path to get there. But there is satisfaction in supporting a successful product.
Your best bet is to try different things to help you decide. If you can, volunteer in areas that you want to test out.
Since you are at it. Make a career and life plan. Start thinking now about where you want your career and life to be 5, 10 years from now. The advantage is that you'll be looking for opportunities to execute your plan. You'll be happy you did. The last thing you want is to end up in a place you don't want to be in in the future.
There's definitely more interaction with people, as your day-to-day work is more about helping people succeed than building things. But you still use a lot of the same skills you've built up in development work - especially if you've spent any time debugging code.
Whether this will appeal to you depends on what motivates you. For me, I really like feeling like I've made a difference and one of the most powerful ways to get that feeling is to solve a problem for someone, so this is a very satisfying line of work.
Also, I've done a lot of interviewing of candidates for this role - and I can tell you that at least on my team, lack of experience isn't really a blocker. It's common to need to quickly learn a new product or feature to solve a customer/developer's problem with it, so we look more for quick learning and problem-solving instincts than built-up experience or domain expertise.
I haven't done a lot of comparison or asking my coworkers how much they make, but the information I do have suggests that while developers are commonly paid more on average, if you're at a company that actually values product support (often because it's recognized as an important contributor to customer retention) this difference can easily be dominated by other differences such as willingness to negotiate. Support teams are also usually smaller so it can be easier to demonstrate how much value you, personally, are adding.
But again, this assumes the company actually cares about support. There are definitely places that treat it as a revolving door position and won't pay much.
It's also worth noting that from what I've seen, companies are much more willing to have distributed support teams than dev teams, due to the value of having support availability in multiple timezones. I actually telecommute four days a week in my current role.
I'd probably look at urban gardening, harvesting little plots of land on peoples' property. Maybe real farming, but make sure it's a niche that'll pay my bills.
After that, I'd probably print t-shirts and sell them at urban centers, maybe set up a stand. Then farmers markets, making little delicious things like crab rangoons, with some hipster spin on it(that's also good tasting). I'd probably work my way into the restaurant business somehow, but I know that the long hours and stuff I couldn't do, so I'd need a niche.
That's just what I'd do. You have to ask yourself what are some of your most triumphant memories and build on them.
When the masses discovered programming to be profitable ~5 years ago, it became "cool" and was quickly gamed into the ground from both ends.
Look at what "cool" does to art and music. The "rockstars" get paid a lot, and everyone else works for peanuts (or no nuts) or gets a "real job". 90% of the work now is marketing yourself. So it is with programming. Programming is like music now.
This is all thanks to the supply of programmers (and wannabes) increasing tenfold thanks to boot camps, and a 400% increase in computer science majors in the past 5 years.
The craziest thing about all of this is that you can be a complete novice, but if you have a decent following on social media and are putting out somewhat interesting content and are a terrible programmer, you will absolutely get hired over the expert that isn't contributing publically. It's all about visibility now.
My advice is find something you intrinsically enjoy so much, that doing all the extra annoying stuff is at the very least tolerable.
Be happy you haven't invested 10 years into the industry like I have.
Personally I'm also excited about Apples ARKit [1]. Some of the demos built on it seem like magic to me [2].
[1]: https://developer.apple.com/arkit/ [2]: http://www.madewitharkit.com/
I am 21, and work in the same Technologies you do. I founded a company in web services a year ago (http://Bigdrop.io) which is pretty much self sustainable today. I don’t find a lot of interest in the domain any more and tire of new projects easily.
I however realised that my true passion lies with creativity, and it isn’t limited to the web or to programming.
I am currently working with India Accelerator ( http://indiaaccelerator.co ), which gives me the chance to interact with start ups, discuss and design products, play a high level technical role, meet new people, etc.
We could possibly come up with something to help you out, you can reach out to me. naved@bigdrop.io
Otherwise people career change entirely. E.g. I studied law at university, realised I didn't want to be a corporate lawyer, then did sales/vc work at an equity crowdfunding start-up, left there to learn to code, spent just over a year building prototypes & on contract in some bigger tech co's, then started my own co which I'm now a year into (I'm 25).
So try and work out what interests you and see if you can move within the company you're at to start with to test it out.
I also wrote up the transferable skills from law > programming. It definitely goes the other way too - https://hackernoon.com/how-studying-law-helped-me-with-progr...