进入大学以后,学习数学。

让我那个晕啊。自学计算机。先是C语言。然后老师让学VC++,C++,windows程序设计。

刚开始的时候还没有windows程序设计的概念。只知道用C或者C++在VC++6.0下编写几个窗口程序出来。老师提供的那本VC++书,真是太不适合我了。XX大学出版的,XX大学某教授出的。好多概念不解释。窗口函数怎么调用的都不解释。我感觉整个脑袋就一团迷雾啊。那书后面又讲MFC,我真的晕了,彻底晕了。一年断断续续地学习造窗口的程序。

好多时候就跟瞎子走夜路一样。那段时间是我学习计算机生涯中最痛苦的一段时间。在这一年里我也转移了视角,都是因为好奇。想了解计算机到底怎么工作起来的。看了杂七杂八不少书。但有映像的主要是王爽的那本汇编书,那本书太好了。之前看一些汇编书完全看不进去,看王爽的那本书,简直是酣畅淋漓。学了汇编之后对计算机的底层运行多了很多认识。脑袋里的迷雾少了很多。还看了写OPCODE方面的东西。当时觉得很酷。现在想想其实了解下大概就可以了。除非要做非常底层的工作,否则有人来手动翻译汇编指令为机器码简直是暴殄天物。还看了王艳平和侯捷的书,对MFC有了较深的了解。但对WINDOWS程序设计仍然是只见树木不见森林。想写个通讯录管理程序都写不出来。根本不知道整个程序是怎么组织的。看见一个控制台程序,想弄成GUI 的都弄不好。真是晕啊。

然后我遇见了charles的那本书。听说很牛。我怀着激动的心情在淘宝上买了本。这可能是我在淘宝上买的第一本书。之前好像在图书馆见过下册。老天啊,你当时为什么不让我看见上册啊。这也说明当时不善用用互联网找书,找信息。很快到货,我靠。比正版质量还好,还有光盘。40元左右。原件160。当然现在我心怀内疚,如果有幸碰到charles的话,一定向他道歉。开始看书。疑惑逐渐解开。解开。解开。脑袋里清醒了好多。

这时有一种感觉:windows程序设计就像是搭积木,不过要明白搭的规则。明白了以后就看你的水平能搭出什么样的东西来。这个时候对能随便阅读别人的代码了。不管C,c++,用没用MFC。

后来就看了罗云彬的书《win32汇编语言程序设计》,这都很简单了。汇编,windows程序设计我都搞定了。看这书很大程度上是换换开发平台而已。不管也学了写东西,比如一些控件。还有加密解密方面的一点东西。写了个汇编的数值计算程序。唉,那个程序花的时间真长。搞了几个月,每周搞一点,好像那是数学专业课让我晕得很。所以只能每周花点时间。中途差点放弃。主要问题就是用汇编语言解析字符串为浮点数。我先写了个解析整数的,后来才发现还得解析浮点数的,而且必须解析浮点数,要不然还是数值计算吗?查了不少浮点资料,有很大帮助的不多,都很零星。总算数学了浮点指令,解析为浮点数还是个大问题。还好这次没走多少弯路。我在看雪论坛里搜浮点的时候发现有个人用了个浮点方面的库,然后发现这个库居然在MASM32里有,还有个很完整的浮点教程。这让我明白开发环境里是有宝藏的。尤其是帮助文档。我看了看,那个库里有我所需的转换代码,我阅读了解析字符串为浮点数的代码,挺长,要我写不知道要写到什么时候。这时我明白其实就算是C这种面向过程的语言,也到处是封装。 比如封装了各种浮点运算。在C里写个x+(y*c -b +a)转换成浮点指令那又是若干条啊。这个问题解决后,基本上比较顺利了,我把运算代码放到DDL中。然后就是些要细心解决的问题。解决若干BUG后。程序终于支持了拉格朗日插值运算。那天还是很开心的。那时候在机房也挺冷的。唉,当初不该装逼的,要是用c/c++一定很快,起码有很多运行库函数可以调用。就算自己写转换为浮点数的代码那也很简单啊。那就能实现更多的算法了。当时12月了。要期末考试了。于是这个程序到此为止。发到了看雪论坛上,得了个优秀,收入到了论坛精华里。

期间还看了些书:《深入理解计算机系统》这本书也让我热血沸腾啊,《编译原理》,写那个数值计算程序时里面的有限状态机对我解析用户提供的文本帮助挺大的。

