读书有感——《从毕业生到程序员使用C#开发商业软件》

  本来想自己写个读书感悟之类的东西,但是苦于自己语文水平太差,算了,我把里面觉得很赞的内容摘抄下来就好了(学习都是从模仿开始的嘛)。

  书籍:《从毕业生到程序猿使用C#开发商业软件》

  作者:袁永福

  积累与创新

  积累与创新是技术人员良好发展的基础。没有积累,没有创新,软件开发人员就会沦为一个“码奴”,为具体的代码所累,前途堪忧。

  其实积累是很多方面所必要的,比如生活中任何人都需要积累生活经验,在工作中需要积累工作经验,而从事软件技术工作,则需要从业者技术上的积累,实现代码方面和思想方面的积累。

  代码上的积累就是在工作过程中,将一些用过的通用功能的代码进行整理打包,形成个人的代码库,超越所经历的公司和项目,而且平时有意识地将其完善和发展。这样,今后在开发过程中能直接调用这些平时积累的久经考验的代码库,开发软件就能更有效率。

  这个代码库不一定是自己开发的,也可以是他人公布的,但需要花时间了解这些代码,至少要了解其使用及注意事项。现在开源代码比较流行,代码积累的意义有所减弱,但还是需要做的。

  其实代码是死的,代码的积累应该说是醉翁之意不完全在酒,代码积累无须在乎代码量的多少,而更在乎其所蕴含的思想。

  软件技术人员的能力分为:“代码-技术-思想”三个层次,大量的代码锻炼出技术,技术提炼出思想;反过来思想指导技术,技术创造代码。有点类似读书从薄读到厚,再从厚读到薄的意思。

  代码是死的,可能会过时,而思想是活的,永远能发挥作用,不过抽象的思想最终表现为实际的代码而形成生产力,因此代码的积累和思想的积累应该是相辅相成的。

  对于一般的毕业生,只有很简单的代码能力,技术能力比较差,思想还谈不上积累,因此需要即刻开始进行技术积累。要阅读高质量的代码,多看书,多向他人学习,同时也需要关注业界同行在如何进行技术开发,逐渐形成自己的技术基础。

  一个技术强者仅仅有雄厚的技术基础是不行的,而应当有敏锐的头脑,其智能需要形成一种金字塔的构造。同时具有雄厚的技术基础和敏锐的头脑,这样才是真正的高手。

  敏锐的头脑就是具有强烈的创新精神,创新对企业和个人都具有很重要的现实意义,此处只说明其对个人的意义。

  创新是指利用已有的知识基础,通过人脑所产生的联想,直觉等能力创造出前所未有的知识。不过现在的创新强者很多,自己创新的很多新知识说不定别人早就想过了,但这不是重复劳动,首先自己创新的新知识只是很有可能别人已经创新了,但任然有可能没有被他人创新,因此,要对自己有信心。另外创新是一种能力,我们无须跟全球顶尖高手相比,只要跟周围的人相比,自己能创新就是一种很好的优势,养成创新的习惯是非常有意义的,是成为技术高手的必由之路。创新的基础就是具有自己的思想。

  有个故事,某国际学校里,老师问学生们:“如何思考其他国家的粮食短缺问题?”,美国孩子问:什么叫其他国家?欧洲孩子问:什么叫短缺?非洲孩子问:什么叫粮食?而中国孩子问:什么叫思考?

  中国正规教育制度大部分都要求学生无条件接受书面知识,不需要独立思考。毕业生或多或少地受其影响,独立思考能力比较弱,因此很多人缺乏年轻人所应有的创新精神。这在今后的职场中需要逐渐摆脱正规教育的不良影响,恢复自己的独立思考能力。

  创新除了需要独立思考能力外,还需要一定的危机意识驱动创新。(后面举了一个关于九城公司的例子,感兴趣的可以直接去看书)

  技术之害

  在此笔者给刚做技术的毕业生一个忠告:“人御技术,技术亦可御人”。笔者对此有着很深刻的体会。

  技术的反弹伤害首先导致人性格过于简单,不灵活。

  长期专注于技术的人,其性格必然是有点倔的,否则压根就坐不住来研究技术;另外,长期专注于技术也强化了其性格的倔性,说得好听就是执着,说得不好听就是固执。固执就是不圆滑,容易钻牛角尖。

  在技术上钻牛角尖是没什么大问题的,因为技术是死的,所遵循的科学规律是固定的,因此比较容易发现是否有出路,若没有出路,则技术人员会退出去。因为技术人员非常尊重科学道理,严格按照逻辑思维,若按照逻辑思维此路不通,则技术人员会尽早退出,不会逆天而行。

  但在与社会交往中是没有死规律可遵循的,全是活的,因此自然科学不适用,而长期钻研技术的人其思想已经被技术化,会使用固定的规律处理技术问题,也会使用固定的规律处理社会问题,自然是头破血流。可能有的技术人员不思改变,结果更加封闭自己,更完整地沉入技术,问题会越来越严重。

  技术的反弹伤害还造成人以自我为中心,不利生存。

  所有的技术都是为人服务的,因此技术人员对待任何技术都是以自我为中心的。若这种技术思想侵入人性,很容易造成技术人员在社会中也是以自我为中心的。以自我为中心的人活在自己的世界中,有自闭倾向,缺乏与社会的沟通,容易固执,不易接受他人的建议,很难站在他人的角度看待事物。这些都不利于在社会中的生存和发展。

  以技术讲人术,技术侵蚀人性,这就是技术最大的弊端。人为了更好地发展,就必须获得他人的支持,而已经被技术侵蚀的人际交流能力是人际交往最大的障碍。反过来如果一个人技术好,而且摆脱了技术的限制,人际关系处理得好,处世思路活,那么此人前途无量。因此不知技术之害者不能尽用技术之利。

  ......

  摘抄部分到此结束,感兴趣的可以自己去看书,自己也是刚刚转行到IT行业的,能有一本书从刚入职的菜鸟角度写真是难得啊,书很好,介绍了很多毕业生应该知道的知识,避免走过多的弯路,在此谢谢作者。

  自己也是刚刚接触C#开发,而且入职一个月多一点,公司就要把我派去深圳出差了,希望努力成为一个优秀的技术人员,也希望像书中所说的不受技术之害(个人觉得可以通过培养一些兴趣爱好,像运动,摄影来避免技术之害)。奔跑吧,菜鸟。燃烧吧,青春。

  这里附上我早上刚拍的照片:

  

