失败人生从读研开始

一、 引言

如果没有这次疫情,就不会有这么多待在家里的时间,也就不会有这些时间来细细反思。其实,或许早已经想到下面所述的种种。

二、 方向比努力重要

二维材料光电器件这个方向,在组内实在太坑了,没有技术积累,还要在二维材料上玩花样,新材料跟不上别人的步伐,在这个完全要靠手工作坊式的拼数量的情况下,却全要出去做工艺实验。更别提接触到的各种有毒化学试剂了。测试设备也是一塌糊涂,从零开始搭建,根本没有电学测量的经验,全靠自己摸索。别人往往是“输运测量自古传,至今已觉不新鲜。极端条件新材料,各领风骚三五年”。二维材料这个方向的确火,但在组内只能说这个方向是一潭死水。目前组里发的文章都是仿真的文章,和二维材料毫不沾边,唯一一篇应付硕士毕业的实验仍然是以仿真为主,更别提那个傻逼硕士根本不会仿真,还要我们帮忙擦屁股;另一篇实验则是反复劝退,已经不知道是第几次投稿了。

回所后的经历体验非常糟糕。17年在科大代培看了很多书,上了很多课,加自学充电。回所第一年,先学习湿法石墨烯转移工艺半年,年末被忽悠做短沟道,跟着郭哥忙里忙外忙到小年回家。来年19年又做了一次短沟道,然后开始自己摸索工艺,仿佛摸出了一套最优解。4月配合刚刚搭建的中红外又摸索测试,但是测了两次之后又被调度去给傻逼硕士的烂尾工程擦屁股,但这个项目从大师兄开始就做了,甚至已经写进了毕业论文,到现在还没发表。最后一直忙到19年暑假,当然暑假只有两个礼拜。更多细节也已经在2019年终总结里写了。

再次回首总结就是:工艺设备几乎为零,测试设备不成熟,实验条件欠缺,眼高手低,实验设计构想太过复杂,辛苦疲劳没有成果和收获。

三、 不患寡而患不均

不患寡而患不均。最多的不满,是感受到不公平的待遇。如果要说,这是以实验为主的课题组,则应该人人都落实负责实验。但是同样两个师兄,其中一个实验毫不沾边,天天办公室呆着,虽然安排了PL实验、量子阱实验,但没有一次工艺或测试做的出来的。然而这种人有文章可以发,一篇最初的构型来自大师姐的仿真。当然当时组会上我亲耳听到是,小老板说,这个师兄把这部分工作顺接下来,和大师姐共一,然而最终文章发表并没有大师姐的名字。我认为仿真最难的就是最初建模和模式分析,至少我回来两年的时间里,并没有看到在这方面的任何进展,所以这和最初的结果没有本质的区别。这是其一,另一篇的实验数据则来自已经毕业的周师兄,这种现成的实验数据加仿真则是第二个工作。

最令我看不懂的是小老板把实验数据给这位师兄写文章,这一切都是在小老板的授权下进展开来。通常这种已经被看作是一只煮熟的鸭子,如果实验真的是风险大,应该把它留给做实验的作为毕业的垫底保险,反而给一个啥都不干的人?这是什么道理?

最近OE审稿意见回来,辛苦仿真修改,修改稿和response letter写了两版,期间小老板会打电话来问实验工艺的事情,却只字不提如何应对审稿人的意见。对比师兄投稿AOM期间的待遇,说的是“10号之前他要回审稿意见,xxxx要往后推”,“回审稿意见写了十几页写到很晚”。这种态度和待遇高下立判。

当然社会经验也得到了积累,我们可以从这为师兄身上学到很多。不能甘做善茬。老板也曾让他做实验,问他实验计划,他板一板脸就摔门而走。终究是欺负老实人,干活越多越没收益。倒不如啥也不干来的轻松,或者明确避开哪些坑人的项目。因为小老板资历尚浅,也需要文章,不是因为学生要毕业,组里已经发表的文章按工作量排名,让他第一作者也毫不为过。所以,我们要挑一个和老板利益切身相关的项目,会得到他的密切帮助,让自己轻松;同时并且不能选做实验的项目,因为老板不会亲自做实验。

四、 对比就是伤害

没有对比,就没有伤害,无论是横向对比还是纵向对比。

