ysbbs

Let's start BB !


  • 首页

  • 归档

  • 关于

  • 标签

通信类的研究生该怎么读

发表于 2017-12-20 | | 阅读次数

本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.

通信类的研究生该怎么读?

三年研究生生活已经快过半了,我不知道现在回答这个问题能否还来得及,

这篇文章也被搁置了好久,好像一直都没有一个正确的答案,研究生该怎么读。

直到今天被一个小我一岁的本科生(某乎上的打印机)的履历虐的体无完肤,感觉自己被按在地上摩擦了十几个来回。

研究生,

应该是不再逃避了,不是再以我不会或我不擅长等理由去逃避了,不是以自己的起点和英语作为自己逃避的理由,遇到相关的技术基础英语论文数学推导,就脑袋变大,想法子的逃避去进一步的研究,殊不知,这个时候正是出成果和超越的契机和开始。

如果能把一些一直逃避的论文消化掉,一些基础打牢靠,在一点点啃paper的过程中也能将自己的英语阅读写作进一步提高,

而且在去啃paper学东西的过程中,去弄清一个个模糊的小知识点的时候,发散的也能学到大量的知识,而且渐渐的这个领域的知识也就能形成一个整体的架构,这样在一个领域里才称得上是入门了吧。

修真里有句话,筑基的结果决定着以后修为的高低。

同样的,如果入门功夫学不扎实,以后也很难有更高的成就了,因为越往后,慢慢来系统的啃知识的机会越来越少,一大堆任务铺天盖地的袭来时候方才觉得少壮不努力老大徒伤悲。

莫要白了少年头,空悲切。

自己的行为和自己的目标无法匹配的矛盾是读书时代纠结的根源所在,

我想要的是职业相关的技术,是不断迭代更新的能力,是不停的实践出的小项目,一个个markdown介绍我最近又做了什么,那才是我想活成的样子。

无论是自己本职的无线通信的优化,用到的动态规划,我都没有去仔细的整理成一个完整的小项目,没有用精心的图片的示例去演示它,没有精美的表达方式去阐述自己做的工作。

甚至,连blog都没坚持写下来,

而研究生生活已过半,飞逝的时间无时无刻的不在刺痛着我,

每日大部分的时间不是没有规划就是闲散的消耗了,用于最低级的娱乐方式消遣掉了

而充满成就感的小项目,paper的设计,图例制作,不停的完善精美的ppt,一个个可以拿的出的成就才是值得称道的东西。

通信类的研究生怎么读,或者说研究生该怎么读,

就是在这个很容易空虚迷茫的时候,保持着稳定的输出,每天都去完成一些事情,每周都能出一些可以归档或者展示出来的成果、产品项目,或者归纳消化的知识。

永远不要因为DDL而有压力,去做导师要求的,是要把自己的事情做好做到,不做多余的,把已经确定的,有成果的东西不断精致化,配合相应的图解,可以做到随时展示给别人看的完整成果。

然后再去加未知的东西,去学习研究,仿真,待到成熟了,再精致的做成完整的部分,作为第二部分的成果。

当手头的作品很精致的时候,DLL不是压力是期待,是将自己的“艺术品”给别人观看的时候。

还有就是永远保持谦虚,每一次困难,每一次否定,每一次压力都是进步的契机。

做自己想做的事情,并且做到刨根问底,归纳原理,消耗成自己的知识,自己的技能,

能独立的用自己的思想阐述出来并写出文章。

这便是研究生生活的正确打开方式了吧。

C++游戏编程入门读书笔记

发表于 2017-12-03 | | 阅读次数

本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.

周末打麻将的时候和几个本科生一时兴起约了尬图书馆,第二天直接从寝室出发也没带书,准备去图书馆随便借点来看,我到了图书馆的时候他们还都在睡觉,看来我保住了研究生爱学习的良好形象,虽然打麻将什么的也是前晚熬夜打麻将是我带着他们去的(逃~)

