学习编程一年总结
去年大概这个时候,刚刚匆忙地找到了现在的工作,决定就在这行干下去。
那时的技术情况是:
1.看了谭浩强的C++那本书,前面看的比较仔细,后面输入输出流、异常处理等几章没怎么看。对类的了解就是从这本书来的。
2.学单片机时,用到了C语言,做了几个小程序,计算器,电子琴。
3.自己看了套java视频,好像是叫30天学会Java,我是开着1.8倍左右的加速看的,只能说是大概了解,并没有多少实践。
4.大三时选修了多媒体网页技术,没认真学,只能说稍微了解了下HTML标签。对于老师一再强调table+div是落后的印象深刻。
5.找工作时,去了某培训处2天,稍微学了下CSS,理解了box模型。
6.在传智播客下了很多视频,看了点javascript,servlet。但由于当时急迫的心态,看的快,忘的也快,作用其实不大。
7.实习期学了些日语,基本记住了50音,学了几课标准日本语。
此后,实习期因为毕业设计等没怎么来公司,毕业后6月23日离开学校,搬到到住的地方,算是正式开始工作。
到公司参与了一些项目,间杂着自学,每每想下班后或者周末自己再学些东西,但大部分时间不能实现。开始时每天晚上回来做饭,第二天带到公司作中午饭,到十一时后就不再做饭了。
参与的项目:
1.java开发。总量数百行代码,基本上都是从别处copy来少量修改,然后是测试。基本没技术含量,实习期的杂活。
2.java开发。正式工作后,还是1的项目,大概总量几千行的代码,先参考别人的代码,看懂,然后根据要求修改,修改量大概几百行吧,不会就问leader。没技术含量,作用在于让自己开始习惯读代码。这个项目接触了打log这个概念,通过读代码知道了打log是怎么实现的。
3.测试。没技术含量,对照式样看界面和功能是否和要求一样,测试各种情况下是否会出现bug。难度在于写日文测试书,理解日文式样,和开发人员沟通。作用是让自己了解测试,知道测试是个非常无聊却又不得不细心认真对待的工作。
4.java测试。还是1的项目,根据测试用例发各种电文,没技术含量,没难度。
5.C开发+测试。某平台某功能的画面部分,最终代码包括注释两千多行。先看参考代码,根据式样要求修改编写代码,然后自己写测试书,自己测试,记录bug,改正bug。这个项目自己是比较认真的,由经理讲了遍参考代码,在大神技术支持下,基本按照项目计划表,从头到尾自己完成的相对独立功能,对代码每一行认真理解,代码改动量相对较大,其间遇到几次难题,但随即解决,最终顺利纳品。其间发生了个插曲,我这部分要新加个分页功能,参考代码中并没有相关部分,开始安排计划时没考虑到这点,所以实际难度比预估难度稍高一些。后发现日程可能紧张,某leader因此无端对我恶语相向,贬低我个人能力,经随后质问,其指责理由毫无逻辑。
6.C测试。与5是类似的项目,然而只是测试,无技术含量。在其平台上白盒测试,其实就是debug一遍代码,并不能真的测出bug。
7.C开发+测试。与5是类似的项目,这次不再是前台画面,而是后台的Command部分。有了之前的经验,做起来还算得心应手,流程与5类似,不再赘述。
8.C#。社内项目,用VS2013开发的一个网站。日程不紧,管理宽松,最终不了了之。然而这个项目让我感觉C#还是蛮好用的,第一次觉得VS的界面要比eclipse好看的多,用着也舒服,C#提供的各种组件非常智能,前台和后台联系方便,访问数据库也很简单,还不用进行各种烦人的配置,许多东西点点鼠标就行,根本不用码大量代码。同时发现,.NET库是如此庞大,功能如此之多。同时,HTML熟练度+1,CSS熟练度+1。
9.terasoluna。社内项目,用日本基于SSI框架开发的terasoluna框架做的一个网站,就是为了熟悉terasoluna框架,为去日本作准备。这个项目让我开始了解框架是什么样的,感觉就是各种配置。我开始学习struts,了解其几种常用动作的配置。开始学习Ajax。同时,js熟练度+1。
下面我总结一下我现在会哪些东西:
评价标准:
E:外行。只是稍有了解,有简单的概念,没有项目经验。可能几天就能度过这一阶段。
D:基础。知道语法或用法,有简单的练习,或简单项目经验。可能一个月能度过这一阶段。
C:入门。可以实际应用,能解决简单问题。可能半年能度过这一阶段。
B:熟悉。能解决一般问题。可能两三年能度过这一阶段。
A:精通。能解决大部分问题。可能十年能度过这一阶段。
S:权威。他不能解决,基本没人能解决。可能半辈子能度过这一阶段,然而再往后也没啥了。
(所列评价完全根据个人主观感觉,不以他人意志为转移)
Java:C。知道类的相关概念,但对于各种API了解的还不够多;了解界面编程,多线程等,但还没有更深地用项目练习。框架在项目里用过,有些体验,尚学系统学习。还想抽空学下23种设计模式。
C++:D。学过基础,但没有经验过实际项目。
C:D。做过项目,但需要学习更深更广的知识。
SQL:C。简单的增删改查肯定是会,但索引,存储过程,优化等都还没学。
HTML:C。标签大都知道,忘了细节的也能迅速在手册里查到,用了不少次,感觉本身难度不大,然而对其更深和更广的知识并不了解。HTML5也还有待学习。
CSS:C。和HTML状况相同。CSS3 也还没学。
JS:C。只是在W3C上学习的基础,接下来打算看尚学堂的视频。Jquery用过,但不是太清楚。Ajax知道怎么用,同样不了解细节。
C#:D。根据常识用着做过项目,但并没有学过基础知识。
ASP:同上。
JSP:D。同上。
Nodejs:D。最近刚学,感觉挺好用的。
Android:E。学过几天,知道语法就是java,但接口不同,内核完全不了解。
能写出来的差不多就是这些,接下来要精学,希望能独当一面。