HACKER Q&A
📣 polishdude20

No formal software education – is there hope for me?


In 2015 at the age of 21 I got a Mechanical Engineering bachelor's degree. Afterwards I worked for two years at a place I didn't like very much and I learned some Python. Then, there was an opening at the school I graduated from for an assistant instructor and I took it. I then went on to teach in courses such as 3d modelling, FEA and transducers and electrical prototyping. I have great fun with it and learn a tonne as well as I get to interact with lots of smart and ambitious students.

So why leave a job like that?

It's mainly the pay but I also sort of fell in love with software this year. I started learning JavaScript last year, learned about databases, servers, React and Linux stuff. Loads of really exciting fun stuff!

So now I don't know how to transition to a software role. Many places I apply to want people who have experience in software development or they want to hire a junior for some super low pay. I can't put the words "software developer" on my resume but I have written a lot of programs for my classes and in hobby projects.

It feels like nobody looks at your GitHub profile though. I've got lots of projects I've done in the last year. But maybe that's just the grind? Just need to apply to enough places?


  👤 hoorayimhelping Accepted Answer ✓
>Many places I apply to want people who have experience in software development or they want to hire a junior for some super low pay.

That's because you are a junior developer and you're only worth a junior engineer's pay. Sorry if that's harsh, I'm a bit blunt; but it's not a value judgement or a criticism, it's a statement of fact. Go work at a place that pays you a junior engineer's salary and learn the industry skills you need to earn a better salary.

>I've got lots of projects I've done in the last year.

That's really great, and it'll give you a leg up on the other junior programmers who are applying at places. But projects don't confer industry experience with a team, which is what places are looking for. It's a world of difference between "I've done projects on my own and I can complete them," and "I've worked with engineers, product managers, managers, designers, non technical people and together we have shipped software." All of the stuff you're doing is setting you apart from your competition, but realize your competition is for junior roles.

To answer the question:

>Is there hope for me?

Absolutely. You seem smart and driven and capable of communicating. In my 14 years of coding professionally, I've worked with people who studied communication, linguistics, a foreign language, creative writing, IT, electrical engineering, mechanical engineering, electrical engineering, music composition, etc. Some of the best engineers I've worked with had no formal training. It's totally doable. Being able to teach is a really good indicator of at understanding complex issues and being able to communicate them, all valuable skills for a software engineer.

Also, don't get discouraged during the pandemic. A lot of places are buckling down and if they do hire, it'll be an experienced person who normally wouldn't be on the market but is because of the virus. It's gonna be tough for junior engineers for a while until the economy spins back up.


👤 nicoburns
> Many places I apply to want people who have experience in software development or they want to hire a junior for some super low pay. I can't put the words "software developer" on my resume but I have written a lot of programs for my classes and in hobby projects.

Truth of the matter is that you're going to have to do the junior role for a year or two. However much you think you've learnt, you're going to have holes in your knowledge if you've not done it professionally. For example around reliability and handling edge cases, making things work when the underlying platform is buggy, etc. Good news is, if you're good at it you'll progress up the ladder quickly.

I'm self-taught, and I'm pretty good at what I do: at my first job I was already teaching my boss things he didn't know (I'd been programming for about 5 years as a hobby at that point). BUT I also made a ton of stupid mistakes. 3 years of professional experience on (broken up over a few different jobs, with breaks and Maths & Philosophy degree in between), and I'm leading a small team. But I definitely needed particularly the first year to fill in the gaps in my knowledge before I was ready for a senior role.


👤 kube-system
> Many places I apply to want people who have experience in software development

> I can't put the words "software developer" on my resume

> I have written a lot of programs for my classes and in hobby projects.

It sounds like you might be selling yourself short. You might not have experience as a professional software developer, but you have experience developing software nonetheless.

Don't forget that your resume is an advertisement. You should absolutely highlight the experience and knowledge that is relevant to the position you want. People spend very little time looking at resumes, if your knowledge of databases/servers/react/linux/python isn't immediately clear in the first 6 seconds of reading, your resume will likely be discarded.


👤 syntaxing
MechE here as well (B.S and M.Sc). I don't think it's as bleak as you think it is. I would argue a MechE degree is one of the most versatile engineering degree out there. I have plenty of friends who ended up not even touching anything MechE related out of college. As for me, I'm a couple years older than you. I did apply to a couple positions at FAANGs with the hope to transition my career (I've been in hardware design for most of my career). I ended up getting a couple interviews for a SWE/ML researcher. But funnily enough I ended up taking another hardware role before my interview rounds ended because I learned I wanted to do a hardware+software role (60/40 maybe?). End of the day is to work on projects and upload them to some sort of a git repo (GitHub or gitlab). Also prepare to leetcode/CCTI like it's your job. I had to for about three months before I felt like I was ready for interviews.

👤 jedberg
I'll start by saying that I've worked with many self taught programmers and they were all excellent (perhaps there was a selection bias?). They also always had humorous holes in their knowledge (which they were always quick to rectify).

So it's totally doable.

> Many places I apply to want people who have experience in software development or they want to hire a junior for some super low pay

The truth of it is that you'll probably have to take a junior job first. Even with a great GitHub profile, there is no easy way to know if you can actually do it, since there is no way to really know how much of your Github profile you actually created.

The good news is that if you really are good, you'll get promoted quickly (or be able to quickly move to a more senior role elsewhere). But sadly, you'll probably have to suffer at least a year in a junior role to "prove yourself".


👤 gumby
Another poster said “well you are a junior developer” and while that’s true there’s a major “but...” in your favor.

It’s true you are junior in programming skills as you acknowledge. But you also talk about other experience: mech e, modeling, electronics, and teaching.

You may enjoy a job that values those other skills in addition to programming. E.g. a robotics company; car startup; a company like Coursera or Udemy or Kahn academy which are educationally oriented (the three have very different models) — even LinkedIn’s Linda division.

In these places you can probably add value beyond what a mere junior developer could, and after being at a place like that for a while you could go anywhere.

