Ways of developing non-core skills during PhD studies?

My goodness, but this is a tough one. We all learn and maintain our skills in our own unique way. Especially in industry or when operating independently, so it's difficult to say what would work for you. I'm in a similar situation except that I'm a developer first and I've been tasked with 'just making security happen'. Much like with you and bio-med, there is an awful lot that is changing in the landscape of info-sec and staying sharp in both domains is a real challenge.

That said; your mileage will vary but here are some techniques that work for me.

Find overlapping areas: When I started to move toward developing a new aspect of my skill set I looked for areas where the old and the new overlap. Luckily for me; this was a pretty easy thing to do with infosec and software development. The benefit here is that it allows you to leverage your existing skills in a new area. If can can find areas where you can turn two jobs into one you can ease your way into it, rather than just sitting down one weekend and deciding "I'm going to learn X.".

Sit down one weekend and decide "I'm going to learn X.": Sometimes there is no easy overlap to ease your way into a new tech or topic. In those cases I've found that a couple of days in power study mode can be a real benefit. Strap on the headphones, coffee up it that's your thing, and just read the literature & work problems. If it's tech then do tutorials. If it's topic then vacuum up as much as you can.

Find mentors: Maybe you can't find the all encompassing guru of everything you want to do, but that's OK. Someday that guru will be you. In the meantime find people with expertise in your subject areas to help you fill in the gaps.

Keep it fun: If at all possible and whenever possible. If you hate what you're doing then you're not going to do it well. At least that has been my experience.

Don't give in to the temptation to 'dumb it down': You're a smart person. You've taken the time to learn a new skill. You've actually read the materials. You work hard to develop and maintain a system that crosses a number of subject matter domains. Don't let people off easy when they ask hard questions; give them hard answers. My approach is to ask them 'do you want an answer or a response?' If all they want is a response that's OK. I give them a short and succinct response. If they want an answer then I do my best to provide the most exhaustive and thorough explanation of what I do, that I can. When I work hard to learn a new skill I don't need to show it off but I won't let it be taken for granted either.

Well, that's what I've got. All the best to you in your endeavors. If you ever need Java help feel free to grab me on chat and I'll get you an email address.


My understanding from "I am not in the uni anymore" phrase is that you work in some of sort of industry or semi-academic environment. If that is indeed the case, you are probably filling in time sheets for you work; if that is the case, you should be telling your superiors, "This feature that you requested requires 10 hours of immediate development, and another 20 hours to test it properly. How high do you want me to put it on the priority list?" It is unfortunately a little late for you to start talking like that, as you have been used as an ultimate programmer-who-can-code-anything-without-any-problem for three years now. But you can also bring it up in the sense that "I am getting a variety of requests that I must process one by one", and then put the feature value-vs-development time trade-off.

What you are asking, actually, is even more advanced: you need to reneg for some 5-10% of your time to be spent on professional development so that you can continue improving as the applied mathematician on the job. Again, you can say that this process will eventually pay off as you will do things on the projects faster. That's a tough sell given that your time is needed for actual research.

You might want to ask something like that on the "main" StackOverflow website: how people continue training themselves on the job. In an academic setting, you as a student could just commit yourself to write your next thing (be that a research publication or a term paper) using the new tool. In a production environment, you don't have that luxury of being able to make some errors and give yourself some time to recover from them. So once again, that's tough.


Some methods I have found:

  1. Taking courses in the field you want to learn.
  2. Learning from books in the field you want to learn. Best done in a learning group of people with a similar background.
  3. Working with experts in the field you want to learn.
  4. Taking on research projects in the field you want to learn.

Remember that your PhD is the best time to gain this knowledge - later you will be much more busy with other things.

Finally, bioinformatics and computational biology is a bit of an odd field because you need to know math, biology, chemistry, physics and computer science (I won't detail all the subfields, but there are dozens). My point is that this is a HUGE field - don't expect to be an expert in every possible aspect. Instead, it is better to find a niche which you enjoy and become an expert there - but always keep your mind open to learning new things.