纠结了许久,要不要写这篇文章,然而最终还是写了。就权当总结与呻吟吧。。当然,呻吟最开始还是发在自己的站点的,忍不住手贱,还是想发博客园。
1 剧透
人算不如天算;时隔多年,我竟然搞起了前端。
2 发端
7年前,它进入SYSU学习档案管理。
2.1 UG1
大学一年级,上学期,完全是小白!没有任何的计算机专业知识。没有任何相关课程学习。只记得专业课叫机关文件管理,还有高数。前半年过的各种悠闲。
下学期,初识IT;第一门课是4个学分的大学计算机公共基础。这门课只有第一章配得上基础。。第二章数字编码与字符编码,各种原码,反码,补码计算,第三章微机系统结构,各种总线。。第四章Javascript,说是最适合非专业人员的编程入门语言(当时是2009年),然而刚接触计算机的我根本编不出来程序。。为了应付期中考试,各种突击;当时还有一本书很火,叫“JavaScript王者归来”,然而我买了没看。。不管怎样期中考试考了96!然后还是不会编程,因为它考的都是程序填空,不过终于可以摆脱编程了,期中考试之后,第五章还是Javascript基于对象的部分,第六章Word和Excel,第七章多媒体,第八章忘了,第九章HTML,CSS。期末考试重点考这个,为了应付期末考试,当时把FrontPage玩儿的很溜。。好多标签都会背了。。最后98分。。然而我还是不会编程。但当时并不在意,只是把这门课作为高数和英语来学习的,毕竟档案管理专业。
2.2 UG2
大学二年级,上学期,专业课程序设计,4个学分。用的是谭浩强教 授的C程序设计,绿色封面的当时。由我系Happy Ball(学生戏称)执教。他讲的C语言通俗易懂,极易入门,感谢他把我们专业的很多人带入了程序设计的大门;在他的安利下,我也走上了IT从业人员的不 归路。这门C程序设计,主要以解决各种问题的实践出发,上课先编程,后讲语法;我在这门课学习了大量的算法,也自命不凡地上去写了回笼数判断程序,然而上 去发现有个问题没解决。。没写出来。。。期中考试99分,数数数错一位扣了1分,期末考试,60%编程题,最后97分。。这门课是我学习计算机以来学的最 开心的一门课。当时对编程的喜爱远非现在所能比拟,毕竟都是算法的东西;约瑟夫环问题记忆犹新。Happy Ball所说的系统分析师,十年磨一剑,铭记至今。然而学了这门课之后,我以为C语言只能写控制台应用程序,对IT中的工程和算法一点儿概念都没有。
大学二年级,下学期,专业课数据库系统,4个学分,每周5-6个学时。上的相当辛苦,前期各种不懂,用C语言的思维完全不能理解数据库的模型与应用;第一次有了应用系统的概念,但具体还是不清楚;上课老师提到了CSS+DIV,提到了ASP,PHP,JSP;然而我并不知道是什么。这门课学习了大量的数据库基础理论,比如关系代数,SQL, 子查询,各种查询;曾经写过5-6行的SQL语句。。当时确实搞了好多东西,期末94分;专业课计算机网络,4个学分,感觉并没有学到什么,上课左耳进, 右耳出,经常睡着。。。以至于使我对网络留下了不好的印象,期末88分,考试考了子网划分。。总体评价没学好,全忘了。选修课Access数据库应用,选 修课。。一直在点鼠标,并没有学会什么,完全在考专业课混学分。。。
大二过后,没有写过一个图形界面程序。。。
大 二第三学期(小学期),科研实践,进了技术组,选了一个小型数据库管理系统设计;为了实现有图形界面的程序开始疯狂学习,那是认识了计算机321,如鹏 网,当时好多资源在veryCD上下。。杨中科的C语言也能干大事系列令我受益匪浅,从此入门了应用级开发。最后看到了.net,下载了Visual Studio 2005,第一次编程,爽的飞到天上了!从此爱上了C#还有微软。。还有.net,最后用ADO.net连接SQL Server2005做了个winform程序交差,科研实践优秀。
2.3 UG3
大 三上学期(2010年),爱上了winform,根本停不下来,又做了2个比赛用的小程序。专业课网络开发技术,主讲JSP。这门课终于知道了之前数据库 系统中好多没听懂的东西。JSP语法,JSP内置对象,JavaBean,文件操作,JDBC,Servlet,MVC模式,这门课使我学了不少Java 和web开发模式,做了6次项目作业,struts几乎入门,然而由于当时被Visual Studio冲昏了头脑,并没有继续学Java,转向ASP.net,但并不开心。不喜欢在服务器端拖控件的开发方式。可能是JSP先入为主。
大 三下学期,两门课选修课对我影响很大,一门是乔海燕老师的函数程序设计,Haskell,这玩样儿给我累惨了,作业各种不会做,后来学了数据结构,才发现 高阶函数这些东西里面有好多递归;期末考试要画分形树,没花出来,现在还不知道会不会画,然而现在我再来看Haskell,这觉得这门课使我宝贵的财富。 函数式思想在这两年方兴未艾,当年的LINQ刚刚兴起,Scala也是那时候开始火,后来Java8(当时还是Java6)什么的就更多了,或许不久之后 我还会重拾函数式程序设计这个大方向的吧。另一门课是XML技术,讲了 DTD,Schema,Workspace,XLink,XPath,DOM,JAXP,...反正讲了好多。
2.4 UG4
大四上学期,完全没有编程,前面学的几乎忘光。。
大 四下学期,毕业设计选择了档案管理系统,为了搞这个,当时接触了Delphi,真神!!PowerBuilder,不过最后还是用了.net,把 ADO.net玩儿个遍,最后用了 Typed Dataset,感觉就是.net下的对象关系映射,不管怎样,毕业设计就用ADO.net给实现了,之后发觉.net并没有想象中那么好,转投 Java,决定放弃微软。
考研期间,参加了软件学院的win8技术预览版以及VS2013预览版(当时叫VS11)推广活动,第一次看到了windows phone开发,感觉移动开发很神奇。重新回到微软。
3 发展
2年前,他进入HUST学习软件工程
3.1 G0
研 究生入学前,由于当时好奇移动开发,看到windows phone开发实习兴奋不已,提前前往实验室实习,就搞一个windows phone项目,然而整天按XAML写界面,感觉好无聊,而且windows phone下很多界面实现不了,当时并不开心,每天并不想去。第一次听说Web Service,然而我还是不知道怎么调Web Service(Web Service是基于Java EE的),1个月后,罢工。。。
就在实习期间,认识了大牛付总!当时他是windows phone的资深开发人员,曾带领团队上线了好几个应用项目。对付总的能力敬佩不已。嘛,本篇只讲技术,不言其他,不具体讲团队的事了。
这次不开心实习经历使我再度放弃微软技术。现在再来看,windows phone技术确实也并没有得到太大的发展。(庆幸)
3.2 G1
研究生各种修课,设计模式,Java,。。。反正学了很多。然而具体技术并无太大长进。
上 学期末尾,项目实训,儿童在线音乐平台,这是一个.net项目,再一次回归net阵营。当时高校实训还是以Java为主,Java又以SSH为 主,.net当时使用WCF+EF,我当时开发了win8平板电脑的客户端,数据绑定各种犀利,一天时间实现客户端全部功能,也是醉的不行。(实训2.5 个月。。。)
实训结束,又上了移动平台开发的课,用的也是微软技术,开发的也是win8平板程序,我又开发了2个类似的程序,并传到应用商店,混了个学分。。。此后告别移动开发。
2013年,node.js已经开始火了,当时我觉得这个东西很厉害,力荐我们团队学习,然而最后被无情的驳回了。。。
3.3 G2
前往日本留学,各种学习,然而技术转型也在悄无声息的进行着。专业课Ruby on Rails,被Rails的思想给惊呆了,真正领略到了Web开 发的魅力,彻底放弃了Java和.net,对大三学习的JSP和ASP.net产生了极大的怀疑。买了个MacBook,专心学习Rails,在此过程中 接触到了Github,Cloud9,Heroku,LESS,SASS,NoSQL等一系列新概念,新平台。开发了不少demo,并传到了 Heroku。
学习了形式化方法VDM++,感觉很多代码和Haskell很像,为自己曾经学习过函数式程序设计感到自豪。
毕 业设计要实现一个移动应用的服务器端,开始研究各种解决方案,发现了Rest风格的Web Service,然后就是各种轻量级框架和全栈框架。比如Ruby on Rails,Sinatra,Grape,尝试了一天Spring MVC后放弃,后转向Java下的Play framework,实现了原型1,之后接触了Node.js,使用node.js+Mysql实现了原型2,被Express框架惊呆了,开始从 Ruby转向Node,当然用了coffeescript(至今仍然最爱coffee,其次typescript,不爱js),不过因图形库原因,项目最 终迁移到.net,使用Nancy Framework.
几经辗转,我对Node的爱不断加深,Markdown,hexo什么的实在是用的太爽了!现在除了MEAN工具链和Ruby工具链,我已经不想在搞Java和.net了。
3.4 G3
现在的计划是,首先继续学习coffee(1),然后是HTML+CSS(2)的学习,之后是JQuery和Ajax(3). 1个月之后,我会看看MEAN里面的AngularJS(4),最后我准备看看JS的数据结构与设计模式。
一切尘埃落定之后,追究还要回归到Node,HAPI.js值得一看。
4 尾声
4.1 几年求学的遗憾
PHP一片空白,然而我知道PHP有很多出色的架构和框架。
F#,WinJS,ASP.net MVC,这些微软技术似懂非懂等于没学。。。
5 最后
不管怎么样吧,最终还是回到了起点,然而大一时候的JS与这个时候或许已经完全不同。没想到现在又搞起了前端。。
谨以此文与大家共勉。不忘初心,向架构师的理想努力奋斗。十年磨一剑,至今时间已过7年,不知道此剑磨的如何。
El Psy Congroo. 临表涕零,不知所云。
写于留学归国前
作者:Kassadin
来源:51CTO