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

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

  作者:袁永福

  积累与创新

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  技术之害

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

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

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

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

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

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

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

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

  ......

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

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

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

  

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

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

    小编最近几日偷偷的发现部分Java程序员想转安卓开发,故此加紧补充知识,为大家搜集资料,积极整理前人的经验,希望可以给正处于困惑中的你,带来些许的帮助. 啰哩啰嗦的说说Java和Android程序的区 ...

  2. 好程序员web前端开发测验之css部分

    好程序员web前端开发测验之css部分Front End Web Development Quiz CSS 部分问题与解答 Q: CSS 属性是否区分大小写? <p><font si ...

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

    最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历 ...

  4. CSharp程序员学Android开发---2.个人总结的快捷键

    最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历 ...

  5. CSharp程序员学Android开发---1.初识AndriodIDE,掌握工具使用

    最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历 ...

  6. 《程序是怎样跑起来的》读书笔记——第一章 对程序员来说CPU是什么

    1 程序的运行流程 2 CPU的组成 3 寄存器的主要种类和功能 "程序计数器"--决定程序流程的 4 条件分支和循环机制 4.1 顺序执行 4.2 选择分支 5 函数的调用机制 ...

  7. Android群英传神兵利器读书笔记——第一章:程序员小窝——搭建高效的开发环境

    1.1 搭建高效的开发环境之操作系统 1.2 搭建开发环境之高效配置 基本环境配置 基本开发工具 1.3 搭建程序员的博客平台 开发者为什么要写作 写作平台 第三方博客平台 自建博客平台 开发论坛 1 ...

  8. Python超级程序员使用的开发工具

    我以个人的身份采访了几个顶尖的Python程序员,问了他们以下5个简单的问题: 当前你的主要开发任务是什么? 你在项目中使用的电脑是怎样的? 你使用什么IDE开发? 你将来的计划是什么? 有什么给Py ...

  9. 5款Python程序员高频使用开发工具推荐

    很多Python学习者想必都会有如下感悟:最开始学习Python的时候,因为没有去探索好用的工具,吃了很多苦头.后来工作中深刻体会到,合理使用开发的工具的便利和高效.今天,我就把Python程序员使用 ...

随机推荐

  1. Unity3D 导出的apk进行混淆和加固防止反编译

    前言: 对于辛辛苦苦完成的apk程序被人轻易的反编译了,那就得不偿失了,这篇文章就是解决Unity打包出来的apk进行代码加固和混淆. 准备资料: 1:Obfuscator.zip  作用是代码混淆, ...

  2. javascript location对象

    location用于获取或设置窗体的URL,并且可以用于解析URL. location.[属性|方法] 1.location对象属性图示: 2.location 对象属性: 3.location 对象 ...

  3. 版本控制器:SVN

    版本控制器:SVN 开发中的实际问题 小明负责的模块就要完成了,就在即将Release之前的一瞬间,电脑突然蓝屏,硬盘光荣牺牲!几个月来的努力付之东流--需求之一:备份! 这个项目中需要一个很复杂的功 ...

  4. centsOS下安装vsftp的配置

    1. 添加用户组 # groupadd www 2. 修改配置 # vi /etc/vsftpd/vsftpd.conf 查找: #chroot_list_enable=YES #chroot_lis ...

  5. uva 12356 Army Buddies

    简单的并查集应用. #include<stdio.h> #include<string.h> #include<math.h> #include<algori ...

  6. Android Monkey 测试策略【转】

    Monkey 测试针对不同的对象和不同的目的,需要采用不同的测试方案. 首先测试的对象.目的及类型如下: 测试的类型 应用程序的稳定性测试 应用程序的压力测试 测试对象 单一 apk apk 集合 测 ...

  7. java 读取excel(Map结构)xls

    package com.sun.test; import java.io.FileInputStream;import java.io.FileNotFoundException;import jav ...

  8. Linux shell 操作 postgresql,并设置crontab任务

    Linux shell 操作 postgresql:删除间隔日期的数据-删除指定日期的数据-vacuumdb 清理数据库 -清理日志 -定期执行脚本 *修改pg_hba.conf 设置本地连接无密码, ...

  9. 1、第一个SpringMVC程序

    1.创建如下项目结构 2.在src下的com.springmvc下创建User.java package com.springmvc; public class User { private Stri ...

  10. JSP table中除了第一行(标题)其他全清空

    表格如下 <div style="overflow-x: auto;width: 800px"> <table id="taresults02" ...