0

I am an adjunct professor with a STEM PhD looking to break in to the tech industry. I completed my PhD about 3 years ago. At the time I did some work to prepare for data science jobs (online courses, a machine learning project, etc.) but I was unable to secure a job offer and had to resort to teaching.

Since then, I've done very little programming or "tech" work of any kind. I know I need to refresh my knowledge and work on some projects to build up my skills (and a portfolio) before hitting the job market. However, I am having a hard time figuring out what specifically to work on. I feel like there are so many things I could be doing that are interesting to me and potentially relevant for getting a job that it is hard to narrow down to a concrete topic or project.

I'm sure that part of the problem is that I don't have a specific job in mind. I think data science is probably closest to my personal interests, but I have the impression that it's hard to get a job doing data science, so I've sort of resigned myself to taking an entry level software development job if I can get one. So I need to start writing some code, but how do I narrow it down from there?

I apologize this question is overly broad, but I'm hoping there are others out there that have been in my situation or a similar one and have some experience to share.

2
  • Generally with a PhD you're going to be doing R&D rather than general programming. So any programming that is closely related to your specialization would likely be helpful. If, however, you don't care about your specialty and seek to be a general purpose software developer, then you should be clear with potential employers about that.
    – jwh20
    Commented Jan 11, 2022 at 19:14
  • @JoeStrazzere I wish I knew. I got one in person interview but didn't really get feedback on it. I was looking for entry-level jobs.
    – d_b
    Commented Jan 25, 2022 at 17:27

2 Answers 2

3

Here's an approach. There's often a separation of concerns within companies now that can be a guideline for you. Major "buckets":

  • Front end

The major concern will be either a single page application framework for web such as Angular, React, or Vue (these are javascript based). There are also mobile frameworks such as Xamarin, Swift. In this bucket the concern is look and feel and usability. Most of the data you use in this bucket comes from accessing APIs via web services that others create.

  • Back end

This "bucket" interacts with databases (RDBMS, NoSQL) and a host of other APIs for real-time and offline data processing. You'll typically be furnishing an API for front end developers to access.

  • Dev ops

This bucket has less to do with application functionality and more to do with how data and compiled applications get transitioned between development, test, and production environments. May involve some scripting but the heavy lifting is usually done with tools specific to the purpose of installing applications and moving data around.

  • Database

This bucket involves building database object (tables, views, stored procedures), and related queries for the sake of intake of new data, transforming data for sake of applications and reporting, and exporting. Plain-vanilla tasks won't involve a lot of "programming" but stored procedures can get quite complex in certain situations.

If I were you, I'd pick one of the categories above and figure out what stable development tools are being used within the category. You can get a lot of insight from looking at job offers on sites like dice.com. You want to invest your time in tools that have a large developer base and are well supported. Stay away from bleeding-edge tools that don't have a large following, at least during this stage of your career, because they can turn out to be a waste of time.

As a full-stack developer, I've done work in all of the above. In my opinion, the front end tier is the most volatile in terms of things changing, whereas the database tier is the least volatile. Most of my work these days is in the back end.

2

I have several suggestions on how to focus on technical job prep:

  1. Learn relevant technologies using online learning platforms (some are free, others are paid):
    • Codecademy.com has some free courses as well as paid ones; good for learning programming languages like Python, SQL, etc.
    • PluralSight.com has a large number of technical courses, including data science.
    • There are other platforms like Coursera, Udemy, LinkedIn Learning (formerly Lynda.com), and others.
  2. Read books like Cracking the Coding Interview.
  3. Start answering questions on Stackoverflow.com for the particular technologies you are interested in (e.g. Python, Numpy, Scipy). I recommend this because I found that a good way to learn things is if you can explain things to people. (There's also a Data Science SE.)
  4. Sites like Leetcode and HackerRank have programming problem-solving challenges. If you do these, you'll learn more about programming, data-structures, etc. A lot of companies (from startups to large companies like Amazon) use these types of questions to screen candidates.
  5. If you think of a personal project that you are interested in, add it to your GitHub account and make the repository public (and make sure there is documentation in the README file).
  6. Finally, start Applying to jobs. The more you interview, you more you will learn about the various jobs that are out there. You can get a sense of what the roles entail from a combination of factors: job descriptions, interviews, GlassDoor reviews, etc. It'll also be a feedback loop: you'll see what they ask during the interviews and you'll be able to work on your process.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .