zoukankan      html  css  js  c++  java
  • 研究生期间接受的指导(二)

    说明

         本文内容取自作者就读研究生期间在实验室工作时,从导师和师兄师姐处接受的谆谆教诲。点滴琐碎,还请见谅。

    正文

    1. 导师的教诲

         模块化编程,由基本功能扩展,由小函数“垒”成大程序。
         一个模块一个模块调试,用“排除法”找到问题的根源。
         “特殊值试探”,如赋给某一确定输入观察输出是否合理。
         开始不要急于用程序控制,可先用电路控制电路,易于调试和理解。如片内生成时钟完全可以用仿真时钟源代替。又如LCD管脚接上开关和上拉电阻,就可代替外部输入电平。
         70%是电路的问题,30%是程序的问题。如果程序正确,那么80%是自己的问题。
         想不累就要提高能力,尽快完成任务。练就快速上手的能力(面向工作)。

         遇到现象时应能“并行思考”,由一处改变想到所引发的多个后续模块的改变。
         出现问题时多试几种方法,不要钻牛角尖。
         把自己想象成CPU,这样写出来的指令代码更合理。

         每做一个任务之前都要reset,不要受以前思维定势的影响。

         你不在乎自己的时间/事情,别人也不会在乎你的时间/事情。所以去争取吧,不要坐等时机。

         以用促学,要“边用边学”,而不是“边学边用”。
         “先完成,后完善。”
         实现功能(只要能用就行),然后扩展并标准化。

         先分析思路,产生想法,再从书籍或资料里摘取所需的部分。
         尽量突破自己,把不会的做好才是真能力。
         把没水平的东西做得有水平。拿到任务后先要想如何做好,而不是任务本身有没有水平。把任务“分解”为小模块。
         想要提高效率?不经实践怎知效率高低?
         听报告讲座时懂不懂并不重要,重在观察力(包括图表、符号的细微差别)。
         基础知识举一反三;倾听吸收的能力。

         接到任务/项目后——
         1/3时间:设计(做小实验和整体规划等)、讨论、反馈。最好写成设计文档,跟老师沟通需求,经老师拍板后再着手下一步。此步很重要,否则做到后面很可能被迫推倒重来!
         1/3时间:基本程序的编制和设计。同样遇到问题后要及时与老师沟通,告诉老师已经做了哪些步,现在的问题是什么,然后寻求解决方案。
         1/3时间:调试完成,撰写报告。
         其中,交互、讨论应放在前期,自己的思考放在最后,否则闭门造车,如同老牛掉进枯井里,越陷越深。

         有些事情,应该听不同人的意见,从中找出最适合的,而不是开始就决定问题的难度。可先从简单的出发想办法,实在想不出来再上升,而不是一开始就定性问题的复杂度。

         编程序时,一要想保证算法正确,二要想如何方便检查。
         调程序通常是一个模块一个模块调。所以,模块化非常重要。为了通用一点,在设计算法时尽量考虑其通用型结构。
         好好练。开始不贪理论多高深,先把做事基本功扎实。打好基础功对后面工作有非常大的好处,而基本功只能通过自己实践来获取。 

         学编函数,先看系统自带的函数是怎么编的。不然,你靠什么学会别人的思路?对于开始做的东西,要自己通过实践弄明白。
         (C语言基本功)不是记住语句,而是应该面对一个事情或想法,能够很快知道用什么方法和语句实现。这才是编程能力。你们缺的不是C语言的语句,而是思维。
         自己不会给自己出题,你永远不会学到东西。
         对每个命令或函数都要进行一次实践测试,这是学语言的最基本要求,光从文字上理解会有一些偏差的。
         为什么不用帮助呢。大部分学生不看用帮助,有时你的想法就可能在帮助中存在。你想到的,别人也想到了。用VC的同学好多都不用MSDN,遇到问题就不知怎么办了。能力就体现在这里,有人能找到答案,有人就束手无策。其实不是天资,而是方法与态度。 

         能力是体现在能用现有的知识进行分析挖掘,不是知道越多,能力越强。知道越多,可能记忆性越强,逻辑分析能力越差。只有领会才能提高能力。

         理论研究需要基本技能好。我国之所以科研总上不了台阶,一是研究人员没有好的技能支持,二是不练基本功,图新图热,只是改进一下,再也没有什么东西了。真正的科研成果,是找到一个更为有效的方法,而不是更为复杂的方法。这需要你有非常丰富的技能经验的思维。

         人做技能时,总想找到通用且高效的方法,这会使人对事物的认识更加具体和逻辑化,能够从整体把握。 有了这个技能,就相当于练了九阳神功一样,虽没招,却可利用别人的招打败别人,即只要你看一下别人的方法,立刻就有了更有效的你的方法。只有自通,方可通人。目前自己都通不了,如何通别的?
         不要找题目,而是根据自己的疑问解决问题。你不是想把DISP所显示的内容存在文件中吗?那这是非常好的开始。因为这个问题是你在实践中得到的,别看它小,那是比你找一千个题目都重要,因为这是出自内心的问题,是你思维发展的小站。你却放弃了,就是放弃了自己的前进。如果这种事多了,就是你放弃了你自己。

         只有出自心的东西才是最宝贵的,最感人的,也是最能使人前进的。永远记住:只有你内心的冲动才是你成功的唯一动力。如果你做一件事,不能让内心产生冲动,那只是一件事情,不是做事情。
         你们这个阶段非常重要,直接决定了你的能力。许多学生把眼光盯在技术上,最终他们迷失了自我。

         做事情最怕的是总是找不知道的。只有把知道的进行分析综合,才能解决不知道的。什么事,都不能看解决不了的,而是看你能解决什么。如果你对你能做的都不进行分析,你还可能解决当前你不能做的吗?
         思维来源于生活。思维的变迁,就是用解决别的事情的方法,最后来思考需要解决的问题。

    2. 导师与师姐的对话

         导师T:如果你把日常开销账目存档到公文包中,把你的这个过程说给我听听。
         师姐L:根据时间,每天分多少个项目,像填表一样写进去,然后保存。
         T:我不是说你存什么账目,而是如何存。请想一想,我给你这个例子的目的,不是如何记账,而是如何存账。你把你今天的开支账目存在公文包中,如何做?
         L:找一块空白页,把我脑子想的写在纸上,从哪一行开始写,开始标记,结束标记。
         T:你如何把你的账目写在账本上。说这个吧,把做的过程说一遍,具体操作。
         L:打一张适合存账目的表格。
         T:现在就是账本上写。写在账本上。
         L:就一个字符一个字符写啊,项目:内容。
         T:请比较一下我们俩人的思维方式:我首先找一张纸,把账目理一理,进行必要的归整,以保证与账本账目内容格式相符;接着,我打开账本,找到相应页;然后,我把纸上归整好的内容一一对应写在账本上;最后,合上账本。结束了。你是不是要这样做?
         L:恩,不过没有打草稿的过程。
         T:你总盯在内容上,而我是盯在步骤上。你没说第二步,第三步和第四步。只是笼统的说。你的思维就是差在这上。我是粗中有细,你是细中无粗。我是把过程关系理得很清,对具体内容一带而过。你对所有的都是一带而过。
         L:我的思维显的混乱。
         T:这个小误差,你觉得就差一点。当用同样的思维去解决问题时,可能差得就是一个档次或多个档次。不要认为这点小误差没什么。不要自己给自己找个理由安慰自己。没有写出上面四步,就是天壤之别。
         L:恩,大毛病。我这样的思维会让我浮躁。
         T:你要能把你想到的东西理出来,哪怕是一个最简单的事。越是这种事,越能练人的认识和分析能力。平时做一些小事情,恰是丰富你的思维。同样的一件小事,不同人对其思考是不同的。小事只做不思考,遇到大事就没什么可思考的。所以,事虽小,理不小。多注重基本生活中的基本技能吧。
         如果把我上面的四部分通了,程序就出来了。它每句对应一个操作(不是一个语句)。
         L:恩,其实平时也有体会,别人说的我似乎都想到过,就是没条理,说不出来,别人以为我不知道。
         T:你知道也罢,不知道也罢。希望你就认为自己不知道。如果认为自己知道,总为自己有点打抱不平,就会让自己走上一种可怕的路,不但不接受别人,最后也不接受自己了。如果你认为自己就是不知道,那就重新认识重新做,不是非常好吗。也没什么别的感想,还不误事。退一步,有时比进一步更有效。为自己找理由,等于是慢性自杀。自己分析自己,是积极进步。年轻时,练好本领和心态,将来可使你乐观对待人生。

    3. 师兄师姐们的忠告

         平时做东西时,不要投机取巧。比如需要用C的时候借助Matlab“简化”编程,用运行于Windows下的仿真工具代替基于Linux平台的软件——也许省力省时了,但却丧失学习新知识和技能的大好时机,而这些知识技能往往可能成为你在迈入职场的“敲门砖”(同时这种勇于接纳新事物的心态也会让你今后受益匪浅)!
         做东西务必对自己使用的工具应用纯熟。比如,研究生时做过FPGA,面试时人家可能会问你关于FPGA的问题。如果你在这方面表现得很专业,很可能被马上高薪录取(尤其是当公司正在承接此方面项目时)。
         面试的表现全在平时的讨论,所以不要小看平时的交流。不要从网上找到相关的答案应付讨论,重在自如地发表自己的观点。
         “沉默是金”?——大错特错了!为什么XX(邻校)学生专业技能比不上XX(我校)学生,但他们往往都能找到更好的工作,也更容易进入外企?因为他们特别能“说”,总是有各种各样的新鲜ideas,并且能有效地表达出来!平时讨论时积极发言,经常向导师汇报工作和请教问题(不仅能得到及时的指导从而提高工作效率,还能明白导师对你工作的期望)。
         发现问题远比解决问题重要。勤于发现问题并积极寻求解决方案,不仅能深入理解知识,更重要的是极大地提高了能力!比如,编程中出现的问题,不要依赖编译器的报错,应该自己发掘问题所在;即使不得以求助于网络,也务必弄清问题症结所在。又比如报告中的某个问题或想法,不要满足于完成任务,而有意忽视原本可能带来灵感的切入点。
         任何事情包括完成导师分配的任务,务必从底层,从最基本的问题入手,一步步弄清楚,这样会极大地提高后续工作的效率。把任务分成若干小部分小问题,循序渐进,各个击破。千万不要求快,导师不赞成提前完成任务,那样只表明你没有下功夫——因为他给你分配的时间是基于你自身能力的。先把资料读懂,电路啦接口啦务必弄明白,先从最基本的开始,千万别一开始就整个超复杂的(否则以后必然遇到难以跨越的门槛)。
         师兄师姐留下的心得资料仅供参考,千万不要指望走“捷径”——除非你是抱着“混”的态度。诚然,完成任务很重要,但导师更愿意看到你有所进步。从这个意义上来看,在任务过程中学到东西远比得到结果更重要,也更有益。

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】。
    如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【+加关注】。
    如果,您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是【clover_toeic】。
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Struts2 helloWorld
    Python学习笔记基础汇总部分
    从控制台读入,典型的装饰者模式
    随机数产生方法小知识点
    Struts2基础知识
    面向对象原则之GOF是招式,九大原则才是精髓
    静态工厂方法
    单例模式singleton
    J2SE基础夯实系列之JDBC,链接数据库实例代码
    Ubuntu 12.04 下安装ssh 服务遇到的问题以及总结
  • 原文地址:https://www.cnblogs.com/clover-toeic/p/3772552.html
Copyright © 2011-2022 走看看