程序员

码农提高工作效率

大兔子大兔子 提交于 2020-03-02 06:42:06
俗话说,天下武功,唯快不破。也就是说要练成天下高手的话,出招速度一定要快,这样才能在江湖上立足,不至于掉了脑袋。而程序员要在IT界混出个名堂,也要有高效的工作效率才行。IT行业时时刻刻都产生着新知识、新技术,要想跟上变革肯定要有几把刷子。 而我本人很喜欢各种各样的方式来提高自己的工作效率,可以分享给大家一些经验。 键盘功底要扎实。 敲键盘时要使用标准指法。可能你认为这是程序员的基本功,可是我发现其实很多程序员都做不到这点。看着他们敲代码时那笨拙的指法我就心急。其实炼成标准指法不难,相当年我还是一指禅,打字极慢,痛定思定,在一周内我打字必用标准指法,再别扭也要坚持,一周后就适应了标准指法了。现在不说运指如飞也算是略有小成。练习指法和键盘速度可以给大家推荐一些网站: http://10fastfingers.com/typing-test/english ,这个就是练习标准指法的,我可以轻松上60 WPM(每分钟60单词),有个外国同事可以达到130以上,那才叫恐怖。 http://typing.io/lessons ,专门供程序员练习敲代码的网站,融合了各种括号和标点,难度有点大。 要熟悉IDE的各种快捷键及特性。 IDE基本上是码农们上班中使用时间最长的软件。首先要选择一个趁手的IDE,俗话说,工玉成其事,必先利其器嘛。如果是C#阵营的那肯定是最新版的Vistual Studio了

码农提高工作效率

雨燕双飞 提交于 2020-03-02 06:41:56
俗话说,天下武功,唯快不破。也就是说要练成天下高手的话,出招速度一定要快,这样才能在江湖上立足,不至于掉了脑袋。而程序员要在IT界混出个名堂,也要有高效的工作效率才行。IT行业时时刻刻都产生着新知识、新技术,要想跟上变革肯定要有几把刷子。 而我本人很喜欢各种各样的方式来提高自己的工作效率,可以分享给大家一些经验。 键盘功底要扎实。 敲键盘时要使用标准指法。可能你认为这是程序员的基本功,可是我发现其实很多程序员都做不到这点。看着他们敲代码时那笨拙的指法我就心急。其实炼成标准指法不难,相当年我还是一指禅,打字极慢,痛定思定,在一周内我打字必用标准指法,再别扭也要坚持,一周后就适应了标准指法了。现在不说运指如飞也算是略有小成。练习指法和键盘速度可以给大家推荐一些网站: http://10fastfingers.com/typing-test/english ,这个就是练习标准指法的,我可以轻松上60 WPM(每分钟60单词),有个外国同事可以达到130以上,那才叫恐怖。 http://typing.io/lessons ,专门供程序员练习敲代码的网站,融合了各种括号和标点,难度有点大。 要熟悉IDE的各种快捷键及特性。 IDE基本上是码农们上班中使用时间最长的软件。首先要选择一个趁手的IDE,俗话说,工玉成其事,必先利其器嘛。如果是C#阵营的那肯定是最新版的Vistual Studio了

Java中的异常处理

丶灬走出姿态 提交于 2020-03-01 20:20:28
一、JAVA中的异常体系 在 Java 中,所有的异常都有一个共同的祖先类 Throwable (可抛出)。 Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性。Throwable 有两个重要的子类:Exception(异常)和 Error(错误) ,二者都是 Java 异常处理的重要子类,各自都包含大量子类。异常和错误的区别是: 异常能被程序本身可以处理,错误是无法处理。 二、Error和Exception的区别 Error 错误,一般是指虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断。通常应用程序无法处理这些错误,因此应用程序不应该试图使用 catch 块来捕获 Error 对象。 由于编译器会对 Error 进行检查,不会强制要求程序员必须处理 Error,因此 Error 也被归入 unchecked 异常分类中(另外:运行时异常也属于 unchecked 异常)。 Exception 表示一种设计或实现问题。也就是说,程序员应该对这些情况进行考虑、并提供相应的处理。 三、运行时异常与一般异常的区别 Checked 异常体现了 Java 的设计哲学:没有完善错误处理的代码根本就不会被执行! 对于Checked异常的处理方式有两种 : A.当前方法明确知道如何处理该异常