影响最大的是《加密与解密》,所以单独拿出来说。最初是在图书馆计算机那些架子那边偶然发现的。乱翻,看到了个PE文件格式。那时候可执行文件在我心目中就是铁板一块,一团迷雾。根本不知道怎么回事就运行起来了。原来它有特定格式。其实动动脑筋想想计算机里的文件能没格式吗?都是一堆数据结构堆在一起的。可我以前就不明白,可能有点傻。然后就借了那本书看,猛看一阵,看到壳那些地方就看不懂了。而且当时汇编还不太熟。实际操作也少。我好像就是因为这书才去找汇编教程,猛学汇编的。记不清了。当时很想去破解个软件,那时真是鲁莽啊。网上下了个软件,当时OD都不熟,在那搞了一中午没搞定。还有就是装SoftICE,不知为何,装上经常死机。只能重启。于是学习SoftICE就作罢了。后来汇编学得好些了,就买了第三版,这版知识就更多了。这次我好多地方能很快理解。而且上机操作。把书上那个壳的代码也完整看了。越钻越深,PEDIY,crackme,reverse me这些东西都有所接触,实践。还自己独立写了个注册机,有模有样的。发到了看雪论坛上,得了个优。现在想起来还不错。那时觉得逆向,破解这些事情很酷,想以后工作就做这样的事情。于是就在论坛上看这方面的招聘,学这方面的东西。去参加腾讯那个逆向比赛,我做得一塌糊涂,就没得分。也的确太菜了。还看了一个病毒教程,看完了那个病毒的代码。原来病毒就是邪恶地操作PE文件。加密解密其实很多工作都是围绕PE文件结构。当然像逆向,算法之类的另外。这些可以抽象出来。

寒假:

寒假我本来打算在学校里学习一个月,主要是学习数据结构和算法。但由于种种原因,想住校的想法落空了。悲剧。于是通过一些手段住在了王老师办公室里。办公室很冷,我那时又没开空调。现在想起来太傻了。应该问问王老师可不可以开的。那年真冷。雪又大。这些还不是最主要的问题。王老师叫我分析RSTM,罗彻斯特软件内存事务系统。我当时对操作系统了解不多,分析代码没有经验。而且这个系统代码量也很大。看的我眼睛近视都加深了。囫囵吞枣,最后给它写了个GUI界面。后面王老师叫我看的论文我都没看。现在想起来可能当时让他失望了。我真的是很不想做那件事了。所以一开学那事就终止了。

大三下学期的时候看的最要的一本书是《一个操作系统的实现》,这书对我来说太重要了。终于知道这个紧贴硬件的系统软件怎么工作起来的,怎么和硬件配合的。了解了一些微机部件工作方法。比如硬盘,键盘等等。看汇编我比较熟练了。当时都顾不上偏微分课程的落下了。我本来也上机调试程序 的,但我的二手电脑装ubuntu出问题。后来电脑都不能启动了。只得重装上番茄花园,然后发现windows下bochs调试也挺方便的。就在windows下调试了。后来也不调试了,一直看书。强大的好奇心驱使着我往下看。每天20页左右。基本看完了。后面几章有点夹生饭的感觉。但那都是高级内容了。前七章我还是理解了的。看完这书后,计算机在我脑中变得清晰起来。到这个时候,也比以前会搜寻自己需要的信息,自己去找答案了。

后来不知道什么时候还写个应付QQ找茬的程序,还不错。同学们用这个程序基本赢,除非碰到用外挂的。这个程序改过好几次,总的来说是越来越好用了。当我后续版本放优盘中了。优盘又坏了。网上放那个貌似只是最初的版本。

大四,找工作了。我昨天看刘汝佳的那书,想起去年找工作的情形。想想当时自己真的是太鲁莽了。自己一个数学专业的本科生,去找计算机方面的工作,居然没做任何专门的准备。没去网上找的笔试题面试题做做。还好学校来的单位多,先是来了家单片机公司,我对单片机当然一窍不通,不过他招软件设计,我就去了。笔试考一些数据结构,一些概念,我没专门学过,只知道大概,蒙。还有计算机网络,压根没学过网络体系结构这些东西。C语言方面这些做的还行。反正后来去机试了。一句话,做得不好。当时还觉得题难。那天我还饿得那个惨啊。