去了图书加自习室的南馆四楼,计软分区,周末一天时间复习复习C++再好不过了。

《C++游戏编程入门》是之前是一本很基础但写的有很好的一本书,这本书虽说是游戏编程,但编写的都是控制台程序,说是游戏编程不如说是小程序例子下讲解C++,

书的内容不是很多,学过C++的大概三四个小时就能看完,

里面的例子很详细,全部都是C++的基础,很适合复习基础来食用,几乎每句代码都是一个知识点来展开谈,教科书式的晦涩语句也几乎没有,很多复杂的东西被几句话讲的很明白。

阅读本文可以帮助你迅速复习C++,了解和补充一些程序设计知识。

阅读全文 »

隐藏在cin中的陷阱

发表于 2017-11-28 | | 阅读次数

本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.

在C++中有很多时候会栽在cin缓存区这个坑里,特别是将输入作为循环判断条件的时候,输入错误的情况下往往会陷入死循环。例:

1
2
3
4
5
int i;
while (1) {
cout << "输入数字";
cin >> i;
}

想要达到的效果是循环输入数字,一旦输入错误,比如输入为一个字母的时候,往往会陷入到一个死循环中。

不停的输出提示信息,但是不允许用户再次输入。

查了一下发现,

这个是因为cin缓冲区没有清理,cin以后的每一次一次循环时直接读取缓冲区了

因此,在输入前加上清空输入缓冲区的语句就可以解决问题。c++用于清空输入缓存的函数有三个:cin.clear(),cin.sync(),cin.ignore()。

cin.clear()是用来更改cin的状态标示符的,cin在接收到错误的输入的时候,会设置状态位good。如果good位不为1,则cin不接受输入,直接跳过。如果下次输入前状态位没有改变那么即使清除了缓冲区数据流也无法输入。所以清除缓冲区之前必须要cin.clear()。

cin.ignore(a,ch):从输入缓冲去中提取字符,提取的字符被忽略,不被使用。每抛弃一个字符,它都要计数和比较字符,如果计数值达到a或者被忽略的字符是ch,则cin.ignore()函数终止执行。默认参数是a=1,即仅忽略缓冲区中的第一个字符。它的一个常用功能是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。比如cin.ignore(1024,’\n’),通常把第一个参数设置得足够大,这样实际上总是只有第二个参数起作用,所以这一句就是把回车(包括回车)之前的所有字符从输入缓冲区中清除。

cin.sync()的作用是清除输入缓冲区全部的内容。

所以加上在下一次输入前加上两行,清除错误缓存区即可。

1
2
3
4
5
6
7
int i;
while (1) {
cout << "输入数字";
cin >> i;
cin.clear();
cin.ignore();
}

不知道为什么我使用cin.sync()并不能清除输入缓冲区全部的内容,还是会出现死循环。

所以用cin.clear();cin.ignore();

cin这个缓存区清理在循环中是一个不可忽略的陷阱,

不中招也很难了解到,所以

every built ,every debug.

debug again ,better again.

C中main函数输入参数小结

发表于 2017-11-21 | | 阅读次数

本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.

C/C++中main函数可以加入输入参数,比如为程序运行加上一个参数,或者打开一个文件进行处理等。

主要是通过int main(int argc, char* argv[])的方式,

argc是命令行的总的参数个数,aargv[]是记录每个参数的数组,

这里运行程序本身是作为一个参数一直存在,即第0个参数,

举例:

程序名称为program,为一个打开文件并读取的程序

命令行中:

-> program a.txt

此时 argc = 2,

argv[0] = “program”

grav[1] = “a.txt”

所以在程序中判断是否有参数输入:

1
2
3
4
5
if (argc < 2)
{
printf("没有输入参数\n");
return 0;
}

有参数就依次将grav[1]等传入即可。

英语写作好帮手之Ginger New Tab

发表于 2017-11-13 | | 阅读次数

