
Ask HN: No formal software education – is there hope for me? - polishdude20
In 2015 at the age of 21 I got a Mechanical Engineering bachelor&#x27;s degree. Afterwards I worked for two years at a place I didn&#x27;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.<p>So why leave a job like that?<p>It&#x27;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!<p>So now I don&#x27;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&#x27;t put the words &quot;software developer&quot; on my resume but I have written a lot of programs for my classes and in hobby projects.<p>It feels like nobody looks at your GitHub profile though. I&#x27;ve got lots of projects I&#x27;ve done in the last year. But maybe that&#x27;s just the grind? Just need to apply to enough places?
======
hoorayimhelping
> _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.

~~~
polishdude20
Yeah I'm sort of hesitant to enter a new career during this pandemic since a
lot of companies are going under. I'd rather wait it out at my current job
while I keep working on side coding projects.

~~~
pcmoney
That’s totally reasonable but just be aware side projects have severe
diminishing returns after awhile. Unless you are shipping complex software as
part of a team it is not preparing you more. You will still be junior. The
exception being if you invent NPM or some similarly massive FOSS contribution.
But if you could do that you wouldn’t be asking if there is hope for you. The
sooner you write code with other professionals for money, even part time, the
better off you will be when you make the switch. Personally I haven’t done
side projects in years and it has come up zero times in startup, consulting,
and FAANG interviews. Once you have experience pretty much nobody cares and
until you have experience no matter what you do, you will still be junior.
Writing code and building things is the easy/fun part of being a developer but
its the other stuff that matters.

Also I came from a non-traditional background and have lead teams on quarter
billion dollar projects. Once you prove you can ship nobody who matters
remotely cares about other, preliminary or proxy credentials.

~~~
polishdude20
Yeah that's why I feel like I may be at the point of applying now. I'm
thinking of maybe getting a few leetcode problems under my belt for a few
weeks just in case that comes up. But yeah, the pandemic being what it is, if
I'm applying for a job I want to make sure that 2 months in I don't get let go
cause the industry isn't doing well anymore.

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

~~~
keyanp
> They also always had humorous holes in their knowledge (which they were
> always quick to rectify).

Can you elaborate on some of these areas? Were there common patterns you have
seen? Asking as a mostly self-taught engineer always looking to uncover
unknown unknowns in my knowledge.

~~~
soneca
Some of mine humorous holes that I learned _after_ getting a job:

\- I didn't know any Git command

\- I was very uncomfortable working on a terminal actually (I remembering
googling what a "terminal" was at the beginning of my studies, by the time I
got my first job, I was only capable of following step-by-step tutorials for
anything CLI related)

\- I had no idea what _" cURL"_ meant, a senior dev told me to send him the _"
cURL"_, saying that just had to _" copy as cURL in the devtools"_ and I had no
idea what to do it. When he got to my desk I was googling it. He was nice
enough to have a discreet smile and teach what I had to do.

\- Btw, I was completely unaware what I could do with Chrome devtools too.
About as uncomfortable as with CLI

These are just the ones that I actually noticed and remember now, for sure
there are others that I never noticed or forgot.

~~~
searchableguy
Hm unless you weren't doing web dev before. Those seem like pretty normal
things you would encounter daily for any moderately complex project.

I was expecting more HN like answer like the big O notation, data structures
and design, algorithms related stuff since those are the holes you should find
in someone without academic background as most web tutorials never go into
that and neither the bootcamp courses though I have seen a few that do.

Something like, the guy didn't even know his code was O(n^2) or couldn't even
implement dijkstra.

Your experience speaks more of academic settings than bootcamps. Just an
observation.

~~~
soneca
My experience is as self-taught. I believe these are different holes from
bootcamp or academy.

It might be possible that it is a sum of both holes even

------
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...](https://blog.codinghorror.com/nobody-hates-software-more-than-
software-developers/)

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.

~~~
greenyoda
> _A bad software engineer means you need several other software engineers to
> clean up their mistakes._

