Ask HN: Should I quit my job if I am not learning?

34 points by houseofshards ↗ HN
I graduated with a B.S. Computer Science in 2013 and joined a (moderately large) software company in the Bay Area. When I accepted the offer, I was led to believe that I will be working with the company's search/recommendations/data products team - a role that will be a combination of software engineering and applied research (information retrieval, machine learning). But so far, I have been asked to work on things like the company's metrics pipeline and various dashboards etc. I am really frustrated about the fact that I don't get to work on any products/applications - the work is not satisfying and I feel my software engineering skills are eroding.

Should I wait for my 1 year cliff or quit immediately or not quit at all?

56 comments

[ 4.4 ms ] story [ 145 ms ] thread
Not learning anything is a very good reason to quit a job. However - there's a ton to learn in metrics pipelines and experiment analysis, and many of the basic skills there are critical for information retrieval and machine learning. Are you actually not learning anything, or are you learning things that you don't realize are important yet?
I agree with this. For my first real job we were monkeying around with data and analysis, but we all envied the people who were doing the "high level" strategy i.e. coming up with metrics, and figuring out the direction of the company. It turns out that those "boring" database and statistical analysis skills lead to many many dividends in almost every single job since.
Exactly what kind of things are you expecting to work on that would satify you, if "metrics pipeline, various dashboards, analysis of online experiments" are not examples of "products" and "applications" ?
well, creating metrics to measure product usage, creating dashboards that help summarize and visualize these metrics isn't exactly in the same boat as working on search relevance. Most of the dashboards in my company are created using tools like Tableau or some JS/Python/MySQL. At best I am learning how to hack together some simple web.
Since you are interested in search, see if you can use Kibana for your dashboards (http://www.elasticsearch.org/overview/kibana/). Kibana uses ElasticSearch which uses Lucene. If you are able to convince your team to use Kibana then maybe you can ask your boss to spend some company time contributing to ElasticSearch and/or Lucene.
Tableau is a great tool to discover opportunities to improve search relevance, through visualizing data. Did you come up with any ideas through your work with the metrics pipeline & dashboards?

Understanding the metrics intimately, building some intuition for them via dashboards, and plotting things in order to formulate hypotheses is a good way to get you warmed up. It seems that by these projects, they're trying to familiarize you with what they measure.

For projects like improving search relevance being able to formulate an insightful theory and quickly checking this against logs/metrics is way more important than programming skills. It seems that you're working with all the right tools - come up with an insight & make a pitch for an A/B test to the right boss!

It helps to realize any problem (ok, most problems) can be interesting if you look for ways to make it interesting. I hacked together some simple web for my company's internal dashboards and they work fine but I have a million ideas for how I can improve them, but I've always got more pressing priorities to worry about. As a result, I never actually have the time to spend on them. If my manager told me "I want you to spend the next two weeks working solely on the dashboards" I could interpret it as shit work (I mean, come on, we all realize dashboards are pretty boring) or an opportunity to get creative.

My job satisfaction has increased greatly with the ability to drop the ego and take an unglamorous task and just do a good job on it.

"we all realize dashboards are pretty boring"

Hah, one of my first jobs at Google was to do the dashboards for our feature's dogfood, and my manager had to tell us "I know that engineers love to tweak dashboards and make them look pretty, but please try not to spend too much time on them, we have other important things to do."

What is it that other people in your company wish the dashboards did that they don't now, and what would have to happen for that to exist?

It's really common for early versions of dashboards or metrics to use off-the-shelf components because the person who set them up had other responsibilities (like building the product) and didn't have time for it. That doesn't mean they should stay that way forever. They could be giving you this assignment as a test to see what you do with it - if you replace the off-the-shelf stuff with pipelines and displays that are way better, that shows that you have the skills that'll be necessary for working in IR or ML.

Wait for the cliff and start a side project that will allow you to learn.
You took my words exactly.
(comment deleted)
Are they RSUs you can sell on the open market after the cliff or options of a pre-ipo company? The calculus is pretty different in each case.

Money buys flexibility and the ability to take risks with larger payoffs and that is not to be underestimated. How long do you have to go? For me, experiences, especially the bad ones, have been valuable. Learn how to excel in a broken org but don't hang around too long. Finally, always be interviewing. Good luck.

Thanks for your input !

"How long do you have to go? For me, experiences, especially the bad ones, have been valuable" - can you elaborate ? How can I make the most of my time here ?

Well, I spent seven years working in IT for financial services. Way too long. I spent a number of years working as a Network Engineer for a consulting firm. Ground out a year doing QA work at Apple. I built mobile games (in 5-10 weeks each) for a buddy of mine and watched his apps go from 100k to 5MM+ installs. Hell, in high school I sanded furniture and bussed tables and there were even lessons there.

I learned things from each experience. Some lesson were way more valuable than they initially seemed. Like how to over communicate and that consulting is about service first and the technology second. That I don't like to work with people that don't care about their job. From the same people I realized it's a marathon and not a sprint. How to build consensus and work with people whose approach you fundamentally disagree with. Why marketing and market fit is really important and that if you build it they won't necessarily come. The importance of seeking out mentors and maintaining relationships. How to time a move to maximized the number of RSUs that vest (or to get more when you are hired - they won't give you a higher salary? Ask for something else they can give you.) or that you can line up a new job and then make them wait until a retention bonus is paid out.

In summary, there is more to this game than just your algorithms and computer code. At the same time, don't let people take advantage, ask for what you want, figure out how to get it or go elsewhere but be smart about it and don't leave money or something else valuable on the table.

Welcome to the industry, you are a professional now. As a freshman in a moderately sized company, the projects you are given are a way for them to assess you. Do them well. Observe what problems are being solved and what aren't? Is there a process that can be improved? Go build it. Satisfying your work is a stepping stone to building expertise and will enable you to demand better tasks. This is based on what I experienced http://hkelkar.com/2013/01/01/being-craftsman/. You can always learn on your own, coursera, projects on github etc. If you still think you are not learning, then most certainly move. Good luck!
This. A lot of work isn't sexy, and some amount of time will be spent doing tasks like these no matter where you're at.

If you don't prove that you can do these tasks well, we wouldn't trust you with the harder stuff. Another benefit is this gives you a wider understanding of the different parts of the system.

I agree that work isn't all sexy. That said, I've also seen places where they don't want you to do harder/more interesting stuff, they just need those boring tasks to be done with. And if you're any good at it, chances are they'll leave them to you. It's much more rewarding to do the required boring unexciting stuff at a place where you take (or know you will take) a part in the bigger picture.

Not saying that you shouldn't stick through because I agree that there is always something to learn, especially at the beginning. That said, look out for opportunities to grow - either inside or outside your company. Don't settle in boredom land.

Have you talked with your manager? If you don't feel you're being challenged, speak up or find your own challenges (as hvd notes here).
Its a useful question to ask yourself. But it brings another one up which is "Why are you not learning?" Not to be too flippant here but there is always things around you to learn but besides the latest algorithm, things like development habits, or team interactions, or even project planning. Useful stuff to be sure, and something people often learn in their first job out of school.

That said, if you're not learning and your day is full, then you might try working on ways to free up time in your day (learning to automate things), and if your day isn't full learning other parts of the stack can be fun too. You could always chat with your manager about it, that is part of their job description :-)

Agreed. OP just graduated from college. There are many skills an engineer should develop that do not require writing code.
Completely agree. Focus on contributing as much as you can within the domains that your company opens up to you. In your own time at home, build something applicable to the search/ml problems you find interesting. Once you've got something worth sharing, share it. If you still feel like you're not growing in a year, maybe it's time to move on, but own the features they're giving you. Dashboard's are an important part of any app that has them, and if you're not a strong on the UI side of things, it can be good practice. Hope all works out for you OP.
> You could always chat with your manager about it, that is part of their job description :-)

