我总想着等到我毕业的时候再去些这篇博客,即便是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)是通信与信息技术领域的一个重要分支,它主要关注如何高效、可靠地传输数据。随着迭代技术的发展,这一领域的理论与实践都经历了革命性的变化,并被广泛应用于下一代通信标准之中...