Hacker News new | past | comments | ask | show | jobs | submit login
Too much to learn. Overwhelmed, incompetent, and behind
17 points by throwawaystress 11 months ago | hide | past | favorite | 19 comments
I'm looking for advice, commiseration, and perspective, if you have it.

I'm in my early 30s and an aspiring data scientist. I minored in CS in college, and was able to pick up a lot at jobs in my early 20s, including Python, R, and Oracle. I'm back in grad school now for a masters in statistics, and am hoping to transition away from Oracle programming (my last job) to data science.

I'm feeling overwhelmed by the sheer number of technologies out there that I "should" learn: Python and R (and their libraries), Spark, Hadoop, TensorFlow, and pytorch. You also need to know how to productionalize things: Docker, AWS, distributed databases, the latest web stuff (sockets?), etc. I could spend all the time in the world learning the new tech, and by the time I'm done, it'll be outdated by the new stuff. It's exhausting, and I don't know if I have the drive (or mental health) to commit to a career where I could be replaced when I'm 50 by a young lion fresh out of college who knows the latest stuff and is willing to work for pennies on the dollar.

When I was 21 I felt confident in my abilities; 10 years later, I don't at all. I feel like an idiot for how short a distance I've gone in my career. At this point in my career, I've never made over $75k and I'm jealous of my peers who are making close to $200k, and of kids out of college making over $100k. I think I know less than the undergrads at my university, and I think I give up on things more quickly now than I used to. At my first job, when my peers started to move on to grad school or higher roles other companies, I admired what they were doing, but I was afraid of the unknown at the time, in a toxic relationship, and had some decision paralysis about whether this was the right career fro me. Now I feel light years behind them. They're all in "senior this" and "senior that" roles, getting very highly paid, and I'm nowhere.

I'm not sure where to go from here. 30s are old in tech, and I don't think I can catch up.




30s are old in tech,

Bullshit... quit buying into that crappy old meme. At best, that might be sorta true IN Silicon Valley Proper, for a subset of companies. In the rest of the Real World, there's nothing particularly special about being 30 in tech.

If you're in SV and you buy that, then my advice would be move somewhere else. If you're not in SV, then quit worrying about being 30.

I'm feeling overwhelmed by the sheer number of technologies out there that I "should" learn: Python and R (and their libraries), Spark, Hadoop, TensorFlow, and pytorch. You also need to know how to productionalize things: Docker, AWS, distributed databases, the latest web stuff (sockets?), etc.

You don't have to know all of that stuff. A given firm, for example, probably uses Python OR R, but probably not both. Learn one or the other, you'll be fine. And not all roles require you to do everything from writing Dockerfiles to writing Map/Reduce code in Hadoop, to working with Tensorflow or PyTorch. Which bits of the stack you need really depend on the specifics of the job you wind up going for. But don't put that much of a burden on yourself to think that if you don't know every single thing on some "list" that you aren't employable.


Thanks, this is helpful, especially about the list part. Is the ageism stuff really not true? Even if you want to work for Microsoft or Google, albeit not in Silicon Valley? I get the sense people won't take me seriously if I'm starting in a junior role at 30+ years old. I'm sure there's a lot of my own self-esteem and projection going on in there, but I definitely feel incompetent.


Is the ageism stuff really not true? Even if you want to work for Microsoft or Google, albeit not in Silicon Valley?

I mean, you can never be sure, but I can just say that, being well into my 40's myself, and working on the East Coast (RTP, NC area), and having worked for everything from tiny startups to giant multi-nationals (in tech and out of tech), I haven't seen the kind of rampant ageism you hear described on here. And I have friends who work at Microsoft, Google, etc., and I haven't heard anything from them to suggest that it's rampant either.

I get the sense people won't take me seriously if I'm starting in a junior role at 30+ years old