It should be pretty obvious. Hell, I'm not even a manager for other departments and I can easily tell when people don't feel motivated or stretched enough mentally to feel like staying with a company.

you'd be surprised. a lot of managers don't care about their employees.
Try to do everything you can to move into a desired role before jumping ship. I would wait at least one year before you make the move
If you ask this today, Im sure tomorrow you won't ask it, but directly quit. Feeling stuck, without no professional development is the main reason to look for something else.
Ask your manager. Ultimately if they are a good company with good managers, they will want to keep you and make you happy. Otherwise, if they don't do anything, then you already pretty much made up your mind enough to want to question us about it.
If I see a resume from a kid fresh out of college that didn't even last a year in their previous/current job, unless I know the company to be exceptionally crappy I'm gonna assume that kid's a quitter.
Yeah. My baseline assumption is that people need 1-3 years after graduation before just getting their heads screwed on straight--there are definitely exceptions to this, but not as often as the average 24 year-old would have you believe.

Spending less than a year in the first job would be a red-flag for me, and it would take the candidate offering some very persuasive reasons for having left for me to give the serious consideration.

To be fair, it does happen. I interviewed a kid once for what would have been his third job, and he had a six month stint on his resume for his first job, so I asked and turned out the company went bust, so that's totally fair.

But "I wanted to do something cooler" isn't going to cut it, because how do I know they won't find something cooler six more months down the road.

