❶ 怎样做一名高效率程序员
很多人问我,你怎么效率那么高,工作很忙,又要带娃,还写博客,还有时间运动。今天就写写这个话题:程序员如何提高工作效率
保持高工作效率,我觉得主要有一下4个方面,希望能对大家有帮助。
集中目标
工作列表
不论是开发还是设计,还是其他职业,工作列表都很重要,工作目标很明确。工作的时候才能格外专注,才不会走神。
用自己最熟悉的工具(我用Evernote),把待办工作列表(今天要做什么)记录下来,很重要的一点是记录分解后的小目标(分解任务也是一个很重要的能力)。同时也保持工作中产生的新的问题(任务),经常性地调整当前工作任务列表,根据重要性对这些任务进行划分,经常想着那些最重要的问题。
专注目标
专注目标不是那么容易做到的,需要学会分离与当前无关的任务/问题,工作中经常会碰到的问题可以首先寻找简单可用可靠的方案,并将心中的疑虑记录下来,集中成一个列表,工作之外翻翻书,系统思考和学习,而不会因为这个问题而叉开思路对相关的内容研究一番。总之,专注当前的任务,把新问题记录下来,回头再专心攻克。
学会避繁就简,在基本功的增强后,会发现很多问题可以简单阅读或查找文档,或浏览问题相关的库的源码解决;
学会简化问题
无论是在广义的工作方法/工作态度上,还是在针对具体问题上,很重要的一个个人能力就是化繁为简了。化繁为简是所有工作方法/软件设计的核心。将那些可以砍掉的工作砍掉,做到尽可能地简单。
从工作方法和态度上来讲,真正需要去做的工作才值得去做,大力砍掉那些不应该在当前工作中处理的事情。例如不必要的优化,不必要的扩展性,不必要的性能,不必要的功能,可以不要的技术,不必要的流程,不必要的文档,统统砍掉,一切可以没有的全都不能有。
工作中也可能遇到非关键的难题,通常绕过它们,使用更简单的方案就是了。纠缠于这些不重要的难题,最容易浪费时间。
从设计/实现来讲,最好的方案就是最简单直接、一眼就能看懂的方案。而且通常最简单直接的方式,通常性能也最好。
基本功
基本功的内容十分复杂。
第一项基本功是对整个计算机体系的理解,对操作系统/虚拟机/数据库本质的理解,对语言基础类和库的理解,这些是核心基本功。
第二项基本功是学习能力。通过快速阅读核心文档理解核心思想,然后其他的东西总是能从文档中查到就行。细枝末节的东西,即学即用,学过就忘可也。
第三项基本功是文档、代码、资料的搜索和收集,技术问题建议大家用Google搜索,有意识的整理出自己的代码库。
工具
选择工具核心标准,就是简单朴素可信赖,如果一个工具出几次诡异现象,那就干脆丢掉它。
熟悉工具,实际上我们工作中,就是和各种各样工具打交道,各种IDE,编辑器,版本管理工具,命令行终端,TODO工具等等。要想在工作中如行云流水,一定要熟悉工具,包括工具快捷键,命令,原理等等。
写自己工具,很多时候,我们需要重复的做一件事情,当你做第2遍,第3遍的时候,就应该想一想,能不能自动化,很多简单的几句shell就可以搞定,麻烦的一点的,可以先记录下来。比如,我就写了非常多的脚本:一个命令反编译APK并查看源码、提取当前版本号打git tag并提交等等。很多时候几分钟到几十分钟的事情可以压缩到几秒钟完成,也避免了对工作的打断。
❷ 程序员编程时心力交瘁,失去工作热情怎么办
心力交瘁中
导读:程序员在编程的时候因为心力交瘁,从而失去工作热情的现象并不罕见。很多文章都可以成为这一方面的证据,证明这已经是IT行业一个普遍现象。因为我已经有处理过职业倦怠的经验,所以我想要更深入地探索这个问题,帮助大家解决甚至预防它。
倦怠发生的原因
程序员比其他领域的专业人士更容易产生职业倦怠。至于为什么会出现这种情况,我也没有一个明确的答案,但我认为有四个主要原因
第一个是生理原因。每天坐在办公桌前,面对着电脑,是不健康的,会让人更加无精打采、昏昏欲睡。嗜睡还可能导致其他不良的生活习惯,如吃零食,抽烟,熬夜等。然后最终导致郁结于心,产生倦怠感。
第二个原因是,编程是认知高度密集并且压力非常大的工作,会导致心理疲劳和损伤。
第三,有可能你现在已经精疲力竭了,因为正在做的工作耗尽了你的力量,并且收获甚微。对此,唯一的解决办法是离开一段时间,好好反省下――如果不考虑钱的因素,你希望做什么样的工作。
第四个原因不是我想出来的,是我在《Hacker News》的评论部分发现的。有一个人准确地描述了,“职业倦怠是由反复做大量牺牲,或努力完成高风险问题最后却以失败告终而导致的。这是伏隔核(nucleus accumbens)负面预测落差的结果。你的大脑需要理智地应对失败。这一条说得真的太对了。在创建软件的过程中,基本上没有一天不是处在各种失败和挫折中。
我本身也经历过好几次职业倦怠。虽然我没有一次放弃编程,但偶尔我也会怀疑我选择的职业是否正确。所以,从那时起,我开始注重策略化的工作方法,以保持长效的动力和生产力。我将在这篇文章中介绍我的一些开发习惯,以及一些可以预防或甚至消除倦怠的技术手段。
先从基本的开始。
吃好。不要以为做个素食主义者就万事大吉了。试着逐渐用白开水代替苏打,低糖饮食,多吃蔬菜,不要吃得过饱。还有最重要的是要持续下去。
睡好。这包括良好的睡眠质量和充足的睡眠时间。更好的睡眠环境,能够让我们一觉醒来倍感清爽。具体的一个技巧就是减少会让人彻夜难眠的蓝光照射。这可以通过安装Flux,来调整计算机显示器的色彩。
不要劳累过度。已经有很多证据表明,生产效率,即输出,会在经过4个小时聚精会神的工作之后,急剧降低。像程序员这类认知高度密集的职业,要想长期保持高效,那是不可能的。
番茄工作法。这对于既要保持生产力,又要获得一些必要休息的程序员,是一个既简单又有效的方法。番茄工作法,即集中精神工作25分钟,然后休息5分钟,然后循环。如果在每次的工作时间都有一个特定目标,效果会更好。理想情况下,在休息时间里,应该去做一些远离计算机的活动。如散步,俯卧撑等。当然你还可以在三次番茄工作法后,休息个30分钟,效果也很好。
保持活性,保持前进。我本来想说的是――运动,但很多人有一种误解就是,认为运动必须包括去健身房,或其他。但是在现实中,保持活性也可以通过用爬楼梯代替乘电梯,或者将汽车停放在一角,而选择骑车上班,总之,其他在日常中就能运动的方式更易于实现,而不是让人整天沉溺在电脑前。
更具体化的要点
实验,玩,学,原型。这些事情能让你在短期内获益匪浅,并且迅速输出。例如,以同样的你惯用的方式,不断地建立网站。但是,随着时间的推移这会逐渐变得乏味,让人提不起一点兴趣。编程有部分也是工程,需要使用经过充分验证的技术用于生产软件。但它也可以让你玩乐、实验和尝试新想法。将20%的时间消磨在技术上是避免职业倦怠最有效的策略之一。所谓消磨在技术上可以是尝试新的库,也可以是创造一些有趣的但与工作无关的东西,又或是学习一些自己以前不曾涉猎的内容,如函数式编程。
参加聚会,会议和收听播客。编程会让人感到孤单。和其他开发人员碰面,或在播客上听他们的经验,能让你更在意和注重自己的工作。没有人喜欢抱怨,但是分享或聆听来自于其他程序员的奋斗经历,以及他们如何克服困难的过程,能够激励你继续前进。
打造良好的工作环境,千万不要在工具上吝啬。能快速编译的PC,能让你的时间不必浪费在没有必要的等待上。确保有一个舒适的椅子、桌子和显示器以及设置。如你在嘈杂的环境中工作,那么买一个高品质的耳机,将噪音隔离开来。
掌握工具。良好的工具可以使得编程更加愉快,掌握这些工具能让工作更加高效。这是众所周知的一点,但我还是要再重复一遍。了解工具,如编辑器,操作系统,命令行中的所有快捷方式,可以为你节省很多时间。自动化日常任务可以加快进程,进一步远离倦怠。
休息,涉猎其他方面。除了编程之外,还有许多有趣的活动。例如:体育运动,文化活动,sex,阅读,乐高积木,社交活动,钓鱼,烘焙,摄影等。如果你总是持续做一件事,如编程,那么总有一天你会不可避免地心力交瘁。所以,做一些看似无关但实际可以重新点燃激情的工作,这些工作或许还能激发你新的想法和思路,就像那位传奇的诺贝尔奖获得者理乍得费曼学习板摆动一样。
考虑更换工作或启动一个不同的项目。职业倦怠也有可能是因为你总是在做无趣,又耗费心力的工作,如整天微调现有的代码库。也有可能是因为你现在工作的项目已经不符合你的兴趣,或你的价值标准。此外,如果你发现编码再也激发不了你的激情,那么也可以考虑相关领域,如信息架构,系统管理等,也许可以再次点燃你的激情。
将那些你可以顺利完成的工作,整合为日常任务。这些工作包括测试代码,写注释,改善变量命名等等,这些都可以释放内啡肽,有助于恢复工作行为。这条技巧意在让我们的大脑对我们做的工作更有积极性。
结论
世上并没有治愈职业倦怠的仙丹妙药,而且每个人的情况都不尽相同。所以,希望我上面列出来的这些我觉得有效的小贴士也能为你所用。
诚然,我们需要时间来培养新的习惯。但是吃得好,睡得好,锻炼和好好照顾自己,能让你感觉更好,从而帮助你在完成工作的时候做得更好,并保持对编程的热爱。
❸ Java程序员初入职场时,应该注意些什么呢如何快速适应职场
JavaSE是核心,那也是入门Java人员先要触碰学英语的一部分。包含学习培训自变量,基本数据类型,进制,转义字符,操作符,分支语句和for语句,对二维数组、面向对象编程和错误处理等。
在理解了之上技术性以后,便可以开始自己工作之行了,对于新手尽早融入工作中,有如下提议:融入的工作头一步,就是跟身边的同事做好交道了,不用你多殷情,仅需你的所作所为不让人反感,但是也无需多疑,你不是rmb,不太可能所有的人都喜欢你,维持一般的人际交往就行了,尽快融入团队氛围,与同事融为一体。工作上依旧还是得到工作职责为主导,作为一个Java初学者务必明确自己岗位工作职责,明确自己每日工作职责,随后尽早把工作职责所需要的岗位技能学好,尽快上手工作,保证科学安排自身工作时间,高效的工作,也不耽误新项目的进程。
❹ 学习编程语言过程中一些懒惰,心态怎么解决
零基础如何学习编程
心得笔记
自学编程2年来,加过n多群,泡过n多论坛,接触过心怀激情的编程新人,遇到过沉着冷静的技术大牛……编程,吸引了一批又一批的热血青年,或许是为了理想,或许是心中的爱好,不断有新人的加入,也不断有人从编程中退出。编程的入场入口只有一个,出场的出口却很多。自学编程的新人,有很大一部分卡在了入门上,对此,我想写下对编程入门的一些拙见,权当抛砖引玉,或对或错,还望同学们自己鉴定。
1.零基础,打算自学编程,应具备哪些的知识看
答:
对于入门阶段,对知识水平的要求并不算高,或者说很低,大家都应该听说过xxx小学生编程如何如何这般这般怎么样之类的话题,这里,我们不谈长期发展,只谈如何入门。首先,我觉得你应该具备计算机的基本操作能力,如果说你连新建一个文件夹或者说从网上下载资料都不会,那么你应该先买本《windows xx从入门到提高》看,然后再考虑编程这件事,如果你觉得对计算机的基本操作已经熟练后,请继续向下看。
2.学编程应具备哪些条件看
答:
第一:硬件保证,首先你应该具备一台电脑,不管是笔记本还是台式,也不管性能高低,性能对前期学习编程几乎无任何影响,就入门来看,操作系统还是首选windwos。
第二:有xx语言的入门本书,纸做的,具体xx语言是哪种语言,后面我们再讨论这个问题。虽说现在铺天盖地的都是电子书了(保留这句话的确定性),到处是扫描版,还高清呢,但我还是推荐看纸做的书,好处有两点,其一是便于携带,可以随时翻阅;其二是避免眼疲劳,我不信你一直晚盯着显示器看电子书眼睛不会酸;还有一点,尊重图书作者的版权。
第三:时间保证,如果你每天都有一大堆事等着你去处理,先去处理那些事吧,处理完后把剩余时间划出一整块的给编程,进行随时可能被打断的学习,在编程这块,我不认为这是在用功学习,零碎时间去背单词看应该是个不错的选择。
3.你确定要学编程看
答:
这个问题看起来有点多余,但为什么要提出这个问题看要知道,编程不是一朝一夕的事,如果你只是一时的冲动,或者仅仅是要完成心目中的某个小工具,并没有长期写程序的打算,这样的话,编程不学也罢,毕竟编程从入门到能独立写软件会有很长的一段路要走,中途一旦放弃就前功尽弃,并且已经浪费了你大把的宝贵时间,实在是得不偿失。不过,你尽管吐槽说是这是你的业余爱好,有个爱好也挺好,那么,继续往下看吧。
4.如何才能入门看
答:
到底怎样才能入门看其实,只要你有毅力,慢慢折腾个一年半载,肯定能入门,但写这篇文章的目的就是为了把这个周期缩短些,不是吗看所以,下面我就以个人的观点来谈谈怎么才能更快的入门,这里先笼统的介绍下,对于每点,后面单独介绍。
–1>.去了解计算机的基本组成,计算机的发展史和编程的发展史,看起来和编程没什么关系,潜在的影响还是十分大的;
–2>.选择一门简单的语言作为入门语严;
–3>.学会使用搜索引擎;
–4>.知道如何看书;
–5>.要地像地个高手;
–6.>应具备的学习态度;
4.1:了解这些历史的意义:
了解一些编程的实质远比知道如何编程更有意义,不要在编程是怎么回事的情况下就去学习编程,这样对你的学习是十分不利的,作为一个编程爱好者,知道计算机的工作原理,这应该是一件再正常不过的事,你难道不想去知道吗看
4.2>.选择入门语言:
这个问题在入门阶段一直是争议十分大的问题,n多语言,n多推荐,到最后搞到新手一会听说这种语言适合新手,于是学习这种语言,一会又有人说xx语言是垃圾、弱爆了,学了也没用,之类的话,开始推荐你xxx语言,于是新手们又开始学习这种语言,搞到最后,什么语言都没搞懂,时间大把大把的流失,热情消耗殆尽。要解决这个问题,首先要明白一个根本问题,怎样挑选适合入门的编程语言看我推荐从难度这个角度来考虑,这门语言必须简单易学,有趣,而且要有一定的热度,有热度才能有更多的人一起交流讨论,翻开编程语言列表,发现有100多种编程语言,而且这个数还是在不断增加的,这里我们一起来看下2012年5月份的编程语言排行榜,能进排行榜前20的,首先在热度上都已经差不多了,现在要做的就是从排行榜里找到一门简单有趣的语言。
2012年5月编程语言排行
对于上述的语言,这里不可能一个个详细介绍,篇幅有限,最主要的是,这些语言的介绍只需要你打开搜索引擎(网络看谷歌看还是其他看随便你喽。),输入这项语言的名字,搜索一下,就能看到他的详细介绍了,如果你说你不会搜索,那么,请返回第一个问题,一般来说,如果你去论坛提问什么语言适合入门,得到最多的结果应该是C语言,没错,就是上述排行榜排行第一的那个,强烈推荐C语言入门的同学如果看到这篇文章可能会很想吐槽,因为这里笔者要推荐的不是C语言,笔者认为,Python语言对于零基础更适合入门,很多人推荐C语言原因我猜测可能有两个,一是全国大部分的高校的编程课C语言是都有开设的,也可以说是学习过C语言的用户基数大,第二是C语言自身的强大,可谓是口碑好。基数大+口碑好,足以让你得到的结果是C语言居多。
笔者是Python语言入门,接触编程时完全是零基础,现在接触了C、接触了C++、JAVA,Visual Basic 6,回味了下,如果让我再次选择一门入门语言,我绝对不会后悔选择Python,建议每位同学去网络搜索下Python,看下是否真的简单易学,并且强大,如果你想快速写GUI(图形用户界面 )的软件,Python有一大把图形库供你选择,不像C语言,半年下来,还是停留在黑框框里,大大打击了初学者对软件开发的信心,对于写游戏,Python也是绝对不会让你失望的,pygame模块为你提供简单快速的游戏开发,Pygame是 跨平台 Python模块,专为电子游戏设计。 包含图像、声音。 虽说没法和Direct X相比,但对于新手来说,独立写个2D游戏不也是一件很愉快的事吗看
对于Python,笔者就不再详细介绍了,只是推荐,具体选择什么语言,决定权还是在你手里,无论是C语言也好,Python语言也罢,下面所介绍的学习方法都是适用的。
4.3>.学会使用搜索引擎:
之所以推荐使用搜索引擎的目的是培养更好的独立解决问题的能力,通常来说,刚学编程时,可能我们有时候连使用什么软件作为编程环境都不知,或者下载安装了编程环境却不知如何使用,这时搜索就派上大用场了,跑到搜索引擎里输入地xxx 使用教程地,结果就出来了,简直太方便了。
而且,新人都喜欢加很多xx语言的编程群,而且大都是挑人多的加,一旦编程中出现了一点小错误,就立马到群里提问,这是一个很不好的习惯,假如说群里有人在线,为你解决了这个问题,那么你独立解决问题的能力就降低了一分,假如没人在线,你就可能面临着等待,或者把问题放这,不去管它,这样积累的后果你是知道的,最好的方式就是动用搜索引擎,不需要等待,还可以锻炼独立解决问题的能力,何乐而不为看还有一点,许多新人反应说许多知识搜索不到,我很负责任的说,不是搜索不到,是你不会使用搜索引擎,至少我现在在编程上还没有遇到过搜索不到某个知识点的情况,对于搜索的使用技巧,如果你还不知道,去搜索吧。
总之,有问题,就要去搜索。
顺便说句,加很多群不是一个好习惯,群里并不能让你学到太多知识,他的功能在于能找到一群有共同话题的朋友,真实的情况是大多时间都在时一起闲扯一些与编程无关的话题。
4.4>.知道如何看书:
无论是电子书还是纸做的书,都会有页码(txt看当我什么都没说过),要做好学习的计划,每天看多少页看这倒不是,不要忽略目录这个好东西,先认真看下一本书的前言和目录,了解本书的知识点的分布,这样有利于更快的融入这本书,然后按章节作学习计划,按页来你就不怕把一个知识点切成两半看笔者看书时第一遍喜欢浏览,也就是走马观花的看,花一上午或一下午从头把书悠闲的翻一遍,不求记住知识点,只求记住几个名词,知道书里面有这些东西,给大脑一个模糊的印象。
从第二遍开始认真看,不放过任何一句话,碰到不明白的名词,没关系,搜索解决。看书要及时复习,推荐逗看五退三地(笔者自造的词)式看书,也就是说一次看五页,下次看书式再向后退回三页,这样可以起到很好的复习效果,遇到确实看不懂的地方,也不要停留太长时间,很有可能当你继续向下看,再返回这个问题时,发现你已经可以理解了,这种情况很常见。
代码是一定要亲手调试一遍的,要亲手输入一个字符一个字符的输入,不是机械的复制粘贴,复制粘贴的后果就是你自己感觉学的差不多都理解了,然后到你上机亲手写代码时,要么写不出来,要么一运行报错一堆。所以,书上的每段代码都要亲自调试(再次强调:学编程,就必须得要亲手实践,不要想着走捷径,捷径在哪看有捷径我早走了。)
对于代码报错,作为新手,正常的不能再正常的一件事,这里说两点,注意单词的拼写错误和符号是不是在英文状态下输入的;还有就是坚持自己找出代码错误,坚持,代码报错不求人,自己解决。
4.5>.要地像地个高手:
在写这几个字的时候我还是在担心等等这句话会不会造成误解,像个高手,并不是让你打肿脸充胖子,而是一种激励自己学习的一种方法,具体就是,要多帮助其他新人,帮助别人可以提高自己的话就不说了,在论坛或群,你可能遇到新人们各种各样的问题,要么代码报错自己检查不出错误,或者想解决某个问题却找不到方法等等,诸如此类的问题,如果你能解决,一定要记得解答一下,不断这样下去,你在你的圈子里说话就会越来越有分量,别人也就更信任你的能力,正式由于这种信任,也渐渐使你背负上了一种高手的责任感,别人请教问题我能不会看即使出于虚荣心,我们也得不断学习,维护我们在别人心中高手的形象,这样也就达到了刺激自己不断学习的目的。
但是需要记住几点;
一:不要误导其他新人,自己不确定的知识不要回答;
二:对于那些弱爆了的问题,你已经回答过很多遍了,如果别人没指明让你回答,那么就把这个机会让给别人吧,确实没必要再在这些弱爆了的问题上浪费时间;
三:每天冒泡回答问题的时间不要过长,否则会影响到你的正常学习进度;
四:发现自己错了就要勇敢承认,等高手出来吐槽时只会让你更难堪,不要以为新手好忽悠,当新手有天成为高手时,他会记得当初是谁在挖坑让他跳;
(悄悄告诉你:假如有人问题你确实不知道的知识,而你觉得这个问题你能解决的时候怎么办看咳咳、有点事,离开一下,一会再回答你。这时候,不用说了,抓紧时间去翻书、上网搜索,高手的形象不能丢哇!)
4.6>.需要具备的态度:
–①:恒心看专注看相信自己看每当看到有人告诉新人学习方法讲要有恒心,要学会坚持不懈之类的我就想吐槽,做什么事不需要这样的态度看编程,要有激情,要有想象力,不局限于书本上的知识点,大胆实验,尝试把已经学习的话知识点组合成新的知识点,就拿C语言的链表来说,几乎所有的C语言入门书都把链表作为单独的一个知识点,如果说所有的书都取消链表这个知识点,当你学完指针、结构体、再告诉你malloc函数的用法,你能想到可以组合成链表这有趣的知识点么看
–②:学会稳定自己的情绪,当在论坛或群意见不合,或者有人无理取闹时,不要动怒,立即潜水,因为没必要动怒,谁对谁非,旁观者自然能看到,有个词,叫冷暴力。
人往高出走,尽量和高手混在一起,尽管在高手眼里你可能会仅仅是个菜鸟,但这样做确实有利于你提高自己,有压力才有动力。需要叮嘱一点:永远不要指望技术大牛经常出现在xx群,高手在哪里看高手多半都在写程序,会有时间泡群看
笔者的阅历,暂时只能提出这么多建议了,不管建议是好是歹,也算是表达出了心中一直想对新同学们想说的话,所有准备踏入编程这片天空的同学,祝你们学习愉快,早日实现心中的那份梦想。
最后,引用《黑客防线》上的一句话,作为本篇文章的结束语,这句话我一直记在心中:程序员是值得尊敬的,程序员的双手是魔术师的双手,他们把枯燥无味的代码变成了丰富多彩的软件。
Mr.Wid
❺ 程序员久了,会很敏感,因为小事烦躁,怎么回事
程序员的烦躁来源于压力。程序员缺少宣泄情绪的出口,每天基本都是在处理问题,面对工作、生活各方面的压力,没有很好的疏解途径,造成了心理负担