Getting Started as a Researcher
Motivation and Mission Statement
- To become a scientist is to dive into the unknown on behalf of the
human-kind, it is never an easy job but can be very rewarding as
well. It is good idea to always check your motivation, think about
your mission statement, and confront your career and personal choices
sincerely.
- Choose Your Own Adventure: Developing A Values-Oriented Framework
for Your Career by Lucianne
Walkowicz
- I think you should read this, every word of it, before you read
anything else. This is probably the best career advice I have ever
read. I worked on my mission statement right after I read
this.
Inclusiveness and Community Building
ORCID and Google Scholar
- ORCID provides a persistent digital
identifier that distinguishes you from every other researcher and,
through integration in key research workflows such as manuscript and
grant submission, supports automated linkages between you and your
professional activities ensuring that your work is recognized.
- It is a very good idea to register an ORCID and maintaine it from
time to time.
- It is also a good idead to start a Google
scholar page
Choosing a Programing Language
- It has become clear that Python has
become the new Lingua franca in astrophysics and cosmology research
and it is probably the language you want to learn first. We also
prepare a series of lists to collect Python related resources and
tools, including basic learning materials for
Python
,resources on improving the performace of
Python,
on model fitting or optimization in
Python,
on statistical analysis and model in
Python,
on data visualization in
Python,
on getting started with your own Python
project.
- C and
C++ are still at the core
of many important astrophysical applications, e.g. numerical
simulations, data reduction or analysis that requires high efficiency
or good performance. Many important astrophysical softwares use C
or C++ as the core and then wrap it up using Python. Here we
also provide some basic resources for using
C
and
C++
in research.
Fortran is another
historically important language known for its excellent numerical
performance. Its influence in astronomy is decreasing right now, but
you will still see it in scenarios that rely on high-performance
computing.
- Julia is another intersting high-level
programming language on the rising. There are several key advantages
over
Python
but it is still a young language. Right now, Julia tools for
astronomy and astrophysics are still limited, but we decide to start
to collect relevant resoures and
tools
- At the same time, R
statistical language also has some interesting applications in
astronomy;
IDL
was yesterday’s language for astronomical data reduction, but for
historical reasons, many projects/instruments are still using it. If
you just start your research in astronomy, we no longer recommend you
to learn it. But in case you have to face it in research, it is not
difficult if you have a background in
Python
- Although their applications in astrophysics are limited,
MATLAB is widely
used for data reduction and numerical simulation, and
Mathematica is a very
popular tool for symbolic analysis and theoretical research. Neither
of them is free, so please make sure you have the correct license to
use them.
- And it never hurts if you can learn some basic programming skills
related to webpage making,
e.g. HTML,
CSS, and
Javascript.
- It is also important to remember: never tool-shaming others!.
There are excellent scientists who still rely on IDL,
IRAF, Fortran for
research, and using
SuperMongo or
gnuplot for data visualization. There
are plenty of personal and practical reasons to do so and they can
still do great science. Use your energy for something more positive
and productive.
Organizing Your Research Project
- GitHub or any other on line code
repositories (e.g. GitLab,
bitbucket,
coding) can help organize your
scientific project. It can help you do version control, back up
research results, and also share results and code with the community.
- And GitHub allows you to create new repository based on a
template
- There are template available that can help you get started:
- If you want to start a package as your project, you can try
cookiecutter - A
command-line utility that creates projects from templates for Python,
Javascript, Ruby, Markdown, CSS, HTML etc.
- If you are interested in using astropy as a good template for
Python project, the astropy package
template is
available too.
Organizing a Programming Environment
- Before starting some serious projects, you should be a little more
patient on the learning curve and try to cultivate some good habbits.
Good examples are everywhere!
- Don’t waste too much time choosing editors or IDEs, just pick the
first one you like, learn how to use it; if it does grow on you,
change to another one. Both vim and
emacs are excellent tools;
atom,
VScode, and
sublime are all very good IDEs.
They all have amazing capabilities and can help you become a
great coder and scientist.
- There are some useful resources that will save your time setting up
the environment:
Backing-up Your Research
- This is as important as you can possibly imagine.
- Off-line Backup:
- You should constantly back-up your harddrive using external
harddrive. Both MacOSX
(e.g. TimeMachine)
and Linux (TimeVault and
Duplicity) have systems that
help you backup data.
- You can also easily backup your entire system or certain directory
using a command line tool
rsync: rsync -av –delete
/Directory1/ /Directory2/
- On Linux, you can also use
Cron
to automatically backup files at any given time. For example,
you can follow the instruction
here
- Online Backup:
- It is encouraged to use service like the
Dropbox to constantly backup
important research-related files (e.g. draft, code, and figures).
In mainland China, jianguoyun
(坚果云) is an alternative.
Keeping Research Notes and Documents
- Markdown is a
lightweight markup language with plain text formatting syntax. It is
very easy to learn and can help you make well-organize notes and
documents that can be easily converted into other format (HTML or
LaTeX).
- Mastering Markdown by GitHub
Guides
is a very good start.
- If you want to learn more details, use the Markdown
Guide.
- Most of the editors and IDEs support the .md or .markdown
format documents through extensions. They can help you check the
syntax. There are also a lot of markdown editors on all platforms.
- Whatever notes or documents you are keeping for your research, make
sure it can be backed-up and is searchable. Using software like the
OneNote from
Microsoft, or on-line service like
evernote would be a good idea. If your
project is already on Github, you can just use git to version
control and back-up your documents. GitHub wiki
pages are another
great way to keep notes.
Sharing Your Science
Talking about Your Science
- It takes a lot of practice to know how to give a good talk, but there
could be some useful tips to follow:
Making a Scientific Poster
Reading Paper
- It is important to read as much as you can. It is important to follow
arXiv regularly.
- You can check if your institute is using
voxCharta, a on-line platform to
vote on papers and organize arXiv discussion.
- It is good idea to have a routine that keeps record of interesting
papers. Here is an examply by
me
- Astrobites is a very good website to
follow recent interesting papers from the perspective of a graduate
student.
On Using arXiv and SAO/NASA ADS
Communicating with Others
- Slack has become the most common way to
organize a small collaboration. Even the free version can be very
useful.
- Telecon becomes more and more frequently used to communicate among
collaborators in different institutes and timezones. Commonly used
telecon tools including Skype,
zoom,
GoToMeetings
- All of these tools are free and cross-platform, and easy to use.
You can share screen using them for remote presentation too.
- Doodle is the most commonly used
tool to create a poll to decide the time slot for a meeting or
telecon.
Personal Website
- It is actually pretty important to have a visible personal website
that links your CV and contact information. Make sure that it can be
found by search engine.
- This is especially important if you try to find job in another
country (e.g. get a PhD in China, want a post-doc job in Europe) or
when you know the hiring committee is not familiar with you.
- GitHub Pages is pretty good choice to
make a nice-looking personal website. And there are some easy-to-use
templates available, and there
are more fancy ones
available
- al-folio - A beautiful Jekyll theme for
academics
- This is a pretty good template for academic personal wesbsite
- Good examples (personal choice: clean and informative)
Conference and Talks
On-line Colloquium
- With Youtube, it is pretty easy to enjoy great astrophysical
colloquium in universities and institutes all over the world. Here
are a few good channels to get started: