Working on a cross-disciplinary project, in an increasingly cross-disciplinary field, I often find myself wondering whether or not I am developing skills in multiple different areas of my work. I intend this question to be as general as possible, but for the sake of clarity I will give my case as an example:

I have a MSc in applied mathematics, and have been working with biomedical research for three years now. Being branded as a bioinformatician I feel very appreciated on one hand, and absolutely disregarded on the other. In many cases I am expected to learn more of the biology and develop an understanding of "the real science" while all the tools and analysis should just work. I mean many of the seniors have absolutely no idea of the time and effort it takes to develop at software tool, maintain and further develop it. It appears as all that is given once and for all in the engineering school, after all programming is just programming... (please note the sarcasm here)

Be as it may, I have been trying to improve my knowledge and experience in the technical aspects of the work on my own; learning new algorithms, new languages, new tools... It is surprisingly hard to get accustomed to these when you are not in the university anymore. Consequently, I have given up on learning Maven for my Java projects, or Perl for speeding up my day-to-day scripting.

So my question is; what are good methods for learning or developing techniques that are not immediately in the scope of your project but is still very relevant in your development as a scientist?

Follow up question: am I mistaken in thinking that I should develop a broad set of skills in order to become as efficient and competent as possible?

  • 6
    The more skills you have, and the more easily you can acquire new ones, the more valuable will be to future employers.
    – aeismail
    Jun 17, 2013 at 21:11
  • 1
    Do you mean learning other scientific areas, or technical skills (e.g. related to programming), or programming in particular, or other skills in general (including soft skills)? Jun 18, 2013 at 17:08
  • @PiotrMigdal I was thinking in general terms (to make the question relevant for others as well). I am thinking of skills that are/could be useful for your research but not directly seen as a part your projects.
    – posdef
    Jun 19, 2013 at 10:02
  • @posdef There may be a difference in how it is perceived to e.g. learning about other field and e.g. software dev (in the later, I am somewhat afraid to do it in the public in academia). Jun 19, 2013 at 10:40

4 Answers 4


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.

  • 1
    I am a fulltime PhD student at the university. By that sentence I meant that I am not enrolled in the courses given at undergrad or masters level. PhD courses I took/will be taking are focused on my field, and provide little flexibility towards "peripheral" subjects.
    – posdef
    Jun 17, 2013 at 20:15
  • 1
    +1 for telling people how much work the requested feature takes. Also for telling people that testing (and writing nice and readable and reusable code) needs lots of time. Jun 18, 2013 at 15:32
  • 1
    @posdef, I see. That's a different game, as your time will hardly be considered of much monetary value by your professors. But the limited amount of time that you have in your day is still a valid argument, and that's what you should be presenting. On the other hand, if you don't report your time, it is also somewhat easier to keep developing your "side" skills. You would want to talk to your adviser as to why you want to do this, how much time you want to spend, and identify the specific skills you want to acquire. You can even ask them to cover online courses or short courses at conferences.
    – StasK
    Jun 21, 2013 at 0:17

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.


Am in a very much similar situation as you, doing a PhD in physics - however, there is strong connections to biology, photography and signal processing - but very specific topics therein.

A couple of methods that I use on top of what has been mentioned are:

  1. Join stack exchanges, forums and discussion groups of similar topics

  2. Set myself challenges to determine something new, partly relevant to my studies, but also to build my skills in that topic.

  3. Attending conferences, workshops and seminars (as many as time and funds allow).

  4. But one main method that seems to work particularly well is setting up 'Google alerts' of specific topics - I always have a great reading list.

You must log in to answer this question.

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