>>7I've always liked programming. I know some of the stuff that bothers me (paperwork, idiot superiors that change requirements arbitrarily, etc.) will still exist, but programming seems to be more satisfying when you come up with a solution. When I come up with a mechanical design that works, I feel nothing.
here's a problem: most programming jobs are not about solving interesting problems. almost no entry-level programming jobs are about that. the most common jobs you'll find will be about maintenance (fixing bugs in old and usually shitty software, usually written by idiots), enterprise development (mind-numbingly boring, labyrinthine software, usually integrated with a database and never released to the general public), web development (which has two distinct types: backend which is like smaller-scale enterprise and frotnend which is all about making things look good with bloated javashit while acting like an obnoxious 'rockstar programmer') and mobile apps (which is either enterprise for mobile or copying what's popular on itunes/play store and hoping someone buys it for a dollar). with your background, you might land a job in something industrial or microcontroller-related but chances are you'll work on same meaningless trinkets you're working on now, just with code instead of CAD.
basically, chances are that if you dislike what you're doing with mechanical engineering, you'll also hate the things you'll be doing as a programmer. most of the work in this field is also boring and unglamourous. most of the work in any field is like that.
my advice: for now, try finding more interesting jobs as a mech-eng. you have 5 years of experience and experience means opportunities so maybe you'll be able to design awesome, big and complex stuff instead of bullshit. look for programming jobs too but only go for them if they're interesting, but most of them aren't. do programming as a hobby and make your programs open source, preferably putting them on shithub or a similar site. do it even if they're trivial and uninteresting. for many employers (especially tech startups but also bigger tech corporations if your future direct supervisor is a technical one; consulting firms and non-tech corporations with IT positions will not give a shit about your FOSS but you don't want to work for them anyway as this will mean eneterprise development), this will count as experience. and experience once again opens up some more interesting jobs.