"Research is what I am doing when I don't know what I am doing," Wernher von Braun
The defining characteristic of research is everything---from motivation to methods to evaluation to goal---is tentative: in the middle of doing research, you don't know what will be the end result. As a consequence, a researcher will suffer from:
-
Failure everyday. You don't know what you're doing, so you'll fail almost always. To deal with the frustration from such failures, you should be mentally tough enough to tolerate such frustration. If successful, from time to time you will be able to understand or design small things, which accumulate to a paper and a thesis.
-
Changing plans. You don't know what you're doing, so your goal will be changing as you make progress on your project. So any long-term plan is destined to be significantly revised. Thus you should think of the goal as a ever-moving target, the current version being just the best possible approximation of the actual end result. Your goal should be neither too concrete nor too abstract: if too concrete, it will not be resilient to the revision; if too abstract, it will not guide your research.
All communication (except for Mattermost and face-to-face meeting) is asynchronous: the receiver is not required to reply promptly. Mattermost chat in work hours is supposed to be synchronous: the receiver is requested to reply promptly.
When you first come to the lab, please do the following instructions:
- Create {firstname}.{lastname}@kaist.ac.kr email account.
- You can add "additional account" in mail.kaist.ac.kr > Settings > My Account > Additional account.
- If it is already taken, add a number at the end of the id, e.g. {firstname}.{lastname}07@kaist.ac.kr
- Send your email address and GitHub ID to jeehoon.kang@kaist.ac.kr.
- Your GitHub ID will be invited to
kaist-cp
organization. - You'll get {firstname}.{lastname}@cp.kaist.ac.kr G Suite account.
- You'll get a Mattermost account in https://cp.kaist.ac.kr/mm.
- Use {firstname}.{lastname}@kaist.ac.kr email account for all work emails.
- Forward all {firstname}.{lastname}@kaist.ac.kr emails to {firstname}.{lastname}@cp.kaist.ac.kr and check emails in Gmail.
- Configure the Gmail account to send from {firstname}.{lastname}@kaist.ac.kr.
- Write proper formal emails.
- Try to reply within 12 hours.
- Use {firstname}.{lastname}@cp.kaist.ac.kr account for calendar and other G Suite applications.
- If you want to have a meeting, just directly invite the others in Google Calendar. In the invitation, write the purpose of the meeting.
- All work should be done in the
kaist-cp
organization. - If you want to create a new repository, ask Jeehoon.
- Get email notification for mentions and issue/PR comments.
- Instant messaging service at https://cp.kaist.ac.kr/mm.
- Try to reply promptly in work hours. (No need to reply in other times.)
- At the beginning of each work day, briefly state what you'll do that day at this channel.
-
Before asking for a meeting, write down a short meeting agenda and share it.
-
In the agenda, clearly state the purpose of meeting. It can be, but not limited to: (1) reporting the progress, (2) asking questions/opinions, or (3) just chatting.
-
Try to be direct, top-to-bottom, and conclusion-first (e.g. not "A, so B, so C", but "C, because B, because A").
-
If you have multiple things to discuss, enumerate them at the beginning of a meeting for better planning of the meetings.
IMPORTANT: no password should be written here. It's a public repository.
- Wifi:
kaist-cp
at Rm. 4441, Bldg. E3-1, KAIST - Printer:
192.168.0.10
in the WiFi network; AirPrint protocol
- Create your website at https://cp.kaist.ac.kr/{firstname}.{lastname}.
-
Fork our website repository and clone it.
-
Install dependent libraries and run a local server to test by following commands:
# Make sure Ruby is installed. $ bundle install $ bundle exec jekyll serve
-
Add your meta information(name, status, github ID, etc.) to
people.yml
. -
Make a new file
{firstname}.{lastname}.md
under the directory_people/
. -
Write your concrete information on the
{firstname}.{lastname}.md
. I recommend you refer to_people/jeehoon.kang.md
. -
Make a commit, push it and PR.
-
- Make sure you know how to use Git. FYI, this tutorial is a good introduction.
- Study the following programming languages depending on your research interest:
- Rust, or
- Coq (by reading Software Foundations Volume 1).
- Read how to read papers and give talks by Dr. Derek Dreyer:
- How to write papers so people can read them, PLMW@POPL 2016
- How to give talks that people can follow, PLMW@POPL 2018
- How to write papers and give talks that people can follow, PLMW@ICFP 2017