Good luck.


👤 hamandcheese
For an industry where talent is supposedly in such high demand, it seems surprisingly hard for newcomers to break in that don't follow the traditional college->internship->junior hire path.

I think there are a number of factors that cause this:

1) Even juniors get paid quite a bit compared to many other professions. 2) Software engineers have an uncanny ability to be worse than useless. A bad software engineer means you need several other software engineers to clean up their mistakes. 3) Given the above points, generally speaking, the companies that actually can afford to take a chance on someone without a proven track record are also the ones that don't need to. FAANG companies can attract top talent using their brand and deep pockets.

I think 2) is somewhat misguided, though. The ones making terrible, costly decisions probably aren't junior programmers anyway.

Jeff Atwood has a really good post that I think is relevant: https://blog.codinghorror.com/nobody-hates-software-more-tha...

Re: your post in particular:

> I can't put the words "software developer" on my resume but I have written a lot of programs for my classes and in hobby projects.

This can certainly go on your resume, just don't misrepresent it. A common pattern I've seen is for folks to have a "Projects" section on their resume that mostly takes the place of what they would list as their relevant employment. If people don't look at your github, put your github where they do look.


👤 jszymborski
What's worked for me is what I retrospectively have come to call "Trojan Horsing", whereby you use interdisciplinary fields to move diagonally through one or more institutions. Being lucky doesn't hurt, either.

[incoming potentially helpful, very self-indulgent summary of what that looked like for me]

I was one of those teenagers who always wanted to be a web dev but ended up majoring in biochem because I felt that, while both were interesting to me, self-teaching web dev was working for me and it's not easy to get your hands on centrifuges.

I made sure that my masters (experimental medicine) would encorporate wet lab work, as well as a big machine learning part (since that got me closer to code) and wound-up falling in love. After I submitted my thesis, I applied on a lark as an ML dev after I saw an ad on HN for an oppening at large-ish software company. This was a scary time and I was sure I wouldn't get it. The hiring manager had a PhD in CS, it was a Scala job and I never wrote a line of it, and I had a hard biology background. But I aced the take-home technical they gave me and snagged the job.

I'm now doing my PhD in Electrical Engineering to get that formal background in ML and could promise you I never knew exactly how I would make this diagonal move, but always felt it was likely.

[how I see that drawn out anecdote to apply to your case]

You have a background in 3D modelling and FEA, and I would suspect (though may be wrong) that there are plenty of positions that are looking for tools development for e.g. Engineering or Animation (the Autodesks of the world). Do you think that's something you'd be interested in/can learn? You seem to be a self-starter, which is key in this sort of thing.

Include in your search positions that don't have developer in the word but are technical roles in e.g. 3D modelling that would require you or benefit from you coding now and then.

Finally, the GitHub stuff is largely ignored from my understanding. It's great to give back to the community, you can meet great people (some of them who hire people), but short of that it isn't really an application boost.

Best of luck!


👤 tgflynn
Why don't you look for a software role that would put your ME training and experience to some use ? There are tons of web developers but we live in a physical world and there's certainly a need for better software in virtually all fields. I think even 3D modelling experience should open a lot of doors for you, it just probably won't be web dev roles.

👤 schwartzworld
I came from a completely unrelated background in massage therapy and taught myself to code in my spare time. I felt a lot of what you're feeling.

You can absolutely get a job with Software Developer on your resume, but the first one is the hardest. I ended applying for 3-5 jobs per day until I got hired. I applied for the job that hired me over a week in. don't be discouraged, and remember it's a numbers game for sure


👤 smoe
> Is there hope for me?

Yes, but you might have to adjust your expectations.

It is not quite clear from your question whether your gripe is with having to apply for a junior role or that the pay is bad?

If it is the former: Why do you expect to enter a field above an entry level? From your self-description it does sound like you are in fact at junior/entry level (not meant negatively). I would expect you to grow out of that level faster since you do have prior working experience in a different field and maybe already in the interview process I'd put you higher. But I'm not going to take your word or cv for it.

If it's about salary. Depending on the area, I don't think there is much if any shortage of developers looking for their first jobs unlike at the more experienced levels. It can be that you face quite the competition for the jobs you are applying, many of which will look better on paper(especially from the perspective of automated resume scanners). So I think the options are:

- Keep going with the grind, finding the first job is probably the hardest. It gets a lot easier after that.

- Consider just taking any job to get the foot into the door, even if it is not sexy and not well paid. Having say 6 months industry experience as a developer can already easily outweigh all your github projects.

- Try to find a job, where your specific background gives you an edge over others. For example instead of going straight into a developer job, you could find a role as a mechanical engineer that can code and from there slowly transition into software engineer. Or a developer job in a company that deals with mechanical engineering one way or another. Domain knowledge can be a huge bump in hiring considerations.

Lastly regarding github profile. What recruiters will do varies a lot. Some really like looking at them, others never do it out of principle. Personally, I never look at profiles, I only look at specific projects if they are mentioned in the cv / cover letter with a description of what it is and what the candidates contributions are.


👤 julianeon
I think there's an under-noticed property here: you have an engineering degree - an ME degree.

Hiring boards will often be concerned that the person applying doesn't have an engineering level degree, and may not have the intellectual horsepower to do the work. (I'm not defending this - I'm saying it is a thing).

You have an ME degree - which, say what you will, is, intellectually speaking, a lateral move, as compared to software engineering. They are comparably hard.

This is great! You won't get dinged nearly as hard, which will make your transition vastly easier.

You will have more opportunities than someone without an engineering degree, so that's a bright spot on your resume.


👤 auggierose
I'd look maybe in an area where your Mechanical Engineering degree is a big plus, that is areas where familiarity with math and linear algebra is a must. Computer vision, machine learning and software for industrial robots come to mind. Obviously you would start out in junior roles there as well, but you will be able to grow and work on interesting stuff. Databases, servers, React and Linux may sound like fun now (it was fun for me about 20 years ago, replace Linux/React with Java/Swing though :-)), but that stuff gets pretty boring pretty quick.