学术圈的唯一评价标准就是文章,谁都希望有好文章。但是和在学术圈的同龄人相比,我是真的垃圾。合作过的上科大寇老师课题组的陈同学、张同学发了NL,湖南大学刘老师课题组的李同学发了NC,这几位都比我低一个年级。一个单位里同科室的,最近也是多篇nature子刊连发。身边的同学有的辛苦有成果,功不唐捐;或不辛苦没成果,但实验设备都在所里,方便的很;或不辛苦有成果,躺赢专家。另外本科的学弟考了本校研,在余老师的推荐下,来所里隔壁课题组联培,刚来一年不到,前几天也发出了第一篇文章。又辛苦又没成果且看不到希望的正是在下。

实验的高档次文章背后都是实验设备和工艺能力的体现。完善测试设备,方便快捷的工艺,加上一点新材料,一点新灵感和老师的指导,马上就是一篇好文章,实在羡慕羡慕。

所以不得不说小老板做二维材料根本就是个外行,瞎指挥还爱指挥,后期则是喜欢经常喊到办公室开会,反复说些废话。疫情期间则更是多次打电话提醒还要做实验,实在反感。至少从一开始用转移的石墨烯想做探测器阵列;说不用做图形化分割直接一大片;说工艺周期长一点没事只要做出一个好器件把数据测全了就行;说我们又不要拼响应破记录;其余种种不甚枚举。毕竟人家以前不是做这个的。仿佛把传统探测器的那一套要用在二维材料上,如此的工艺稳定性还要加上光学设计,最后还要测电信号,还要有电信号的增强,仿佛痴人说梦。

学术圈外的纵向对比来看,朋友圈里的高中同学,令人艳羡。本科直接工作的同学也转行较多。本科毕业以来,也已经快三年了,去985高校读个专硕也顺利找到了高薪工作。在QQ空间这个略显古老的社交平台,晒出牙膏厂做HDL的工作,不显得鼻子一酸,这也是我这次写本文的触动之处。我本科时候也曾写得一手好verilog,实现了简单得RISC和CISC,发在了github上。然而那已经是2015年的事情了,今天偶然去看居然还有人fork了。小裴也通过自己的努力,在培训班成功转型,进入了外包公司编程。然而,人,总是劝别人容易劝自己难。

总结起来,无论横向对比还是纵向对比,现在都是最差的处境。要钱没钱,要文章没文章,看不到希望。

五、 初心何在

所以回顾来说我究竟为什么要读研呢?

本科时候拿到了保研名额,想在不一样的方向也证明一下自己,在本科老师的介绍下了解到了中科院的某所。我本也是调研过的,本单位是有一个当打之年的杰青,然而最初我是刻意避开材料的。后来被小老板电话电话联系到了,原本以为是注重理论的超表面超材料光学设计,可以接触到一些更加前沿的物理,了解到仿真云云。没想到终究是个生化环材的坑。转博的时间则由于安排在刚回所的那个学期,涉世太浅,即使问了郭哥,也被郭哥诓住了,当然郭哥自身的惨烈程度有过之而无不及。

六、 我该怎么办?

疫情在家已经待的够久了,我觉得自己挺失败的,这种无助和失落感自读研开始就伴随着我。虽然我已经不需要什么证明了自己了。只想,如果可以的话,顺利毕业早点挣钱;当然如果不顺利的话,就另作安排吧。难得的在家呆这么久,在细微处发现父母都已经老了的事实,奶奶身体也逐渐承受不住岁月的煎熬。1月份过完25岁生日,我也进入了20多岁的后半程。2020年的1/4也匆匆过去,应该好好规划一下以后的生活了。

疫情在家也已经待的足够久了,我甚至在MOOC上看了许多嵩天老师的python系列课程,看陈越姥姥数据结构。在知乎上,看到这种帖子研究生退学是怎样的一种体验?。这个回答里的情况和我很像,“中科院,保研狗”,或许做个参考吧。

酒馆战棋,运气游戏

最近没有打天梯,沉迷于酒馆战棋,炉石也成为了战棋启动器。

已经是一个有惯性操作的游戏了,常规英雄的节奏都是,买怪、升本,买、买、升本买,买买,升买,然后可以顺利的在就费达到四本,算是真真的开是游戏。然而在这之前,如果几回合买不到高质量的怪被连续掉血,速八的几率都很大,但是通过五本和六本的怪补强战力,也可以吃到烂分。

虽然选怪,刷新都是可控的操作,然而每次刷出来的怪都有很大的随机性,被鲍勃制裁了,只能滚出酒馆了。另一方面战斗的时候也是随机的,我有过运气超好的时候,比如大螺丝技能秒掉对面机械阵容的两学徒,伐木机掉落卡德后配合瑞文加超展开。