最近一直在写rewrite paper,为什么要rewrite呢,因为前期只是为了搭架子把paper架构写出来,虽然整体逻辑还算满意,但因为偷懒引用了太多别人的原话,虽然是可以引用,但这种大段的复制势必要全部重写的,之说以一开始用直接复制原话,照抄句式,不仅是因为我懒,而且不得不承认英语写作一直是自己的软肋,简单的从句还是好写,但是一旦落到描述复杂的句式自己写出来了也拿不准会不会有什么语法错误。。。

出来混的迟早是要还的,这paper架构逐渐成型,剩下的就是精雕细琢其中的细节了,先是把引用的句子都换个说法改一改,小的逻辑细节也要重写一下,然后后面再把图好好丰富一下了,虽然是个繁琐的工作,但看着自己的文章逐渐细腻,也是很有成就感嘛。

关于像我一样在国内读书长大的土著写英文paper应该都需要各种“帮手”来完成,

语言词汇的翻译最好用的莫过于Google translate 了,在线翻译最大的坏处就是你最后会依赖它的。。。

然后就是今天发现的好帮手:Ginger New Tab

Ginger New Tab 虽然是chrome的一个插件,但实际上是Ginger提供的一个在线网页,提供细致的英文语法检测,可以帮助你修正你已经写好的拿不准的句子,可以标记处句子中的语法错误,并且提供修改提示,相比较其它在线语法检测工具已经是非常细腻了。

更重要的是,它还提供同义词替换,将常用的表达方式进行替换,使句子更加丰富多彩,引用句子也能某种程度避免完全一样的尴尬。

只不过现在论文检测有 Turnitin 这种神器在,这种同义词替换使肯定躲不过检测的,据说 Turnitin 论文检测算法诡异的很,更多时候还是自己组织语句比较靠谱,我这么懒的人都不偷懒了,还是一句一句自己重写最靠谱。

总之Ginger用来辅助英语写作真的方便,用上之后写paper也没那么枯燥了,有个帮助检测语法的工具更多时候让自己更敢下笔写长句子了,效率当然也提高了好多。

如何开始写第一篇paper

发表于 2017-11-05 | | 阅读次数

本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.

这篇Simon Jones教人写paper的文章我遇见的很早,但是没有认真的去对待,最近着手去写paper的时候才意识到为什么我没有去做到write earlier,想到这个词才回头来翻这篇文章。回忆我整个research的过程,包括中间遇到心理历程,都无一不被文章开篇所戳中,泪目,就像那句老话,道理我都懂,但不栽一脚不会懂得道理的深刻。。。如果你还没有开始写paper,doing research ,那么认真吧Write earlier看完并照着做,会让你少走很多弯路。

以下:

最著名的教人写 paper 的大师应该是 Simon Jones,他给过一系列学术演讲、学术写作的视频和 Tutorial。

# Write earlier.
做研究的顺序是,有了 idea—>writing paper—> doing research/experiments
一旦有了 idea,立刻开始动手写,而不是我们常见的开始做实验。因为做实验、做研究(调研)的过程会让我们分心,可能偏离了 idea 的初衷。太过发散,使得最初的 idea 变得模糊,也使得自己丧失信心。
writing paper is not reporting, is doing! writing helps clear our minds.
不要觉得写论文只是汇报自己的工作,实际上写论文真的是 DOING research 的一部分,很重要的一部分。
Every researcher often thinks their idea is trivial.
这是一个 natural stage,不管你觉得自己的 idea 有多么 trivial,insignificant,都要写下来,都要开始做。
Writing paper helps develop the idea.
实际上,Research 就像是 snowflake,或者是 flower。你从一个点,一个雪花一角发现一些什么,有了一些 idea。在做的过程中,你可能会遇到 depress,遇到挫折,但是也可能会发现出更多新的东西。发展出你的理论,你的研究。
# Identify your idea.
paper is a primary mechanism to convey your idea.
所以作为读者,读完你的 paper,要明白你传达的是什么 idea。 one paper, one idea. and sharp!
Can you hear the “ping”?
先写下自己的 main idea,清晰的表达出来,再继续 flow 下去。
# Tell the story.
Imagine you are explaining at a whiteboard
说出问题,说出问题的吸引力和难以解决,再说出自己的 idea,解决方法……用这种 flow 方法顺下来。帮助读者理解。Structure

# Introduction.
Introduction (1P) 用 example 说明你的 problem,这里不要把 problem 说的太 general.
Using bulleted lists to state your contributions. 注意加上是在哪个 Section 里可以找到 evidence to support each claim (contribution)
Contributions should be refutable!!!
No “the rest of this paper is…”. 因为没人会读这些。相反,直接用前进式的叙述方式来表达出来你接下来的顺序。
# Related Work.
不要在第二部分开始写 related work,因为这部分常常是你的 idea 和读者之间的 barrier。
把 Related work leave it to the end.
因为即使在白板演说中,也不会一开始就说 related work。但是会在讲自己的 idea 的过程中,提到别人的工作。可以写上引用,再说 I will discuss it more in Section 8 之类的。
不要为了让自己的工作显得好,就故意只说别人的不好,故意 downplay 别人的工作。相反, be generous. 感谢别人的工作,感谢别人的 inspiring works. 这不会让你的工作显得 worse。
同时说出自己工作的不足。 Acknowledge weaknesses in your approach. 不要让 reviewer 去质疑你,更好的是自己保持诚实,也是一种 tactics.
# Put your readers first.
在整个论文中间部分,也是最好写的部分。写出 the problem, the idea, the details.
Presenting the idea 时 conveying the intuition first. 一定是先说自己的 intuition,这样会让读者无论读不读细节都有所收获。
Remember: explain it as you’re explaining at a whiteboard.
所以,还是先写例子,再讲 intuition,再讲 general case.
同时,用最直接的方式表达出你的 idea。而不是你在研究中走的弯路。
# Listen to your readers.
Getting help. 找尽可能多的对你的 paper 不熟悉的 guinea pigs 来读你的 paper. 专业读者好,不专业的读者也好!但是每个人只有一次第一次读你的 paper 的机会,珍惜这些机会。所以要告诉他们,请他们告诉你在他们读你论文时,是什么时候 get lost. 这很重要。听他们为什么 get lost,再回忆自己怎么重新向他们解释自己的论文的。记住自己的解释方式,重新修改自己的论文。
找专家帮助的时候,可以用这种句式 “could you help me ensure that I describe your work fairly?” 同时,重视他们的 comments。
如果 reviewer misunderstand 了你的工作,一定要努力想怎么 rewrite.

C中的typedef用法小结

发表于 2017-09-13 | | 阅读次数

本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.

typedef和#define宏有点相似,但比#define实际要复杂的多,也隐藏了很多陷阱,从网上摘了一些总结的很好的例子,希望下次用typedef的时候更能游刃有余。

阅读全文 »

不仅要不作恶

发表于 2017-09-08 | | 阅读次数

本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.

昨天发生了一件我认为让我很不舒服的事情,

颇多感慨,

但也无奈,

恶人之所以敢犯恶,无非就是剥夺别人利益的同时抱着一种你奈我何的态度,

虽然知晓怼回去对别人的改变意义不大,

但最起码表现出自己不是傻子,你背地里那些小九九真的太幼稚了。幼稚并且令我恶心。

谷歌有句名言叫做,不作恶。

但我觉得很多时候不作恶是不能够的,不仅不作恶,而当你周围的人作恶的时候,要敢于站住来,表明自己的态度,而不是说我没作恶都是他们干的,正是有太多这样软性的人,助长了恶人的气焰,在我眼里,有时候你比带头作恶的人还令我瞧不起。

不过越是这样,越是发现他们总是在内斗,在算计,在这个小圈子里去剥夺别人的利益,去损人利己,习惯了,也去损人不利己。

我觉得这样十足的失败,

