6 ms·
Career options out of programming?
Hoping the folks at HN can help me with my dilemma. I am in my late-twenties, female software engineer in the Bay Area, work for one of the 'unicorn' companies.
The problem? I got into Computer Science for not-so-noble reasons and am hating that choice now because I don't like the field enough and can see it thwarting and affecting my career. I needed a fat salary when I was graduating (went to an Ivy League) and jobs for CS majors paid well.
I am a techie at heart - I love math and science, and was a finalist for my country's Math Olympiad making it through a very competitive process. I just find programming unnatural, though my skills and role are comparable to a Google senior software engineer. Apart from math and science, I have some background in economics and business and have turne out stints at consulting firms before.
Do you have advice for someone in my place about changing careers, finding something that is less about programming, but highly technical?
- bulte-rs 11y agoConsultancy... Go work for a big consultancy firm. Good pay, good guidance, big clients and not too much programming.
- confusedgeek 11y agoI had a McKinsey offer - rejected it to take up my first job which was in technical research in California. Most consultants spend time building powerpoint - some of them are exceptional and eventually do well - like the ones who are now top-notch biz-dev folks at valley tech companies. But thats a small fraction.
- bulte-rs 11y agoAgreed... Your deliverables are "boring" (although not useless). Point being that you're able to LEARN a shitload at these companies from various perspectives. (offt: I don't really have any connection with the SV since I'm not US based and not working for a product company. So I have no clue about current state of Bizdev/M&(t)A there... Care to elaborate?)
- sjg007 11y agoWhat about programming do you find unnatural?
- deleted 11y ago[deleted]
- confusedgeek 11y agoThats a good question - I can't really articulate it well, but here's an attempt. (a) Design / Scaling: I guess I like solving small coding problems that translate math or logic into code. It is building software at a non-trivial scale that bothers me - anything that I've designed that was over 2000 lines was fugly code, and I can find numerous design flaws with the code I write and all the alternatives to it. At the end of my work assignments I am often dejected thinking - "I can't ever design something non-trivial cleanly." (b) Not being as good with new frameworks/tools: I am a loyal C/vim/shell person, no IDEs. I am very efficient at my shell+Vim development environment (which was shoved into me in school when I didn't have a choice), but I shy away from trying anything new because it feels unnatural or scary.
- confusedgeek 11y agoTo add to that, reading new code is unnatural too. So far in my career, I've only built new things, and refined them based on my colleagues' input. But unlike my colleagues, who can dive into a piece of software and augment/change it adhering to the style of it, I am usually lost with any code that I didn't write.
- jononor 11y agoUnderstanding other peoples code, and coding in 'their style', requires experience too - so if you don't have a background in it, not strange you find it hard. If you think it a worthy goal to become good at it, best way is to do it more. Otherwise, stay to something you like and do well.
- AnimalMuppet 11y agoI'm tempted to say that you'll get better at it with more experience, but... I'm not happy with the design of my part of my current project, either, and I've been doing this for thirty years. (You will get better at design with more experience (and more input from good software designers). I'm way better at it than I was in my twenties. But there's still plenty of places that I'm not satisfied with the design.) Are you by any chance a perfectionist? There always will be places to improve your designs, especially if you're a perfectionist. Part of the answer is to not be such a perfectionist. You can scale perfection (or almost perfection) up to a point, but not beyond; 2000 lines seems like reasonably close to the breaking point. Everybody's more comfortable in their preferred environment. Learning a new set of tools is not fun, because you're less effective than you would be in your normal environment, and you know it, and you compare your clumsiness with the new tool to how well you can do with the old one. But you sound like a pretty smart person, and you should be able to learn new things pretty readily. It sounds like you're unwilling to ride through the phase of uneasiness, of I-don't-know-how-to-do-anything-with-this-stupid-new-tool, of feeling dumb and clumsy, for long enough to become proficient. Look, I don't like having to do that, either. I usually kind of resist doing so for a while. But don't let it stop you from learning new stuff; whatever you go into, you're going to have to do that.
- karmajunkie 11y agoI tried to change careers once, going back to school to go into medicine. Took a semester off to help a buddy with a software development project and make some cash, and never went back. While that says more about me in general than what you're talking about, for me it was a matter of finding problems I cared more about (in my case I was writing public health software) and teams I enjoyed working with. I'm certainly in no position to judge your skillset, but say above that you feel comprable to a senior Google engineer (the relative merit of that being a whole 'nother topic!) yet you mention in another thread you have a sense of trepidation about reading code, working on only new projects, and you rarely feel satisfied with your non-trivial code. To me this suggests perhaps some room for growth as well. I had a great deal of the same feelings about my own code (even to this day on occasion) but i've developed much better elegance to my code as well as an ability to shrug the lack of elegance off as a necessary evil sometimes. I gave up on the medicine thing because as much as I love the field of biology and human health, the lab experience wasn't so much better than coding that it would have changed my life, nor the practice of medicine so financially rewarding it would have compensated for opportunity cost as a reasonably well-paid developer. I've found that my career's had up and down cycles but overall I'm very fortunate to be in this line of work. You might as well, but I don't think you're crazy to want to leave the field either. Whatever you end up doing, best of luck to you in the endeavor!
- confusedgeek 11y agoThanks for your detailed response. 1. I don’t ‘feel comparable to a Google senior (L4/Level4, to use Google terminoloy) engineer’ - it is a fact that my role at my company is equivalent to that. If anything, I feel an imposter, having made it to my job with all the shortcomings discussed (Google L4 engineers can typically build software at scale easily, and definitely aren’t as uncomfortable reading code as I am). It helps that I am in extremely niche field, so cannot be directly compared with other canonical L4 types. 2. Your story of the shift from medicine to software and the thought-process is useful. Not entirely easy for me to follow given my immigrant status. Any minor job title/company changes trigger a new H1/greencard, somewhat jeopardizing my chances of staying here longer term. I am not whining - just making a note here, in case someone reading this has dealt with or seen similar situations being handled before.
- zer00eyz 11y agoPrograming is un-natrual. Lets assume you graduated at 22, and your 28 now... You have a total of 6 years of experience, and the reality is the first three of those were you unlearning computer science and starting on the path of engineering... The problem may be what your coding. If your interested in math and science and business is the code your writing DOING those things? Programing is PART of the job, figuring out what to code is the bigger part, and if that isn't interesting then the coding is even MORE un-natrual. Does what your company does excite you in any way, are there interesting parts of it for you to chase after, and if there aren't can you name a company that does something that you think is interesting? The other question I have is are you in the US (an Ivy school) but not FROM the US ("my country's...")? I ask because it may be compounding the issues your having.
- confusedgeek 11y agoThat's correct. I am in the US but not from the US. Like I mentioned in my response to karmajunkie's comment, that does make career changes slightly tricky for me.
- zer00eyz 11y agoI'll be frank, your foreign, in a foreign land, not only based on your nationality but as a female in a male dominated world. This screams to me that "I don't have mentors or close associates at work" the kinds of folks who are going to be frank and honest with you, who are going to call you on your mistakes, who are going to push you to get better. The harder question for you is, are you having a moment of self doubt, or are you really looking to get out? If I reflect back on my on career then at points I think I have said everything you are saying... but I had folks around me who listening and giving me answers to help me keep going. After reading through the rest of your responses in this thread let me dish out some advice -- We all have moments of self doubt, your aware your having one, so thats huge -- Looking at your own code and seeing the flaws, thats normal. There are actors who hate seeing themselves on film because they only see their mistakes. If you aren't looking back, and you aren't seeing problems then your either foolish or over worked. -- Small is easy, big is hard. This is true of all things in life, if your making a holiday meal (large) its a whole hell of a lot different than making your lunch. -- Honestly you need to read this: http://discovermagazine.com/2015/june/13-curiosity-we-have-a-problem http://discovermagazine.com/2015/june/13-curiosity-we-have-a... if your current work culture isn't like that, CHANGE JOBS NOW. Everyone screws up, if you find it, and your willing to own it, they should support you. I once lost several hundred thousand dollars with a bug, at the end of the day my boss invited me to a meeting, I thought I was going to to get fired and he could see it. His response was "you did the right thing, and your never going to make that mistake again, your worth several hundred thousand dollars as an engineer now so relax. -- Learning new languages sucks. Its hard and your going to be terrible for a long time. Deal with it. There is a quote from a cartoon "sucking at something is the first step to becoming sorta good at something" -- Your use of VIM/C and unwillingness to part with it seem to say that your stuck in a rut. Vim is great don't get me wrong, and if your going to learn a new language a bare bones editor forces you to read... but in the long run your missing out on a world of tools that will make your job easier and faster! Change is hard, your going to suck at using the tools but you will get better with time -- Reading code is even more unnatural than writing it and I think I suck at it. I have been told by several people that I have an amazing proficiency for reading code, that no one they know is faster or better at it. You know what though, I read a lot of code, a LOT of code, a good portion of my day is spent looking at other peoples work... I read peoples checkins, I read bug reports and fixes, I read things that interest me that aren't even remotely related to what I'm doing at present. -- No one is perfect or even good at everything... so your code doesn't scale out of the box, the person next to you who's does, have you ever read it? if not go do it (read code) and figure out what THEY screwed up... keep reading it till you understand it, till you find the mistakes...
- ruraljuror 11y agoIf you are interested in academics, you could go on the career path to being a business school professor. I know some people in your shoes who have done that. But to be perfectly honest it seems like you are in the rat race. Check out the book Happier.
- eshvk 11y agoHave you thought about switching tracks within technology? Management is a hard tough problem. Becoming a good manager with a technical background can help you solve problems at a bigger scale without having to actually program your way (alone) through the entire thing. Alternatively, you could get back into school, get a PhD in something applied. Say Machine Learning or Statistics. I would argue a lot of jobs in research labs (Microsoft Research, Google etc) are less about writing a load of code but about solving an interesting problem.
- confusedgeek 11y agoTo your first point (management) - could you tell me more about how or point me to people who've made the transition themselves? To your second point (research lab)- I began my career in research and have worked at two world-class industry labs, including Microsoft Research. You are right that these jobs are less about code - explains why I did well. :) After five or ten years at those firms, you'd be surprised at how many people in those places are truly satisfied with their jobs. At my last job, an industry research lab that I quit to do product development with my current valley company, I couldn't meet a single soul in a building of a 1000 who seemed happy and excited enough to jump in the morning and get to work. Microsoft Research was a different story - but every happy, thriving individual I met there was in love with their field. I was similar for a couple of years, but couldn't sustain that. Wanting to be part of the corporate rat race as someone else pointed out, may have been a factor.
- ErikRogneby 11y agoBecome a technical polymath. Consider branching out in to hardware? IoT, etc... Take away technology, what are you passionate about? If you founded a company, it went big, you cashed out and started a foundation, who would your foundation give money to? Go do that.