So How Much Computing Should An Astronomer Learn?

I was asked this by a colleague after last week’s post on why astronomers have not taken to cloud computing. So I thought this week I would give my answer to this question.  What I think astronomers need to learn as part of formal instruction is

  • How a computer works and what limits its performance – when do I/O, memory, processing speed start to limit performance, and what a scientist can do about this
  • Languages – at least one low level language, preferably C, and at least one scripting language; my choice would be Python.  C is powerful – as it is close to machine language, it can perform bit-level manipulations, it is versatile, and a the best choice for many high performance apps.    Python introduces astronomers to object-oriented coding as well as a powerful scripting language with an easy syntax.  Armed with these two languages,  it becomes easier to learn IDL , Java and many other languages.
  • How to make code portable – Astronomers are much more likely nowadays to have to run their code on a remote computer, so they should learn how to develop portable code that is easy to maintain (component based design, avoid shared memory and avoid system calls…)
  • Parallel programming. Astronomers will process larger and larger volumes of data in the future, so I think they should learn how to perform parallel processing – MPI, vectorizing code etc
  • How relational databases work,  their theoretical basis (set theory), and how to design relational tables
  • Computing platforms – clusters, clouds, grids. What they are and when  to use them.

Of course, in a few years, I might advocate different technologies, such as computing on mobile platforms, if that takes off in science.

Advertisements
This entry was posted in Astronomy, education, software maintenance, software sustainability, Uncategorized and tagged , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s