• 我的大学学习之路


      大一学c和c++,写黑底白字的程序,求水仙花数,阶乘。不知道程序有何实际作用。 迷惘到大二下半学期,觉得不能再这样下去,一次偶然的机会,学校网络中心招asp.net程序员,我去试了下,就进去了。在那里培训.net和c#,看着师兄用asp.net做网站,开始觉得程序可以这么用。

      从那时起开始步入写程序道路,当时跟着师兄学,觉得进步不太,就自已看书,期间帮学院做专业特色网站,第一次练手有点紧张,但还是很快做好了。在工作室陆陆续续做了好几个网站,越来越熟练了,开始了解javascript, 那时的js水平很弱,就是从网上找一些特效,然后自己再改改。

      到了大三,看了几本好书,也经常逛博客园看别人的技术文章,觉得开始领悟程序之道,开始关注代码简洁和性能,知道拿别人写得好的代码改进后为自己所用,这期间边看.net书籍和javascript书籍, 边帮老师做了几个外接的网站,觉得很有进步。例如开始关注.net的底层,类库的实现,这时候发现.net不是开源的,所幸有reflector反编译工具,基本上可以看到源代码了。

      但当时已觉得跟着.net走 也许不是明智的,尽管我非常喜欢c#这种优雅的程序语言,例如泛型,lambda表达式,匿名方法,扩展方法,委托与事件等。但觉得应该学学一种开源的,更被广泛使用的语言(php)。 这时候恰好也在看javascript权威指南,学习过程中与c#对比,发现这种弱类型的语言非常灵活和简洁,不像c#或java这样的强类型语言那么庞大,这使我对javascript的兴趣大增,当时把权威指南看了几遍, 特别注重理解了javascript的闭包,作用域链,原型链等等。

       大三下半学期做数据库课程设计,在卓越买了一本国外写的asp.net mvc书,第一次接触mvc,与之前的asp.net比起来简洁清晰多了。对asp.net的好感多了一分,用mvc做网站时,用javascript更方便了,也真正像是在做web开发了,开始知道看http请求和响应了,知道请求和响应标头的意思了(accept-encoding,cache-control,last-modified,server),会根据http状态码来判断网站故障了(200,304,404,500)。 从这以后更加注重网站性能了。

      课程设计做的是一个电子政务栏,有消息发布,活动申请,经费审批等,当时还不知道OA流程,但自己也弄了一个申请-审批-反馈的流程出来,当时主要是用程序实现跳转,在跳转前判断一些逻辑是否满足,在跳转时传递一些数据等做法。再者就是当时第一次大量使用jquery来做页面特效和客户端验证,网站操作起来有点gmail的感觉了。

       到了大四上半期,继续在帮老师做网站,做了一个韶关药师网,当时把自己学到的新东西都用到网站中去,例如jquery ajax, jquery ui,mvc,linq,当时对ajax实现的无刷新加载效果非常感兴趣,所以在网站中 几乎都在使用ajax加载,提交等。

      大四上了两个月课,就去北京实习了,自己在网上投简历,被一家北京创业公司(别猫网)要去做asp.net程序员,当时他们网站已有了第一版,是包给一个有几年经验的.net程序员做的。但我们仍然觉得他的代码不是很好, 例如他没有考虑网站访问量大时的情况,也没有考虑浏览器兼容性,当时某些功能是ie中是用不了的。所以一开始去的时候只是在改他留下的bug,后面发现有些东西改起来很费劲,就和团队商量重做了。商量的结果是用 asp.net mvc来做,于是和同学两个人负责一个那么大的网站,大家都是第一次做社交网站(图片问答网站,类似于quora,他在,无觅)。

      两个人写了几个月c#代码,慢慢的发现代码都要失控了,维护代码费时间。虽然我们两人都有代码洁癖,但当时对设计模式都接触不多,所以我们的代码没能做到很简洁和抽象,所幸当时是用mvc架构做的,代码还不至于失控,只是维护费时间点, 另一个就是当时网站前端用的js和jquery非常多,整个网站很多功能都是无需刷新就能实现的,用户体验也好。后来js写得太多有点混乱了,就自己封装一些常用的函数和控件,例如ajax请求函数,内容滚动插件,hovercaerd插件等。 在别猫网上线后,因为用的是普通的vps,访问数一多网站就容易挂,于是我们在网站中大量使用了cache,有页面缓存,局部缓存和数据缓存等,又在前端中优化了静态资源的加载,例如采用异步加载js的方式 来加快网页的加载速度,采用lazyload延迟加载来加快网页渲染速度,合并js和css文件减少前台请求数,采用图片服务器的来专门存放图片以降低网站服务器的压力等。

      在数据库设计上也考虑大并发的情况,例如采用冗余字段来减少表间的join(连接)操作,like操作配合top一起使用避免全表查找,select查找只查需要的列等。 做了这些后,还顺便百度学习如何优化服务器配置等等(用的是iis服务器,当时想做的效果是nginx来做统一转发,数据库,网站和静态资源各配置一台服务器)。 在北京实习的6个月是进步最快的,工作在第一线,经常为解决技术问题而熬夜等。收获了认真踏实的工作态度。再者就是javascript水平进步很大,几个月中写了很多js,对一些javascript的独有的语言特性了解的全面了, 面向对象javascirpt的prototype,原型链也比以前理解的更好了。

      最后就是由于同学会php的原因,我也对开源的东西喜爱更深了,对php的好感多了很多,php的开源产品(dedecms,discuz,thinksns,ucenter)多,而且php和js一样 同为弱类型语言,还有很多函数的用法也一样(array_push,array_slice等),所以从北京回来后也开始学习php了。 未来的感悟,就是要多研究下开源产品,其实这一年中也接触了不少开源的东西,.net的有json.net, log4net, nuget, lucene.net等,php的有dedecms, thinksns等。未来会将更多精力放在研究别人好的开源产品上去。在技术选择上也会优先学习开源的php,当然还有javascript了。

  • 相关阅读:
    Linux用户权限规范 /etc/sudoers文件解释
    Linux命令-用户、用户组、权限
    百度云盘问题专栏
    Chrome插件下载地址
    Linux命令-tar
    python:rs, ws, es = select.select(inputs, [], []) --报错error 10022
    1月份学习计划
    @Override 注解compiler1.5和compiler1.6不同
    tomcat启动(Ⅷ)--请求最终目的地 getContainer().getPipeline().getFirst().invoke(request, response)
    tomcat启动(Ⅶ)请求处理--Processor.process(SocketWrapper<S> socketWrapper)
  • 原文地址:https://www.cnblogs.com/tudas/p/my-learning-road.html
Copyright © 2020-2023  润新知