Hacker News new | ask | show | jobs
Ask HN: Doctor turned self-taught developer. To do a master's in CS or not?
3 points by drhectapus 2976 days ago
Hello HN,

I come to you guys in search of solid and honest advice.

I'm 30 years old doctor turned self-taught developer. For the past 12 months or so I've been teaching myself programming through use of Freecodecamp and Udemy courses.

My main skill set right now is web dev, but my main interest is in health tech and ideally I'd like to be working as a software engineering in the healthcare space working with patient data, medical imaging and other more complex stuff.

I must say that my programming career path has not been straightforward. Unbeknownst to me, I didn't realise that coding != programming and if I want to become a software engineer I would need to get a solid understanding of computer science. It is for this reason that I've recently started to focus more on the fundamentals of CS like DS&A.

It is also for this reason that I've applied to go back to university to do a Master's in CS.

However, during this time I've also been applying for jobs and recently was offered a job at a health tech startup where they want me to work on an AI symptom checker chat bot.

So now I'm a bit torn. I really want to get a solid understanding of CS so that I can become a knowledgeable software engineer and work in the healthcare space in the future.

But at the same time, I feel like I can also learn whilst on the job and actually, this style suits me more as I consider myself more of a practical learner than a book learner.

So HN, all other factors put aside (like money), what would you do in my shoes: to go back to university or not?

4 comments

The only advice I can give is from my perspective as an employer at a large SaaS company recently. As CTO I was responsible for building a large team covering various skills, including a large number of software engineers. My experience led me to a position where I would actually favor candidates who had significant experience over those with academic qualifications. I have often found, not always but often, that highly qualified engineers need to be "retrained", as software development in the commercial world is (IMHO) a very different discipline to that taught in academia.

I should stress, that my experience is in very specific fields, visual effects, games, retail intelligence, VR, and this may colour my advice. It is entirely possible, in fact likely, that academic qualifications are more valuable than experience in other sectors. I would advise researching the nature of the sector you want to work in, if possible speak to various companies and agencies who specialise in that area, and see what the general expectation is. You may find that a lack of formal qualification might hinder you even getting to interview.

Summary, I personally don't feel that academic qualifications hold any particular value over experience, and strongly believe that someone who is motivated to learn themselves brings value in a different way to a business. But that might not be the opinion of every business or sector, so be careful.

I would recommend going to university and doing that Masters in CS. Mind you, it could be a pretty steep learning curve not having done any undergraduate work.

My rationale is simply that as a self-taught coder, you are unlikely to have a solid grasp of the fundamentals. It is the fundamentals that will support your work in the long term. As you hare discovered coding is only a small part of the total knowledge required to be a competent software engineer (and I use that term deliberately).

The complex stuff that you would like to work on will, sooner or later, require more than programming knowledge. In the long term your additional education will make you far better prepared to handle the intricacies of your intended work.

In closing, it is rather like the distinction between a pharmacist and a general practitioner. They both know the names hundreds of pharmaceutical products. But only the GP is qualified to correctly diagnose the patient's condition and thus optimal prescription(s). In simple cases the pharmacist could probably make a diagnosis and supply the correct drug, but it might not be based on the same thorough examination and diagnosis that the GP would make. In complex cases the latter approach could have adverse effects. Fortunately in medicine there is a protocol that avoids such problems. In programming there are no such protections.

Yes I am thinking along the same lines too. Thanks for your answer!
[random internet remarks]

Is your goal to work as a programmer or go to school? Neither is right or wrong. It might be both depending on the short versus medium term. It might be neither (i.e. the goal might be getting out of medical practice instead -- again nothing wrong with that). Good luck.

My goal is to work as a software engineer in the healthcare space and improve the state of patient data (because I think it's currently abysmal). I'm interested in making medical data less fragmented, more accessible and more secure. I believe blockchain could be a viable solution so naturally I am also interested in blockchain.

Obviously I want to work as a programmer, but I'm wondering if my goals, which require specialised knowledge in topics like security, encryption, cryptopgraphy, medical imaging, databases, would be better learned in university than from a job.

Some random remarks:

1. Working as a software engineer in healthcare and improving the state of patient data are two different goals. One is technical and vocational and the other is largely a matter of policy and economics and outside the scope of working as a software engineer in healthcare.

2. Engineering is usually a matter of combining existing systems. Detailed academic knowledge of databases is very interesting and mostly irrelevant to engineering an information system that contains databases because there are lots of good databases and because what makes one or the other better is nature of the problem to which they are applied.

3. The same is true for encryption and security. It's a matter of picking tools and/or hiring experts. It's not robustly implementing one's own elliptic curves.

4. There's nothing wrong with pursuing a CS degree for the sake of learning. Just realize that successful engineering is a matter of collaboration and "knowing which table to look at."

You do need to have a foundation which you can learn in a university but also outside a university. My bet is that you can learn it faster and cheaper outside university.
Are you suggesting I go through the self-taught route and learn from MOOCs and books instead?