I really want to be a generalist, across software/web and data science. Someone told me this is impossible. I'm discouraged

So, background: I have a Ph.D. in a field which offered me some methodological training in data analysis, including a bit of R, and have programmed my whole life, but the degree is not one of the five or six ones that many jobs often list as essential (mathematics, computer science, etc.). I’m pivoted away from acaemia and toward the software industry. Initially I thought I was going to pay for a boot camp, but so many negative stories drove me to take the self-taught route, and the only way to motivate myself is to work on projects that I’m interested in and I think have potential. As a researcher, I’m interested in finding answers in data, and I’ve been advised that the Ph.D. is probably less dead weight (and student loans) in data science than it is in web/software development.

I’ve been pursuing multiple tracks, learning JavaScript, Python, and rebuilding my R skills; I’m still on the edge of learning JavaScript frameworks, because the projects I’m currently most interested in building as part of my portfolio are data-oriented (although I have concepts for websites and even apps that relate to accessing that data in itself). I absolutely believe I can be a competent application/web developer once I learn some frameworks, but I don’t have a lot of “killer app ideas” other than games (and I have been told that the games industry is not really one someone wants to get into unless it’s kind of what they need to do, due to working conditions, and having been a college professor, I know how much it sucks to have a “highly desirable dream job” that was supercompetitive and then wasn’t that great when you got it).

Anyway I asked a question on Quora and a senior developer posted almost in a rage at my “lack of focus,” at the idea that I would pursue both data science and general software development at the same time before I “had been in the industry 10 years” (in ten years I’ll be 42 going on 43 and I don’t even want to contemplate that). I just want to learn coding and become employable in a way that gives me a portfolio that actually interests me, and I can clearly see in my own mind how I can link the data side of things with web apps, maybe even some offline/Electron/etc. apps. I really don’t want to have to take a bet “am I more employable as a data scientist or as a software developer down the line” and I don’t want to pigeonhole myself, but I do really, really want to become employable.

So, was that person correct? Do I have to choose one or the other? He claimed until I “fully master” a coding language I won’t even be employable anywhere; I don’t know what he means by “master” but it sounds like he doesn’t even think I should enter the job market for years until I’m some sort of ninja at Python/JavaScript/whatever. That… pretty much makes me feel hopeless. I work a forty hour self-imposed week (tracked on WakaTime) to keep myself accountable, and I’m doing everything that seems reasonable to make a change in my life.

1 Like

First of all, from what and how you write, you’re already employable as junior developer. Companies don’t always look for “THE senior dev who already knows it all”. If they look for a junior developer, skills aren’t as important as the willingness and capability to learn. Given that you obviously score high in both - I can’t think of any reason why you shouldn’t find a job in the field you’re interested in.

2 Likes

So first I’d recommend to not take any single piece of advice as the 100% right answer. (including this one haha) Always get second opinions from multiple sources and take them all into account. This doesn’t mean dismiss responses if you don’t like what you hear, but do consider all of them and make your own decision.

For example if someone is replying to you “in a rage” that person probably isn’t the best resource, and what they same might have some weird self motivation behind it that doesn’t make it the best advice. The Quora answer honestly sounds like the usual “preachy preachy, I’m a senior engineer listen to me because I have all the answers” sorta person. If someone is “rank dropping” how much “experience” they have, then they might be insecure in their answer and are replying more to fulfill their own sense of “superiority” rather than just trying to give you the best possible advice they can. (this is one reason why I take a lot of answers on Quora with a grain of salt)

So onto what I think you should do in your spot.


I do somewhat agree with the idea that being a “generalist” will hurt you with your current educational background. What I mean by this is if your applying for an entry level web development job, your previous education in data analysis doesn’t really help you since it isn’t very relevant if your just building simple web apps. It will help you stand out, but it might not be seen as very useful for the job at hand.
As you pointed out, such experience gives you more leverage when it comes to data science related jobs. Especially if you already have experience as a researcher. Making a data-science focused job seem more plausible with your current background. So your welcome to continue to focus on getting a “generic dev job”, but a data science focused job will be easier to get with your current education level. If anything data science jobs usually require a college degree vastly more than generic web-dev jobs, this should make applying much easier since there is less competition, and having a PhD will give you some extra weight to at least get looked at.