👤 ritchiea
Apply to lots of places, be honest about your experience. You might have to take less money for a year or two but you are still young. The first job is by far the hardest but the challenge of interviews never goes away because as you get more senior people expect more from you in the interview.

Do you just have code in Github or do you have an app running somewhere that people can actually interact with as well as the code for it on Github? If you don't have something live, push something live. Use Heroku or some other simple hosting solution if you want to get it live quickly.

You can also try to get involved with an existing substantial open source project. Try fixing a bug or adding a feature. Get advice from the project maintainers and work from there. That's as close as you can get to work experience of collaborating with a team. Get something merged to an OS project. And then when you interview you can talk about that experience so the company knows you can work with others to get production code shipped. You might have to log into IRC or Discord or send a bunch of emails to get started with the kind of direct communication necessary to do this. But learning how to take that kind of initiative is valuable in a company setting as well. If you do good work those open source maintainers could even become leads or references to help you find a first dev job.

Lots of people change careers into software development with less technical backgrounds than yours (I've met former actors, artists, lit majors...). You have much more than hope, if you're persistent you will find the job you're looking for, it just takes some hustle.


👤 d33lio
I used to be on the side of no college, but as someone who almost dropped out and decided to finish I'll give you the following advice:

I have many friends who have arguably more successful careers in tech, they did not finish college. However, they are also incredibly talented and driven people (more so than me in many cases). If you don't finish school or don't have formal education know that there will always be certain forms of "high risk" or "critical" work that no amount of effort will qualify you for in the eyes of the people hiring you. Outside of that, the world is your oyster. But know that the lack of a degree will put you in the back-seat for raises, new jobs, and always be used as leverage AGAINST you. The reason I finished college was I knew I wouldn't have the drive / energy to always go up against this and knew that I'd never be okay knowing that something like that could've closed an unknowingly large number of doors on my career or startup ideas. It sucks but it's reality.

Companies like Apple and Google saying they "don't care about education" really just means they're excited to have another reason to pay employees less.


👤 inetsee
My experience suggests that it is entirely possible. When I started college the plan was to major in Aerospace Engineering, with a minor in Psychology. (My university required that you do a minor in a field completely different from your major.) When I got to my junior year I discovered that I really didn't like Engineering that much, so I switched to a major in Psychology with a minor in Computer Science.

When I graduated I got a job writing computer programs for the Psychology professor I'd done my senior thesis with. After a couple of years I got a job as a software engineer with a defense contractor, and the rest of my career was spent working for defense contractors.

So it is possible to get a job as a computer programmer without a computer science degree. I would think that there would be a lot of software involved in Mechanical Engineering applications, and your degree and software experience would make you a good fit for those kinds of positions.

On a side note: I've often thought my background in Psychology was a big help in in dealing with my co-workers.


👤 harel
The formal education does not matter. Your actual experience in commercial software development does (i.e., working on and getting paid on projects developing software in a team with all that comes with it). Code written for class, or as a small hobby project carries a little weight but not enough to bump you up the ranks. It is just not the same as being a part of a team working for a common goal.

In well over 20 years I have never once had my education (or complete lack of) be an issue. I don't even think I was once asked about it. So don't worry about that. I suggest to up your game and build something with commercial potential. Go through the whole life cycle. Release it. Pick a domain you know (education? 3d modelling? Electrical prototyping etc.). It's possible you might luck out during the process and land a job you like (or decide to take a low paying junior role), but if you don't, by the end of it you'll have a complete project notch on your proverbial belt, and your chances will improve.


👤 kafrofrite
I've spent a part of my life interviewing candidates for a former employer of mine. It was big tech, so we got our fair share of candidates in. I understand that you feel like you are not the most qualified candidate but I think you are selling yourself short. My advice is to find maybe ~10 companies you would like to work for. Look them up, read info about them and find openings you like. Tailor your resume for each position/company and send it. Empirically, most candidates fail getting an interview because they send in a resume that's either huge or highlights parts I'm not interested in. Highlighting experience basically means writing "I'm polishdude, I developed blahblahblah using this technology, I tested my code using this, I configured a CI/CD, pushed changes to git during my work as an instructor. Also, as part of my teaching I taught blahblahblah and picked up such skills.". Show them what you've done basically. All the best :)

👤 chrisbrandow
I left a job as a chemist at the the age of 41 (with family & 3 kids) in order to start in iOS development a few years ago. I got a job as a junior software developer that did not pay a lot, and like you, no one was interested in anything I had out on GitHub, nor an app I was working other than the fact it showed I probably had actually written some iOS code.

But I was confident then as you should be now, that if I stuck around and pursued improving my skills as I worked over the next few years, I’d become a valuable asset that lots of employers would gladly hire. In fact, I did. I eventually had recruiters contacting me!

There’s a lot to learn and it simply takes time and a commitment to doing good work. If you are excited about programming, then it’s a bit like a dream come true, that is getting rewarded for working hard.


👤 zemo
you're 26 you got heaps of time. You didn't include all sorts of info like your location, your target pay, and any identifying markers. The industry has a lot of bias; whether or not you need a degree is a question of the existing biases in the place you live and your status within that system.

> or they want to hire a junior for some super low pay

probably still better than what you were making in another field.

get a recommendation for a recruiter from another developer in your city.


👤 soneca
I transitioned from marketing to software development at the age of 37yo. I studied full-time for 8 months until I got my first job as a junior frontend development. I had a few very basic projects on the personal portfolio (not Github though) that I do think helped get the job. But most important is that I applied to jobs that had code assignments to do at home. As a junior with time, those were a blessing. I could prove my skills without counting on college credentials or experience.

I accepted what you would call a "super low pay" though, and I think you should too.

I think it is ok, and actually fair in most cases to accept as low pay as a junior development for your first job. Once you are in, you can get promotions/raises on your company or apply to different jobs for promotions/raises.


👤 rdevsrex
Yes, definitely. I dropped out of college to be a missionary. While I was there I taught myself programming and servers and took care of the ministry’s websites.

When I left, because I was still living overseas, I applied to many remote jobs with no success so I just started doing lots of freelance work on Upwork. Essentially I got paid while I was learning.

The pay was lousy and a couple clients were terrible, but two years later I landed my first ‘real’ software job for a startup in SF doing Rails and React.

So yes, it is possible. If I could make it so can you, especially since you have a degree in engineering and I had no degree at all, I don’t think it will be as hard for you.

Of course, as others have pointed out, your pay will be in line with real world experience, but it will go up over time.


👤 pianoben
When I was 27, I picked up and moved from the Midwest out to San Francisco kind of on a lark. I didn't know anyone, and despite having a CS education it was from a no-name school and I had basically zero relevant experience. I had an exceedingly difficult time "breaking in". I eventually found a job with a startup at a relative pay cut, and some time after that was able to find an actually-decent job. Every job change since then has only become easier.

Looking back now I can see why it was hard for me to break in. The factors holding me back, in descending order, were:

1) No industry connections 2) No relevant experience (.NET didn't count in SF at the time) 3) Wasn't really "plugged in" to the prevailing tech culture 4) Nobody had heard of my university. 5) Frankly I wasn't very good.