但终究是个运气游戏,享受游戏带来的随机性。但是看直播的时候,会长冲13000分,被弹幕调侃分高都是靠时间打上去的,但是会长说分数的确是要靠时间打,然而也要看技术,因为你打10个小时,别人也打10个小时,你在努力的时候,别人也在努力,这个时候也就体现出技术的差距了。

炉石传说500胜金头进度

炉石传说大概在大二下学期入坑,大三刚开学战歌指挥官就被削了。
一开始没看攻略,也不看直播,纯属自己寻找卡牌游戏的乐趣(瞎玩),也没有氪金的需求,自然卡牌也很少。
后来氪了一点,加上日积月累,也有了很多卡牌之后,可以抄一些主流卡组,学学主播的玩法。
玩了这么久,遗憾没空抽出精力冲上传说,最高打到三级满星。
但是每天做任务,竟也刷出了八个金色头像,目前还差牧师的。

2017-03-08 术士

2017-05-20 猎人

2017-10-01 萨满

2018-02-11 德鲁伊

2018-09-24 法师

2018-10-04 战士

2018-10-13 盗贼

2018-11-4 骑士

2020-03-06

最后一个职业,牧师也500胜了,然而现在1000胜都出了。

1015 Reversible Primes (PTA)

reversible prime in any number system is a prime whose “reverse” in that number system is also a prime. For example in the decimal system 73 is a reversible prime because its reverse 37 is also a prime.

Now given any two positive integers N (<10​5​​) and D (1<D≤10), you are supposed to tell if N is a reversible prime with radix D.

Input Specification:

The input file consists of several test cases. Each case occupies a line which contains two integers N and D. The input is finished by a negative N.

Output Specification:

For each test case, print in one line Yes if N is a reversible prime with radix D, or No if not.

Sample Input:

73 10
23 2
23 10
-2

      
    

Sample Output:

Yes
Yes
No

编译器:Python(python3)

写了三个函数分别是:素数判断,十进制转任意进制的逆序和任意进制转十进制

import math
def IsPrime(num):
    if num == 0 | num == 1:
        return False
    for i in range(2,int(math.sqrt(num))+1):
        if num % i == 0:
            return False
    return True

def reverse_Radix(origin_num,base_num):
    result_num_lsit = []
    if origin_num < base_num:
        return origin_num
    else:
        while True:
            div, mod = divmod(origin_num,base_num)
            # result_num_lsit.insert(0,str(mod))
            result_num_lsit.append(str(mod))
            origin_num = div
            if origin_num < base_num:
                # result_num_lsit.insert(0,str(origin_num))
                result_num_lsit.append(str(origin_num))
                result_num = int(''.join(result_num_lsit))
                return result_num

def ToDecimal(origin_num,base_num):
    result_num = 0
    index = 0
    while True:
        div, mod = divmod(origin_num,10)
        result_num = result_num + mod*base_num**index
        index+=1
        origin_num = div
        if div == 0:
            return result_num

while True:
    Input_Str = input().split(' ')
    if int(Input_Str[0]) < 0:
        break

    origin_num = int(Input_Str[0])
    base_num = int(Input_Str[1])

    reverse_num = reverse_Radix(origin_num,base_num)

    result_num = ToDecimal(reverse_num,base_num)

    if IsPrime(origin_num) & IsPrime(result_num):
        print('Yes')
    else:
        print('No')

1065 A+B and C (64bit) (PTA)

Given three integers AB and C in [−2​63​​,2​63​​], you are supposed to tell whether A+B>C.

Input Specification:

The first line of the input gives the positive number of test cases, T (≤10). Then T test cases follow, each consists of a single line containing three integers AB and C, separated by single spaces.

Output Specification:

For each test case, output in one line Case #X: true if A+B>C, or Case #X: false otherwise, where X is the case number (starting from 1).

Sample Input:

3
1 2 3
2 3 4
9223372036854775807 -9223372036854775808 0

      
    

Sample Output:

Case #1: false
Case #2: true
Case #3: false

编译器:Python(python3)

判断溢出

N = int(input())

index = 1
while(index<=N):
    flag = 0
    a, b, c = map(int,input().split(' '))
    if a>0 & b>0 & a+b<0:
        flag = 1
    elif a<0 & b<0 & a+b>=0:
        flag = 0
    elif a+b>c:
        flag = 1
    print('Case #{}:'.format(index),"true" if flag else "false")
    index +=1

1028 List Sorting (PTA)

Excel can sort records according to any column. Now you are supposed to imitate this function.

Input Specification:

Each input file contains one test case. For each case, the first line contains two integers N (≤10​5​​) and C, where N is the number of records and C is the column that you are supposed to sort the records with. Then N lines follow, each contains a record of a student. A student’s record consists of his or her distinct ID (a 6-digit number), name (a string with no more than 8 characters without space), and grade (an integer between 0 and 100, inclusive).