Another thing to consider is whatever your PhD is in might give you a ton of leverage if you look for the right job related to development and your formal training. Essentially your coming “out of the box” with a high level of formal education in a specific domain. If you can find a software job that connects that domain of knowledge with your development background, you’d basically be gold. That’s one of the biggest advantages of getting into tech, every industry has tech.

Finally, I suggest you look at the job market now rather that continue learning different things and continuing to generalize. Its fine to generalize to get an idea of whats out there, but it sounds like you already more or less know the field of potential options. If say there are few data science jobs, then it will be tougher to go that route and you can focus your time and effort accordingly. The same is true if there are few web-dev jobs.

Start with the “goal” of getting the job you want from what is available and focus on what makes the most sense for you. Unfortunately there isn’t a right answer for “what I should do” because the “right” answer depends on your situation and goals.

Hopefully this helps!

Good luck, Keep building, keep learning! :+1:

4 Likes

Hey, yeah, that’s pretty much my thinking. Frankly I don’t intend to go forward “as a generalist” - once my portfolio is worth putting out there, I’m planning to have two separate resume/CVs, one for each of the kind of job (and possibly other more specialized ones as well).

I just don’t want to feel trapped in one thing because of my academic career (which I now regret, my two closest friends from adolescence are now a highly successful systems programmer and a highly successful game programmer, and neither completed a post-BA degree, while I’m self-employed in a COVID hive).

The fellow who made the post on Quora got in touch and said there was a misunderstanding and graciously gave some advice which I think is prudent (and largely lines up with my existing plan), which is to focus on app/web development involving the visualization and processing of data.

Thanks for the reply :slight_smile:

1 Like

What’s wrong with “lack of focus”? Why does one need to have an unwavering vision of their their whole life in their front view at all times? It’s not like you’re squatting in an abandoned building because you couldn’t focus on paying rent, you’re simply in the “undecided” column on some of the more vague aspirational things of life. Maybe it’s even aspiration itself that you’re not sure of.

You have skills to make it already, despite not being a specialist, so you have the luxury of learning your own way and at your own pace. Optimize for fun.

4 Likes

I mean, I have the ambition, but it’s about getting a job in an industry that discriminates less against people like me than most, doing something I enjoy, and most of all being able to afford to move out of the Midwest. But to learn specialized skills I need projects that interest me.

1 Like

I sympathize … there’s dozens of things on my plate that I would like to learn, but finding an interesting project to use them in still eludes me most of the time. Starting from scratch is especially intimidating.

Maybe start by thinking of any sites, apps or games you’ve looked at and thought “If I wrote this, I’d do it X or Y way and do it better”.

1 Like

I think the best thing you can do is reach out to people and have conversations with them. Even the quora question lead to some actionable advice. If you’re on LinkedIn, search for people who are already doing something akin to what you think you’d like to do. They don’t have to be Level 1. If they’re Level 2 or 3 connections, just draw attention to your mutual connections and interests. Then ask them if they have 10 minutes for a quick conversation about their work. Ask them about the pros and cons of their work and consider if it would work for you or not. Basically, I’m recommending an informational interview.

Like others have said, take what you read on the internet with a grain of salt. They have their own motivations. The best way to know if something is right for you is to talk to real people about their real lives, and take what they have to say seriously. When I was thinking about becoming an English teachers, I tended to be overly optimistic about my capacity to manage the negatives and to derive enough rewards from the positives. I was wrong. I should have listened to the people who told me the time off wouldn’t make up for the hours and lack of respect.

But enough about me. Try to find people doing what you want to do. If they exist, reach out to them. Interview them. Oh, I nearly forgot - one unexpected benefit of this process, is that if you do it right, you jump to the head of the line of warm candidates when a position does come up. Hope this is helpful. Good luck.

1 Like

Hi, you make me think more to an artist than to a programmer.
Or to an artistic painter who goes wall painting to pay rent.
So that once they are in a customer’s house, they can propose some artistic work.

Research is the most valuable attitude ever, but customers also give new challenges.
This can inspire us new techniques and new perspectives.

You didn’t mention Creative coding (eg p5js), you don’t like that stuff?
There is people working with Music, Data visualization…

Wait – Generalists are supposed to be great at Data Visualization
You may work in BI ?
You could be a good Freelance.

Anyway, rather than targeting “the best job”, what is your favourite meal?