5 almost doesn't count; very few people are any good when they start their career.

The single most significant factor (the dominating factor, really) was simply a lack of connections. Nearly every significant job I've ever had is a result of a referral from a friend, and this is true for basically everyone that I know. I have coworkers now who not only have no CS degree, they just don't have _any_ degree, and we happily hired them on reference.

I guess my point is that yes, it'll be tough for you at first. Not having those magic "CS" letters will definitely hinder you. That said, it's not an impermeable barrier. The best thing you could do for your future is make friends in the industry. The second-best thing (in my opinion, others may not agree) is to participate in a well-managed Open-Source project. Not to burnish your resume, but to learn the processes people use to collaborate - source control, issue trackers, code review practices. That stuff doesn't get taught in CS programs either, but it's essential knowledge. Having it will help get your foot in the door.

Skills are important, to be sure - once you get the interview you still need to be able to successfully sell yourself - but IMO getting the interview is the hardest part when you're new.


👤 qorrect
You can absolutely do this, many of the best programmers I have met are self taught, and you have an existing college degree that's just going to make you more valuable.

You are going to need to sell it though, you need a good looking website highlighting all your projects, link to github and keep your github clean.

The way I started was doing freelance projects until you're confident enough to move into enterprise ( somewhat ironic because freelance work typically involves more understanding of every part of the system ... and better skills ).

Do projects in the language/technologies that you want to work in and highlight those.


👤 Woberto
I came from a mech eng background, got a master's in computational and applied math (no formal computer science), and have since had two different software dev jobs. There are lots of places that don't require a formal CS education. If you have programming experience, have done projects, and have demonstrated an ability to learn and solve problems, that goes a long way. There are also places that hire mechanical engineers and the roles involve a lot of software development; maybe not the exact role you're looking for, but it can be a pivot.

👤 briandear
I am a software engineer, now engineering project manager for a FAANG. My degree was in humanities. Degree might matter for entry level jobs at established companies, but skill and hustle can get you in the door at smaller companies which you can then leverage to go bigger if you want. In my experience, after you get past the junior/entry level barrier, nobody cares about your degree after that. As an anecdote, one do the premier Ruby on Rails guys, one that literally wrote the definitive books on it, only graduated high school. My advice — dig deep and become an expert in something rather than trying to be good at everything. “Well rounded” might sound good on paper, but when I need an expert on a particular thing, I am looking for an expert in that particular thing — not simply a generalist. If you are really great at build systems for instance, I’ll hire you without any consideration as to degree or school. If I have an itch, I need to scratch it as quickly and skillfully as possible. If you are a great scratcher, I don’t care how you got there. I got my start at being really good with fixing test suite technical debt in Rails. I developed a minor reputation as someone who could rescue Rails projects that, pun intended, went off the rails. I had a profile on Dice.com and pretty soon, I was flooded with inquiries for high paying contract work. One of those contracts was to fix some esoteric thing for $major_tech_company — that then turned into a full time offer.

Be fearless. Don’t waste time worrying about what you haven’t done and start worrying about what you can do.


👤 ookblah
Just another anecdote, granted this was over a decade ago so YMMV now.

Grew up doing web dev "as a hobby", basically self taught since middle-school. It was my passion, but never thought of pursuing it as a career or anything. Went to college, got a EE degree. Partly because parents thought it was generalized and better able to land me a job out of college. I partly agreed. Went to work at for gov't contractor and hated it. I would still code on the side when I got home. Left after a year and had my mini quarter life crisis lol. Decided to apply for a few jobs around me with zero experience in the industry.

2 interviews stuck out to me. First one was an a small agency. They gave me a coding test and I realized that I know a lot more than I thought I did and shouldn't imposter syndrome myself as much. Second one was a small startup. They saw a lot of apps I built on the side and were intrigued which netted me that offer. Decided to go for the startup and that experience really solidified my confidence that I could actually do this.

IMO, your engineering degree will help you get a foot in the door at least. ME isn't a piece of cake and you've proven yourself competent in that regard. Your lack of "formal" education might be a hindrance to some, but I think it demonstrates the ability to self start and figure shit out and most importantly to just build stuff. Just keep grinding until you find the opportunities; you might have to take a step 'sideways" to get them.


👤 dntbnmpls
> It's mainly the pay but I also sort of fell in love with software this year. I started learning JavaScript last year, learned about databases, servers, React and Linux stuff. Loads of really exciting fun stuff!

Programming is fun and exciting when it's a hobby or you are learning it. It's an entirely different beast when it becomes your job. There is a reason why burnout is so high in the tech industry. It's less "cool hacker" and more "code monkey". My guess is mechanical engineering was fun for you while you were learning it or it was a hobby. Then you got a job and it killed all enthusiasm you had for mechanical engineering.

