肖同學,夢想著進入美國名校讀計算機專業(yè)碩士。為此,參加美國名??蒲校黾訉W術(shù)背景,開拓視野,獲得真知。通過美國名??蒲欣蠋煹闹笇?dǎo),在2018年的暑假申請到了加州大學伯克利分校計算機專業(yè)的科研機會。在科研結(jié)束后的第6個月,學生收獲了圣路易斯華盛頓大學的碩士錄取信。
下文是學生在科研學習的過程中所寫。供學生家長參考。
注:中文譯文是編輯進行的整理,英語能力較好的學生和家長建議直接閱讀英文。
My research report in UCB
Honestly speaking, the research experience was so good that I really wanted to stay in UCB for more time. This month is memorable and valuable that I learned a lot not only about the academic learning but also concerning the local culture. And this experience more or less enforced my determination to continue my academic study in America in the future.
老實說,名??蒲械慕?jīng)歷是如此的好,我真想再停留更多的時間。這個月是值得紀念的。可貴的是,我不僅學到了學術(shù)知識,而且體會到了美國文化。而這種經(jīng)歷或多或少地讓我決心繼續(xù)我在美國的學業(yè)。
Talking about my research, I’d like to divide it into three period, each period brought me different thinking.
談到我的研究,我想把它分為三個時期,每個時期都給我?guī)砹瞬煌乃伎肌?/p>
Before I went to the UCB, I had already known the field which my mentor, Carl is focusing on as well as my project, implement a NAT in a VPN. Therefore, I read some papers to do some preparation. At the beginning of my project, mentor Carl taught me a lot about the basic knowledge, however, I still couldn’t understand the meaning of the NAT implementation. It was a shame to mention that to start my project and comprehend the interrelationship between NAT and VPN, I spent at least twelve days. And to truly understood this process was so hard for me at first, I have to say that even I did know the basic routine of the packet transmitting via the Internet, I still could not decide where should I start and how should I do. Although this period was absolutely the worst for me, with the help of mentor Carl, I finally overcame the problem and started my programming.
在我去學習之前,我已經(jīng)了解了我的導(dǎo)師Carl所關(guān)注的領(lǐng)域以及我的項目,在一個VPN中實現(xiàn)了一個NAT。因此,我讀了一些論文做一些準備。在我的項目開始時,導(dǎo)師Carl教了我很多關(guān)于基礎(chǔ)的知識。然而,我仍然無法理解NAT實現(xiàn)的含義。提起這件事,真是太遺憾了。項目和理解NAT和VPN之間的相互關(guān)系,我至少花了十二天時間。真正理解這個過程是開始對我來說太難了,我不得不說,即使我確實知道通過互聯(lián)網(wǎng)傳輸數(shù)據(jù)包的基本程序,我還是不能決定。我應(yīng)該從哪里開始,我該怎么做?。雖然這段時間對我來說絕對是最糟糕的,但在導(dǎo)師Carl的幫助下,我終于克服了這個問題,開始了我的編程。
In the following ten days, I generally complete my program framework. My initial plan was to get the public ip address and extract the information from the data packet. So I have to calculate the exact position of the protocol, source address and something else. After this process, I have to call a function to find out the type of ip header. Then establishing the NAT map according to the situation.
在接下來的十天里,我大體上完成了我的程序框架。我最初的計劃是獲取公共IP地址并提取來自數(shù)據(jù)包的信息。因此,我必須計算協(xié)議的確切位置、源地址和其他東西。在這以后,我必須調(diào)用一個函數(shù)來找出IP源頭的類型,然后根據(jù)情況建立NAT地圖。
At first, I did not know how to record every ip address in a diagram. My mentor gave me some advice that maybe I could try to use the hash map. Moreover, the rust language has already contained the hash map. Then, I spent a couple of days to learn how to use hash map function in rust, read some documents and try some easy program. After I was quite familiar with its usage, consequently I accomplished my first version of NAT. However, after my first attempt, I found that my program was so repeatedly and I have to put all the functions together. So I continued to modify and improved my whole frame. And it was really interesting that I merely changed my program everyday.
起初,我不知道如何在圖表中記錄每個IP地址。我的導(dǎo)師建議我或許可以試著使用hushmap。此外,rust語言已經(jīng)包含了hash map。然后,我花了幾天時間學習如何使用hash map。閱讀一些文檔,嘗試一些簡單的程序。在我對它的用法相當熟悉之后,我就完成了我第一個版本的NAT。然而,在我第一次嘗試之后,我發(fā)現(xiàn)我的程序太重復(fù)了,我不得不把所有的函數(shù)都放在一起。所以我繼續(xù)修改和改進我的整個框架。每天都改變自己的程序其實很有趣。
In the last ten days, I started to compile my program. Obviously I had a lot of faults to fix. Firstly, the type of return value didn’t fit. Secondly, the method to change the type. During this process, my mentor suggested me that I could establish a structure for NAT and put all the functions into the impl part of the structure. It is true that after I put them into one structure, the whole program looked more clear. But the worst thing is, when I wanted to change the type of data to the type of IP address, how could I directly modify the source data? I had to admit that it was my own problem that I still did not get familiar with rust. So after I fixed one debug, there could always appear more problems which were so bothered. Also, when I finally solved all the problems, I still could not use the transmute function, it was an unsafe function. After reading some documents and asking my mentor, I solved it perfectly and finished my whole project.
在過去的十天里,我開始編譯我的程序。顯然,我有很多問題要解決。首先,返回值的類型不適合。其次,改變類型的方法。在這個過程中,我的導(dǎo)師建議我可以為NAT建立一個結(jié)構(gòu),并將所有的函數(shù)放入結(jié)構(gòu)的隱含部分。確實,在我把它們放在一個結(jié)構(gòu)之后,整個程序看起來更加清晰。但最糟糕的是,當我想將數(shù)據(jù)類型更改為IP地址類型時,應(yīng)該如何直接修改源數(shù)據(jù)呢?我不得不承認,我仍然不熟悉Rust,這是我自己的問題。因此,在我調(diào)試了一次之后,總是會出現(xiàn)更多麻煩的問題。當我終于解決了所有的問題時,我仍然不能使用轉(zhuǎn)換函數(shù)——它是一個不安全的函數(shù)。在閱讀了一些文件并詢問我的導(dǎo)師之后,我完美地解決了這個問題,完成了整個項目。
The process was not easy, and every time when I fix my debug, I felt so frustrated and a little bit collapsed. But I never give up.Meanwhile, I also noticed the American students’ attitudes toward science research. In China, the teacher would show you how to do but seldom tell you why. What’s more, nowadays, China’s researchers always pursue the creativity rather than preciseness. In fact, the most significant thing we should do today is to develop a scientific spirit. First of all, at least let each one engaged in scientific research, understand the essence of science, understand that science not only is the invention of novelty, but also put forward a new theory. It must has a serious attitude, rigorous logic, the correct method of thinking. And what the researchers should do are to put forward the question, doubt the existing theory and do practical researches. This is not only an idea, but also needs to be fulfilled in practice, otherwise it is only an empty sentence. The National Natural Science Foundation should not only encourage the research innovation, it should also encourage those rigorous design, let the people gradually realize the true meaning of scientific research, understand the spirit of science.
這個過程并不容易,每次我調(diào)試的時候,我都感到沮喪,甚至有些崩潰,但我從不放棄。同時,我也注意到美國學生對科學研究的態(tài)度。在中國,老師會告訴你怎么做,但很少會告訴你為什么。更重要的是,如今中國的研究者總是追求創(chuàng)造性而不是嚴謹性。但事實上,我們今天應(yīng)該做的最重要的事情是培養(yǎng)一種科學精神。首先,至少讓每一個從事科學研究的人,了解科學的本質(zhì),認識到科學不僅是新奇的發(fā)明,而且要提出新的理論。它必須有嚴謹?shù)膽B(tài)度,嚴謹?shù)倪壿?,正確的思維方法。研究者應(yīng)該提出問題,勇于懷疑現(xiàn)有理論并著手實踐研究。這不僅是一個觀念,而且需要在實踐中得到滿足,否則它沒有任何意義。國家自然科學基金會不僅要鼓勵科研創(chuàng)新,還應(yīng)該鼓勵那些嚴謹?shù)脑O(shè)計,讓人們逐步認識到科學研究的真諦,理解科學精神。
This one month taught me so much knowledge and helped me have a more clear understanding of the research circumstance in America. My mentor Carl gave me efficient guidance and helped me a lot in my programming. And the libraries here are so glamorous that there are so many books and the facilities are very friendly.Personally speaking, I think the American universities could provide students with a more liberate and innovative environment which is definitely helpful for us. Except for academic study, my life here was very comfortable. The people here are generally very kind to foreigners. I will never forget this experience.
這一個月我學到了很多知識,我對美國的研究情況也有了更清晰的認識。我的導(dǎo)師Carl給了我有效的指導(dǎo),并在我編程的過程中幫了我很多忙。這里的圖書館太迷人了,有許多書,設(shè)施也非常友好。就我個人而言,我認為美國大學可以為學生提供一個更加解放的創(chuàng)新環(huán)境,這肯定對我們是有幫助的。除了學術(shù)上的學習,我在這里的生活也很舒適。這里的人對外國人很好。我永遠不會忘記這次經(jīng)歷。
點擊收起