This also sounds like a problem with incompetent management. If an engineer
can spend so much time building bad code that it takes multiple engineers to
clean it up, it means that there was a long history of ineffective code
reviews and inadequate training (e.g., nobody bothered to give the engineer an
overview of the architecture of the system they were hired to work on).

And if the engineer is truly incompetent, it's also management's failure that
the employee wasn't let go before they could create that amount of damage. Not
to mention that management's interview process wasn't good enough to detect
glaring incompetence.

If management takes their jobs seriously, the risks of a bad hiring decision
can be minimized to the point where it's not that risky to hire someone
without a CS degree or inside connections.

~~~
Hamuko
> _And if the engineer is truly incompetent, it 's also management's failure
> that the employee wasn't let go before they could create that amount of
> damage._

In some places it's not that easy to get rid of people. I know there's someone
at my current workplace who I secretly wish was let go, but I know that the
only realistic option I have is find a new job myself.

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

~~~
sakopov
This. I have a BS in Comp Sci but have several friends who got in after
finishing bootcamps and this is what I've heard from them as well. Just keep
applying everywhere and someone will take a shot at you. It gets a heck of a
lot easier to move around once you get your foot in the door.

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

~~~
shinder
As a hiring manager, this is completely true. I've interviewed a lot of
mechanical engineering / physics graduates as well as humanities & other non-
technical people who have gone through a boot camp. I am a self-taught
developer with a humanities background, so I absolutely support people without
technical backgrounds, but the reality is that rigorous math and science
backgrounds are a good signal.

That said, the other comments about having to deal with a year or two in a
junior dev role are also correct. No way am I recommending someone for a
senior role who hasn't had hands-on experience building and deploying software
professionally. I will happily teach that person and argue for them to be
promoted quickly once they prove themselves, but I can't just gamble and fill
a role with someone who looks like they might have an aptitude for it.

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

~~~
hnarn
Combining your existing competences is definitely the way to go. Like someone
posted on HN a while ago (I'm heavily paraphrasing): Being a developer is
boring, but being a lawyer/teacher/engineer that knows how to code gives you a
superpower.

There's room to improve things by coding in every field, so don't get locked
in the coding part. Think about what you know and how you can use that to
write code that solves real life problems.

If you're having a hard time finding jobs, maybe try a hobby project that is
somehow related to what you've done in the past. Having "domain knowledge" is
crucial for writing software that is actually useful. Like Linus Torvalds said
once, "without users, your program is pointless".

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

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

Interestingly, not having a college education will often get you passed over
there.

~~~
thewebcount
For a junior position, probably. If you have 20 years of industry experience,
but no degree, Apple, in my experience at least, couldn't care less. So long
as you can do the work. I have several friends without degrees who work there.
But they also didn't start there.

~~~
saagarjha
Yes, of course. Trying to enter the industry without a software engineering
degree is fairly difficult. If you have work experience, it gets much easier,
and most people don't really care about your degree at that point.

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

~~~
polishdude20
Yeah about releasing something I recently wrote and released an online game
that gets around 2000 plays a week. It's probably the closest I've come to
making something "commercial"

~~~
harel
Give your self more credit then. Building _and completing_ ANY game and having
it played that many times a week is a very handsome achievement indeed. Link
up and share :)

~~~
polishdude20
Oh I've already shared it here on HN but here it is: http:those.codes Enjoy :)

~~~
polishdude20
Dang, and I call myself a budding developer. Forgot how to do URLs properly...

Http://those.codes There :)

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

~~~
qmmmur
How did you manage to make the transition? I'm doing a PhD in music tech, lots
of coding but not necessarily commercial applications. I'm not sure academia
will work out for me as the jobs are so scarce and hard to get not to mention
the insanity of things like impact and the REF (UK). Any insight would be
great!

~~~
impatient_bacon
I made a bunch of mobile games with Unity that worked as a porfolio for Unity
Development jobs. I had been wanting to transition into more traditional
software development, and I was fortunate enough to be able to learn a front
end stack at my previous job. I made this project over nights and weekends,
and it was a significant factor in me getting my current job doing react
development:

