Do as I did and fake yourself some references. It might not be ethical but the hiring system is broken and I prefer a warm meal and a roof over my head.
I would say just look for a job as a "programmer" then, but once you're hired, take every opportunity to a) learn and b) show off, skills in the other areas. Nobody really sticks strictly to their job description, do they? Maybe, but my idea is to be always stretching beyond it so they're eventually forced to update it, heh heh. Eventually you're "so good they can't ignore you" like Steve Martin said via Cal Newport.
Edit: And by the way, make it your business during the search and interview process to figure out which jobs explicitly offer that possibility. Because growing into other areas with the management's blessing is obviously better & less stressful than trying to do it on the sly or in your free time.
Good for building up social capital and references, but a losing economic move as organizations have neither obligation nor incentive to pay you for what you're actually doing, just for what they've hired you for.
Speaking strictly from experience. Doing five different people's jobs, for the paycheck of one has gotten me a fair number of friends, and the companies I've worked at tons of value, but the contacts and neuroses I've picked up for doing so are the only countable windfalls.
Economically, I'm not much further ahead at all. The whole "raise by being hired somewhere else" meme seems to be most true representation of achievable wage growth in today's information economy.
Personal time is valuable, and going "above and beyond" will more often result in lost time, no extra pay, and as you say, neuroses.
What a lot of people fail to understand is that established companies have no incentive to recognize people or reward efficiency. Once a company reaches a relatively low profitability threshold, efficiency is put on the backburner because effecting the existing patterns can cause a meltdown or make other employees obsolete. If you do extra work to make things more efficient or "better", that can be perceived as a threat to others in the organization because they'll feel inferior or maybe because what you are opportunity could lead to them being let go down the line.
Sometimes there's a good manager that will recognize and reward talent, but the vast majority of people want to show up to their boring job, push keys or pencils mindlessly, and then go home and watch Netflix at the end of the day. This includes people who are at the top. Trying to go above and beyond to impress people is, to them, a needless distraction and might actually lead to them having to do more work. Just advocating for an underling to get a meager salary increase can be a lot of work.
I've learned to only promise the work that is expected of me(i.e. what I'm getting paid for), and I've been a lot happier ever since. This doesn't mean I don't try to do a "good" job, but doing extra is asking for trouble and is an outdated means of getting promoted.
It's not necessarily about doing extra. It's about doing what you want to do, and in particular doing what you want your next job to be about. And it's not outdated; it still works; see my reply to the grandparent comment.
If it's anecdata we're looking for here, I'm about to be hired "whenever I'm ready" (i.e. whenever I get sick of being on vacation... probably another couple weeks) and get a $20K-$30K raise (still under negotiation), because of skills I accumulated at my last job that had nothing to do with my job description. And the contact I made who pushed for them to hire me (to in fact create a job posting based almost verbatim on my resume, so that they could hire me) is someone whom I went out of my way to help and impress at the last job.
The goal isn't necessarily to get a raise or promotion within the same company. And it doesn't even necessarily require you to work more than 40 hours. The idea is to do the things you want to do, which is for you and makes you "better"; and to prove yourself awesome at learning and doing, which makes you the object of somebody's desire, somewhere. It doesn't matter if they're within the same company (promotion scenario, which you are correct is less likely) or elsewhere.
Demanding that the world adjusts to suit me hasn't worked out as well, so it would be bad faith for me to promulgate that advice.
How much time did it take you to actually learn enough to become competent?
I've looked at the mathematics needed - after that it seems like figuring out the main 'ideas' and then just picking one of a dozen frameworks in which to become very familiar.
But unless I want to 'fake it until I make it', seems like it would take a good year or two, possibly with two semesters of grad school for both math and the machine learning, to really learn it as it wasn't something I learned at all undergrad or previous jobs.
Apply for a different job, growth marketing for example. They need a coder with an analytical mindset who wants to learn growth marketing, more than they need someone who has run ad campaigns before.
Or work in a smaller company where each person can take on a broader role.
At least with programming you can work on side projects that touch all of these other positions responsibilities. Your Github can become your proof of work, not a lot of fields have that beyond whatever a reference says.
Or so it seems.
People don't take me seriously at entry level positions of:
- Consultant
- UX Designer
- Data Scientist
- Marketing (analytics)
I wish people would at least interview me on it. They'd be surprised what I know and am able to do.
One person made it obviously clear that I should become an entrepreneur, but I really can't justify taking the risk.