zoukankan      html  css  js  c++  java
  • 我的大学学习之路

      大一学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了。

  • 相关阅读:
    Allegro PCB Design GXL (legacy) 使用slide无法将走线推挤到焊盘的原因
    OrCAD Capture CIS 16.6 导出BOM
    Altium Designer (17.0) 打印输出指定的层
    Allegro PCB Design GXL (legacy) 将指定的层导出为DXF
    Allegro PCB Design GXL (legacy) 设置十字大光标
    Allegro PCB Design GXL (legacy) 手动更改元器件引脚的网络
    magento产品导入时需要注意的事项
    magento url rewrite
    验证台湾同胞身份证信息
    IE8对css文件的限制
  • 原文地址:https://www.cnblogs.com/tudas/p/my-learning-road.html
Copyright © 2011-2022 走看看