这下找到弱点了,原理性的东西学得还比较深。但编程能力弱,先是开始看数据结构,都实现了一遍。用C++。开始的时候参照了罗聪的代码。后来主要自己写了。后来不知怎么看到了刘汝佳的那本书。于是就开始练那本书。这下找对路了。这期间好像没去看来学校招聘的企业。除了绿盟。搞网络安全的。我当然是八竿子打不着。虽然很感兴趣。10月份左右的时候吧,好像是。在看学论坛上看到苏州视算公司招聘,于是去了。发了简历后,不久发过来一道题,处理文件的。一个链表OK了。发过去。还问我是不是自己做的。他要求C++,我没注意,虽用的是C++语言,但根本没做到面向对象。我后来才注意到的这点。让我到苏州去再做一套题,当时心里没多少底,加上怕错过期末考试,因为当时都是选修课,什么时候考试不清楚,我也没去问老师,不过好像都是那段时间考的。所以我11月份去的苏州。好像是。做题的经历豆瓣上已经写过了。然后就是12月份去工作。

工作中发生的一些事豆瓣上也说了。生活上的事我想我不会忘记。主要谈思想的转变。

首先,我绝对不是看不起学历低的人。我父母都只有初中文化程度。

我一开始在公司里想的是我大学学的都派不是用场了。来和专科生或者初中生竞争。是不是还不如不读高中,大学,直接学软件开发。后来想读了大学视野开阔些,学东西更快。老板还是兰州大学物理系的呢。

后来,来了一个同事。他写了个五子棋程序。他说里面的算法是别人写的。他说他最佩服那些弄算法的人。我敢说我当时不是出于虚荣心,我当时感觉这才是自己该做的事啊。

有了这个念头后,工作不像以前那么投入了。越来越像走,不想干了。

终于决定回校考研。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

反思:

很久前,在某座山上,一个同学问我以后干什么?我没回答。另一个同学,比较熟的一个同学,说:xxx以后肯定做科学家啊。

一直以来好奇心和身上背负的压力驱使我去学习。高中是这样,那时候我总是把书店的杂志翻个编,觉得自己喜欢自然科学这类的东西,对黑客技术也挺感兴趣的。只是环境条件不太好,没学到什么实际的东西。

大学还是这样,好奇心,好奇心,好奇心。去学习计算机。

我不想只做个学者,光在那学习,是永远学习不完的。我想弄点新东西出来。

发现,和创造。

计算机科学除了些交叉领域外是人的科学,主要的东西都是创造,对吗?比如那些算法。是人发明的。

是这样吗?

回学校后,看了盖尔曼的一些事迹。觉得自己想去做的事原来是所谓的基础研究。

我以前觉得自己好像对哪个领域都感兴趣:算法,安全,图像处理,人工只能,这是个很大的领域。到目前为止,没有深入任何一个领域。我当初假如去深入学习病毒方面的东西会怎么样?当时我还觉得做这个事情挺不错的。那家深圳的公司叫我去笔试我没去,没多大把握而且那时觉得工资低。其实不低了。

我能深入哪个领域?

其实我最想知道的是这个宇宙是怎么回事?当然,我不能马上就去报考物理系研究生。感觉不切合实际,而且搞理论物理,如果搞不好,可能没法谋生。

我能深入哪个领域?

我能深入哪个领域?

我现在在做一些算法方面的题,希望提高自己分析问题解决问题的能力。却突然发现研究生考试不是我想的那么好应付。

暂且就这样吧。先练练思维的肌肉。哪天再去选种武功练练。

看看自己选哪种。这非常重要。

以前看本武侠,好像是温瑞安的。一个少林弟子,很有天分。师父问他学习七十二绝技中哪种。他说拈花指。师父说学了这个你就不能学其他绝技了。他还是选拈花指。最终他把拈花指练得惊天地,泣鬼神。

我不是说我只以后只去研究一个领域,实际上我想全能一点,广博一点。

不过总得从一个地方开始,开始的地方,这个地方对于我来说很重要。