People change careers all the time, for various reasons. And yeah, maybe some people will look askance at you for it, but not all will. Now, if you're betting the farm on working for ONE specific company (let's say Google) than the reality is it might not happen. But it might not happen for lots of reasons. But if you take a broader view of things and don't hang your self-worth up on working for a "FAANG", you should be fine. Work for an insurance company, or an auto parts retailer, whatever. The world is a lot bigger than Apple, Google, and Facebook.


Age discrimination in tech is not bullshit. You cannot wish it away by not believing in it. I think we need to collectively find a solution.


Age discrimination in tech is not bullshit.

Nobody is saying that "age discrimination in tech is bullshit." What is being said, and what I believe is supported by the weight of the evidence, is that in most of industry (eg, outside of Silicon Valley), it is not the case that "30 is old in tech."

The "tech scene" is a lot more than just SV, and the kinds of things you hear about as common-place in SV just don't seem to be so common elsewhere.


In a matter of weeks I'll be 50 and have spent the past decades growing as a software engineer. My advice; 1st, take a deep breath and calm down, 2nd, ask yourself what you love about this career and focus on that. I've been doing this for going on 30 years and have been an ambitious, eager to learn and driven person my entire life AND will never, ever know everything I want to know or everything this industry has to offer. But, kiddo, that's absolutely ok. Ask yourself what kind of engineer you want to be; an '-' engineer who has an incredibly broad spectrum of knowledge, a 'I' engineer who knows one thing really really deeply, or more of a 'T' engineer that has a pretty broad spectrum of knowledge and an deep understanding of one technology. Then, plan your course. Take a page out of agile development to maintain your personal sanity; define a 1-month goal, then define a series of 1-day tasks that'll get you there. Be reasonable with your expectations and work through your task list. You'll begin feeling accomplishment as you chip away from the tasks and you'll see progress. That, in itself, will reduce your stress (I believe). As I'm closing in on 50, and my own learning speed slows, it's counterbalanced with the ability of applying new technologies and knowledge with existing knowledge and fundamentals. Consider this; an experienced pilot is likely quicker to learn a new aircraft than an inexperienced younger pilot. I believe knowledge workers have the same advantage. Keep you chin up, plot a course, execute your plan and keep your eye on the ball.


Thanks so much for the perspective. I really appreciate it.

What's your perspective on this: it seems like the field has exploded in the past 10 years. As I've been programming for a long time, and following tech blogs/etc, it seems like 20 years ago, you could do well learning Java and maybe one or two other things and you'd be set. Nowadays, it seems that's not enough.


20 years ago you "needed" Java, C++, CORBA, COM, DCOM, OLE, ActiveX, ATL, MFC, Win32, DCE, etc. etc., yadda, yadda. The names have changed, but I don't feel like the concept has changed much, as far as employers wanting people with a laundry list of skills. But you never really need all of them, or at least you don't need to be an expert on them all... you can learn what you need as you go. At least, that's worked for me for the past 25+ years.


30s is not old, if anything 30s is a perfect time to be in software development because you've gained some experience in the industry by now and yet you are not too old to adapt and learn new stuff. On learning new stuff, I would just propose keeping an open mind and keeping your learning muscle strong. Today you have all these exciting techs, tomorrow it is going to be an entirely different set of tech you'll have to learn. Sure there is a lot out there, but here is the important bit - Know your tools. When there is a new tech, may be read a little about it, what are its advantages and disadvantage. What class of problems can you apply this technology to? Make some notes and keep them handy. Next time when you are faced with a problem you have no idea how to solve, go back to your notes and skim through. If you find something that sounds potentially applicable to the problem at hand, go read more, deeper. Watch youtube tutorials and freecodecamp etc.

Knowing inside out about all the tools is useless if you can't figure out how to apply them to the problem at hand. So I would suggest rather than running behind technologies, seek interesting problems to solve or interesting/better ways to solve already solved problems. Once you have catalog on what tech applies to which problems, you'll be much more valuable resource to a company and to yourself.

