
Ask HN: Dentist looking to switch to software engineering. Any tips? - disliketeeth
I&#x27;m a 34-year-old dentist that is looking to completely switch careers to software. It is not because of the pay, it&#x27;s just that I don&#x27;t enjoy my job and I&#x27;ve always been fascinated with computers. I have saved up for two years&#x27; worth of living expenses and some extra savings to pay for schools or bootcamps. What do you recommend? Any books, schools, bootcamps?
Thanks.
======
tptacek
My advice is to be careful about the terminology you use. I'm guessing from
your brief question that what you really want to be is a software _developer_.
The industry variably calls people who that work "developers", "engineers",
and "programmers", but on a message board, people gate-keep "engineering" \---
if you're not especially interested in formal methods, which 90% of software
developers aren't, you're not looking to do the thing the gatekeepers might be
saying you shouldn't do. "Developer" is the most neutral title you can want.

My best guess as to how to move forward: pick a high-level language --- Ruby,
Python, or Javascript (Node), but _not_ Rust, Go, Clojure, or Haskell. Find a
straightforward project that interests you and learn how to build it. If your
project takes the form of a Rails or Django application, you'll have an
especially easy time self-teaching yourself.

I would earnestly try to get this done _before_ considering any kind of boot
camp or paid class.

People will be quick to point out that you're only N% of the way to being a
software developer by getting to the point where you can bang out a Django or
Flask application, and they're right, but you're 80% further down the path of
_learning how to learn software development_ , which is the important thing to
optimize for. The trick after getting that far is to keep ratcheting up your
ambitions, so that the next project you do is harder and a better learning
experience than the last.

------
p0d
You could be a business waiting to happen. I can imagine with your experience
you could identify problems in the field of dentistry which need solving. Why
not consider partnering with a developer and come up with a solution? There’s
nothing to stop you teaching yourself at the same time.

------
new4thaccount
Do you already know how to program? If so, what languages and how proficient.
It sounds like you've been thinking about this for awhile, but don't rush into
anything.

There are some edx online courses for free and plenty of programming books to
get you a little experience to see if you even like it. Bootcamps might be
able to get you a job and they actually focus on more of the practical
building of software, but a computer science degree still looks better to many
employers from what I've heard. Having an advanced degree already might help
fill that void though. If you haven't programmed before, you may not actually
like it. I'd recommend doing some small to medium sized projects first to also
get a feel for it.

~~~
disliketeeth
Thanks a lot for all the tips! I only know a little bit of JavaScript, not
nearly enough to get an entry-level job though. I've been thinking about
getting a degree in CS.

~~~
new4thaccount
JavaScript is useful and pretty much the language to learn for web programming
(frontend development) if that is your cup of tea (php is another option).

If you're writing business applications, you'll want to know something like
Java (although they both have Java in the name they are completely different
languages), C#, or maybe Python depending on what you're targeting. At some
point you'll be dealing with databases and will have to learn SQL. A lot of
business programming is what they call "full-stack" in that there is a web
portion (often in JavaScript), a server portion (often in Java although there
are many options here) which represents the "back-end" and a database which
stores the data.

Doing embedded development on microcontrollers? C or C++ are both good.

Data Analysis? R, Python, or Julia and SQL will be a lifesaver.

Scientific programming? Python, Julia, Matlab/Octave/Scilab, Fortran, and C++
are all helpful.

In short, there is a lot of tools, languages, and frameworks out there. Don't
let that freak you out though. You'll learn as you go by starting in one area
and probably picking up pieces of other areas as you go.

------
dual_basis
Not a recommendation for how to learn software engineering, but rather a
suggestion because I know your industry: team up with a good software
developer and build a SaaS to replace Eaglesoft.

~~~
disliketeeth
hahaha! It gets the job done, though!

~~~
dual_basis
I'm quite serious. It is a very badly written piece of software with a huge
amount of legacy code. The moat for new competition is wide, because it
requires knowledge of all the intricacies of dental practices as well as
agreements with insurance providers and hardware manufacturers, but there is
also serious money to be made here, as I'm sure you know. Your knowledge and
background would be extremely valuable in a consulting capacity to a software
team. I have often contemplated doing it myself, from a software engineering
point-of-view it is low-hanging fruit, it just requires someone to do the
legwork of logistically connecting it with the existing dental tech
infrastructure.

~~~
disliketeeth
That's definitely true, but I'm really sick and tired of anything that has to
do with teeth. Let me know if you want to work on it and I might be able to
give you some feedback as a user!

~~~
dual_basis
Fair enough :)

My recommendation would be to check out CS50:
[https://www.edx.org/cs50](https://www.edx.org/cs50)

~~~
sn9
Seconding CS50.

This site can fill in the rest:
[https://teachyourselfcs.com/](https://teachyourselfcs.com/)

------
hackermailman
What you should do is remain a dentist but develop a hobby rewriting the
terrible software dentists have to use, then sell it to other dentists you
know. The other day mine was complaining about his Microsoft based XRay
software, and his appointment keeping software looked pretty frustrating too.

------
yitchelle
One thing to consider which industry you want to focus on. This might be
interesting because many aspects of it is different. ie time to market, size
of team, complexity etc. It all adds to how much you will enjoy your
transition to software.

------
Nomentatus
If you haven't programmed, and don't have a strong math/logic background,
beware. This is a bit too much like deciding you're going to be a concert
pianist at 34. I've only known one person to try a similar career move, and
she crashed and burned. General IQ isn't quite what's needed.

~~~
tptacek
Software engineers would dearly love this to be true, but I see very little
evidence that it is. I've worked with late-career switchers and I've worked
with 16-year-old interns and all points in between and have seen no
correlation between age-at-first-contact with this field and aptitude. We are
not concert pianists.

Incidentally, concert pianists are probably also not concert pianists, in the
setting you want this comparison to apply. Yes, if you want to play with a
major orchestra or win a classical grammy, you probably need to have been
playing since you were 4 years old. But virtually no-one in our field operates
at that level (despite a large cohort of developers who think they do); we
are, almost all of us, constrained more by our environments than our
potential. If the market for concert pianists was isomorphic for that of
software engineering, a late-career switch to concert pianisting would also be
reasonable to contemplate.

~~~
kasey_junk
> software engineers would dearly love this to be true

No we really wouldn’t. What I’d dearly love to be true is lots & lots of
people to be given the opportunity to try the basics of writing software & the
more complex stuff to be taught more plainly.

Even at the outer edges of the industry complexity spectrum we gatekeep way
too much.

------
sergiotapia
Pair up with an engineer and build a terrific dental software package.

------
nellypat
I switched to SE in my 30s too! I strongly recommend building a few projects
on your own. Helps with learning AND getting a job! Good luck.