时间: 2024-10-19 02:29:39

读书有感——《从毕业生到程序员使用C#开发商业软件》的相关文章

程序员在编程开发中的10个实用技巧

程序员在编程开发中的10个实用技巧,下面是我自己在工作中学到的一些简单的技巧和策略,希望能对各位有用.1.     橡皮鸭调试法不知道各位有没有这样的经历,当你正在给别人描述问题的时候,突然灵机一动想到了解决方案?这种情况的产生是有科学依据的.高谈阔论能让我们的大脑重新有条理地组织问题.在这种情况下,你的聊天对象就是“橡皮鸭”.团队中的每个人都应该积极主动乐意地成为彼此的“橡皮鸭”.有时候,如果你幸运的话,你的“橡皮鸭”搞不好还能给出有效的建议呢.2.     快速信息反馈一旦写好代码就要尽快得

C#程序员学习Android开发系列之ListView

上篇博客解决了Android客户端通过WebService与服务器端程序进行交互的问题,这篇博客重点关注两个问题,一个是Android应用程序如何与本机文件型数据库SQLite进行交互,另一问题则是如何在ListView中按照我们想要的界面效果进行展示.限于篇幅这篇重点讲ListView,下篇博客重点阐述SQLite. ListView是一个常用的数据显示控件,假设我们要做一个简单的界面,如图所示. 这张图是我直接从Android平板电脑(Android 4.2.2)上面截图下来的,就是一个普通

Java程序员转Android开发必读经验

