热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

我的技术历程

小的时候有写日记的习惯,不是自己要写而是为了完成任务,后来发现写日记确实也是可以培养语言表达能力的。上了高中之后除了作业就很少写东西了,趁着这几天休息想写一下我使用电脑、学习技术的历程。一来当作分享,

小的时候有写日记的习惯,不是自己要写而是为了完成任务,后来发现写日记确实也是可以培养语言表达能力的。上了高中之后除了作业就很少写东西了,趁着这几天休息想写一下我使用电脑、学习技术的历程。一来当作分享,看看大家是否能有一些共鸣和启示;二来当作回忆,随着年龄的增长很多事情渐渐记不住了,想在纸面上留下点记忆。

 

(一)小学的时候

 

我是很早就接触和喜欢计算机的,可能有近20年的历史了,不过说来也惭愧,我经常和同事们说虽然接触电脑这么长时间,但是技术水平并不比你们接触电脑几年的人多几倍。记得最早的时候是我在上小学的时候,在我妈妈的学校接触到了她们学校唯一的一台苹果电脑,玩了苹果电脑里面黑白的,基于线条的开飞机游戏后对电脑产生了极大的兴趣,这个时候电脑不是一个寻常的东西,也不是普通家庭买得起的东西,由于对电脑兴趣比较大就去少年班报名学习苹果电脑。依稀记得当时一开始学习的就是打字,然后学习的所谓编程也就是输入纸上的一些BASIC或LOGO代码,然后在苹果机上运行成功得到结果算是任务完成,其实也就是打字,自己是无法理解其意义的。那个时候(92-93年的时候)电脑是非常金贵的,每次学习都是几个人围着一个苹果电脑,接触的时间也很短,很想有一个自己的电脑,但是基本上是很少有见到个人买电脑的。处于对电脑的兴趣就会经常买很多电脑相关报纸看,然后把报纸上的各种电脑的图片剪切下来粘在一本书上剪报。

 

(二)初中的时候

 

上了初中以后就有电脑课了,自然电脑课就是我最喜欢的课程,当时好像用的是386的机器,进入机房的时候是必须穿鞋套的,每一个学生购买一张5.25英寸软盘(1.2MB)作为自己作业和练习资料的保存,一家一档都在里面了:

72f082025aafa40f33c782abab64034f78f01946 135155599

当时主要学习的是DOS以及DOS下的WPS和FOXBASE,也就是操作系统+文字编辑+数据库。在学校恐怕一个星期只有一次电脑课程,处于对电脑的喜欢,自己买了一本DOS 6.22命令大全之类书,好像封面是白色的,非常厚的一本书,里面详细介绍了DOS的每一条命令的使用。自己虽然没有电脑,但是我研读了里面的每一条命令,整本书都翻烂了,所以当时对DOS的命令非常熟悉,在学校机房上计算机课的时候即便是老师遇到什么问题都会来问我。。。。电脑虽然买不起但后来有一次逛商场的时候发现出了小霸王学习机,号称是小电脑,在我的强烈要求下家里给我买了一台:

2009122212518360

接上了电视机就像一台电脑。我记得学习机里面有G-BASIC程序,买学习机的时候自带的学习手册里面还写了怎么使用BASIC来编程,我记得最后一个例子是编写一个简单的类似于超级玛丽的小游戏。我好像花了几天的时间把所有代码都输入了进去并且成功运行出来最后的例子,但是程序好像是不能保存的,机器断电之后就会什么都没有,所以学习机我就一直开着舍不得关闭,除了BASIC还有LOGO也是自带的,小乌龟爬来爬去画线。学习机的环境毕竟是模拟的,它的功能不多久就挖掘完了,还是很想有一台真正的电脑,自己也会经常买一些电脑相关的报纸来看并且剪报,虽然没电脑吧,但是买报纸看也是一件非常幸福的事情,就这样对电脑的期待一直持续了几年。在95还是96年的时候,偶然有一次在报纸上看到有一个广告,说是上海百货一店开始预订飞利浦486多媒体电脑,9999元。那个时候这样的一个电脑是非常夸张的配置(记得有一次看电脑展的采访,有一个人买了一台486电脑,记者采访他说为什么买486,他的回答是一步到位!现在想象真好像,不管是他还是我在当时都很难想到计算机的发展这么快),具有4X的CDROM可以读光盘,具有硬件解码卡可以看VCD,4M内存,540M硬盘,486DX2(还不是SX)的CPU,14寸显示器,由于当时宣传的很夸张也造成了抢手的氛围,并且我又是这么喜欢电脑好几年,家里拿出了这么一大笔钱帮我去预订了这台飞利浦的多媒体一体机(可以想象一下,在95年的时候1万元真的就是家里四分之一的财产了)。当时VCD的概念是刚出来,买电脑的时候好像还送了一张VCD电影,在自己家里可以放电影这是多么令人吃惊的事情。

惭愧的是买电脑之前反而研究的是电脑知识和编程,真正有了自己的电脑之后反而是荒废了。这台电脑买了之后的一开始一段时间我用它熟悉了DOS的每一个命令,特别是实践了磁盘整理、格式化花费和分区之类的“高级”命令(在机房没办法实践)。学习机的时候我接触过BASIC,有了自己的电脑之后我对BASIC就跟喜欢了,记得当时买了BASIC的书看,DOS下又正好有QBASIC,于是尝试编写了一个记帐的DOS应用,会把数据保存在磁盘上,界面还会使用各种颜色来表示不同的账面分类,当时作出这个想给我妈用的,后来我妈表示太麻烦了还不如用纸写,我虽然强调了这个软件可以自动进行求和等功能,但是在使用的时候由于BUG和局限性太多(比如只能新建条目不能再修改之前编辑过的条目)我妈还是放弃了。我记得很清楚当时的BASIC完全就是国产化的,顶多就是模块化,程序写到后来自己都看不懂。电脑是一个硬件,没有软件又不能上网电脑可以干什么呢?DOS、WPS之类的东西也玩腻了。这台万元的多媒体电脑暂时可以发现的作用是看VCD,在家门口有一个刚开不久的VCD店,可以几元一次的价格借盘片看,于是就经常光顾那里,慢慢认识了一个店老板,他自己家里也有电脑,并且喜欢打游戏,于是我就用1.44MB的那种软盘几张几张地问他复制游戏,记得玩的第一个游戏是《孔明传》。后来盗版好像发展起来了,就到外面买那种盗版光盘,好像是20元一张,里面有很多小游戏,而且很多都是外国试玩的游戏,最让我震撼是当时玩了一个真人快打是3D的,第一次接触到3D,虽然是试玩的只有一个默认的人物可以选择但是还是觉得很爽。此后不久有一次电脑展览会,展览会上展出了传说中的《仙剑奇侠传》,好像是几十元的价格,在看演示的时候我被画面震撼了,忍不住还是买了一个。买回来之后发现这个游戏在安装之后居然不能玩?总是提示什么内存不够!研究了一番发现,虽然电脑内存有4M,但是这个游戏只能用640KB的内存中的那部分,而且它需要540KB的内存。于是就狂研究DOS,当时又不能上网只能自己看书来研究,后来发现启动之后只有400KB左右的内存可以使用,那么也就是要想办法关掉一点启动项让他可以有540KB内存咯?后来发现调AUTOEXEC之类的启动文件可以做一些设置,具体我记不得了,还有什么上位内存之类的东西,整整搞了几天终于把内存腾出到580KB左右,可以成功运行游戏!那个时候真是太激动了,仙剑奇侠传启动时候的那个美妙的歌声我现在都记得。在那个时候游戏很少,打每一个游戏都是非常细腻地去打,没有现在这么浮躁,一个暑假两个月的时间玩透了仙剑奇侠传一个游戏,第一次体会到了RPG身临其境的那种感觉。在用

过了一年之后盗版开始更加猖獗,个人使用计算机也开始多了起来,计算机进入了Windows时代。(其实电脑买来之后就附带了正版的DOS6.22和正版的WINDOWS3.1英文版,前者是3张软盘,后者是6张软盘,一开始我是不明白那6张盘的是什么的)后来就买了什么Windows 3.2中文版,那个时候觉得Windows真是很神奇的东西,屏幕上有这么多立体的按钮,忍不住就想去按。但98年的时候还是非常少有人上网,所以装了Windows主要还是学习一些Foxpro之类的东西。

 

(三)高中的时候

 