程序员能纯靠技术渡过中年危机吗?

别说谁变了你拦得住时间么 提交于 2020-03-01 16:00:09
绝大部分人不能! 悲观点讲,大部分8090后互联网人(不仅仅是程序员)的职业生涯,可能比70后那帮老兵更短。 很长一段时间里,我都在想,我们写代码的这几年拿得多,是因为我们比那帮学生物学航天的聪明或者付出更多吗?显然不是,我们只是赶上历史行程了而已,最近的一波历史行程,说直白点,就是由智能手机和移动互联网带来的行业爆发式增长。 但 IT行业和其他行业一样,也要受行业周期的影响,不幸,或者说对后来者不幸的是,这个行业从完全竞争阶段发展到寡头垄断阶段的速度比能源,机械等传统行业快得多(一方面,这是技术进步带来了市场效率的增加,另一方面,商学院的那帮人比过去更熟练了) 阿里腾讯从差点要死的初创公司演化成全球市值前十的中国寡头,花了不过十几年时间。换句话说,十几年里就走完了传统行业需要花几十上百年才能完成的路。行业的细分领域,比如外卖,出行,只需几年就能发展到寡头垄断乃至完全垄断的地步。 过快的行业演化速度,首先带来的就是行业更快进入垄断成熟期和相关领域就业的过山车行情。比如前几年安卓和IOS程序员就业十分容易,培训班培训半年出来就敢要一万多的月薪,但随着行业的集中度提高,大量初创公司死掉(比如O2O领域),招聘门槛明显变高,职位也变少了。其次,互联网行业推崇的破坏式创新,对从业人员,尤其是后来者来说是把双刃剑( 破坏式创新 - MBA智库百科 )。在一个领域里辛苦耕耘多年

Java程序员应当知道的10个面向对象设计原则

我只是一个虾纸丫 提交于 2020-03-01 15:41:31
Java程序员应当知道的10个面向对象设计原则 面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) 、 Decorator(装饰器)、Observer(观察者) 等设计模式,而没有把足够多的注意力放在学习面向对象的分析和设计上面。学习面向对象编程像“抽象”、“封装”、“多态”、“继承” 等基础知识是重要的,但同时为了创建简洁、模块化的设计,了解这些设计原则也同等重要。我经常看到不同经验水平的java程序员,他们有的不知道这些OOPS 和SOLID设计原则,有的只是不知道一个特定的设计原则会带来怎样的益处,甚至不知道在编码中如何使用这些设计原则。 (设计原则)底线是永远追求高内聚、低耦合的编码或设计。 Apache 和 Sun的开源代码是学习Java和OOPS设计原则的良好范例。它们向我们展示了,设计原则在Java编程中是如何使用的。Java JDK 使用了一些设计原则:BorderFactory类中的工厂模式、Runtime类中的单例模式、java.io 类中的装饰器模式。 虽然学习设计模式(原则)最好的方法是现实中的例子和理解违反设计原则带来的不便,本文的宗旨是向那些没有接触过或正处于学习阶段的Java程序员介绍面向对象设计原则。我个人认为OOPS 和SOLID设计原则需要有文章清楚的介绍它们,在此我一定尽力做到这点

送给自己的程序员箴言