I honestly don’t know what you mean with the artist thing, I’m sorry. If someone told me “hey I want you to develop a solution for x problem” and it didn’t interest me in itself, I’d absolutely do it. If someone gave me an app to develop, I’d develop it. What doesn’t work for my learning style is rigid tutorials where you know you’re going to be making an app (or data report or whatever) that tons of other people have done. I select my learning projects based on the tech stack I think I need to know (which is what I was asking about on Quora), but I want them to be interesting. If there was a certification that counted for something behind doing tutorials, I’d do them, same if I got paid. I was willing to deal with it if boot camps actually delivered what they promised but I was repeatedly assured they didn’t.

Let me put it like this: I’ve never failed at a job because I refused to follow directions or wouldn’t work on the project I was supposed to, in any context. I was also an excellent student and I worked in academia giving assignments TO people for seven years. I’m not saying that to brag, but to note that I’m not some flighty person who just wants a job for doing whatever.

I want to build a meaningful portfolio, or a useful one (and the things that interest me are what I know enough about to make useful) . I also don’t want to limit myself in terms of jobs, like I accidentally did with academia when I chose a field where the tenure track positions are mostly in remote Midwestern towns (I lucked out for the time I was faculty by getting to South New Jersey, and I wasn’t fond of that to be honest).

I want to become proficient at enough things that I can get a job in a metro area, preferably in one of the (not to get political, but I’m LGBT and this matters) “blue” Western states. So I’m working my ass off with that goal in mind. If people tell me I have to pick data or development, and it’s a clear consensus, I’ll do that; but I’d much rather blend the two by building data driven software.

1 Like

Sorry, just a follow-up: if you think I’m being wishy washy, consider if I “followed my dreams” in software I’d be learning game coding. But I know from reading about that that it’s reportedly often terrible to marginalized people, more so than other parts of the industry, and also (like academia, another dream I chased and regret chasing) considered “desirable” so jobs are hard to get. So that stays a dream.

I wish I’d never followed my dreams, and that at 18 I’d gone to a cheap tech school, then finished at a decent four year in CS, then gotten a boring job at a decent software company. What matters to me is being able to live in a place that isn’t where I’ve had to live my whole life (geographically and culturally), and doing something I enjoy (again, if you give me a coding task and it either will help someone else, me, or I’m getting paid, I’ll enjoy solving whatever issues come up.)

The issue here is about learning path. It’s not about what I want to do. If I get a job making apps that link to fitness trackers (random example of something not an interest of mine) or calculating data about bank transactions, I will be thrilled as long as it gets me to a big city. But while I’m self-directed I don’t want to self direct toward make work projects.

(One of my favorite scenes is from The Matrix when Agent Smith is describing Neo’s meant-to-be-depressing life - “you are a program writer for a respectable software company. You do your bills, you pay your taxes, you help your landlady carry out her garbage.” That’s what I want from my life, Neo was absurd to run off with a bunch of cyber-rebels :stuck_out_tongue:

But now I’m basically a NEET because I chased my academia dream and it wasn’t for me, so I want into software development, which isn’t a dream so much as a plan. I could list my dreams; the reason I didn’t do CS in college is that it was a hobby I liked but I didn’t LOVE it. But the reality of the stuff I loved wore off. I just want a middle class job with skills I can apply, and I don’t care if I sell my soul to get there.)

My advice for “being a generalist” and still getting a job early in your dev career is go for it, but aim for smaller companies.

My first job out of college was at a 30-person biotech startup. In my small engineering team I had a boss and one coworker, and our day to day varied a lot. So I became a generalist early in my career. One month I was working on getting a physical stepper motor to work programmatically in C and the next I was building some automated UI tests with python.

If you really want a job that will let you (well… require you to) explore many topics - aim for a smaller company. The pay will probably be less, you’ll have less coaching, less direction, way more ambiguity, but - you will learn to adapt and overcome a wide variety of challenges.

It doesn’t have to be 30 people small, but aim for a Series A, B, or early C tech company. At those stages everyone is effectively a generalist. More experienced developers will likely also have specializations they’ve brought in from other organizations, but the majority of challenges will be new.

For comparison, when I left to join a super-company, I learned a ton about how to work in a team, how to build quality software, and how to think through things like “How will this code break when 10x more people are using it a 1.5 years from now?”

I’ll also add some thoughts on the reality of being a generalist and pay: If you stay a generalist for your entire career - you are more easily replaceable than your peers. 3-5 years into your career you do want to start getting good enough at something that your peers/manager think “Before we discuss XYZ anymore let’s pull Bob into this conversation, he always has a useful opinion”.

Here’s the super important part that newer developers miss: 95% of the time XYZ is not a technology. It is not “javascript” or “python” or “react” or “[insert trendy tool here]”. XYZ usually has to do with knowledge of how an overall system works. More realistic is this: “Let’s bring Alice into the conversation, she has a lot of experience with reservation systems.” Or recommender systems, search systems. More specific, as you spend years at a company, you’ll become the most knowledgeable about a certain aspect of that company’s technical architecture.

Manager: How does the customer’s click ultimately get to the recommender engine?
Bob: Uhh… let’s check with Alice, she’s worked on that stuff for the last 2 years.

I’ll summarize a bit because I’m long winded lol:

  • If you’re excited about a generalist type job, start with smaller company. Aim for a company with an engineering organization of less than 100 people. 30 or less would be great, but don’t narrow your search too early :slight_smile:
  • Generalists are - almost by definition - more easily replaceable than non-generalists. To protect/further your career you want to put yourself in a position where you have solid knowledge of something that the team works on. Remember, it doesn’t have to be a technology, but it has to be of value to your manager/team/company.

P.S. I did big data stuff (recommender systems) at amazon and learned a lot about them, but I had way more fun as a generalist :wink:

One other thought: I’m a manager now. Not specializing in any sub-field has allowed me to manage a variety of teams successfully. So if you’re even remotely considering leadership/management down the line, consider that. In my (highly biased) opinion a generalist will have an easier time relating to more of the people that report up to them.

4 Likes

I think what I may be being unclear about is I’m not sure I want to stay a generalist. I just know jobs in California, Washington, Oregon, and Colorado are competitive and entry level is hard, so I want to maximize the jobs I can reasonably be competent and apply for, and show employers I can learn. If they end up telling me “now specialize in FORTRAN,” I’ll do it.

Again, “program writer for a respectable software company” is my career goal.

Hi. If you think you already have the know-how, you’d better do some Networking now.
You have to show your skills and meet people who need you.

This channel had a workshop: “How to become a Developer”
Among the suggestions, I remember:
- Create Apps. Whatever. Show your talent and passion.
- Attend Events like a fiend

You know, those tech fairs where people go to know each other
You may find people to ship a project together.
Team working fits everyone.

PS – Hybridizations are always a good thing.
Your experiment may not work, but you made it a real thing to start from.
And this is everyone’s duty.

Trust me, I’d be attending events like a fiend if I could physically go to them, but pre-pandemic, this wasn’t possible, and right now, does anyone really notice or remember you if you’re on a Zoom call with 300 people?

Edit: also, I want to make clear I didn’t say I had the know-how to get a job. I think I have the know how to do an entry level position but given how competitive they are, I know I need to bolster my resume (I have applied, no interviews, did make it to the final stage of a mentorship program interview, which stung to fail at the last step, but thick skin and all.)

As a Knowledge & Creativity addict suffering visions on space exploration, I can only sympathize with you about being Generalists.

It’s not a crime, but the “Everythinking” requires much more time to gain Abstraction as an attitude, and refining your tools: You may end up selecting a favourite ones, simple and customizable.

However it also looks you could head to study Abstraction itself, Maths, Computational Logic and General LinguisticsTheory of Systems finally. I love Military Logistics, don’t you?

If you feel Research is your very aim, Teaching is not a bad target at all. In any case, imagine you might be asked to show children “How to Learn”, what system would you illustrate? No way out, Focusing is the only one that works. Do you know Elon Musk (is said to) cares 5 minutes for each activity? Creative study is also a nice field; but if you can only disperse yourself you’d end up in pessimism & depression.

After all, if you love culture as per se, you technically don’t mind at what you doing, but that you are working out something. Playfulness is the only skill we should keep up all life long – it’s the first we drop on the way ahaha

1 Like

Hey there,

so any ideas for your next steps?

May I suggest a course like “Mindshift: Break Through Obstacles to Learning and Discover Your Hidden Potential” (Coursera)
That may give some hints on the run, and for the run.
Can see a preview by going on the first item of week 1.