记得刚上高中的时候学校又有电脑课,这个时候学习的电脑相关的东西早已经就不在话下了,于是自己去报名学习了“计算机中级”认证,在报名的时候老师说这个考试过的概率不是很高的,好像之后一二十的概率。说实话那种大班的学习让我一点兴趣都没有,坐在右面几乎什么都听不到,因此除了上机之外几乎我都不去读书,在最后几节课的时候老师见到了我这个生面孔,直接了当和我说我这种不来上课的人是不可能过的。。。。考试之前我在家拼命练习那堆Foxpro之类的东西,这是我最弱的地方,最强的还是DOS命令,为了保险我报名了两次考试,最后出成绩的时候我傻了,居然两次都过了!在去拿成绩单的时候终于让老师另眼相看。在玩了仙剑之后,我记得还有一个大作让我印象很深刻,那就是《金庸群侠传》,记得当时这个游戏有180MB的容量,足足可以占我半个硬盘,而且由于我电脑只有4MB内存,启动的时间大概需要几分钟,每一次存盘也需要1-2分钟的时间,走地图还会一卡一卡,不管怎么样这个开放式的RPG还是让我非常着迷。后来就出了Windows95,跨时代的产品。4MB的内存运行Windows 95实在是有一点紧张,每一次启动大概都需要十分钟,而且启动之后再运行什么东西都会很慢,因为内存都被OS占了,眼馋了很久内存,后来通过官方加了一根4MB的内存,居然需要1000元,8MB和4MB真是天翻地覆的差别啊。当时由于比较喜欢折腾电脑的一些配置,而且也喜欢装垃圾软件,所以电脑一直“中毒”启动不了,就要一直重新安装系统,内存升级之后最明显的区别是原先1个小时的安装时间,只需要40分钟了。在98年高中的时候已经有不少人买电脑了,有的人甚至买了奔腾的MMX,我当时用的还是486,见到它们的电脑是16MB内存还可以玩极品飞车之类的3D游戏羡慕得不行。

到了好像99-2000年的时候,那个时候电脑城已经很发达了,家庭购买电脑装机也是很普遍了,于是就到了电脑城让JS帮忙配了一台赛扬266,其它配置好像是64MB的内存,Trident 9880的显卡,6.4GB的硬盘,15寸显示器这样子。我印象最深刻的就是9880这个显卡,话说JS还是很能理解我们这些配电脑小朋友的心理,给配了一个独立的显卡,用这个显卡居然可以流畅运行极品飞车3、古墓丽影之类的3D游戏。在用486的时候还是编程的,在用第二台电脑的时候好像就几乎不编程了,由于电脑可以运行更多的游戏,电脑的很大一部分意义就是游戏了,那个时候单机游戏也是高速发展的时代,出了很多类似于红警之类的经典游戏。之前参加电脑展的时候买过正版的仙剑奇侠传,后来一次参加电脑展看到《CSC电脑家庭教师》的软件,好像记得是千元左右的天价,我妈坚持要给我买这个软件,希望我通过它好好学习,买回来语数外化学物理政治等足足几十张光盘,虽然说里面的教材是全国版的和上海版的高中教材不是非常匹配,但是我当时还是真真切切用它学了很多,特别是英语和物理,它有升级和分数,像打游戏一样,我妈总是会检查我在CSC里面的分数。后来好像还给这电脑升级过一次内存到128MB,升级后的体会还是Windows98的安装速度怎么可以这么快。。。

 

(四)大学的时候

 

