A. 程序管理员是干什么的
程序员是从事程序开发、维护的专业人员。其工作很多,有erp、协同管理、数据报表、门户网站、论坛社区、桌面软件等等,可能还要负责需求设计,概要设计,数据库设计等方面的设计。
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、高级程序员、系统分析员,系统架构师,测试工程师五大类。
软考程序员考试属于计算机软件水平考试(简称软考)中的一个初级计算机职称考试。对于软考程序员考试并无学历及资历条件限制,更无论年龄、专业与资历。一年可报考软考程序员考试两次,但一次考试只能报考一种资格,因此报考了程序员考试则无法再报考软考其他级别或科目的考试。同时软考程序员考试采用笔试形式,考试实行全国统一大纲、统一试题、统一时间、统一标准、统一证书的考试方式。
B. 程序员需要学什么软件
现在做为一名程序员,压力越来越大,各种开发工具越来越庞大、不断推陈出新,各种开发设计工程理念缤纷精彩、需要融入平常的开发当中,还有很多新的知识点在不断开拓中,相比以前,做为一名程序员尤其是合格程序员的难度的确增加了不少。
那么,做为一名程序员你应该学习掌握哪些软件与技能呢?
1. 数据库管理工具
MySQL,使用Navicat是针对数据库而研发管理工具,Navicat擅长于对数据库的管理,可以帮助程序员更好的管理数据库,视觉化创建 SQL 语句,自动生成报表等,Navicat具备所有数据库类型的绝大部分功能,包括存储过程、事件、触发器、函数、视图等。
Mongodb,使用Robomongo,是一个基于 Shell 的跨平台开源 MongoDB 管理工具。嵌入了 javaScript 引擎和 MongoDB mogo。提供语法高亮、自动完成、差别视图等。
Sublime,具有漂亮的用户界面和强大的功能,可自定义键绑定菜单和工具栏。Sublime的主要功能包括拼写检查、书签、完整的 python API,Goto 功能、即时项目切换、多选择、多窗口等。
插件多,Markdown插件,各种语言插件
C. 一个程序员所要经历的步骤
程序员应具备的12种能力
毕业四年来,感觉自己也是从一名不合格的程序员一步步走过来的。回头反思一下,合格的程序员有很多标准和要求,下面是我总结的一个合格程序员应该具备的12种能力。中国软件行业的崛起,靠的是合格的程序员。任何华丽的管理制度都不能保证软件项目的成功交付,合格的程序员就是有力的保证,是项目成功的基础。写下这些,是为了给刚刚进入程序员这个职业的新同学们一点参考。我一直以为,当程序员是很辛苦的,如果不是真正的喜欢,很难坚持下去。如果真的不喜欢这个职业,也该尊重这个职业,尊重自己,赶紧改行。
1. 编程语言能力
不用多说,作为合格的程序员,精通一门语言是必须的。这种精通,不是说看了一本《24小时精通XXX》,抄了几个程序就能说精通的,要靠长时间的积累和浸淫。
2.编码能力
我曾经看多很多程序员写的代码,在同一个jsp或者java源文件里,出现了三种以上的对方法的命名方式,有下划线间隔的,有全大写的,有拼音首字母的。就像一个菜市场,杂乱无比,估计10天后,他自己都无法看的懂。遵守编码规范,是一个程序员最基本的要求,可悲的是,很多程序员根本没有意识到这个问题的严重性。随意堆砌网上搜来的代码,根本不管可读性和可维护性,只要能实现功能就行了,心想做完这个项目,就拍拍屁股走人了,缺少最基本的职责素养。我经常把代码必须成程序员的孩子,你就是是孩子他爹,孩子他妈,是有感情的。对你自己的孩子,你能不仔细呵护吗?你是称职的父母吗?这是我编写的一个Java编码规范,供大家参考,这里可以下载http://gurudk.javaeye.com/blog/111734
另外一个就是注释,要注意不是为了注释而注释。对类,以说明职责为主;对方法,以说明意图为主;对方法体,以说明实现思路为主。对于大段大段的代码,要分段,使用空行隔开,并使用行内注释进行说明。
思维的条理性,写代码之前,先简单计划一下,用自然语言把流程写下来,用于整理实现思路。不要看了需求或设计之后,马上就敲代码了,敲完代码马上就debug。花点时间思考,敲代码只是最后一个很简单的工作,不要把自己变成一个代码打字员,编写边想,写了删,删了写。安安静静把实现过程想清楚,在脑子里先实现一遍。再去敲代码,水到渠成。
3.面向对象思维能力
如今,多数编程语言都是面向对象的编程语言。而这些面向对象的编程语言的共同的精髓就是面向对象的思想。掌握这些比面向对象语言本身更重要,比如对继承,多态,重载的理解。对面向对象基本原则的理解,比如开闭原则,接口隔离原则,单一职责原则等。在此基础上,应该掌握常用的设计模式,比如工厂模式,策略模式,观察者模式,模板方法模式,命令模式等等。我面试过很多程序员,没有一个能说得上几句的。
4.利用工具能力
工欲善其事,必先利其器。有了趁手的家伙,工作效率可以提升数倍。你编程序,有没有选择一个很好的IDE,以前听说编程高手都用记事本写程序,我觉得那是一种自虐。就像以前看到的一篇文章,说一帮户外旅行爱好者,出去旅游,背了重重的旅行包,里面装着什么压缩饼干等快速食品。他们宁可就着矿泉水啃压缩饼干,也不肯去1里路都不到的快餐店,农家菜馆吃饭。工具是为目的服务的,好用,提高效率就行,形式无所谓。
另外一个常用的工具就是日记本,好听点可以称为知识管理工具,我用的是myBase,感觉非常好用,在之前,我的所有的片段内容都是记录的单独的文本文件里的,非常不好找,管理也很混乱。
经常上互联网,看到好多好的资料想保存下来,作为日后查看之用.一开始,我用的是firefox自带的书签,但是自己分类太累,多了之后不便于查找,很麻烦。后来用了得乐书签(del.icio.us)的firefox插件,非常方便,现在成为了我必备的一个工具。
还有一个最重要的工具就是搜索引擎了,我装了google forfirefox插件,感觉不错,还有英文翻译功能。按照我同事的说法,内事用,外事用google。很多技术资料都是英文的,用google搜索效率高一些。搜索引擎用好了,就等于打开了一扇通向知识宝库的门,使用搜索引擎,关键字选择很重要。
经常去浏览大牛的blog,逐个网站访问很麻烦,去看了又可能没有更新,可以借助于RSS订阅工具,我是用iGoogle桌面工具,每天早上花半个小时扫一下,大牛的最新文章尽收眼底了。
5. 英语能力
新的技术资料都是英文的,英语国家的IT技术走在我们前面至少10年(这是我自己估计的数字,可能正在缩小)。就连印度,一个连基础设施建设都不太完善的国家,因为其英语基础较好,其在软件外包领域的发展也非常迅猛,远远超过了我们。学英语,首先是有信心,其次就是花时间。多阅读英文资料,使用金山词霸,google的firefox插件等工具配合,贵在坚持。
6.学习能力
在IT也混饭吃不容易,整个环境进化的太快,你不学习,就等于落后了。学习要有针对性,别今天学ruby,明天学python,后天php的。首先要认清自己的目标,自己短期目标是什么,1年后,3年后,5年后的目标是什么。结合这些目标,确定自己的学习计划,人的精力毕竟是有限的。当然,多掌握几门编程语言也是好的,可以扩充自己的知识面,重要的是为自己的目标服务。
要想系统的学习一门技术或工具,看书是最好的方法。看完后,然后上网找相关资料,进行深入学习。学习要抓紧一切可以利用的时间,比如电脑启动要花1分多钟,旁边放一本书,可以看上几页了。公交车上,地铁上也可以看。
当然,不能只学习技术,要经常联系自己的软技能,比如沟通能力,表达能力。你可以把自己学到的东西,解释给自己的同事听,既加深了理解,又增进了同事之间的交流。学习的最高境界就是你能够把学到的东西解释给别人听,这才说明你理解了。在学习心理学上,称之为构成主义。
我学一样东西,总是先上网了解有没有相关书籍,如果想学,就买一本或者去图书馆找相关的书来读。我买的书,家里快放不下了(到目前位置,我买了1万多块的书)。我多半是把目录看完,了解这本书讲解的主要内容,然后需要的时候,我就可以立即补充它进入到我的知识结构。每个人可能都有自己的学习方法,意识到学习的重要,并能够根据需要补充自己的知识,这种能力更重要。
7.创造能力
普遍认为,东方人模仿能力很强,但创造能力差。我见过很多这样的程序员,经常说,“这个只能这么解决了,我想不出有什么别的方法。”可能他根本都没想过别的方法,或者懒得去想。对任何一个问题,找出两种以上的解决办法都是非常容易的,简单的google一下,可能就是数十种。悲哀的是,有些程序员经常止步于自己构建的狭小领地之内。对待客户也是这种态度,不是积极的帮助客户解决问题,而是推脱这只是唯一解决方案。
打破这一思维定势的首先的一个办法就是在面临一个问题时,首先想到的是“没有不可能”,或是“一切皆有可能”,前面那个是阿迪的广告语,后面是李宁的。只有这样去想,才能寻找解决问题的别的出路,即使最后我们试了很多种办法,还是只有着一种解决方案,但我们在这种寻找解决方案的过程中,常常会产生很多好的想法,这样才会使我们真正深刻思考一个问题。建议大家看一看《水平思考》这本书,他提供了一些进行创造性思考的方法和工具。
但我认为,坚持认为存在另一种解决方案的信念是第一位的,方法和工具都是其次。
8.文档能力
也许有人会质疑,程序员跟写文档有什么关系。大家开源软件也用过不少,看看Spring,hibernate,Struts等最流行的开源软件的文档就知道,他么的tutorial,他们的getstarted,他们的reference文档写的多么的易懂。其实写代码也相当于写文档,只不过用的是编程语言。同样,写文档,用自然语言,也相当于写程序,简单明了,清晰易懂,这样的“程序”谁看谁舒服。同样,对于想进阶到设计师或者需求分析员角色的程序员,文档能力更是非常重要。
word是一个最实用的工具,很多程序员,多级编号都不会用,索引目录也不知道如何生成,更别灵活应用样式了。很多排版都是所谓的dirty work。垃圾样式一大堆。其实,静下心来,稍微学习一下,就能写出一篇格式漂亮的文档。
9.抽象能力
抽象能力是认识事物从现象到本质的能力。如果你只是停留在“见山是山,见水是水”的层次,客户说什么,你就做什么,设计怎么做,你就怎么实现,从来不过问为什么,也不去想他是满足了用户哪些方面的需求呢。这样可能只解决了表面的问题,可能会引起返工。认识到本质,才能让你的程序具备更大的灵活性和可扩展性。在做企业应用软件开发中,抽象能力体现为对问题域的理解能力,对领域模型的抽象。合理的抽象也是代码重构的前提,每一次重构,都是向更好的抽象迈进了一步。
10.代码评审能力
代码评审和单元测试是保证代码质量的两种常用手段之一。代码评审能力,说明了你的审美标准,知道什么是好的,什么是不好的,什么是优雅的代码,什么是糟糕的代码,你才能让自己做的更好。
11.单元测试能力
没有单元测试的代码,只能说是半成品。因为没有什么能证明你的代码是可以运行的。测试驱动开发是一个非常好的敏捷过程的最佳实践。单元测试还可以作为回归测试,在修改代码时,起到警戒线标志的作用。是否具有单元测试的意识是区分程序员是否合格的重要标准。写不写单元测试是区分平庸程序员和优秀程序员的重要标杆。
12.DRY
DRY是一种原则,就是Don't RepeatYourself.出自《程序员修炼之道-从小工到专家》。这条原则可以用到很多地方,比如你经常要编译,打包,部署应用程序,供集成测试用。每次你都在重复你自己,写一个自动化脚本(比如用ant,批处理命令)来将这些工作自动化,以提高效率。
还有一个就是我们经常在不同的地方切换IP,如果每次手工做,也非常浪费时间,写一个bat命令可以解决,找一个小工具也可以解决。
编码时,对代码的复用也是在重复你自己,虽然拷贝过程很爽,但是维护一致性就要付出巨大的工作量,特别是将来维护的人不是你的时候,使用代码生成工具可以解决这个问题。类似的例子太多了,如果你发现你经常做一些重复的工作,就要警惕了,是否违背了这个原则,想一些办法将他们自动化。
D. 程序员管理制度
会计电算化内部管理制度
第一章 总 则
一、
会计电算化管理是会计电算化工作的重要内容,为推动集团公司会计电算化工作的健康发展,保证会计信息处理和存储的合法、安全、准确、可靠,根据>和财政部>、财政部>、财政部>以及广州市财政局会计电算化的有关规定,特制定本管理办法。
二、开展会计电算化工作,是促进会计基础工作规范化和加强财务管理水平,高经济效益的重要手段和有效措施。各单位要把会计电算化作为提高会计工作质量和建立现代企业制度的一项要工作来抓。
三、逐步提高会计人员的电算化操作水平,使一部分会计人员能够负责会计软件的维护,并培养部分会计人员逐步掌握会计电算化数据分析工作。
四、讲求效益,处理好及时更新技术设备与勤俭节约的关系,既不盲目追求最新技术和先进设备,也不忽视技术的发展趋势,造成设备过快陈旧过时。
五、统一应用财务管理软件。为适应财务管理网络化,提高企业管理水平的要,我集团公司所属单位统一采用“金蝶k3系统”作为财务管理软件。并为以后与其他信息系统的联网做好准备工作,逐步建立以会计电算化为核心的集团公司信息管理系统,做到单位内部信息资源共享,充分发挥会计电算化在经营管理中的作。
第二章 替代手工记账验收条件
一、
采用电子计算机替代手工记账,是指应用会计软件输入会计数据,由电子计算机对会计数据进行处理,并打印输出会计资料。替代手工记账是会计电算化的基本目标。
二、集团公司获得市财政局授权成立会计电算化验收小组,自行验收集团公司所属单位的会计电算化工作并报市财局会计处批准。
三、替代手工记账的单位,应具备以下条件;
1、 配备了“金蝶k3系统”财务软件、相应的计算机硬件及机房空调设备;
2、
配备了相应的会计电算化工作人员。所有会计从业人员必须具备会计电算化初级培训资格,使用网络财务软件单位必须至少具备一名以上会计电算化中级维护员;
3、 执行集团公司内部管理制度;
4、
“金蝶k3系统”(下称k3系统)与原总公司自行开发的会计核算软件(以下称旧软件)或手工帐表(未电算化单位)并行3个月以上,且新旧核算软件的结果数据相一致;如果新旧软件核算结果不一致,并且不一致原因不属人为错误,可由专人查明原因,并向验收小组提供书面报告;
5、 新旧软件并行期间,新旧软件所有核算结果会计资料都必须装订成册,作为会计档案保存,并作为验收的主要依据。
6、 记账凭证类别使用统一记账凭证,以适应会计电算化工作的需要;
7、 提前一周填写广州市财政局会计处规定的标准格式申请表向集团公司会计电算化验收小组提出书面申请。
第三章 会计电算化岗位责任制
一、 建立会计电算化岗位责任制,要明确每个工作岗位的职责范围,切实做到“事事有人管,人人有专责,办事有要求,工作有检查”。
二、会计电算化岗位可设电算主管、软件操作员、审核员、电算维护员、电算审查员、数据分析员和出纳岗位、档案管理员。
1、 电算主管:全面负责集团公司会计电算化工作,制订电算化发展规划、总体方案及操作人员的权限控制;
2、
软件录入员:编制记账凭证,并负责记账凭证和原始凭证等会计数据的输入工作,输出记账凭证、会计账簿、报表,进行部分会计数据处理工作,要求达到会计电算化初级知识培训的水平;
3、
审核员:负责对输入计算机的会计数据(记账凭证和原始凭证等)进行审核,操作会计软件登记机内账簿,对打印输出的账簿、报表进行确认;
4、
电算维护员:负责保证计算机硬件、软件的正常运行,管理机内会计数据;对软件所需的维护和升级负责同软件供应商进行联络;对财务部门无法解决的硬件问题负责同计算机中心联系;
5、 电算审查员:负责监督计算机及财务软件系统的运行,防止利用计算机进行舞弊,此岗位由计算机中心和审计室有关人员兼任;
6、 数据分析员:负责对计算机的会计数据进行分析,提供有关分析资料供领导决策参考。
7、 出纳:只能使用“现金管理”模块。
8、 档案管理员:负责财务软件和会计资料档案的管理。
三、各单位可根据实际情况,在不违反内部牵制制度的前提下,交叉设置各岗位,但要保持相对稳定。出纳只能使用“现金管理”模块,录入员和审核员必须分设。
第四章 会计电算化操作管理制度
一、 明确规定上机操作人员对财务软件的操作工作内容和权限,对操作密码要严格管理,杜绝未经授权人员操作财务软件;
二、操作人员离开机房前,应执行相应命令退出财务软件;
三、凡需要修改财务软件,必须书面提出修改理由、修改内容,报集团公司财务部,由财务部统一向金蝶公司协商;
四、一切修改操作必须在界面菜单下操作,严禁擅自打开数据库强行修改。
五、审核通过或已登帐的机内凭证,系统不提供修改功能。发现已经录入并审核通过或已登帐的记账凭证有误时,只能采用留有痕迹的修改。
第五章 计算机硬件管理制度
一、
计算机硬件及机房网络设备由具有电脑硬件基础知识的程序员负责管理,集团公司电脑室设兼职计算机病毒监察员对整个集团公司的计算机病毒进行监测。
二、
计算机房工作时必须自觉保持清洁,不得将与工作无关的其他物品(尤其是对电脑正常工作有害的物品及易燃物品)带入电脑机房。严禁在电脑机房内吸烟。严禁随意拔插电脑机房的电源设备。
三、 电脑机房必须配备空调设备,保持适当的温度、湿度环境。
四、
上机前应首先检查电源和设备运行是否正常,如发现问题应及时报告,经过电算维护员检查认可、才能使用。尤其是在计算机设备发生严重故障时,不得随意自行检修,应及时报告电脑室,等候检修。
五、 限定服务器操作权,不得随意改变服务器的设置。
六、 遇到突发性停电时,应立即退出系统、关机、关电源;
七、 下班前,必须检查机器设备是否已关好,关切断所有电源。
第六章 软件和数据管理制度
一、会计核算软件必须有独立的硬盘或子目录。不得与其他软件混淆放置;
二、计算机硬件和软件出现故障时,电算维护员在确认有关数据已作备份后,可进行排除障碍的有关措施;如无法解决,可根据情况通知计算机中心或金蝶公司有关人员,寻求解决办法;
三、软件操作员根据审核通过的原始凭证编制记账凭证并及时打印,附上原始凭证并经审核员进行二次审核正确后存放保管,以备装订存档;
四、每次输入的会计凭证都必须备份存盘,月底结账后即应把当月会计数据备份入磁盘或光盘中储存管理;
五、科目汇总可以分期或按月进行,其中,八栏式本期科目汇总表可替代总账账簿使用;
六、现金、银行存款日记账按月打印;其他账簿每年打印两次:第一次在上半年结束后30天内打印;第二次在年度结束后45天内打印。根据实际情况,发生业务少的,可满页打印,但应保证每年至少打印一次。
七、会计报表的编制、打印输出要根据财务制度的规定设置公式编制。各种报表需经软件操作员、审核员、电算主管签章确认后方为正式报表。报表必须通过设定取数公式编制,不得用非正常手段进行填制;报表的数据必须与结账结果相符,表内表间数据的勾稽关系必须正确无误,取数公式一经设定,必须保持不变,如需修改,需保存书面报告。
八、输出数据未经本单位财务主管许可,严禁擅自携带外出和外借。
九、确保会计数据和会计软件的安全保密,防止对数据和软件的修改;对磁性介质存放的数据要保存双备份:一份存放档案室,一份存放财务部;
十、对正在使用的应用会计核算软件进行修改、升级和计算机硬件设备进行更换等工作,必须保证实际会计数据的连续和安全;由电算维护员办理审批手续,经过电算主管和计算机中心有关负责人同意后,由电算主管、电算维护员、计算机有关人员进行监督,并要求软件供应商协同操作;
十一、为防止外来病毒感染,在未进行有效病毒检测前,任何人不得使用外来磁盘在会计核算用电脑上进行任何操作。不得随意将会计用磁盘在其他电脑上操作。
十二、会计档案包括会计资料和会计软件。存档的会计档案,要每年进行检查、复制,防止由于磁性介质损坏而使会计档案丢失;
第七章 附则
一、本“管理制度”适用于集团公司正式实行会计电算化的单位。由财务部负责解释。
二、本制度在执行时如与上级有关财务制度和会计电算化规定有出入,则以上级规定为准。
三、本制度自通过验收之日起执行。
E. 火狐浏览器怎么设置类似遨游的操作
火狐最强大的就是插件,可以根据自己的需要自己动手定制
楼主说的第一个叫鼠标拖曳,火狐装一个插件比如 Super DragAndGo就可以实现
第二个是鼠标手势,装个插件比如Mouse Gestures就可以了
F. 程序员平时都怎么管理自己的代码库,自己积累了不少代码了,用U盘和一般的网盘管理太费劲。
推荐:http://qizl.cn/
代码库共享平台,针对个人代码库进行管理,采用一触预览的方式,管理、查看代码很方便~
G. 哪类程序员的书签最多。我都1k了。
全栈工程师。
H. 程序员,如何让你的知识内化
一、前言
是否,你浏览过无数文章,但是转眼就忘?
是否,你收藏过无数文章,但是很少再看?
是否,你感觉自己很努力学习了,但还是收获甚微?
其实,这几个问题也一直深深地困扰着我,一直渴望着提升,却又摸不到方向,感觉一直在努力,然而貌似并没什么卵用。
直到,接触到知识管理这个概念,才领悟到:学习是一个系统工程,每一次的阅读、收藏、实践,其实都是这个系统的自我更新。唯有运用工程思维,才能更好的解决这几个问题!
关于知识管理,我视之为我人生中最重要的技能,我将不断探索、不断优化,以成就一个更完善的自己。
下面,将从一个程序员的视角来讨论知识管理,主要包括以下几个方面:
什么是知识管理?
为什么要管理知识?
如何管理知识?
二、什么是知识管理?
个人知识管理(Personal Knowledge Management):一般指个人通过工具建立知识体系并不断完善,进行知识的收集、消化吸收和创新的过程。
三、为什么要管理知识?
核心目的:搭建自己的知识体系
计算机行业的一个特点是新技术更新特别快,意味着程序员需要不停学习,才能跟上行业的发展。所以,知识管理对程序员非常重要。有意识,成体系地管理知识能够:
更快速的入门
如果我们已经建立好一个技术知识体系,新的技术也只是在其他技术上建立起来的,有了坚实基础,学习新技术就会更有效,毕竟原理总是类似的。
更全面的掌握
看过那么多的博客,如果没有经过自己的整理,终究总是一块块记忆碎片,难成体系!使用合适的工具,正确的方法,才能更好地掌握知识,让知识凝固在脑海,形成一个整体的脉络。
更高效的检索
程序员经常遇到同样的问题,例如说部署开发环境的时候,如果有把解决方案记录下来,就能省去重新解决问题的时间。毕竟重复的谷歌,也是耗时操作。
四、如何管理知识?
1.收集
确定主线,建立信源,链式反应,广泛收藏
“生也有涯,知也无涯”,我们永远不可能通晓所有的知识!
一开始我看到好的技术文章时,都是加书签存起来。后面发现这样不能离线访问,而且链接可能会失效。
后来,接触了印象笔记、为知笔记等云笔记软件,于是我可以把文章保存到笔记中,随时可以翻出来看。这是我的知识管理之路的开始。
可以说,笔记软件给知识积累带来了极大方便,而且,还可以在自己的所有笔记中快速搜索某个关键词。
有时候,我们明明记得自己以前看过某篇文章,但就是想不起来具体细节了,这个时候,只要我们之前保存过,一搜即可。这比再用搜索引擎去搜索,显然更高效一些。
记得以前,我为解决某个问题,谷歌了很久终于找到一篇文章解决了问题。解决之后并没有记录下来,结果下一次遇到同样问题,我又浪费了很多时间去再次搜索解决方案。重复多次之后,我意识到这是个严重的问题。所以逐渐养成了保存各种文章的习惯。这些网上积累下来的文章,成为了我构建知识体系的土壤。
不是收集好的知识,而是收集对自己有用的知识
你缺的不是知识,而是整合知识的能力
主题阅读,不以读完一书一文为目的,能提取到想要的知识即可
读书为纲,上网为目。唯有纲举,方可目张
设定一个自己的长期学习规划
建立自己的常用信源清单
从一个关键词的解释中,提取到一堆关键词,链式反应
印象剪藏时不必纠结分类,多用关键词搜索
2.整理
合并同类,编织脑图,定期整理,持续更新
“小马过河,深浅自知”,别人的文章永远是别人的知识!
上面收集的那些知识碎片是我们有初步印象的知识,只不过因为太过碎片,尚不能够形成完整的知识体系。很多人以为把看到的文章保存到自己的笔记里面,就有一种已经掌握它的错觉,结果保存了成千上百的文章,却一篇都没回顾过。
别人的文章是他的知识沉淀,并不是自己的。定期回顾,并提取出文章中的精华,再经过自己的实践、思考、整理,才能形成自己的知识体系。这是一个很漫长的积累过程,而我们能做的唯有:坚持到底!
分类自底而上,先有了大量碎片,而后才有细致分类。
多用思维导图,整体把握脉络
定时整理笔记,归纳相似主题
印象笔记做摘录,为知笔记写原创
书写,不只是为了记录,更是一种思考方式
原始积累,越快越好,先求量大,再求质优
使用工具,而不是被工具使用
构建知识体系,服从于个人职业发展
预判使用场景,布局技术未来
以写论文的方式来整理
3.分享
寻找同好,讨论反思,自我激励,打造品牌
“常与同好争高下,不共傻瓜论短长”,教是最好的学习方式!
一方面,自己以为理解了不是真理解,把别人讲理解了才是真理解!如果能有读者和自己互动,那肯定比自己一个人闭门造车,更有积极性一点,人毕竟是社会性的,我们也渴望着别人的认可。一个人默默写笔记,可能能坚持写个十几篇,如果是公开写博客,有读者的反馈和认同,那可能更容易坚持下去一些。毕竟,写作,是一段孤独的旅程。
另一方面,在这个时代,对于生活中的绝大多数人来说,拓宽朋友圈子的途径几乎只有一个,通过网络,而如何在网络中寻找到气味相投的朋友,如何判断别人和自己是否有共同语言?显然,通过天天在SNS上碎碎念的那些日志是难以做到的。我很佩服那些长期用博客记录想法的人,因此,即使和他们素未谋面,也算是神交已久。
打造个人品牌,增加自己的影响力
跨时空的交流方式
记录自己的经历和成长
锻炼自己的表达能力
I. 程序员如何方便的管理自己以前写的代码
一、代码的最大长度。
虽然在Java的编译器中对于代码的最大长度没有硬性的规定。但是如果代码的长度太长,超过了编译器的最当行宽,显然阅读起来比较麻烦。为此根据笔者的经验,通常情况下Java源代码的行长度不应该大于80个字符。如果超过这个长度的话,在一些开发工具和编辑器上就无法很好的显示。如需要通过滚动条来显示后面部分的代码。当其他项目成员阅读这超长的代码时,就会看得眼花缭乱。当人的温饱问题解决了之后,就需要开始注意美观方面的问题。所以程序开发人员在开发应用程序的时候,要尽量避免书写长的代码。如果代码的每行长度确实需要超过80个字符的话(最好将每行代码的长度控制在70个字符左右),那么就需要对代码进行分行。
二、在恰当的地方对代码进行分行。
笔者建议将Java源代码每行的长度控制在70个字符、最大不超过80个字符。当超过这个字符长度的时候,开发人员就需要考虑在恰当的地方对他们进行分行处理。不过这个分行也不是说开发人员想在哪里进行分行就在哪里进行分行。这个分行是有一定技巧的。虽然这些技巧大部分并不是强制性的规定,但是都是一些专家们的经验总结,可以提高代码的阅读性。为此笔者希望各位程序开发能够严格的遵守。
技巧一:高层折行优于低层折行。
这个技巧是说,在考虑对代码进行折行处理的时候,需要注意代码的层次性。如某段代码涉及到混合四则运算,而四则运算又有明显的运算顺序,此时对代码进行折行时就最好能够在四则运算的关键顺序上进行折行处理。如现在有如下的一段代码:
Mynum=mynum1*(mynum1+mynue2+mynum3-mynum4)+8*mynum5
如果要对这段代码进行折行的话,该在哪个地方加入一个折行符号呢?如果是笔者处理的话,笔者会按如下的格式对代码进行折行处理。
Mynum=mynum1*(mynum1+mynue2+mynum3-mynum4)+8*mynum5
这主要是根据四则运算的运算层次来进行折行的。显然,*符号的优先级要比+符号要高。所以在+号前面对其进行折行处理,那么就可以一目了然的反应出代码的运算层次。可以大幅度的提高代码的阅读性。所以代码折行的第一个技巧就是高层折行优于低层折行。如此的话,可以使得应用程序的结构代码更加的清晰,更容易被团队成员所理解。
技巧二:在运算符前面进行折行处理。
其实在如上的折行技巧中,还隐藏着一个规则,即在运算符之前进行折行。如上例所示,笔者就是在+号前面进行折行,而不是在+号后面进行折行处理。这主要也是考虑到代码的可读性。如上面这个例子中,如果在+号后面进行折行处理的话,则下一行就会给人一种凭空多出来的感觉,显得代码很不连贯。跟这个规则类似,如果在折行处理的时候遇到逗号时,那么最好能够在逗号后面进行折行。如在一个方法中,需要传入5个参数。此时如果代码行比较长,那么就需要在几个参数之间进行折行处理。此时最理想的折行位置,就是在某个参数的逗号后面。注意,使在逗号后面进行折行,而不是在逗号前面。因为一个参数一个逗号是匹对的。而如果一个逗号加一个参数,则让人看起来很不舒服。
技巧三:这行代码的对起方式。
当不得已对代码进行折行处理时,下一行的代码应该与其同等级的代码行左对齐。如上例所示,在+号前面将某一段四则运算公式进行折行处理的时候,其+号符号已经采取缩进处理。其缩进后的效果就是要与其同等级的代码行左对齐。如此的话,明眼人一看就知道这段代码采取过折行处理;而且跟上一行代码的层次关系。当一段代码被分割成三行甚至跟更多行数的时候,这个规则会非常的有用。如果能够严格遵守这个规则,即使将代码分割成多行,看起来也不会觉得那么混乱。反而给人一种比较有层次的感觉。
另外在采取缩进处理的时候,可以利用Tab键来提高缩进处理的效率。因为直接按空格的话,有可能空格字符数量不一致,会让人觉得层次不起,产生比较大的混乱。一般情况下,当代码行两侧距离页边的距离比较大,看其来不怎么舒服时,可以在代码行中通过插入TAB键(会在代码行中连续插入8个字符)来提高代码的阅读性,让代码的缩进实现统一。
技巧四:为变量寻找一个合适的位置。
在编写应用程序时,尽量将变量声明放置在一个代码块的开始处,也就是说{}花括号的开始位置。虽然说可以在需要使用变量的时候再对其进行声明。但是笔者不同义如此操作。因为如果在的呢感到使用变量的时候再来声明变量时,会降低代码的可读性。同理,也需要避免低层声明与高层声明重复,这样会引起代码混乱并可能引发程序功能性错误。而且这种错误在后续的排错中很难被发现。为此要在应用程序开发的时候就要尽量避免这种错误。
在声明变量的时候,有时候可能代码很简单,生命变量的行总共加起来也不会超过十个字符。此时能否把多个变量的声明写在同一行呢?从就技术上来说,这是可行的。也就是说,Java编译器允许将多个变量定义在同一行上。但是从阅读性上来说,这并不是很好的做法。笔者的建议是,即使变量定义再简单,或者变量比较多,也最好分行进行变量的声明。也就是说,一行声明一个变量。这可以提高代码的可阅读性。而且有时候往往需要对变量加一个注释说明变量的用途,如果以行定义一个变量,添加行注释也相对简单许多。
总之,以上的这些折行的规则基本上不会影响到代码的运行。但是,对于代码的维护与后续的排错、升级、二次开发等等具有不可忽视的作用。而且现在基本上应用程序开发式团队开发,故大家都遵守同样的代码编写规范是非常重要的。笔者在开发一个应用程序的时候,事先都会花一定的时间,跟项目成员强调这些折行的规则。目的只有一个,就是提高代码的可读性,便于后续代码的共享与维护。毕竟后续面对这些代码的,并不是客户,而是我们自己。我们程序员在编写代码的时候,不能够搬起石头砸自己的脚。笔者认为,现在一个合格的程序人员,不仅技术功底上要过得硬,而且还必须要遵守这些无形规则的约束。难怪现在这么多企业在挑选程序开发人员的时候,都会注明良好的编码规范。现在对于这些无形中的条条框框,项目经理已经开始重视起来。
J. 如何管理你的程序员
简言之,这些东西都是用来最有效的发掘你的员工的全部潜能的。你有了一个领导 基于此,我们通常会有一个重要人物,他可能是一个领导,一个经理或一个总监,等等。这就有了问题:这些人有什么样的特征?一个管理者和一个程序员之间的不同之处在什么地方?他们的角色可以互换吗? 为了弄明白这个问题,我们需要从人的视角上去思考。换种方式来说,我需要用到人的因素这个词。如果他错了呢? 首先,要想管理人,你需要去理解他们。要做到这些,我们需要有情商。这并不仅仅指只针对我们这部分人。我们做的任何事情中都存在情感,你要从个人角度去体验它,要熟练掌握,在我们的公司管理中的合作方式上不能忘记这一点。管理并不仅仅指控制和命令,它还包括聆听,理解,沟通和对复杂的情绪上的问题给出有效的方案,这都是至关重要的。弄清他们的感受 很多人都忽略了管理工作中的这方面问题。有时候会很戏剧化,类似于这样:“鲍勃,从明天开始你就是一名项目经理了,因为我们的程序员太多了,需要去管理,但不用担心,你就要去上一个Scrum大师班了”。我们都知道这样的认证证书是什么样的,有什么价值。这跟那个10天的ICC培训课程后成为一名教练的故事非常的相似——这行不通,你要铭记! 另一方面,Mark Foster在他的标题为《How to make your dreams come true(如何实现你的梦想)》一书中谈到,实现目标有两种方式:推(Push mode)和拉(Pull mode)。前者是使用一种工艺上的技术来完成一项任务,比如程序员编程,而后者依赖于经验、直觉和情商,从而选择最好的方式解决一个问题——这是管理者的视角。当使用这种管理模式时,管理者是不能和程序员进行角色互换的,反之亦然。一些大公司通常使用这种管理模式。而这种方式有时会损失一些员工的潜能,因为在多个级别的管理职位中产生的太复杂的层级关系。相互协作 为什么?很多的小公司都使用敏捷方法论。这是一种基于合作的方法论。上面描述的模式并不能满足他们的需求。在不同层级上的管理者和程序员之间始终存在着一个隔膜。人们会被分成“脑力劳动者”和“体力劳动者”。结果就是导致我们失去那些同样有大脑却从来未被使用的人。如今,所谓使用有效率的员工就意味着把所有人都当作脑力劳动者。 Evan Rose 说:命令/控制(Command-and-control)文化使人们把公司成员分成了脑力劳动者和非脑力劳动者。他们让脑力劳动者去思考,让其他人去执行命令。这种文化中,合作没有基础。更重要的,信息的流转应该是多向性的,而不是瀑布式的从高层经过多个管理层流到一线员工。事实上,如今的每个人都有资格成为一个脑力劳动者 现在出现了一种称作自我管理的形式,这种形式本是我们这个世界的基础。如果我们本来是自我管理的,为什么不更进一步呢?也许我们根本不需要管理者。37Signals 和 DHH都实现了这样的思想,描述起来如下:我们同样也让我们的团队管理自己。每周,一个员工会站出来当管理者,他制定简单的日程计划,审查其他人的工作,更新公司动态信息,他对于其他同事来说是一个关键人物。这种职务轮换每周一次。你知道我们发现了什么吗?当每个人都知道自己要当一周的国王时,神奇的事情发生了。对管理者强迫自己做某些事情的抱怨消失了,因为职务的轮换让他们有机会同时清楚的了解了围栏两边的景观。如果你让员工们这样做,这给了他们提高和成长的机会。找到共识,一起努力 但不要想当然。这并不是适用于任何地方任何人。但就像David说的:这种方法可行性很大。如果你能理解这点,你可以在团队或部门里试验一下。通常在小公司里当某方面出现问题时你能相当很快的对其作出反应,这能让你更容易的避免重大事故的发生。 简言之,不管你的管理方式是什么样的,永远要记住,在公司组织结构的深处有一种叫“人的因素”的东西,它在等待着你去照顾,它能摧毁你所有美丽的计划。唯一你防止这种灾难发生的办法就是要认识到:你在跟人打交道,不是机器。