One friend suggested putting a reason for leaving on anything shorter than 1 year. That way, you can actually say that the company went bust :D
That's nonsense. There are a lot of reasons that a first (or any) job isn't a fit, and a whole lot of them aren't caused by the employee's negative traits.

Just to name a few: the job description didn't match the actual job, overbearing managers, overbearing coworkers, uninteresting work, a better offer elsewhere, changing interests, or - just like OP - the employee feels like he would grow his talents better elsewhere. I have been in the same situation and employers have understood and respected my decision.

Those are exactly the kinds of answers a quitter would give though. "Oh, my managers were overbearing." "Oh, I wasn't interested in the work."

This career's not easy. This career's not always fun. There's strong personalities all over. Sometimes the going gets tough, how do I know this person's going to get going or just get gone?

So why is it OK for a company to "fire fast", but it's not OK for an employee to fire a company fast? Wouldn't you see a company that fired an employee before a year as a quitter?
Where did I say it's ok for a company to "fire fast"? (unless the person is an absolute fuckup or refuses to shower or creeps on people or ...) Hiring and onboarding take a lot of resources,

If the environment is hateful and you're going home in tears every night and hitting the grolsch a little too often then yeah you gotta do what you gotta do, but that's how things are.

You didn't say anything of the sort; I apologize for sloppy writing. I had in mind the general asymmetric attitude we in society hold about employers and employees, and the lean, move fast mindset that gets a lot of attention here on HN.

We generally look more closely at employees who quit or are let go quickly, but we don't treat the involved companies with the same level of scrutiny.

It's hard to actually do that, because employers don't provide a company resume at the interview that details the list of employees that they've worked with, and the accomplishments related to those employees that show off the company's skill and responsibility. I also don't recall ever seeing a company give references to a prospective employee; at best, a candidate might get some cheer leading from a colleague who's a current employee.

I left my first job before a year at an extremely large software shop. It did not kill my career; just accelerated it.

The most important thing at any job in software is to always feel that you are improving as well as contributing to the organization's goals. The latter is often true, but the former is your part of the bargain. We are fortunate to live in a world where employment is high and you can and will find a job where those two needs are met. Take advantage of that because no matter how "great" of a culture the organization that employs you has, if they don't offer you constant improvement and opportunity, you are at an economic loss that can affect your career much more than it will affect their future.

That's silly. New grads have even less information to pick companies and industries than they do to do the job. It's really common for a new grad to get stuck in a bad job or a bad fit simply because at that age you don't really know what you want.

If you have someone who makes it to 35 and doesn't have a stint more than a couple years, then you have a quitter. But it's really common for new grads today to have 3-4 jobs in their first couple years out of college, then a longer stint of 4-5 years as they find their footing.

When you say you aren't learning, are you referring only to your development as a software engineer, or are you also referring to your skills as an employee?

Learning how to operate in a moderately large company is a skill, and requires you to understand how to assess the value of projects you're working on, how to make them more valuable, and how to find things which would be valuable that you can work on of your own volition.

In general, you'll be asked to demonstrate competence on risk-free projects before you're given the keys to bigger things. Demonstrate excellence on those and then ask for more challenging work.

I'm having same problem with you. And I am going to quit my job in 1 week. I hope next job gives me excitement about developing. It was my 6th month in here.
quit. I've been through 4 jobs within a year in a half and finally found the job that fits and gives me the challenge and freedoms I want. the beauty about today is we have an opportunity to decide where we go because the demand is ridiculously high. You as a developer, should always strive for a challenge, whether that's at the job or at home doing a personal project, but always strive for happiness in what you do.
Be really aware of your attitude. If you are not happy about this and you show it too much, they will not want to work with you as you just became a problem. If you are interviewing, be sure to be positive about this experience no matter what. If you enter a spiral of complain/non satisfaction, you will ruin your chances of getting better tasks or a new job.
Upvoting this. Never ever complain about your current job when interviewing for a new job. Always spin it in a positive way. People in the new job won't care about your old job and complaining during an interview looks like sour grapes.

You need positive reasons for making the move (talk up how much you feel the new job will help you and how you can contribute to the company). In fact, if you make it seem like you don't really want to leave your current role you might even get a higher salary than the one posted (provided you can convince them you are a good fit).