回顾下自己的学习历程相关推荐

  1. 人工神经网络与深度学习学习历程,心得及资料分享

    人工神经网络(Artificial Neural Network,即ANN ),是20世纪80 年代以来人工智能领域兴起的研究热点.它从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同 ...

  2. 【小白】【大学】一名嵌入式软件开发小白的单片机学习历程、心路历程、经验分享

    我的嵌入式学习之路 我为什么写这篇文章 先简单介绍一下我自己 与每一个技术小白共勉 这篇文章写给谁 我的学习经验分享 我的成长之路 我的单片机学习历程分享 51系列单片机学习历程 预备知识:(可以查百 ...

  3. 【开发历程】STM32F4之SHT31-DIS温湿度传感器完整学习历程(附模块化程序代码,带详细注释)

    前言 本人萌新一枚,学习了STM32之后想自己调点什么练练手,于是打开淘宝.本来想买一块DHT11,翻着翻着就发现了这块小板.本着调就调没调过的原则,从店家购买了SHT31模块.买了后才发现,网上相关 ...

  4. Java学习历程之----进阶篇(十一)

    千禧难题之二:      霍奇猜想:在非奇异复射影代数簇上, 任一霍奇类是代数闭链类的有理线性组合.它是关于非奇异复代数簇的代数拓扑和它由定义子簇的多项式方程所表述的几何的关联的猜想.由威廉·瓦伦斯· ...

  5. Java学习历程之----提升篇(六)

    科普 知识 前言 前面我们学习了Java语言的三大特性----继承,封装和多态,在前面的Java学习历程之----进阶篇(一)中我们学习到,在面向对象中,类和对象是最基本.最重要的组成单元.所有的对象 ...

  6. java 的学习历程(新手须知)

    进入大学的java历程 这篇文章大体上会从以下几个部分展开: 1.认清自己 2.学习目的 3.时间管理 4.学习方法 5.学习的步骤 6.获取知识的途径 7.影响学习的几个因素 8.自己的心态 9.外 ...

  7. asp.net2.0学习历程 菜鸟到中级程序员的飞跃【月儿原创】

    asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.5.1 ...

  8. python学习历程-安装篇(一)

    python学习历程-安装篇 之前工作中数据量很少,每天也就是用excel发一下报表,函数已经足够应付工作内容,但心里一直渴望学习更深层次一点的数据分析(崇拜那些技术大神),网上看了很多有关数据分析挖 ...

  9. asp.net2.0学习历程 菜鸟到中级程序员的飞跃[z转]

    asp.net2.0学习历程 菜鸟到中级程序员的飞跃 --30本好书点评 学历历程 如果你是一个菜鸟或者自认为初学者那么本文非常适合你: 不能说这30本书就是最佳组合,但是可以说这个组合不差: 本人曾 ...

最新文章

  1. 基于Selenium2+Java的UI自动化(6)-操作Alert、confirm、prompt弹出框
  2. windows系统命令行下常用命令收集
  3. UI5 libraries determined in Backend
  4. Linux系统监控shell脚本
  5. ajax发送数据时的contentType
  6. 服务端高并发分布式架构演进之路(转载,图画的好)
  7. 突发!程序员!快别闷头学Python了!
  8. Maven Ant 中截取字符串
  9. 动态规划算法 dynamic programming
  10. 静态include与动态include的区别
  11. 九联UNT401H零配置、芒果、南传、百视通等版本通刷固件及教程
  12. ES6新语法-day02
  13. jsp基础教程清华版源代码
  14. .强力卸载或者删除文件
  15. VS2022 安装 .NET Framework 4.0的方法
  16. xmpp学习使用简单介绍(二)
  17. ilm 和dlm差异_NetPro 耐特普羅資訊:技術應用 / 漫談ILM與DLM-3 由DLM著手落實ILM的精神...
  18. TexturePacker命令行使用(command line)
  19. 基于深度学习的信息隐藏技术的研究总结(一)
  20. 使用JSON数据格式模拟股票实时信息

热门文章

  1. 网络协议 -- UDP协议(3)广播
  2. MPCS-314P-T1一款光电耦合器 适用于驱动功率IGBT和MOSFET 门驱动器光电耦合器
  3. javaeye恢复正常了
  4. 文献阅读:DeepLigand: accurate prediction of MHC class I ligands using peptide embedding
  5. 阅读文献:MHCSeqNet:a deep neural networkmodel for universal MHC binding prediction
  6. Silverlight开发MMORPG游戏研讨(4):用一个定时器实现多个不同帧频的动画
  7. cass化粪池_北票玻璃钢化粪池规格,玻璃钢脱硫塔
  8. 计算机版的微信的功能是什么,微信PC版有什么功能 测试版增加了这些实用功能...
  9. 喜欢我十九年的男孩结婚了
  10. ES千亿级搜索实战-架构优化