小编最近几日偷偷的发现部分Java程序员想转安卓开发,故此加紧补充知识,为大家搜集资料,积极整理前人的经验,希望可以给正处于困惑中的你,带来些许的帮助. 啰哩啰嗦的说说Java和Android程序的区别: Android是主流智能手机的操作系统,Java是一种开发语言,两者没有好坏优劣之分,只是两种职业岗位的选择.学安卓从事移动互联方向开发,学Java从事软件.网站开发.而安卓上的应用大多是Java编写的,所以建议在安卓前期的Java学习阶段中,要用心学好. 言简意赅的说说“转”前的准备: 其实

Java程序员转Android开发必读经验分享

摘要:DevStore小编最近几日偷偷的发现部分Java程序员想转安卓开发,故此加紧补充知识,为大家搜集资料,积极整理前人的经验,希望可以给正处于困惑中的你,带来些许的帮助. 啰哩啰嗦的说说Java和Android程序的区别: Android是主流智能手机的操作系统,Java是一种开发语言,两者没有好坏优劣之分,只是两种职业岗位的选择.学安卓从事移动互联方向开发,学Java从事软件.网站开发.而安卓上的应用大多是Java编写的,所以建议在安卓前期的Java学习阶段中,要用心学好. 言简意赅的说说

C#程序员学习Android开发系列之学习路线图

通过前面的3篇博客已经简单的介绍了Android开发的过程并写了一个简单的demo,了解了Android开发的环境以及一些背景知识. 接下来这篇博客不打算继续学习Android开发的细节,先停一下,明确一下接下来的学习目标以及学习路线. 一.对Android开发的基本认识 1.Android原生开发是基于Java语言的,由于我比较擅长C#,所以对Java语言本身不太熟练,需要加强Java语言基础的练习,这一块我会穿插到具体的知识点练习当中,并且在必要的地方给出与C#语言的对比(其实基本上在语法层

C#程序员学习Android开发系列之SQLite

上篇博客提到过SQLite,它是嵌入式数据库,由于其轻巧但功能强大,被广泛的用于嵌入式设备当中.后来在智能手机.平板流行之后,它作为文件型数据库,几乎成为了智能设备单机数据库的必选,可以随着安卓app打包到apk文件当中. SQLite的官方网站是http://www.sqlite.org/,可以任意下载,上面也有详尽的文档可以参考,这篇博客重点关注SQLite在Android开发中如何使用. 在Android开发中,推荐建立一个类继承自SQLiteOpenHelper来创建数据库操作类,比如:

程序员必备简捷开发辅助工具总结

程序员必备简捷开发辅助工具总结 本文独家授权给stormzhang运营的公众号AndroidDeveloper,拒绝其他任何形式的转载. 写在前面: 工欲善其事必先利其器,拥有简捷的开发辅助工具能大大提高我们程序猿的开发效率.Melo刚到学校就给大家总结了一些常用的辅助开发的工具,希望大家能喜欢,闲话不多说,马上开始~! 零:Notepad++ Notepad++ 程序员必备的文本编辑器,软件小巧高效,支持27种编程语言,通吃C,C++ ,Java ,C#, XML, HTML, PHP,JS

C#程序员学习Android开发系列之Android项目的目录结构

今天开始正式学习Android开发的种种细节,首先从最基本的概念和操作学起. 首先看一下Android项目的目录结构. 这是我随便建立的一个test项目,我们重点关注一下几个方面的内容: 1.src目录:存放java源代码的目录,里面建立一个包,包里面有4个java源文件(分别都继承自Activity).由于java要求比较严格,因此要求类名与文件名一致. gen(Generated Java Files)目录:自动产生Java源文件的目录,是由工具自动生成的,一般不需要自己修改.里面主要有一个

CSharp程序员学Android开发---3.Android内部元素不填充BUG

最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历时一个多月,4个人开发,最终行成一个可用的Demo,整体效果还非常不错.这其中借鉴了网上的“仿网易客户端的Demo”还有就是学习<疯狂Android>,收获颇多,这里利用几篇文章做一个项目经验总结,还有就是更多的从C# 程序员的观点来理解Android的一些异同之处. 文章目录: CSharp程序