上了大学之后寝室里面有网络,开始接触到了网络,也开始狂热地玩游戏。一开始用的是猫在家里上网,当时上网费是很贵的,按照分钟计算的,于是就经常上了新浪,打开一些地址之后然后从网络断开慢慢看,想想也是挺有意思的,后来发现上上海的一些本地网站居然可以用特殊的帐号免费上,比如上海热线什么的, 兴奋了很久。在学校由于可以放开上网,所以会去上一些聊天室什么的,还有么就是QQ之类的。由于寝室有网络,所以几乎每一个寝室都会有一两台电脑,整个大楼就是一个局域网,所以联机CS、暗黑、英雄无敌之类的是少不了的。每一次打开CS都可以看到密密麻麻的房间,每一次阿姨进来总是说小声一点,整个楼到处弥漫了哒哒哒哒的机枪声和手雷爆炸的声音。在大一和大二的时候网络游戏不是那么发达,那个时候只有文字类的网络游戏,大家几乎都通过CS以及暗黑度日。每到下课总是冲到房间里面打开暗黑一遍一遍刷墨菲斯托来刷装备!后来魔兽3风靡了起来,于是又变成一遍一遍虐待电脑和对战。渐渐我那个赛扬266有点挡不住了,运行Win98和CS都卡的不行,当时CS我调的是最低的效果,烟雾弹爆炸画面几乎都是糊的,此事帧数大概就是个位数,在这个时候用狙击能杀死人运气真的是不错。那个时候家里条件并不好,记得第一台电脑近万元,第二台赛扬大概5000元,第三台电脑好像也就只有3000元左右的预算。于是就配了一台毒龙1.2GB的电脑,内存好像是1GB的,硬盘20GB,集成的显卡。虽然说是集成的显卡但是性能比9880强劲不少,毕竟是2002年时候的电脑,另外显示器也换成了钻石珑的15寸显示器,这台电脑至少玩CS、魔兽3一点问题都没有。不过后来发现毒龙的CPU发热量很大而且我的机器总是死机,奇怪的是并不是非常热的时候死机而是开机就死机,如果开机10分钟之内不死机那么就不会死机了,冷启动总是死机。。。

到了2003年大三的时候,网络游戏开始风靡了,什么网络金庸群侠传,RO,石器时代,传奇,我在一开始玩过一段时间的金庸,后来发现里面几乎都是机器人和外挂,感觉没什么意思就不玩了,我们寝室的人主要都在玩RO,那个时候说实话我对网络游戏没什么兴趣,反而对网络非常有兴趣,我好奇这么多网站是怎么做出来的,觉得能有自己的网站是一件非常有成就感的事情,于是想到了去学习做网站,从那个时候开始接触做网站,造就了我之后的技术发展。。。。

(四)大学的时候

 

接上文。在大学的时候有各种各样的社团,出于对做网站的喜欢,当时加入了一个网络社团,想学学做网站的东西,当时对社团里面会动态语言做asp网站的人钦佩的不得了,于是回家买了一本asp的书:

A191