先做人后做事,这道理如果他们真的不明白,我连去和他们争的欲望都没有,

一开始电话给小番茄,她听后,劝我别发脾气气到自己,我当时说我不一定能忍得住,我尽量,

但后来上楼看了一眼他们那种浑浑噩噩,皮囊的感觉,我根本不想生气了,

感觉格局不同,不相为谋,

以后敬而远之,我只需努力朝着自己的路奋斗,以后道路必然不同,

也以此警示自己,

要始终做一个主动提供价值的人,而不是去剥夺别人的价值。

碎碎念

发表于 2017-07-27 | | 阅读次数

今天在github上clone了一份关于贪心算法的python代码,作为我用python写knapsack解算法的一个参考,我自己写的那个贪心总感觉太乱了,用了numpy库但几乎是画蛇添足,本想看看网络一般python的贪心是什么风格,结果下载的代码真让我惊艳到了,原来这么简单的东西都可以写的那么精致,用python类实现,把每个item都构造成一个类对象,调用各种魔法方法简直是在炫技。

看完代码之后有种痛苦,痛苦于自己从未想过去如何更好的实现代码,如何更好的利用python特性去写程序,感觉python在我手里都是暴遣天物,自己从未领悟到面向对象编程的优势,甚至一直有着面向对象编程无用的感觉。

如果今天没有看到这么精致小巧很好的利用面向对象实现的算法代码,我可能一直都意识不到阅读代码的重要性,一直闭门造车,造出来的车虽然能跑,但更像是一个畸形的怪物,耗油量大,跑的慢。

在网上的大神经常说,要去实践,想个idea,然后不停的去实现,在项目中,兴趣中去编程,就可以慢慢成为大神。

我之前的理解一直都是去做一些别人没有做过的,新奇好玩的,去实现一些新的idea,凡是有点俗套的,已有的东西我都不太稀罕去实现一遍,去思考,去做一遍。

今天痛定思痛,也是突然领悟,没有对比,永远都不知道自己有多烂。

反而看来,去实现一些经典的东西,一些已经很成熟的东西,然后熟悉了,去阅读别人优秀的代码,去对比自己的思路,才知道自己哪里欠缺,哪些技巧方法是自己不知道,或者自己的思路有多笨,都可以一目了然。

未来的日子还很长,不应眼高手低,从小的东西实现开始做起,对比,学习,去努力熟悉和发挥出python的魅力。

人生苦短,我用python。

希望明天会更好。

嵌入式小车开发一记

发表于 2017-07-22 | | 阅读次数

本博客采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本博客文章必须也遵循署名-非商业用途-保持一致的创作共用协议.

本科时候就潦潦草草的学了嵌入式Linux,现在还记得那个瘦高的老师,口吃不清的讲课,不知所云,非常不喜欢他的情况下,居然教了单片机和汇编和嵌入式Linux等多门课。。真的心累,这学期选了个嵌入式开发的课程,课程设计是用mini2440做智能小车,也算是重补一下嵌入式开发,重新再熟悉一下流程。

电子科班出身的学生都有一颗搞开发的心,,虽然本科的课余时候买了一套Arduino UNO小车固件摆弄玩,但现在看来在Linux下做小车会学到更多,最起码熟悉了一般的Linux嵌入式,和那帮搞板子开发的同学一起吃瓜时候也能更多一些聊资。

先上图,这几天才想起来记录一下小车开发过程,因为2440开发板是借学校实验室来用的,设计完成后就被我拆掉了,这几张图是我录得小视频里截下来的,分辨率也就是这样子了,但依然阻挡不住我小车身上散发的那股淳朴的感觉。

小车运行中侧面:
小车运行中
小车正面:

视频回传和控制台:

再简要介绍一下小车完成方案:

阅读全文 »
1…891011
Yang Shuai

Yang Shuai

105 日志
89 标签
© 2021 Yang Shuai
由 Hexo 强力驱动
主题 - NexT.Mist