> Many places I apply to want people who have experience in software development or they want to hire a junior for some super low pay.

Junior dev with super low pay? Where are you based? Maybe you should expand your search to other locations with better prospects?

> I can't put the words "software developer" on my resume but I have written a lot of programs for my classes and in hobby projects.

Why not? Put whatever you want, but just be able to back up your claims if it comes up in an interview.

Also keep in mind that even if you start off as a poorly paid junior dev, you can rise quickly in an organization ( senior dev/team lead/etc ) if you are competent and increase your salary accordingly.


👤 impatient_bacon
It's absolutely possible. I have an art degree and what I have found to be important is to have some impressive personal projects to show employers. Maybe not all of them will look at your portfolio but enough do that you should be able to get a job if it's good.

Falling in love with programming has been very fortunate for me because it is one of the few professions where you can show your skills with a portfolio instead of a piece of paper, and it pays pretty well


👤 spondyl
Heya,

Just wanted to let you know that I don't have a degree (nor do I know know FEA, transducers or electrical prototyping are)

I've been in the industry for hmm, a little over two years now, getting on perfectly well so if I can get in, so can you B)

I actually applied for a graduate role (after being turned down plenty of times) and partly through sheer luck, an opening in a different city being unfilled, and a bunch of self directed learning, I got an offer

Partway through, I actually left the graduate program through a bit of sneakery (I applied for a regular dev role and passed the interview) and have been working as an SRE ever since.

I happened to have a decent background with the skills required (Python backends) but my brief experience with React came in handy as we've flipped some internal APIs into self-service internal products and so on

Personally, I'll usually poke around people's Github profiles out of personal interest, as part of the interview prep process, but I don't assign any weight to it if there's not much to see. More like a cool added bonus but nowadays I don't publish much that I work on :)

For reference, I think I was 22 when I got my first role and I wasn't someone who had been programming since a young age (although I had picked up a bunch through osmosis reading eg; HN and so on) but there are people who make career moved even later in future

None of the above is necessarily actionable but I guess just know plenty of people have been in your shoes before so don't think it's impossible or even improbable!


👤 amarant
It's doable! I never even went to collage and I'm doing just fine, currently doing systems development at Mojang. I learned to code online, did some free classes, then built my first application using nodejs and mongodb. My application wasn't amazing, and neither was the job it helped me land, but it was a start, that job helped me land the next and so on. Today, about 6 years later I introduce my self as a senior Java systems developer.

If you really want to do this though, you might want to buckle down for a couple of less than glamorous years. You can get into the software industry without qualifications, but you won't get in at the top with your first gig. You're gonna have to work your way there.

Some advise: keep doing hobby projects, keep learning new stuff constantly, and if you have a choice, pick the jobs that will serve to evolve your skills, not the jobs that pay the most.

It's been ages since anyone even asked me about my education, the only thing that matters is my current and previous assignment, and that I can demonstrate logical thinking on the interviews.

I'll add as a disclaimer that YMMV, we're currently in difficult times, and it affects even software Devs. I also don't know where you're at geographically, here in Sweden I'd go so far as to say that if you can land a software job before going to collage/university doing it is a waste of time, as you'll learn far more relevant stuff way faster while working. But I hear in the States that diploma is more important, so I can't be sure.

Believe in yourself and don't give up! You can do it!


👤 Durgasoft
This is how you transfer to a software role when nobody knows who you are and you have nothing in production to show for it. You learn everything about company app X, and then you start at the bottom as 'customer support engineer' or even lower as 'customer happiness' or w/e they call it these days.

When you are not putting out fires of angry customers, you learn everything you can from the developers that work there even starting to write features, starting to find bugs, optimizing the software, creating new tooling, whatever. It's simple to transfer around internally, impossible to get in externally. Then from there you transfer into a developer role because now you're not just some unknown guy they don't want to risk hiring. Once you are no longer junior, meaning you put in the work at that imaginary place moving around roles internally you jettison out of there to the higher paying positions because now you're an experienced developer and probably have a little network you can use, in other words no longer a risk.


👤 sokoloff
I'm a self-taught programmer with a Mech E degree (1993) as well. I've never worked a day of Mech E in my life (well, an internship at Mercedes was writing code for vision and control systems, which was maybe 10% Mech E, 90% SWE). e Everything else was pure software.

Has never detectably held me back and I very rarely even got questions about it. It was entirely "can you code? let's talk about it to be sure..." [just like anyone else]


👤 idoby
I don't know how things are in Poland, but in my country, you can get a great junior SWE job with your background.

The problem with GitHub profiles is that they tend to contain a lot of noise that nobody has the time to go through, and when they do, the projects are usually not very impressive. They tend to look like they were made by a project generator with little subsequent work by the actual human.

My advice to you would be:

1) keep applying to jobs

2) clean up your GH account to only contain 1-2 extremely great projects. Hardly anyone would look beyond that. Get rid of the CRA based CRUD projects if you have any, they will not impress anyone.

3) use your unique background to stand out. Make sure your projects are unique, interesting and draw attention visually. Use your background in 3D graphics. Use your ME background where there's a wealth of data to be analyzed and presented. Be creative. Put up informative and interesting READMEs for your projects, as they will be the deciding factor in whether anyone decides to spend more time on your project.

Good luck! Feel free to contact if you need advice or guidance.

edit: can never get HN formatting right


👤 chrismatheson
I did a robotics degree, (half mech eng and half elec eng) then I helped out my dad with a software side project of his and turned the experience into my first job.

I did 5 years of elec hardware design and then got a job as a software dev. Been doing it now for 7+ years.

My advice, look for a scale-up. A business with a proven product market fit, but still looking after the pennies. The one I found was willing to take the risk of a good find because the “formal education” lot were more expensive. I’m reasonably sure my first boss would back me up in saying that the risk was well worth it’s. Apply, show them real world work, I’m sure you will go far. Engineering mindset is actually a real skill, most formal education backgrounds I talk to don’t think of things like failure modes or really understand the importance of good requirements like mech/elec engineering I’ve met.