∥☆過路亽.° 提交于 2020-03-01 14:52:52
国内的教育体制,培养了这样一批人:   他们努力、奋进,热爱技术,愿意投身软件行业,愿意写出高质量的代码,他们对业界的东西很感兴趣,他们愿意学习扎实的基础知识,他们渴求火热的新技术……   几年以后,他们拥有广泛的视野,阅历宽阔、经验老到、言辞犀利,对行业动态了如指掌,显然,他们是行业的博学者。   然而……   既有的优越感却让他们却缺乏这样一种能力—— 思考 。   他们被过去的经验与成功所遮蔽,其个人不能再做自我突破,也因此常常否定与其既有经验不太相符合的行为。   我很有幸在现有公司碰到了这样的一类人。   也许很多行业都有"尊老"的传统,可惜软件行业不全是。   见贤思齐,见不贤而内自省。前车之鉴,不可覆辙。望自己不论身处何地,身兼何职,都能求知若饥,虚心若愚。因为:    Develop is not easy。   1 细节决定成败   进入软件行业小有几年了,大大小小的软件项目做下来,我清晰地认识到把事情做好并非易事。这里不仅指技术本身,还涉及许多相关的细节,这些细节常常被多数工程师忽略,而正是这些细节才能体现出一个工程师的闪光点。我见过很多优秀的工程师。他们的共同点便是会认真的思考系统的每一个细节,并以coding验证自己的想法。这些平凡的工程师正是软件工程中的灵魂。我更能体会的是软件领域的三七理论,那就是你花百分之三十的时间可以掌握一门知识的百分之七十的常用功能

互联网自由工作者必须要知道的七点

落爺英雄遲暮 提交于 2020-03-01 14:19:29
  很多程序员都有自由工作的经验,并且越来越多的 程序员 接受了这种工作模式,在国外成为一名freelancer是稀松平常的一件事情,Jimi是一名从事ui设计是开发者,2011~2013年间在阿里巴巴国际站AliexpressUED团队;2013~2015年间加入网易杭州研究院,负责网易云音乐产品UI设计。目前是一名自由工作者,是去年11月份开始下的决心,随着众包概念的火热,网上有很多兼职的平台,于是我加入了 程序员 客栈,成为了一名远程工作UI设计师,经过半年的尝试收入已经破十万,虽然这是一件值得开心的事情,但是作为自由职业工作起来也不是想像的那么轻松,下面就是我就个人的一些经验给准备成为自由开发者的同学一些建议。    经常与你的客户沟通   这一点我相信是成为自由工作者必备的习惯,你应该知道现在的自己所处的位置,谁才是你的上帝,当你保持循环跟踪的时候,你应该时刻想过,曾经为某个客户做过什么东西,他们现在发展的怎么样了?自己做的东西真的对得起客户夫的钱吗?对客户还有哪些建议?如果可以不要把你给客户做的东西再出售给别人,因为这是职业道德,虽然你们这是远程工作协议,并不具备法律效应,但是这是做人最起码的底线。    文档与客户的互动   一单你手上接了活以后,你应该保持每天一个固定的时间与客户共建每天的里程碑工作计划,并且通过聊天、电子邮件的形式进行确认

面向对象的程序员应该懂(学习)什么?

会有一股神秘感。 提交于 2020-03-01 13:49:20
首先,这里要把程序员的概念放宽一点,不管是分析的,还是搞设计的或者编码,测试的,都叫做程序员。也就是说,这里以程序员泛指所有软件实现过程中所涉及的所有人员。但是不包括如配置管理员,数据库管理员,测试工程师这样的职位。因为这里讨论的仅仅是软件的构建,与验证、管理等其它周边事务都无关。 第一个要考虑的就是并发编程。比如多线程,它是否真是程序员本应该涉及的领域。程序员是否真的应该费大量精力去研究它,以便然后才能在现实工作中正确地使用它? 这是形式语义学讨论的范围。形式语义学讨论的就是语言元素的语义。其实我觉得它应该讨论得更多一点,比如比语言层次更高一点的如库(Library),平台,操作系统服务,本地服务,协议等的语义。 程序员应该干什么?? 根据不重复发明轮子的原则,所有编程中的共性部分都不应该是程序员的职责。程序员只应该对商业逻辑负责。程序员当然还要负责这些逻辑的运行时实现效果。也就是说,程序员负责的部分包括两个: 1,程序的静态特性; 2,程序的动态特性。 简而言之,程序员应该是最终的产品责任人。这并不意味着程序员会负责整个系统所有的部件质量,也不意味着程序员只负责自己编写的程序部分。程序员对于因需要引入的任何系统构件都拥有责任。但这种责任是一种使用者责任,是区别于开发这些构件的生产者责任的。这就象我买了个手机,手机不是我生产的,但我仍然对它的质量负有责任:使用者责任

