我总想着等到我毕业的时候再去些这篇博客,即便是7个月以后,我却不想再等了。到那时候,也许我还会再发一个《大学,我的codding路 序》呢。
说到写代码,还得从高中说起,那时候数学老师说,某某学校的一个大学生在大三的时候就已经获得了4份国家的专利。而且得到了微软亚洲的offer,年薪相当可观。哪个吸引我的数字-年薪,让我从那以后,决定要接触计算机。后来看各种计算机的期刊,包括电脑报 电脑爱好者等。慢慢的积累,当时看的主要还是硬件,比如说动态供电,内存等。
真正接触到代码的时候是大一下半年,也就是3年前。那时候我们专业课是C语言。由一位经验丰富的老师教我们。在之前,我看过斯坦福大学的编程的课程,只看了一点点,因为太难读懂了,毕竟一点点的基础没有。上了C语言课程以后,我才觉得:It's My Time。 从那以后我开始更加卖力的学习C。而且在网上买了评价比较高的书,比如C专家编程。前前后后买了5本。付出就有回报,我的期末成绩很不错。差2、3 分满分。大一暑假因为身体不好,没有出去打工,于是我在家继续看买来的书,更加熟悉了指针,内存对其等。后来一次课上,内存对齐真的用上了,因为老师忘记了。
大二上半年,计划跟老师要做一个项目,用java些。于是自学的java,从图书馆借书,从网上下载下来的视频看。当时看的是张龙老师(风中叶)的视频,讲的相当的好。后来我一直把他的视频推荐给别人。java不能说学会了,只能说有些基础。本来想一边做项目,一边学习的,感觉这样更快,但是这个项目没有申请下来,所以停掉了。紧接着另外一老师要我们作C#,当时心理很不爽,刚刚学了java,没有真正的用,却用转到了C#,我认为学精一些更好。但是还是去了,想起一句话:语言只是工具,工具只是一种工具。我用了1节课的时间,把一本C#的书翻了一遍。有两点不同,一个是getter,setter,另外一个忘掉了。然后开始看WinForm,当时准备要做一个财务的软件。后来去做了Web。学习asp.net 的时候也是看的视频,那时候知道了看视频是最慢的学习方法。也是在那时候开始看blog的。
真正成长的是大二的暑假。那个暑假我没有回家,而是呆在了学长的一个实验室里面。一个半月,那是我真正成长的日子。那段时间,要做一个网站,前台类似与qq空间。后来却作数据分析和统计。用的是asp.net mvc3 。那时候的教程只有一个blog,根本没有视频。放假前看那个blog。发现有些内容很难读懂。整个过程大概花了一个多月,暑假来了,遍着手去做。也是在那时候知道了,理论和时间之间差的不是一点半点。经常会出些莫名奇怪的问题。而且你也知道微软那一套封装的很完美,而且msdn很烂。于是各种百度。现在想起那段经历来,我自己都佩服自己。那时候完全没有人带我去做,所有的问题都是一点点的去找,去想办法。做出一点来。向老师回馈,然后继续做,我记得我前前后后做了5个版本。最后才勉强交上去,因为页面不好,所以说是勉强。期间让我最难忘的bug,我调了4个小时,早上八点半开始到十二点半,我想的头疼,于是现去吃饭。在吃饭回来的路上,我想到了出问题的地方。然后用半个小时解决了它。我不会忘记这一个半月。我认为那是我蜕变的过程,我那以后,我不在害怕web。我也自信的认为,我对web有了些了解。
大三上半年继续完成暑假的网站。觉得asp.net 这一套不好玩,因为封装的太严实了。于是回到了我最喜欢的语言Java,开始作SSH。跟这张龙老师的视频做。买书,查资料。那时候知道了ICO AOP DI 之类的吧。但是没有实际的项目真的很难成长。偶尔的一次去找导员,碰到了一位老师,说要到我们这找几个学生做个软件。用的是世界上最先进的技术。导员立马推荐我去。当时没想来,因为在学SSH,但是来是来了。也就是我现在上班的公司。和老板见面的时候,老板说了下具体的内容,不多,和老师说的一样。主要还是自己问。我问的问题大概是:我听出来您想要先培训再作项目,我觉得这个不可行。我暑假做过一个项目,和您的理论一样,先学习后实践。但我发现等到真正作项目的时候,大部分东西教程里面没有用。所以我觉得还是一边学一边做,比较实际。不清楚什么原因,后来老板找我和另外一个同学(他做IOS),问了些基本情况。后来从QQ上与我聊天,要我们用7天去配一个环境:Linux。
那时候哪里学过linux,只是知道它用来作服务器而已。完全是小学生的水平。到了第5天,我一个也没有安装出来,当时就想,如果今天晚上装不出来我就不去了。毕竟当时不知道怎么弄,记得是这样:一个依赖,依赖与另外一个依赖,另外一个依赖又依赖于第一个依赖,整个一个死循环(但是什么都不懂,才理解成这样的)。出乎我意料的是:第5天晚上我装好了几个(android skd下载慢的惊人),剩下的再第6天完成了。于是我告诉老板,系统配置好了。他给我一个题,要我去做,期限3天。我拿到以后发现用的是jquery mobi来做。找到官方文档后,我用了一上午看了一下文档和实例,然后边做边查。我用了两天做完了。我算是这批同学中做的比较快的。后来我去另外一个学校,那是当时公司的办公地方。发现也都是学生。去了第一天,我才知道有个东东叫做JSON,以前都是拼接字符串的然后用分次器去处理。知道了$.each等。过了几天,老板要我放假去北京学习。我觉得很不错的机会。于是我去了。
大三的寒假整个就是在北京度过的,因为中间只有8天的假期。从那认识了仝校长,了解了敏捷,了解了整洁代码,了解了重构等等一些敏捷的内容。用仝校长的话说:你的基础有,但是不代码写的不规范。在这里主要就是将你的代码整理规范了。期间我也在看相关书,那时候,我每天11点半睡,6点半醒,回去的时间都是在学习,写代码。我觉得很充实,不爽的是:离家比较远。见到仝校长的第一天(在Beijing OpenParty上),他说了一个解决问题的思路,我至今记得,而且我带过的每个人我都会告诉他,并让他记住:分析问题-》找到出问题的地方-》如果不能解决,Google-》 google 20 ~30 分钟没有结果-》 询问你身边的人,一起解决-》 身边的人解决不了,团队的人,一起来解决。 我赞同这是个人成长最快的方法。说到这里,我很讨厌Java的throws Expection,出了问题什么都不管,就是扔给别人,我觉得这是最垃圾的办法了,小小鄙视下。
大三的上学期,工作就是一边带人,一边写项目。比较平淡,没有什么大起大落,而且继续保持寒假写blog的习惯。有课的时候上课,没课的时候上班。其实这里还得谢谢老师们的支持。大三的暑假还是去了北京。这次去做项目,但是有三个选择。一个接近尾声的Rails项目,一个边开发边重构的大网站,一个是android应用。但是我考虑了以下,选择了第二个,开始做PHP。从我的blog你可以知道,我最讨厌的语言就是PHP了。最典型的是,使用session之前,我要去告诉它我要使用session了,我觉得好奇葩啊,确切的说是怪异。刚开始作的时候确实用很多问题解决不了。中间气馁过,但是很快我又恢复了积极的状态。慢慢的熟悉了起来。这两个月,我学习到了很多。这里还要谢谢当时和我pair的同事-xudejian。他教会我好些知识。
大四上半年到现在一直在做客户通。先在石家庄这边做,中间去了北京3周。北京的节奏就是比较快。中间负责人走了,我担起了这个项目。发现挺累的,毕竟是没有经验。而且开发过程中总是会出现各种小问题。我唯一感觉欣慰的是,每个迭代的每一张卡,我至少有一个解决方案。这样能保证,在同事不知如何处理的时候,我能给出一个意见。3周后我回到石家庄。因为要考试,这是我回来的第一周的周末。
现在的我,做的项目虽小,但也有十几个了吧。学习新内容的时候,不再是找视频,而是找官方文档;不在是每一门语言都去读一遍api再去用,而是用的时候再去查,尤其是像python ruby这样的语言;不在是碰到一个bug害怕,而是欣喜;不再是为了实现功能着急写代码,而是会先分析,包括接口提供,异常处理等。成长或许就是这样,当你走过以后,发现以前的事都不叫做事儿。
写下这篇博客,并不是想炫耀什么,主要是有以下目的:1 ,经常在微博上看些长微博,说自己是如何学习编程或者做出一个应用的。我觉得适合读一读,然而还有感觉就是毕竟国外和国内的情况不同。2, 想告诉大家,不是每一个人都能轻轻松松的学会编程。就像一个同事总结说,哪个牛逼的人都有一段傻逼的岁月。我自知自己不牛逼,但是那段傻逼的岁月我还是有的-大二暑假的一个半月和大三的那8天。
相关推荐
- **教学经验**:本书基于作者们多年在新加坡国立大学的教学经验编写而成,确保了内容的实用性和有效性。 - **现代化视角**:虽然这是一本初学者指南,但作者们在介绍基础知识的同时也涉及了一些较为高级的话题,使...
根据提供的文件信息,“Essentials of Error-Control Coding”一书由Jorge Castiñeira Moreira(阿根廷马德普拉塔大学)与Patrick Guy Farrell(英国兰开斯特大学)合著,该书主要聚焦于错误控制编码的基础理论和...
Moon)撰写,他是犹他州立大学的一位教授,在信息理论和信号处理领域有着深厚的学术背景。本书主要探讨了错误校正编码的各种数学方法和算法。 #### 错误校正编码的重要性 在现代信息技术中,数据传输和存储过程中...
标题《Information Theory and Network Coding Springer 2008》表明这本书由Springer出版于2008年,作者是Raymond W. Yeung,他是香港中文大学信息工程系的教授。这本书是信息技术系列的一部分,内容涉及信息的传输...
不仅如此,她还拥有宾夕法尼亚大学计算机科学专业的学士和硕士学位,这为她的著作提供了坚实的理论基础。 《Crack the coding interview》的最新第四版提供了全面的面试准备工作,涵盖了数据结构、算法和基础知识等...
本书由卡内基梅隆大学软件工程研究所(SEI)和Addison-Wesley合作出版,是软件工程系列的一部分。该系列图书旨在提供最前沿的软件工程及相关主题的信息,以一种对实践者和学生都易于使用的形式呈现。软件工程系列的...
《Verilog RTL Coding Style.pdf》是一份由台湾清华大学提供的资料,该资料详细介绍了在编写Verilog RTL代码时应当遵循的最佳实践和编码规范。 #### 关键知识点 ##### 1. 基本设计概念 - **简单与规则**:采用简单...
### 网络编码理论(Network Coding Theory)关键知识点概览 #### 一、网络编码理论简介 **网络编码理论**是一门新兴的信息处理技术,它通过对数据进行编码,在网络中传输时能够更加高效地利用带宽资源。本书由香港...
《Information Theory and Network Coding》一书系列编辑为Robert Gallager和Jack Keil Wolf,两人分别来自麻省理工学院和加州大学圣地亚哥分校,他们在信息论与网络编码领域有着深厚的研究背景。系列书籍主要由...
《Coding the Matrix》课程讲义是一系列深入探讨矩阵分析及其在编程中应用的材料,由布朗大学的Philip Klein教授主讲。课程旨在帮助学生理解矩阵的理论基础,并通过Python编程实践来深化理解。以下是讲义中涉及的...
此外,Processing在教育领域也得到了广泛应用,它是许多大学和学校计算机图形学、互动艺术、数字媒体等课程的教学工具。它的易用性和强大功能使教师能够将复杂的编程概念简单化,从而帮助学生更容易地理解与掌握。 ...
SEI CERT C Coding Standard 2016 V01F(以下简称“标准”)是由卡内基梅隆大学软件工程研究所(SEI)发布的一套关于C语言编程的安全、可靠性和安全性的指导原则。该标准旨在帮助开发人员编写高质量的代码,以减少...
《算法编码面试大学》课程资料压缩包包含了丰富的计算机科学学习资源,旨在帮助渴望成为软件工程师的人士提升算法设计与分析能力。在这个压缩包中,主要的焦点是算法,它是计算机科学的核心部分,对于编写高效、优化...
极化编码(Polar Coding)是一种先进的信道编码技术,它由土耳其电气工程师Erdal Arıkan于2009年提出。极化编码解决了信道编码问题中的一个经典难题,即如何构造性能优异的编码方案。它基于信道极化的理论,通过...
现代编码理论(Modern Coding Theory)是通信与信息技术领域的一个重要分支,它主要关注如何高效、可靠地传输数据。随着迭代技术的发展,这一领域的理论与实践都经历了革命性的变化,并被广泛应用于下一代通信标准之中...