Also, email me whenever to talk chris at matheson dot it


👤 baron816
I’m curious to the degree culture plays in hiring practices for SWEs in different countries. It’s not uncommon at all for tech companies in the US to hire engineers without a software engineering background or a college degree (I know an engineer at Google with no formal education whatsoever).

But, I’ve heard of people from other countries talk about getting “certified” in a particular coding language or technology. I can’t tell if that was just a scam, or things like that have some weight in other parts of the world.

I’m sure people here have worked for a small company led by some sales guy who didn’t know what he was doing and would expect engineers to have degrees and certifications. I wonder if in other parts of the world, where those with knowledge of running a modern software engineering organization haven’t risen into leadership roles yet, it’s impossible to become a SWE without a whole bunch of diplomas.


👤 GordonS
20 years ago, I was looking for a software developer job. I had quit university, because I didn't feel like I was getting anything out of it - I had no previous formal experience, and now no degree either. What I did have was a love of coding, and I'd been part of an online "clan" selling commercial Quake mods, but as silly as it sounded, I put it in my CV/resume. What I also did was try to stand out, so when sending my CV, I also included a CD (20 years back, mind!) and URL, showing some programming stuff.

Eventually I got a break - and it was all because of the CD!

Just as most hirers today don't look at Github profiles, most back then would have binned the CD - I reckon if your Github profile checks out and you keep at it, you'll get a break eventually.


👤 juped
Software talent is not in demand but fairly high wages for untalented seat-fillers are sticky for a number of reasons. It's pretty hard. If I were hiring right now, I'd consider hiring you, but I'm instead looking to be hired, so sorry.

👤 tenaciousDaniel
I went to art school for college, which has zero math or science. So my math/science education is at a high school level. I was able to shift my career from art to programming just by studying on nights and weekends. You can do it for sure.

👤 boltzmannbrain
Keep going. More side projects, more interviews (with startups). If you get a "resident" offer to work your way into fulltime, take it. Maybe the pay isn't ideal for 6-12 months, but the gratification of building yourself into a legit software engineer should make it worthwhile.

My path: undergrad and masters in MechE, learned a little machine learning with matlab in grad school, taught myself python and hacked at AI/ML side projects while working at a startup doing FEA for about a year, eventually got an internship with an ML startup... eight years later I'm Chief Scientist at a near-unicorn AI startup.


👤 marianov
Droped out of collefe, self taught programmer. I've been coder at a big multinational, tech lead in state and federal government, currently VP at one of the big three. Don't worry, try to be a good coder.

👤 cryptica
>> It feels like nobody looks at your GitHub profile though

Of course they don't. Unless you built something that many other developers use, nobody will know you exist. The industry is extremely competitive.

Given your current optimistic frame of mind, I would say yes, there is hope for you but you're going to have to work yourself to the edge of insanity to get a shot at getting your GitHub profile noticed at all.

If I were in your position, I would try to work in some area of software which is related to your expertise (mechanical engineering). That can give you an upper hand.


👤 tixocloud
Check out https://www.nocsdegree.com/ made by a friend of mine. You'll see that there are plenty of cases where you don't need formal education as long as you have the drive.

For applying to jobs, consider being creative in your application. Can you speak directly to the hiring manager? Can you make your application stand out somehow?

The best engineers I've hired have usually been ones with the drive and without formal education. Best of luck.


👤 halfmatthalfcat
I don’t have an engineering degree but worked in QA for 4 years before becoming a SEIT and then an actual full-time engineer. Took a long time but if you’re heart is in it you’ll find your way in eventually.

👤 a-saleh
Can speak for my employer.

At RedHat, we mostly don't care, if:

a) you still are a student of at least a vaguely relevant field (we had someone from Linguistics, I'd think Mechanical Engineering bachelor is fine)

b) you have some relevant experience (i.e. I had 2 years as a sysadmin on friends projects?)

c) you don't need the degree for employability (i.e. we had people needing degrees for visa purposes, but you have bachelor's so that is fine)

So, you should be fine. Ask friends for entry-jobs, or start building a pipeline for consulting projects.


👤 duxup
>super low pay

I changed careers from one where I was making 6 figures ... but tired of that line of work and decided to try my hand at coding and start over as a jr. developer.

I got paid very little when I joined but proved my worth and QUICKLY my pay rose.

The key as a Jr. is to get experience, get your foot in the door, do the work, and then evaluate your pay / options.

Really your first job doing a thing is less about up front pay, than it is experience, resume, and then deciding what to do next.


👤 jay754
Don't be discouraged at the moment. A lot of places aren't hiring. That being said, i myself don't have a formal comp sci education either, but I haven't let that stop me from being a dev. Comp sci is the one field where regardless of your former education, you can still make it based on your own merit. Plus the way i look at it if you have an undergrad is engineering i am sure you can learn comp sci. Keep on learning and don't give up.

👤 johndavid9991
Back in 2015, we hired someone who is an undergraduate ME student. I trained him, and I was amazed at how fast he learned, and he is now one of our devs. Your background in Mechanical Engineering will help you a lot, with the right training, you can learn a lot of things fast. Knowing the technologies, you stated above already gives you a solid foundation. If you need help getting training materials to strengthen your skill set, feel free to contact me.

👤 rsecora
Been a bridge between two fields is a differential factor in your favor that you can enjoy and monetize.

One of my first projects was a lisp + cad + export bill of materials + inventory + versioning. I was the younger and the only one they can find to automate the workflow. That was a big lever for next salary negotiation.

Software in industry is always applied software, being able to speak mechanics and software place you in an invaluable place. Use it on your favour.


👤 longsangstan
My experience: just try to land a programmer job first, even if the company/job looks shitty.

I only had an Economics degree with no formal IT education and now I had a software dev job.

Like you, I was self-taught and only had built some personal projects, but it was enough to land me my first IT job in a shitty startup. And then you can have easier time finding other software dev roles.


👤 fortran77
You have an actual Engineering degree!? You're miles ahead of any "boot camp" or self-taught people that lack formal training in math. Many of the software people I work with have degrees in EE. There shouldn't be a problem and it wouldn't be seen as a negative by anybody.

👤 timwaagh
Juniors dont get super low pay. Just lower than seniors. Hobby projects don't count as work experience, but i don't doubt your experience in teaching will count for something. It's a bad time to be asking a lot of money though. You might have to settle for less.

👤 vnorilo
Well, I got there with a cello diploma.

Maybe you could leverage your domain knowledge to get some software-adjacent gigs to pad your resume? I started my software career in musical audio signal processing, which branched out to mobile, games and machine learning, gradually opening more and more doors.


👤 exdsq
Honestly just start applying and make it clear, in your CV, that you can code along with links to some code you’ve written. A lot of people applying for junior dev roles are far worse than you’d imagine, you sound like you’d have a shot if you show enthusiasm.

👤 alanfranz
Omscs, or other online ms programs, could boost both your self confidence and career chances.

👤 aosmith
Totally doable, I work for a large (public) corporation in the bay area. I dropped out of school about 10 years ago. Take contract gigs, hustle and grind. It sounds like you just need to prove yourself.

👤 3minus1
I love the freakonomics podcast, especially when it gets into behavioral economics. There's a ton of good episodes. If you've never listened before try the Trader Joe's episode.

👤 scollet
I have no degree at all and I've got a leg in. Keep looking in unexpected places like forums, fellowships, and FOSS. Keep making true friends. They will come through when it counts. I am more fortunate than a lot of people.

👤 JshWright
Not that this is helpful in the moment, but the first job is going to be the hardest.

👤 commandlinefan
Whenever I’m hiring, I consider an engineering degree equivalent to (if not a little more impressive than) a CS degree. Of course, you do have to be able to show you know what you’re doing.

👤 PopeDotNinja
I was a tech recruiter, and I was able to transition to becoming a software engineer. I'm pretty confident you can do it, too, if you want to.

👤 rak
Plenty of hope. I've worked with a guy who was an ME although I wasn't a coder at the time. He was doing very well for himself.

👤 ofisboy
i'm a 39y old ex-banker (>15y in banking). finished a bootcamp in 2018. now working for a startup as a frontend developer for the last year. i'm not saying i'm a success story. but if i was able to come this far, i'm sure you'll do much much more better than me. i actually envy you :-) good luck and have fun

👤 diob
Have you considered consulting? You sound like a driven individual, so why not set your own rates and cut out the middle man?

👤 saargrin
maybe you can try something thats not a developer proper

i have absolute zero of formal software education, and i'm pretty senior devops i bet there are other near-software fields that could be relevant and hiring managers are more flexible


👤 quezzle
You’re in good company with Steve Jobs, Bill Gates and Larry Ellison.

👤 pmiller2
My background is in pure math. I've had a total of about 4 CS courses throughout 4 years of undergrad and 3 years of grad school. My first software role was 6 or 7 years ago, in SoCal, at a salary of $70k with no stock options or RSUs. I did have a bit of an advantage in that I had been playing with computers since I was 7, and started using programming as a tool in my 20's. I also had a copy of CLRS that I had studied large portions of, and that helped quite a lot, especially with concepts like Big-O notation.

If you're going to follow my example (and I'm not necessarily suggesting you do -- my path did not feel close to optimal), then you should start applying for those "junior for some super low pay" jobs, for at least a year or 2, as long as it's enough to support yourself.

What I did after that was move to the Bay Area and ended up taking a job at a startup for $105k and some worthless options. From there, it was a steady progression. Next job was $140k and some probably worthless options, until now where I'm over $200k total comp at a public company.

I'm not saying any of this to brag, either. If anything, compared to online salary and comp resources, I'm probably around the median for 6 YoE in the Bay Area. But, the median SWE comp is still really good, and you can live quite well on it while maxing out 401k's, paying off student debts, or whatever your financial priorities are at the moment.

If you go this route, be prepared for a lot of rejection looking for that first job. Some companies will see no CS degree, no tech internships, and no coding-related work experience, and just bin your resume. Even on my second job, I was finding myself getting rejected or ghosted for positions where I felt my resume was nearly a perfect match to the job description [0]. Persistence is the only way through.

Stuff I would advise you to do that I didn't do so well would be things like get a LeetCode premium subscription and start solving the problems. I don't mean "grinding LeetCode" like you see people bragging about on /r/cscareerquestions; I mean start with the easy problems and use those to learn more about programming, then move on to medium problems and use those to learn about CS, while also gaining insight into interview questions you'll see in the wild.

If you have friends in the tech industry who are at companies you'd like to work for, try and get some referrals. This can get your resume looked at, even if you wouldn't appear qualified on the surface.

If you land a position that's primarily coding/software-oriented, but it's not literally called something like "software engineer," consider putting it on your resume like "$ACTUAL_TITLE (software engineer)". Part of my problem after my first job was that the position title wasn't called "software engineer" even though writing software was literally all I did.

There's probably more, but those are the main things I can think of right now.


👤 amatecha
Generally speaking, yeah, without directly-relevant industry experience you'll get stuck entering a more junior or intermediate role.

The vast vast majority of job postings are looking for experience in particular areas, such as programming langauges, game engines, commonly-used libraries, software suites etc. Some places will literally not even consider candidates who don't match some of the stricter requirements, like a certain number of years writing C++ or whatever. Fortunately, many places will overlook a "miss" in key categories if there's a lot of good stuff elsewhere.

As someone who has been programming for work for over 20 years, I'm going to disagree with some suggestions you got on here about getting a master's degree. My personal advice, based on my own experience, is you're better off getting in the industry as soon as possible. You will be literally getting paid to learn, and making contacts who can inevitably be your "in" at other companies over the years (if necessary).

Everyone's experience is different of course. I'm one of very few people at my job who are at my level and have no degree at all. On that note, I know many people who say their degree was completely useless for getting to where they are now (other than maybe looking good on the resume).