Try not to complain about your previous jobs or schooling either unless it makes a really really good story (and get confirmation on this from independent sources).

Like, I interview a paerson who dropped out of graduate school or left after a master's, I want to hear things like "I decided academia and I weren't good fits for each other" or "the two-body problem" or even "ain't no faculty jobs, yo", and I don't want to hear "my advisor's a jerk", even if your advisor is such a jerko supremo they get blogged about or something.

EDIT: What I'm trying to get across with these posts is "don't give me a reason to say 'no'."

From my experience, if you are considering quitting, you are already planning to do this. If you have the funds to go unemployed for a few months, resign and spend some free time on the things you want to learn.
shoot me an email at aleksey at aleksey dot com with your resume/linkedin profile/whatever - I am hiring for a project where you'll have to handle near real time big (a few TBs/day) data (yes, it's also analytics and not a lot of ML but there are some pretty cool technologies and hard questions to figure out)
Jeff Bezos had some thoughts on this: https://www.youtube.com/watch?v=jwG_qR6XmDQ

Personally, I think you should get out of there before your brain turns to mush and falls out. Other posters are telling you to instead perceive it as a blessing to work on these things that you find mundane and boring, but I strongly disagree. To quote Paul Graham, "If you're worried that your current job is rotting your brain, it probably is."

Don't quit, but start applying/interviewing for a new job. You will need to have a good explanation for why you're looking for a new job so quickly after starting, but that's doable. You're in a pretty strong position if you start interviewing for new jobs before quitting -- at least that makes it clear that you weren't fired, and it'll sound credible when you tell them that you're just not challenged enough by your current job.

Since it's a moderately large company, you should have a good sense for what the cliff is worth.

I would either leave immediately for a company that makes products you want to work on or start my own thing after hitting the cliff.

I made a similar choice recently. My email's in my profile, if you'd like to talk.

I'd argue that working with a team is a more valuable tool than any other particular skill.

You can always code the stuff you want as hobbies - I grow my skills on my own, then look for jobs to help me bring that stuff onto my resume.

Do I really want a new job?

Ask yourself the following questions:

Do I know what is expected of me at work?

Do I have the materials and equipment I need to do my work right?

At work, do I have the opportunity to do what I do best everyday?

In the last seven days, have I received recognition or praise for doing good work?

Does my supervisor or someone at work seem to care about me as a person?

Is there someone at work who encourages my development?

At work, do my opinions seem to count?

Does the mission/purpose of my company make me feel my job is important?

Are my co-workers committed to doing quality work?

Do I have a best friend at work?

In the last six months, has someone at work talked to me about my progress?

This last year, have I had the opportunity at work to learn and grow?

The frustrating thing about learning is you often don't really know what knowledge is useful until years after you acquire it.
Maybe you can convince your manager to tackle this more rationally and let people purposely learn because they do it anyway: They experiment, over-engineer, try the latest hype with their actual moneymaker products, making the work day less dull, upholding self-esteem and preserving skills (market value). It's not professional but people are not robots.
Quitting sounds like it could be the right choice, modulo some real-life constraints. One of which might be, if it's your very first job, not staying for at least 6 - 12 months. There's some value to putting in those dues, you'll learn for sure what you dislike. But after that...

A lot of people are suggesting to stick it out, learn from what's there, make the best of it, etc. But this advice is lazy at best, and maximizes regret at worst. You see, this could be applied to almost any job, even within software engineering. Because this advice implies that anyone can be fulfilled at any job, it implies to favor the default option of sticking where you ended up, which was made at a time where you had less information and experience. Worse, it may imply that somebody else has authority over your opinion or "tastes", if you will - you ought to like this job, so find something you like there! Because otherwise, your unhappiness is your own damn fault (which it really is, but not the way others mean).

No. Here's what you do. Before you discount it and consider quitting, consider the following:

1) What kind of work would you ideally be doing at this organization that would make you want to stay?

2) Speak with your manager or someone relevant, to figure out what conditions need to be met until you can do the work in 1.

3) Is the path to get there too painful? Pain is relative, and the way to find out is to research other jobs you could be starting in the next month. You can do this on weekends, everyday after work, whatever. It's important, so you'll make time.

I'm trying to advocate that there's nothing wrong with having taste and preferring something else, or simply disliking what you have. But instead of going too far in that direction and just up and leaving, be smart about it and do your homework. At least then you can be more confident that you made the right decision (stay/go) rather than following some blanketed advice based on responses to your limited detail post on your situation.

Hope this helps.