Output Specification:

For each test case, output the sorting result in N lines. That is, if C = 1 then the records must be sorted in increasing order according to ID’s; if C = 2 then the records must be sorted in non-decreasing order according to names; and if C = 3 then the records must be sorted in non-decreasing order according to grades. If there are several students who have the same name or grade, they must be sorted according to their ID’s in increasing order.

Sample Input 1:

3 1
000007 James 85
000010 Amy 90
000001 Zoe 60

      
    

Sample Output 1:

000001 Zoe 60
000007 James 85
000010 Amy 90

      
    

Sample Input 2:

4 2
000007 James 85
000010 Amy 90
000001 Zoe 60
000002 James 98

      
    

Sample Output 2:

000010 Amy 90
000002 James 98
000007 James 85
000001 Zoe 60

      
    

Sample Input 3:

4 3
000007 James 85
000010 Amy 90
000001 Zoe 60
000002 James 90

      
    

Sample Output 3:

000001 Zoe 60
000007 James 85
000002 James 90
000010 Amy 90

编译器:Python(python3)

这题用list的sort方法,其中可以按key关键字排序,但是python的缺点就是最后一个测试点超时,但是不想用C++再写了。

N, ref = map(int, input().split())

records = []

for i in range(N):
    s_id, name, score = input().split()
    records.append([s_id, name, score])

records.sort(key=lambda x: (x[ref - 1],x[0]))
for i in records:
    print(" ".join(i))

1031 Hello World for U (PTA)

Given any string of N (≥5) characters, you are asked to form the characters into the shape of U. For example, helloworld can be printed as:

h  d
e  l
l  r
lowo

      
    

That is, the characters must be printed in the original order, starting top-down from the left vertical line with n​1​​ characters, then left to right along the bottom line with n​2​​ characters, and finally bottom-up along the vertical line with n​3​​ characters. And more, we would like U to be as squared as possible — that is, it must be satisfied that n​1​​=n​3​​=max { k | kn​2​​ for all 3≤n​2​​≤N } with n​1​​+n​2​​+n​3​​−2=N.

Input Specification:

Each input file contains one test case. Each case contains one string with no less than 5 and no more than 80 characters in a line. The string contains no white space.

Output Specification:

For each test case, print the input string in the shape of U as specified in the description.

Sample Input:

helloworld!

      
    

Sample Output:

h   !
e   d
l   l
lowor

编译器:Python(python3)

string = input()
N = len(string)
height = (N+2)//3
width = N-2*height-2
for i in range(height - 1):
    print(string[i] + ' '*(width+2) + string[-i-1])
print(string[height-1:N-height+1])

1009 Product of Polynomials (PTA)

This time, you are supposed to find A×B where A and B are two polynomials.

Input Specification:

Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial:

K N​1​​ aN​1​​​​ N​2​​ aN​2​​​​ … NK​​ aNK​​​​

where K is the number of nonzero terms in the polynomial, Ni​​ and aNi​​​​ (i=1,2,⋯,K) are the exponents and coefficients, respectively. It is given that 1≤K≤10, 0≤NK​​<⋯<N​2​​<N​1​​≤1000.

Output Specification:

For each test case you should output the product of A and B in one line, with the same format as the input. Notice that there must be NO extra space at the end of each line. Please be accurate up to 1 decimal place.

Sample Input:

2 1 2.4 0 3.2
2 2 1.5 1 0.5

      
    

Sample Output:

3 3 3.6 2 6.0 1 1.6

编译器:Python(python3)





p1 = list(input().split())
p2 = list(input().split())

d1 = {}
d2 = {}
d3 = {}


list1 = []


for i in range(1,len(p1),2):
    if float(p1[i+1]) !=0:
        d1[int(p1[i])] = float(p1[i+1])
for i in range(1,len(p2),2):
    if float(p2[i+1]) !=0:
        d2[int(p2[i])] = float(p2[i+1])
        
for k1 in d1:
    for k2 in d2:
        temp = d3.get(k1+k2,0) + d1.get(k1)*d2.get(k2)
        if temp !=0:
            d3[k1+k2] = round(temp,1)
        else:
            del d3[k1+k2]
list1 = [str(len(d3))]            
if len(d3) != 0:            
    for i in sorted(d3.keys(),reverse = True):
        list1.append(str(i))
        list1.append(str(d3[i]))
else:
    list1.append(str(0))
    list1.append(str(0))

print(' '.join(list1))