You can't fix a clogged drain using a hammer or that really fancy drill machine with twin battery pack. You can only solve it using a Plunger. If you know that, you can then go figure how to use one and after add it your resume not just saying 'you know how to use a Plunger' rather 'you solved a clogged drain using a Plunger', sounds better to potential recruiters.


Learn one thing at a time.

If you can do meaningful data science in one language, and nothing else, you’re ahead of a whole bunch of curves. Get solidly good at one thing.

You’ll pick up a bit here and there about other techs in the course of the job. That will a) help you pick the highest leverage next thing to learn, and b) anchor you when you start learning them.

Stick to a theme. You don’t need to know web sockets to do data science.

For followup learning, pick complementary technologies (instead of Python and R, which compete; or R and and Docker, which are virtually unrelated; try either Python plus tensorflow or R plus tensorflow — because either of those pairings can be used together to increase your capabilities.)


This is good advice. Thank you!


It strikes me that the real issue here is one of narrative. What you're struggling with is not the tech, but telling (first yourself, then others) what you're about. It makes you want to cover all bases, while discounting the knowledge that you have gathered.

I don't have many answers for you on tech. But I can tell you that anywhere outside of tech companies, coding is a superpower. From this perspective, it helps to move away from thinking about tools, to thinking about what you want to achieve with them. Forget about others and their paychecks? What gives you a kick? Start noticing which types of problems you enjoy solving, a narrative will grow out of that.

(As someone who's been coding in python for years and still is nowhere near as good as a proper good pythoner, I see no point of investing any time in R. It's one or the other. Same for Tensorflow and PyTorch. I try and work with PyTorch because smarter people than me have chosen to, and you just have to pick a road to start walking. But I don't see myself as any form of authority on tech issues, so...)

When you'll be 40, you'll think 40 is old and 30 was young. At 50, you'll think 40 was young and 30 was practically a baby. Why wait till then? Might as well start thinking it this way now - you are young.

And lastly, keep reminding yourself: Comparison is the thief of joy. People earning twice as much as you are not happier, not at these pay scales.

I'm not based in the US and salaries here, even for experienced developers, are nowhere near the numbers you see thrown around.


You'll never learn it all—none of us do. But there are employers out there who are willing to give you a chance to learn on the job, so long as you've nailed the core ideas. I consult in web development, mainly using Ruby and JS, but some clients are happy to hire me in PHP despite my having no experience here. Their assumption—and I think it's a reasonable one—is that my 10yr's experience with web patterns will largely carry over.


Thanks for that reminder. I really value employers who are willing to give you a chance.


It is dangerous trying to be an expert at everything. Even super-heroes need to team up to defeat the worst adversaries. So pick one skill to learn at a time and get really good at it.

As for the salary comparisons. Look at people at your location and with comparable skills for your reference. Large discrepancies are likely to be due to location and employer factors rather a reflection upon your true value.


Thank you. The superheroes line is brilliant, I'll keep that one in mind.

Regarding salary, I think I didn't choose my employers well. I live in a large northeastern metropolitan area, and people with my comparable skills make upwards of $100k (in fact, someone who was interviewing to be my replacement when I left my old job wanted twice what I was making).


Push for a higher salary. Negotiate based on market rates, not your own salary history.

A developer with 10 years of experience should be able to command upwards of 150k/yr in NYC even at a small startup; somewhat less in a smaller city in the northeast; somewhat more at a larger company.

Also note that salaries listed on Glassdoor and such tend to be below market for current hires because salaries have been inflating so quickly that someone hired 3 years ago is making way less than someone hired for the same role today.


What if I don't feel like I really have 10 years experience, but rather, 5 times 2 years' experience? It might be my self-confidence, but when I hear someone has 10 years' experience, I think of someone much more competent and experienced than me.


Not sure what I can do for your confidence. But negotiate as if you believe you’re worth the full amount.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: