
Too much to learn. Overwhelmed, incompetent, and behind - throwawaystress
I&#x27;m looking for advice, commiseration, and perspective, if you have it.<p>I&#x27;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&#x27;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.<p>I&#x27;m feeling overwhelmed by the sheer number of technologies out there that I &quot;should&quot; 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&#x27;m done, it&#x27;ll be outdated by the new stuff. It&#x27;s exhausting, and I don&#x27;t know if I have the drive (or mental health) to commit to a career where I could be replaced when I&#x27;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.<p>When I was 21 I felt confident in my abilities; 10 years later, I don&#x27;t at all. I feel like an idiot for how short a distance I&#x27;ve gone in my career. At this point in my career, I&#x27;ve never made over $75k and I&#x27;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&#x27;re all in &quot;senior this&quot; and &quot;senior that&quot; roles, getting very highly paid, and I&#x27;m nowhere.<p>I&#x27;m not sure where to go from here. 30s are old in tech, and I don&#x27;t think I can catch up.
======
mindcrime
_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.

~~~
throwawaystress
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.

~~~
mindcrime
_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.

------
lipeltgm
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.

~~~
throwawaystress
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.

~~~
mindcrime
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.

------
41ice
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.

------
gshdg
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.)

~~~
throwawaystress
This is good advice. Thank you!

------
he11ow
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.

------
jackkinsella
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.

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

------
CyberFonic
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.

~~~
throwawaystress
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).

~~~
gshdg
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.

~~~
throwawaystress
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.

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