我真正的启蒙书,当时我室友也是会一点html和静态网站的,他看了我学asp就说你不要尝试了,这个很难学的学不会的。后来我还是没有放弃,坚持照着书上的例子做,大概几个月的时间我发现居然会用asp做一些小系统了,由于和网络学会一个学长关系比较好,于是他拉我和其他几个学长一起“创业”接一些外包的小网站来做,当时我们这个小团体有美工而我就是程序员,用asp或php技术来做一些网站,比如什么旅游网站啊,什么小的购物网站。后来我自己也做了一个自己的个人网站,叫《随缘居》域名也是suiyuanju.com,现在早就不在了,然后写了一个系列文章叫《十天学会asp》。我觉得自己学习asp的经历是比较痛苦的(没有人教),后来学会了之后发现asp其实也就是几天就可以学会的东西,特别最开始的开发环境搭建自己摸索比较痛苦。虽然现在回头看来比较小儿科,但是这个系列文章当时好像在网络上火了一把,有人说好,也有人骂,说是如果所有人都像你这么搞的话其它程序员都要失业了,当然也有人说浮躁,怎么只说怎么做不说原理,说实话在这个时候原理我自己都不清楚。后来我又写了什么《十天学会php》《十天学会asp.net》(http://blog.csdn.net/byebye8742)(后来发现有网友把我的文章打包成了电子书,表示感谢)的文章,现在看看是肤浅的一塌糊涂,当时我觉得这些都差不多,无非就是几大重要对象,知道怎么访问数据库,知道怎么从表单获取值,知道怎么把内容输出到页面就掌握了动态网站的开发,没有任何oo概念的。

2003-2004年的时候sql注入好像比较火,当时在自己的网站写了这么多文章也发布了一个论坛(开源的随缘论坛)程序,后来自己的论坛别别人sql注入了,那哥们说就你这个技术还开源论坛。后来我研究了一下sql注入,发现我的论坛程序在get的地方考虑到了类型转换,但是post的地方忽略了,我意识到一个很大的系统只有有一个地方有注入漏洞,整个系统都可以攻破(如果一个数据源的话)。回去之后我和寝室的某geek讨论了一下sql注入,没想到几天后这哥们居然告诉我我们大学的某个系统居然有sql注入,再经过几天的研究后我发现,除了这个系统,甚至还有教务处等系统等也有注入,犯的错误和我一样,post的地方可以注入,特别是那种次要模块的post地方(比如新闻模块的搜索),导致整个数据库都暴露了出来,通过工具可以轻易了解整个表结构以及输出整个表的数据,甚至可以下载到表。经过研究之后,学校的大部分系统都可以顺利注入,得到需要的数据,当然还好当时没有用这些数据去做一些错事,也没有去改数据(要改分数甚至都很容易),否则可能就被开除了。被发现之后将功补过,帮学校做一些系统(比如学校的官网),在快毕业的时候代表大学参加了上海市第一届大学生网站设计大赛。3个小时的时间按照给出的命题做一个网站,去了之后才知道自己太诚实了,别人都是带u盘进去直接整合论坛新闻系统的,3个小时做出来的网站有论坛有新闻有聊天室?我和我那geek哥们做出来的网站只有一个新闻系统,在答辩的时候明显处于弱势。还好这个比赛评分有公开投票和评委投票两个部分,于是我就想了要么sql注入再来一次?公开投票是一个ip只能投一次的,我发现组委会的这个php系统也是有注入口的,于是通过注入上传了一个木马,可以改服务器上的任意文件,自己做了一个php上去刷票,刷票后我们的作品当然排名第一,没过几天发现另外一个学校的作品居然遥遥领先了!后来到后台一看原来那学校也注入了,我们两个“黑客”在后台碰面了,最后的结果就是组委会发现网站被黑取消了网络投票的程序。。。我们通过评委投票只拿到了第三的名次,不过奖品还算不错,一台联想P4的电脑。

在学校的后两年读书倒不多,外面做了不少网站,赚了一点学费,黑了学校不少系统,最后也拿了一个小奖。

 

(五)第一个阶段

 

虽然之前有这些经历,毕业后找工作要想找到大公司的工作也不是特别容易,别人重记住,而我这些都是应用层的小打小闹。第一家公司用的是asp.net的技术,特别感谢师傅领进门,让我接触到了很多架构上的东西,刚毕业的时候总是学习最快的时候,那个时候开始喜欢上csdn论坛(http://www.cnblogs.com/lovecherry/gallery/21836.html),想的是如果自己能在csdn做一个版主是多么有面子的事情啊。第一年的时候虽然自己知道的也不是很多,在csdn努力回答问题,慢慢从三角(裤衩?)混到了星星(猩猩),通过csdn回答问题自己学习了很多,提高了很多,工作第二年的时候也就是2006的时候尝试申请微软MVP居然成功了,成为了一名ASP.NET的MVP,说来也惭愧现在看起来那个时候的技术还很差呢。在csdn混了一段时间之后有了4星,也申请成了asp.net区的版主(当时csdn叫lovecherry)。当时在csdn记得有几个像神一样的人物,一个是思归,一个是孟子e章,那些高手抢分都特别厉害,基本一个回答一个准,当时也就以他们为目标。在csdn一段时间之后,发现csdn的问题偏向于入门,于是去的时间慢慢变少了,在博客园注册了lovecherry的帐号,http://www.cnblogs.com/lovecherry ,一开始大概写的文章都比较实用吧,看的人挺多的,所以觉得分享是一件快乐的事情,可以和大家一起讨论,也可以帮助大家,慢慢喜欢上了写博客。总之,不管是泡论坛还是写博客,在解决了别人的问题别人表示感谢之后会觉得很满足,这也是一个非常巨大的动力。我技术发展的第一个阶段就是靠csdn以及写一些博客开始的,一开始论坛上可能20%的问题是自己可以解决的,后来发现80%的问题自己都可以解决或能找到解决方法之后,感到自己对搜索引擎使用的能力有了巨大的提高,写博客可以提升自己的基础,因为自己不掌握90%以上是很难写出博客的。通过csdn我获得了微软MVP,让我对社区贡献有了更大的责任感。

image

 

(六)第二个阶段

 

 

到了第二家公司的时候,由于是MVP的关系吧,出版社联系到我想让我写一本有关ASP.NET入门方面的书籍,在经过了一些思想斗争和策划之后决定花半年时间来写,于是后来就写了这么一本《ASP.NET第一步》。由于是兼职写的,所以感觉写书的时候太累了,那半年基本除了上班都在写书。而且写书要求自己懂100%,那是比博客更高的要求,而且要有连续性条理性,还不能出现重大的错误。可以说写书是对自己技术的第二个阶段的重大提高。在这里想说两点,一当时为什么想写一本书是因为觉得自己的自学比较苦,技术上有很多东西是一点就透的东西,我希望让更多人通过我的书可以快步入门,很多东西自己琢磨可能需要几个月,但是如果看一本思路清晰的书有人手把手的话话可能只需要几周就可以入门,第二,由于时间关心和精力关系当然也由于水平的关系这本书并不是很满意的,写好之后编辑也说错别字实在是太多,有很多地方还虎头蛇尾,这里要和读者说对不起了。在此时此刻现在看来,当时写的书还是比较肤浅的,可惜现在没时间了,否则真的想再写一本书,我觉得现在可以分享的东西比几年前多的多。在写书之后,还和出版社合作参与过几本书的翻译工作,如果说写书是练技术的话,翻译书练的就是英语的阅读能力,我记得在刚翻译第一本书的时候是需要查字典的,一页纸的翻译大概在2-3小时左右,也就每走一步都很困难。到了第一本书翻译完成之后发现自己的翻译速度提高了好几倍,而且不用查字典了,当然后来再翻译了几本书之后计算机英语书籍的阅读速度就和中文的阅读速度差不多了,对英语资料的阅读从反感到了喜欢。国内中文的资料往往会慢国外英文的资料1-2年,这是因为书籍的翻译和发行需要这么一个过程,而且国内社区对技术的讨论没有老外这么多,所以我个人是很喜欢用英语关键字来搜索相关资料,也喜欢看英语的一些文档博客和书籍,我会推荐同事安装英语操作系统和各种框架,因为这样在遇到问题的时候系统给出英语的提示我们才可以直接搜到国外的资料,否则有的时候甚至需要把中文的异常信息再翻译成英语去搜索。在这个阶段的时候感觉自己的技术怎么说呢,在.NET这个领域基本可以解决大部分问题,但是设计上有欠缺,在一开始几年比较难理解oo的一些东西,从.NET社区来看也不像JAVA这块这么“先进”,有一点井底之蛙的感觉。在学习了设计模式之后,可以发现自己一下子可以理解抽象层和实现层这种继承实现的设计上分层的意义了,思想可以从纯过程化到使用OO语言到真正采用OO开发的转变了,有很多同事一直在说可以看懂OO的代码,但是很难自己写出这样的代码,我觉得这必定是需要一个过程的,通过设计模式的学习和阅读别人写的代码可以加速这个过程,但肯定需要一个过程。只有在重构中抽象,通过无数代码的改良过程才能体会出其意义。

 

(七)第三个阶段

 

在第三家公司的时候,我还是专注于.NET,但是这个时候开始看许多设计方面的书籍,也对各种经典设计模式比较熟悉,在OO上进行一定的实践。同时还在继续翻译一些书籍,对微软技术进行进一步拓展,紧跟.NET的新技术。并且,开始去了解和实践一些IOC、AOP、ORM,以及继续自己多年在SOA方面的实践。当然,在这家公司虽然在技术的广度上没有发展,但是另一个好处就是英语得到了进一步的提高,如果说以前是解决了只是阅读这一关的话,在一个纯英语环境下工作可以解决写和听说的关,英语的学习对于外国人来说从简单到难个人认为是读写听说,最难的也是实践最少的就是说。碰巧的是工作中合作的产品经理是老外,所以听说上有点长进,至少英语敢说,不怕丢脸就成功了一半了。

 

(八)第四个阶段

 

在第四家公司接触到了.NET之外的世界,觉得自己从井底爬了上来,没想到开源的世界有这么多东西,以前真是井底之蛙了,也注册了一个新的帐号就是现在这个 http://www.cnblogs.com/lovecindywang。在接触了.NET之后,又接触了Java、Linux、Python、Ruby,然后又接触到了比较火热的移动开发iOS和Android。发现很多东西其实是非常相通的,比如如果说ASP.NET MVC很熟的话再去接触Zend、Struts2、Rails没有任何难度,ObjectiveC中也有C#类似接口、委托、查询表达式等等一些概念。。。我觉得人其实是有一个舒适区的,比如一直在.NET这块就是一个舒适区,如果可以突破就会发现其实其他东西学习起来没什么困难的,因为技术上是触类旁通的,特别是理解了一些诸如编译、内存、虚拟机、线程等基础的东西之后,这些东西到哪个语言都是差不多的,唯一要学习的只是每一个语言语法层次的东西和API层次的东西。因为,我现在在学习一门新语言的时候,往往只会先花1-2天时间看语言特性,然后花1-2天的时间过一遍API,然后就是重点要看语言背后VM或说平台层次之类的东西,因为这才是这个技术最重要的部分,比如对于web语言来说,其内存模型,线程模型以及编译方式就很重要,这些基本的东西不理解很难把握住语言。在这个阶段的时候由于从一个框架的使用者到了一个框架的设计者和开发者,阅读了很多开源的代码,也会考虑参与一些开源的东西,此事我发现,如果说写博客是和国内开发人员一起讨论技术的话,参与开源项目那么就和国际接轨了,因为全世界的人都可以看到你的代码,当然要参与开源项目英语也是一个必要的铺垫。

 

总结一下吧,我是通过下面的方法提高自己的技术的,在社区回答技术问题、在博客发表技术文章、写书翻译书、阅读开源代码参与开源项目,我一直觉得分享是一种很好的提高技术的机会。不要怕分享出去了别人会抢你的技术,永远不会,这个世界上山外有山,高人多的是,你分享出去的东西可以让人受益,同样也会有很多高人来给你的东西提意见,绝对不会因为分享自己丢了什么,往往是通过分享可以学到更多的东西。另外,从我的经历来看突破自己舒适区是一个很重要的事情,我以前面试过不少人工作了几年连最基本的一些原理都不知道,他们知道怎么基于别人搭好的SSH架构来做东西,但是甚至不明白什么是IOC以及IOC对于解耦上的意义。遇到过很多人总是抱怨工作环境学不到东西,我觉得是这样的,学东西要靠自己,工作环境只能说是有一个加成,比如说是有一个更好的平台来学习,而不能期望别人来教你什么。有的时候是先有鸡还是先有蛋的问题,自己的水平还不够好,往往就进不了大公司,自己水平够好了进了大公司往往公司又不能让自己学到什么,其实想想也对,别人给你工资是要你创造价值的而不是说要来教你什么,所以在一个环境学东西是靠自己的。

 

最近两天在家整理了一下书橱,发现有很多书找不到了,也发现居然有一些书买重了(书重了,说明其确实是一本好书,在自己不同的阶段都会意识到需要再读,其中重复很多本的是自己翻译的,出版社送的样书,一般来说园子里的朋友写的书我都会买来看一下,一个是支持第二是知道书不会太差)。

DSCN0024

第一层都是一些.NET书,.NET的书买的真不少啊,第二层左边是其他的一些.NET书,中间是数据库相关的书,右边是C/C++相关书。

DSCN0028

第三层是基础类的、设计类的以及重构和方法学类的书籍,第四层是Java、Linux等开源技术的书籍,第五层左边是管理类的书籍,中间是前端开发的一些书籍,右边是移动开发的书籍。

 

随着自己对技术的理解很多书从看不懂到了看得懂,也越来越发现基础的重要。对模式、重构需要有时间的积累,对任何一门语言来说先学好其特性再学其运行时的一些东西很重要,不能说会了ifelse和while就认为是会了一门语言。而且年纪大了之后,发现技术其实是成功的其中一个因素,也不是百分之一百重要的,正因为如此对待技术没有什么可以张扬的,人会越来越低调。我一直认为,我比你多懂一点只是自己多走了几步,没有什么可以炫耀的,不管到哪里教别人分享都是一件很快乐的事情,山外有山低调总是没错的。而且,对技术的心态也从玩技术到了用技术,技术要能用好才能发挥其价值,如果一味使用高端的不成熟的技术,虽然说很先进但是很可能造成项目的失败,把最合适的技术用在最合适的地方才是成功。

此文送给我之前的同事,希望你们各自在自己的岗位上做出好成绩,和公司共同成长,也送给我自己,希望我之后的发展可以顺利。

作者: lovecindywang
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
分类:  杂谈

推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了在go语言中利用(*interface{})(nil)传递参数类型的原理及应用。通过分析Martini框架中的injector类型的声明,解释了values映射表的作用以及parent Injector的含义。同时,讨论了该技术在实际开发中的应用场景。 ... [详细]
author-avatar
x将臣x
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有