I think most places will look at your Github profile if you link it -- depending on the company. Even if I didn't mention it to them, I've looked at the open source contributions of every single candidate I've ever evaluated, if they linked it.

From what you're summarizing, you can absolutely put "software developer" on your resume. It sounds like you've done a bunch of programming over multiple years and built a bunch of real, working projects. Though unfortunately, those are not usually given much weight because most companies want to see your experience building shipped products, with a team, over some period of time. Regardless, you're applying for a certain role, so tailor your resume (skillset and experience) to correlate best with that role.

Anyway, yes, search around for places that seem interesting and look for the roles they have open. You may have to apply for many! There were many places I was so sure I'd get an interview at, who didn't even respond -- even when I had quite a bit of experience. It's not a big deal, just keep trying man.

When you get asked about stuff you don't know in interviews, don't worry about it - just say something like "Ahh I don't know about that, but I'd love to learn about it". I mean, assuming you actually would like to learn more stuff, and excel at new programming/technology skills! :)

If you want to discuss further I'm actually totally glad to talk, though my experiences might not be directly relevant to where you're living. Either way, take care and best of luck!!


👤 ge96
I realize I'm not doxable so you can consider my comment "fake" but I am a contractor SE making $83K/yr in midwest, no degree. Granted also means I have no health insurance(personal choice).

I went to school/failed out, left with some debt(still in debt). I was going for Phys/Eng co-op program(5 years).

I got into web development luckily(personally trying to make high traffic ad revenue websites) that didn't work out but I became a full stack developer(can build an interface/make matching backend with auth in LAMP).

I freelanced online(UpWork) then got into a local web developer agency(WordPress... templates...) then I got lucky to make the jump into a local corporation in my state where I'm now an SE. It was unreal to me at first as my previous job I only made $50K/yr and mandatory 45 hrs for "salary".

Now I just keep learning so if I lose my job I can hopefully get hired elsewhere.

I was washing plates/worked in a factory/did data entry... yeah I'm super lucky I made it.

So it's entirely up to you and I'd say with a degree the odds are even more in your favor since that always bothers me as a lot of jobs I can't apply to "no degree".

It's entirely up to you, you have to want it. For reference I was not into computers when I was younger, we had one and I just played Runescape on it. My journey in this field started in 2013 so it's not something I just pulled out of my ass overnight.

Use LinkedIn by the way it works, but be truthful as well, don't game the system.

...

Personal rant

This is a personal opinion but I've been pretty stressed out at my job, mostly the "bureacracy" like "every line of code" is traceable. JIRAs, design docs, unit test/selenium/regression testing... so much work I can't just "solve this problem" you know... I don't know. It's interesting, my prior job sucked because there was no chance to learn and it got super repetitive building template after template from a design. But there was also barely any sort of structure/no testing... we barely knew how to use Git as a whole.

Clarifying, I'm not against the concept of testing. It's nice being able to run old ones and see the app didn't break when a new feature is added. Just saying there's a lot of "paperwork". Which... get a hobby right or change jobs(what I'll probably do).

I'm at the point now where I can almost make anything I want. Granted I am not a scaling-god or super devops heavy(aside from using Docker)/not an algorithm guy. Also have not bit the ML/AI bullet yet. But yeah, there's a lot to it, the surface area, but a lot of technology now makes it super easy to get into/accessible. Think React and React Native/Electron so easy to build cross platform. Crash courses online to quickly pick something up.

And all the commoditized services eg. Twilio/Mailgun/AWS/Browserstack/etc... (I don't like AWS expensive).


👤 Jeaye
In short, you have no degree and no software engineering experience, so getting hired for a junior dev role with super low pay should be the realistic next step.

I have no degree, but I started my career with a lot of open source projects on Github. If you work hard enough there, and you actually market your projects and your own brand, you will have a chance at getting hired. I was offered my first job at a very, very low salary and I took it. After a year, they realized I was worth my salt and they wanted to keep me, so I got a hefty raise.

If you want into this industry, I recommend you do the same. Make some open source projects which are useful and market them. Make them look good, visually, and do the same with your own website. Meanwhile, apply places and talk to recruiters. If you get an offer and it's a low salary, you should probably take it. The only reason you shouldn't would be if your personal expenses require a higher salary (i.e. you have a kid); you may need to lower your class of living, if you're single and used to making a lot more. However, once you get that first job, do everything you can. Learn everything you can. A couple years in, people won't know you don't have a degree; you'll just be another dev.

There's one key thing about practice that I'll mention here, though: stick with one thing, at the start. You need to make up for your lack of credentials and experience, so it would be good if you're very comfortable with something. For me, it was C++ and game engines.

With that said, the lack of degree still bites when it comes to job changes. Even later in my career, I've had teams give me the "okay" and even welcome me to the company before someone higher up sees I don't have a degree and calls the whole thing off. That primarily happens with larger companies, though, so you're better off sticking with smaller companies until you have enough work experience to make people no longer care where/when you went to school.

Lastly, I mentioned this above, but it's the most useful point here and it's worth saying multiple times: market your fucking brand. Firstly, if I spent a weekend making a FOSS project, I'd spend the next week adding documentation, CI, code coverage tests, and everything else which people expect from a Github project these days. Why? Because it looks better and it makes you look better. Secondly, if I make a ray tracer or game engine, I'm not going to show it rendering some spheres; instead, take the time to parse some file formats to show a whole scene. This is because people make up their mind about something they see in the split second when they first see it. It doesn't matter how slick your code is; make it look good to recruiters, team managers, and passers by. Thirdly and finally, know your audience when you're making things look good. When you build your website, build it not for super technical people, but for the most average mouse clicker you can imagine. That's who you need to impress in order to get your résumé in front of a dev.


👤 renewiltord
Go to a hacker school. They have machinery in place to get past the level 1 filter.

Or maybe write a lot of public code. This is highly risky, though. Few places consider those credentials.