[https://bitmelo.com](https://bitmelo.com)

My best advice would be to try to make projects that are undeniably good. So
good a company would be dumb not to hire you. Def easier said then done
though.

------
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]

~~~
H8crilA
There are many Physics/Maths graduates in FAANGs from my experience (and you
only find it out if you ask them, i.e. there's no noticeable difference
otherwise). Your degree is certainly not holding you back, this is not
medicine or law.

I had to explain how to use std::function and lambdas to a fairly high level
employee once (we were using C++). A Maths graduate (a PhD, actually).
Problem? No, he was really good otherwise, and he got how it works in less
than an hour. It is not complicated compared to what he normally did, he just
happened to never need to use it in the past.

Needless to say he wouldn't know how to do find-union or how to write a
compiler or write a formal spec for a programming language or how to compute
GCD with C++ metaprogramming or any other "theoretical" fun things you would
learn before you get a CS degree. It's not _that_ important.

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

~~~
chrismatheson
Just as an aside, for those of you looking to hire, I think engineers like
this are an untapped goldmine. Most are paid 2/3rds or less of an average
software dev (at least in the uk) but most have had experience programming and
all will have the sort of mind needed to ferret out problems at the
design/ideas stage of the dev lifecycle.

Hire all of them.

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

~~~
YawningAngel
It is not. I don't hold a degree and I've been offered jobs around Europe.
Certifications are mostly of interest to capital-E Enterprises.

------
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/](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).

~~~
barry-cotter
> 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.

You are making half of a new grad salary at a FAANG, if that. They have
offices in the Mid West. Please consider boning up on LeetCode or Elements of
Programming Interviews or Cracking the Coding Interview and getting paid much,
much more.

~~~
ge96
thanks for the suggestion

> grad salary at a FAANG

I need that mindset, plenty of work/opportunity/more pay

I actually was hit by Amazon/Google but I think that's just recruiters on
Linked In looking for "software engineer" matches in profiles. I just thought
with my "no degree" thing and that I'm not a heavy algorithm guy, I didn't
really see myself as a FANGULTAD person. The $83K is nice with my
means(single/midwest) but I'm still trying to get out of the debt that I
have/wasted from school that I didn't use with my "savings"/credit.

Since I don't have nice savings/investments I'm not really secure. It would
suck if I lost my job but I have a burn rate of close to a year.

> boning up on LeetCode

Yeah I was doing some. I know you should at least know the big O/sorting...
mainly so you don't make poor architecture choices.

I am making sure that I have value by learning a lot(granted I have stayed
away from Microsoft stuff as I never personally used it eg. setup an IIS
server) and I'm sold on React.

I don't know. I also think I'm aware I need to be on some meds or something to
be "truly performant" so I'm also looking for freedom as well(my own SaaS
products) but I don't have ideas currently and so I'm just a do-er at this
time. I also suck at all the scrums/meetings I feel like I make an ass of
myself all the time... so idk.

I'm also not a super maths guy eg. linear algebra/ML/AI stuff.

But yeah I know it's up to me "I'm not, I'm not, I'm not, etc..." so I won't
haha. And it is all about mindset as you pointed out, it's not a lot of money
elsewhere. The rent is insane there(SF) that's my monthly salary ha.

last edit: I would like to break 6 figures, that would be cool.

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

~~~
chrismatheson
Respectfully I’d dissagree. The OP has (at least I would read it this way)
that they can allready code. Hacker school time could be better spent
searching for the right fit of employer

~~~
renewiltord
That's fair and if I think about it an alternative path may actually be
finding a startup that will take a risk on someone.

To be honest, he just has to get past the L1 filter. Once he's in the stage
where he's interviewing the predominant dominator of whether he'll get the job
is interview performance not resumes.

So yeah, I've changed my mind. Probably well worth searching first before
falling back. I guess in my head I'd assumed he'd already searched
unsuccessfully but he never mentions that.