怎样成为程序员中的理想主义?他们最大需求是什么?

孤街浪徒 提交于 2020-03-01 11:12:06
早上和群内朋友闲聊到“理想主义者”这个词,十分感慨。这世上总有些人不为名不为利,默默做着自己喜欢的认为正确的事情。在程序员这个群体内,又有多少理想主义存在?每一个做程序的初衷源于内心最急切的需求。我们今天走进这个群体的内心,谈谈程序员中的理想主义者。 在通俗的定义中,理想主义表示信仰的一种追求,以精神层面为核心,不排斥物质。所以说有信仰、有追求的人,我们一般可称之为理想主义者。 程序员薪酬一直以高薪著称,所以吸引了大量的人进入此行业。我曾为此向身边程序员询问其进行的原因。 有人说,因为自己本身就是计算机专业,所以毕业后顺其自然成为一名程序员。而今已有数十年时间,从技术岗到管理岗,再回技术岗,兜兜转转,最终发现当程序员挺好,没有管理烦心事,只需要心无旁骛做好技术就行。 有人说,毕业后,被程序员的高薪吸引,直接找了一个培训机构进行学习,现在用了5年时间,还在中高级程序员之间徘徊,想要继续向上,就要学习更多知识。虽然自己对代码依然达不到热爱状态,但是为了生活,只能拼了。 有人说,从测试转程序员,只是因为每次看到程序员桌面花花绿绿的代码觉得神奇又羡慕,就是这份羡慕之情,于是自己从头学起,大概是因为兴趣所在,所以到现在已经是一名合格程序员。 有人说,自己性格内向,不擅交际,没特长。所以义无反顾进入程序员里。在代码世界中,自己是世界的王,自由又快乐。 有人说,自己父亲本身就是一个编程培训师

程序员写公众号的体验

∥☆過路亽.° 提交于 2020-03-01 10:56:02
程序员为什么写公众号? 就个人来说,程序员写公众号,最重要的是什么? 不是粉丝,不是出名,不是收益(不在意是假的),而是 学习、总结、创作、分享 (至少可以实践费曼学习技巧)。 定好初心,然后 出发,坚持 (出发难,坚持更不简单),剩下会得到什么则交给上帝决定。 这里每个人的答案各不一样,什么样的初心,就会写出什么样的文章。 写作是个什么样的体验? 关键词一:不简单 看别人写的文章似乎觉得很容易,那是看起来容易…… 写作有两种:一种是抄,一种是原创。 抄呢看着不难,实际操作起来估计也不简单,要高质量的抄,一得选对好文章,二也得调整润色等等让人看不出来是抄的;而要大批量的抄,至少得会写个爬虫吧。 目前为止,自己发过的文章都是坚持原创:自己选好题,自己构思结构,自己写内容,自己写例子。原创有多难呢,有时一篇文章写个一周都觉得写不好,写写改改,一个最简单的文章估计至少也得一两个小时,也许是不熟练的缘故,真是很佩服那些天天都能发文的人。 关键词二:进步 写文章带来的好处:为了能更好的输出,自然就需要更多的输入,输入的素材可以是自己觉得未吃透的某个专题深入,也可以是自己感兴趣想学习的最新技术,另外写作过程其实就是实践费曼学习技巧的过程,因此对技术和知识可以有更深刻的理解,这样的过程自然而然就给自己带来了进步,过程中可能没感觉,但一段时间后就会感觉到。 关键词三:满足感