现在的位置: 首页 > 综合 > 正文

【原创】学编程有感(菜鸟可看,信管专业可看)

2013年06月02日 ⁄ 综合 ⁄ 共 3044字 ⁄ 字号 评论关闭

大家好,小弟菜菜,学习programming一年了,最近很多感想,写下来,记录下自己的心得,分享下自己的菜鸟经历。

先记一下流水账吧:(以下为流水账,没有兴趣的可以略过)

从开始接触程序,得从一次搭建论坛开始,那个时候啥都不懂,自己瞎折腾了一夜,搭建好了遇到各种问题,老是会把学长叫过来请教,也经常在网上询问别人,那段时间总是把别人整的很无语(曾经一次,一个人跟我说本地连接有问题,我竟然问本地连接是啥。。)。在这之后,有次无意间在网上看到木马加壳,有点意思,于是又在电脑上装了个虚拟机,借了几本黑客书,下载了一些病毒木马,折腾了一个多星期,虽然经过我改造的木马,依然能被各种杀毒识别,但是这个过程,让我对程序,对PE有了一点点了解和兴趣。

后来,学校开发文科生VB竞赛,寝室三个哥们都参加了,我当时懒得参加,觉得太难,而且浪费自己打游戏时间,后来又受一位学长蛊惑,参加了,花了一个月时间,照着一本c#书,抄了一个管理系统,准备就这样交上去,但是那位学长竟然隔两天就来寝室指导我,搞的我很无语,,于是又修改,又开始了一番对各种高手的折磨(半夜两点钟,因为字体的设置问题,把学长叫到我寝室。。。),后来嘛,因为这个东西,还得了个小奖,我对c#有一点喜欢了。那次比赛之后,我没事的时候会到网上看一下c#方面的东西,零散的学习了一段时间。(因为这个,菜菜本人对于数据库编程了解了很多,嘿嘿)

就这样一直漫无目的的学习c#,自己也感觉很不好,觉得是在浪费青春,于是就想着自己数据库有点底子了(嘿嘿,自负吧),加上之前计算机等考3级没过,心里一狠,去报了个四级数据库,然后就借助c#,自己平时没事了就开发一下小系统玩,在这个过程中,虽然没有很正式的开发,但是学到了很多编码应该注意的问题(容错处理,如何调试,用户体验等)和数据库知识(常见的连接出错,安装出错,查询语句的效率等)。

大二快暑假时,那位指导我参加VB竞赛的学长听说我对SQL Server感兴趣,又同我商量,和我一起开发一款软件(最后定义为安全辅助软件)。听到这个消息很兴奋,因为那位学长一直是我很崇拜的,嘿嘿,当然同意了。 随后又拉拢了几个哥们,我毫不要脸的担当了项目组长这个职务。在那个过程中,我学习到了SQL注入的原理,能够手工测试注入一些简单的网站,了解到了基本的防范原理,知道了网页挂马的原理,了解了相关木马特征码的发作特征。同时,在软件开发过程中,又和大家一起学习了正则表达式,学习了网络编程,一起熬夜研究多线程,解决效率和UI响应问题,学习到了很多c#控件的用法(ListBox,TreeView等),学习到c#的代码规范和项目文档的书写。当程序初步完成之后,测试学校的一些网站,很兴奋,很有成就感,觉得自己写程序终于摆脱菜鸟这个称号了,哈哈。

了解的越多,思考的就越多,从那个项目开始,慢慢喜欢多看一些关于程序设计的书,发现自己懂的太少了,数据结构不懂,设计模式不懂,很多框架也不懂,想想就觉得自己在程序设计这方面,真的太渺小。又因为在暑假期间,看了一篇白鳝同志写的DBA日记,自己也想去当DBA,想放弃走c#程序设计这条路。就看了很多关于数据库调优的书籍,大三开学之后,做了一个很详细的计划,计划要安装Oracle,计划把调优基础知识看完后,在Oracle这个强大的DBMS下,在相关辅助工具下,测试自己的调优能力,还和导师商量着,去管理学院的服务器。计划的很美好,但是当变化来临的时候,我又动摇了。 又一次在网上,看到了Google发起的大学生Android应用程序设计大赛,在询问了学长之后,和寝室一哥们一起参加了,花了一个月的时间,边学Java,边学androidAPI,边开发软件,最后,仅仅是成功提交了作品,也就是得了个背包。 那次之后,失落当然会有一点,但是没有灰心,因为我知道我对android了解的太少,当时时间也紧,和另外个哥们也只顾考虑到实现功能去了,很多东西都忽略了。 但是这次之后,我对android产生了兴趣,经过很认真的思考,决定放弃暑假想当DBA的决定,去搞android开发,很幸运,我被一位同学,推荐到了OPhone俱乐部,能够和一群热爱手机开发的同学一起学习,在那里,能够得到系统的讲解资料,不像是原来自己那么零散的学习,也有那么多同学可以讨论,遇到问题时,大家一起探讨,比自己独立解决,获得的知识更多。 更幸运的是,我竟然能够被推荐去和点团队的大牛们一起做项目,其实,文章标题说的学编程有感,感触最深的,是我开始和点团队做项目时,对于自己变成的历程的感慨。

在实验室里,身边都是点团队的成员,技术都很好,所以很自然的我有了巨大的压力,每天逼着自己学习,从不喜欢记笔记的我,破天荒的在两个星期内,几乎把一本笔记本用完了。跟他们在一起,我总喜欢在开会的时候,把听到的东西(软件设计的灵活,健壮,复用等等,项目内部交流机制, SVN的使用)记下来,回寝室之后再拿出来,看看,网上查查。跟他们在一起,我逼着自己去看英文资料,虽然之前也知道这个重要,一直没实践。 跟他们在一起,强迫自己经常逛论坛,于是也有了现在在CSDN写日志的机会。

在实验室的日子,有两个多星期了,这些天,从做需求分析开始,就一直断断续续看设计模式,分析着我们这个项目可能会用到哪些模式才能更加具有灵活性和扩展性,期间,也按照BOSS的安排,写了一些项目中可能用到的Android的程序demo,也对面向对象有了重新的认识,对自己编程到现在也有了新的感想:

我原来的做法效率很低的,学一门编程语言,我觉得,

首先,系统的学习是很有必要的,但是要真正掌握到,还需要有实际的项目需求(这里的项目需求,不一定非要是很大的project,自己创造需求也是很好的方案)

其次,要懂得扩展,我现在虽然还是菜鸟,但是起码比起以前,懂的东西更多了,就是因为做一个东西的时候,会想到和这相关的知识点,然后去了解一下,有必要的时候,去深入学习一下(比如做Web开发,你需要去了解常见的黑客攻击手段,想想自己的编码或者服务器配置能否防御或减少损失)

再次,要避免重复造轮子,你在做的coding,别人可能已经做过,没有必要自己从头开始写,特别是做项目的时候,那是浪费时间。要多学习已有的框架,在掌握到几本Coding能力之后,就是学习如何使自己的代码具有灵活性和扩展性。

The last but not the least,学习一门编程语言,当然需要自己动手写,看十遍别人的程序,不如自己动手写一遍,这个道理大家都懂,但是很多人都很懒, 我也很懒,但是我正在克服,正在挣扎着从菜鸟营跳出去,嘿嘿。


最后说一下,我的专业是信息管理与信息系统,虽然现在我做Android,看上去和专业没什么关系,但是在程序设计上,很多方面都是相同的,我们的课设学习过面向对象的设计,学习过网络集成,还有管理统计,运筹(多次挂科),数据库,数据结构等,这些课设的学习,都对编程很有帮助的,起码能够培养软件设计过程中的一些设计思想。 如果您是本专业,刚入学的,想在本专业发展并深造的话,我建议,学好数据结构,运筹,数据库,管理统计(程序设计不一定要精通,但是要懂,我个人认为,和我这个菜菜水平差不多或者高一点应该就够了),当然,还有很重要的是英语。 这些课程,在以后的数据挖掘和决策支持方向都很有帮助的。 我现在接触程序,关注互联网多了,后悔原来没有认真学习,谨在此,提醒各位同仁。

以上,为菜菜的拙见,欢迎大家拍砖,交流。

抱歉!评论已关闭.