程序员

程序员如何做到『编程速度又快,Bug 数量又少』?

南笙酒味 提交于 2020-05-05 11:37:21
有网友在 Quora 提问:如何把自己训练得『编程速度又快,Bug 数量又少』?下面是 Glyn Williams 的回复很精彩,4.5 k 赞。 三个程序员被要求穿过一片田地,到达另一侧的房子。 菜鸟程序员目测了一下之间很短的距离,说:“不远!我只要十分钟。” 资深程序员看了一眼田地,想了一会,说:“我应该能在一天内过去。”菜鸟程序员很惊讶。 大神程序员看了一眼田地,说:“看起来要十分钟,但我觉得十五分钟应该够了。” 资深程序员冷笑了一声。 菜鸟程序员出发了,但只过了一会,地雷爆炸了,炸出了巨大的洞。这下他必须偏移预定的路线,原路返回,反复尝试穿过田地。最后他花了两天到达目的地,到的时候颤颤发抖,还受了伤。 资深程序员一出发就匍匐前进,仔细地拍打地面,寻找地雷,只有在安全的时候才前进。他在一天的时间内小心谨慎地缓慢爬过了这片地,只触发了几个地雷。 大神程序员出发之后径直穿过了田地,十分果断。他只用了十分钟就到了另一边。 “你是怎么做到的?”另外两个人问道,“那些地雷怎么没有伤到你?” “很简单,”他回答道,“我最初就没有埋地雷。” 当我们遇到我们(或其他人)给自己埋下的逻辑炸弹,编程会变得很困难。我们天天在编写逻辑炸弹。它们就在地表下静静地待着,等着爆炸。一旦爆炸,通常就带来不可预测的严重后果。 随着新的代码模块被加入到项目中,项目的复杂度会上升。这种上升不是线性的

程序员做些业余项目的重要性

生来就可爱ヽ(ⅴ<●) 提交于 2020-05-03 22:42:37
编程是一种创造过程,业余项目允许程序员在没有截止日期或各种限制的条件下,以探索形式编程。业余项目之所以重要,有以下几个原因。 探索新技术 每天都会不断有新技术出现,开始不知道开发安卓应用需要做保护,如果一旦你的一个应用上市场是为了获得一定的外快,这个就不得不知道。办法总是比困难多,在你还没遇到的时候有人遇到了,并且研究出了解决办法—— 爱加密专业安卓应用加密技术 。同时业余项目则是最佳的试验场。作为业余项目,你不必为bug或者性能问题担心,即使网站崩溃也没有问题,因为你不靠它来领薪水。 从头创造 我所从事的大多数都是为现有的产品做一些维护,增加一些新特性,修复bug,解决性能问题,重构现有代码。虽然我也从头编写过一些软件,但这些基础工作只需要一两个月,接下来我又进入维护模式了。 业余项目经常需要从头构建。我喜欢这个步骤,因为我不但复习了已经掌握的所有东西而且把它们应用到创建一个新的(更好的)项目中。 易于启动 进行业余项目也是一项避免分析瘫痪(analysis paralysis)的练习。如果你从头开始会有各种各样的可能性。避免的方法是给出一个短列表上面列出所有必须具有特性,接下来启动一个beta版本实现那些特性,即所谓的最小可行性产品[TODO]。 编注1:分析瘫痪:对某个问题由于过度分析或过度思考某种情况,以至于没有作出决定或者采取行动。在不同的领域,分析瘫痪有具体的解释

我为什么“明目张胆”地和异乡好居撕逼?因为我是千千万万普通程序员的一名

China☆狼群 提交于 2020-05-03 20:34:53
起初温州动车出轨,他们抓了程序员; 我没有出声, 因为我不写动车代码。 接着携程网出现故障,他们抓了程序员; 我没有出声, 因为我不写旅游代码。 然后小米手机在天猫的数据造假,他们抓了程序员; 我没有出声, 因为我不写电商代码。 后来穿行删除代码,他们抓了程序员; 我没有出声, 因为我不删代码。 最后他们来抓我; 到那时候, 已经没有剩下能出声讲话的人了。 迷 · 马丁 · 尼莫拉 · 渡 —— 《我没有说话》 以上是我改编的一首诗,原文是德国牧师马丁·尼莫拉的一首诗(忏悔文),这首诗被镌刻在美国波士顿的犹太人大屠杀纪念石碑上。 原文是: 起初他们抓了所有的共产党人; 我没有出声, 因为我不是共产党人。 接着他们抓了所有的犹太人; 我没有出声, 因为我不是犹太人。 然后他们抓了所有的工会骨干; 我没有出声, 因为我不是工会骨干。 后来他们抓了所有的天主教徒; 我没有出声, 因为我属于新教。 最后他们来抓我; 到那时候, 已经没有剩下能出声讲话的人了。 事件回顾: 如何看待异乡好居老板娘控告程序员删代码? 5月7号,我、i5ting(桑世龙)、寇云,李彬作为嘉宾参加了 SegmentFault 举办的 D-Day 天津前端专场大会 。 要说交情,在所有的嘉宾中我和李彬交情最浅了,仅仅是在大会当天加过一次面。而其他几位嘉宾我都见过了好几次。 但是看到李彬的朋友圈后,我当时简直是气炸了

十二个程序员必备的优质资源推荐

六月ゝ 毕业季﹏ 提交于 2020-04-29 11:04:49
  作为一名伪开发者,深深的明白程序猿们的不容易,今天特地搜罗了一些必备的优质资源供大家参考,希望我猜的这些网站都有你喜欢的在内。   1,知乎周刊(http://zhuanlan.zhihu.com/Weekly):定期推出知乎出版的电子书,让你脑洞打开,希望你喜欢。   2,码农周刊(http://weekly.manong.io/):码农周刊是一份专为程序员打造的IT技术周刊。我们会为你精选一周IT技术干货,每周一发送,完全免费。码农周刊微信二维码码农周刊由微博微信账号developerWorks创建。developerWorks一直专注于IT技术干货分享,目前粉丝已超过10万。   3,Pycoder's Weekly(http://pycoders.com/archive/):每周给你的邮箱发送关于 Python 开发的相关信息。   4,Hacker News(https://news.ycombinator.com/):光看标题就知道非常牛叉了,骇客新闻,有木有?   5,Startup News(http://news.dbanotes.net/):搜集近期比较热门的开发者博客新闻,有不少干货。   6,极客头条(http://geek.csdn.net/):极客头条是分享优质技术文章、深度交流技术话题的社区。这里聚集了一批热爱钻研技术、愿意分享技术的人

每个优秀程序员必须具备的技能

一曲冷凌霜 提交于 2020-04-27 19:45:44
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。 也许你可以成为一名优秀的管理人员或指导人员,作为程序员如果你不能编写代码和开发软件,但不会是软件开发人员。 如果你正在阅读这篇文章,那么我假设你有兴趣成为一个软件开发人员——或者是更优秀的软件开发人员——下面就让我们来聊一聊你需要知道哪些技术技能。 用技能赚钱 现在,有这样一种主流观念,压垮了很多新手软件开发者,那就是你需要学习很多东西才能成为软件开发人员,并且很多人不知道从哪里开始起步。 这里我会尝试着具体说明那些在你追求成为软件开发人员的路上将让你受益的必要技术技能。 一篇文章当然不能详尽说明作为软件开发者,你可能需要掌握的所有技术技能,但是我会列出最关键的一些技术技能。更多精彩内容关注微信公众号:北京尚学堂。 编程语言 我认为从这一条开始说起是最合适的。 不懂编程语言,怎么能成为一个真正的程序员? 不过,关于选择哪种编程语言去学习可能并没有我们想得那么重要这一点,请允许我一笔带过。 相反,让我们谈一谈为什么我们要从一种编程语言开始,而不是试图去学习所有的东西。 许多新手程序员会试图一次性或在第一份工作之前学习几种编程语言,以便于有备无患。 虽然我认为你最终应该学会一种以上编程语言,但我不建议提前这样做,因为这只会导致混乱,并且会分散你需要学习的其他技能的精力。 相反,我建议你应该深入研究,重点学习单一编程语言的来龙去脉

每个优秀程序员必须具备的技术技能

好久不见. 提交于 2020-04-27 19:44:12
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。 也许你可以成为一名优秀的管理人员或指导人员,作为程序员如果你不能编写代码和开发软件,但不会是软件开发人员。 如果你正在阅读这篇文章,那么我假设你有兴趣成为一个软件开发人员——或者是更优秀的软件开发人员——下面就让我们来聊一聊你需要知道哪些技术技能。 用技能赚钱 现在,有这样一种主流观念,压垮了很多新手软件开发者,那就是你需要学习很多东西才能成为软件开发人员,并且很多人不知道从哪里开始起步。 这里我会尝试着具体说明那些在你追求成为软件开发人员的路上将让你受益的必要技术技能。 一篇文章当然不能详尽说明作为软件开发者,你可能需要掌握的所有技术技能,但是我会列出最关键的一些技术技能。更多精彩内容关注微信公众号:北京尚学堂。 编程语言 我认为从这一条开始说起是最合适的。 不懂编程语言,怎么能成为一个真正的程序员? 不过,关于选择哪种编程语言去学习可能并没有我们想得那么重要这一点,请允许我一笔带过。 相反,让我们谈一谈为什么我们要从一种编程语言开始,而不是试图去学习所有的东西。 许多新手程序员会试图一次性或在第一份工作之前学习几种编程语言,以便于有备无患。 虽然我认为你最终应该学会一种以上编程语言,但我不建议提前这样做,因为这只会导致混乱,并且会分散你需要学习的其他技能的精力。 相反,我建议你应该深入研究,重点学习单一编程语言的来龙去脉

国外程序员经常用的二十八个学习网站

隐身守侯 提交于 2020-04-27 18:39:24
  无论你是想转行,成为一名全职程序员,或者想尝试打造一个网站或应用程序,或者只是希望提高了你的技能,学习代码无疑是每个程序员都绕不开的一关。尽管作为一个程序员可能不适合每一个人,但是还是有很多网站适合来提高自己的水平。   在深入了解下面我们的学习写代码网站列表中,我们想分享一个自学成才的产品设计师的一些建议。一位前创业者说自学成为程序员是很难的一件事情,无论是设计,编程。    “鼓足勇气,最重要的障碍就是要克服你的恐惧”   一旦你达到的基本写代码的能力,起步往往是最好的,试图给自己定制任务,并建立通过大量的试验和错误来丰富自己的经验。因此,考虑到这一点中肯的意见,如何让我们继续更好的学习开发,下面一些网站一定是你必备的:    1,MIT Open Courseware   麻省理工学院的开放课件中的各种问题,包括电气工程和计算机科学2100提供的课程。免费的资源,包括在线课本,考试,多媒体内容,任务和项目的例子 - 所有从过去十年左右的实际MIT课程。    2,Coursera   证书课程一经推出,已经创下100万学生大关,并已延伸到包括0ver来自33所高校200课程。如果你还没有听说过证书课程的,它是斯坦福大学学习的想法出身的巨型启动,基本上你可以通过在世界上最好的学校之一真正的教授讲授网上一个完整的大学课程,而且这些是免费的。    3,Udacity  

Java程序员变优秀的10个要点

人走茶凉 提交于 2020-04-22 05:38:52
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。​ 1.拥有扎实的基础和深刻理解OO原则 对于Java程序员,深刻理解面向对象编程这一概念是必须的。没有OOPS的坚实基础,就领会不了像Java这些面向对象编程语言的美。光学习OO原则的定义用处不大,关键是要学会如何应用这些原则用一种OO的方式去设计解决方案。因此,我们应该对对象建模、继承、多态、设计模式有一个很好的认识。 2.掌握核心API 如果你不知道语言结构和核心API,那么即使你在理论知识上再怎么彪悍也是独木难成林。在Java中,我们最好能对核心API,如java.lang.*、I/O、异常、集合、泛型、线程、JDBC等有很强的实战经验。要是涉及到Web应用的开发,无论你使用的是对Servlet有多大关系的框架,JSP都是必须的。 3.Keepcoding 陆游曾说过,“纸上得来终觉浅,绝知此事要躬行”。从理论上想出一个解决方案很简单,但是真到了实施的时候,才会意识到问题有多难。此时,你才会明白编码过程中存在的语言限制,从而设计出最好的实践方案。因此,Keepcoding。 4.订阅社区论坛 我们并非踽踽独行者。很多人都和我们一样在研究着相同的技术。只是对某个框架概念做验证是不难的,但是当你将这些概念应用到实际的项目中时,那么各种各样的问题,各种在官方文档上找不到解决方法的难题就会接踵而来

北京尚学堂|给自由职业者的10条建议

戏子无情 提交于 2020-04-21 05:36:10
版权声明: 本文为北京尚学堂原创文章,未经允许不得转载。 工作,无论你是全职的自由职业者还是只是将其作为一个兼职,你需要妥善的协调业务和生活之间的关系。成功的自由职业者已经制定了一套个人的规则和程序,帮助他们有效地工作。 在这里,我们有10个建议,可以帮助你每天工作的更有条理,训练自己更好的工作。使你的日常工作流程更加井井有条。 1.每日计划 一个高效的工作起源于一个好的计划,你准备这一天干什么呢? 列出你一天的工作然后将其划分成若干个小任务,逐一完成。在心里提前构思好你的工作将如何展开。计划一周内哪几天出去跑业务,哪几天在家处理工作,什么时候见客户。安排好所有事情,这样你可以节省很多时间和资源成本。 记得安排一点娱乐时间,这是必须的,你在设置每日计划或者每周计划的时候必须考虑到这个,没有人会一直工作不休息。合理计划,否则你只会变得疲惫和低靡。 计划完成以后,想象一下(作为一个设计师,最擅长的就是这个了吧):”一天开始了,我首先需要。。。。“把流程在脑袋里过一遍,将其明确的表述出来将帮助你更清楚自己的工作,并更明确的完成一天的工作。 2.在工作区工作 并不是所有自由职业者都能奢侈的拥有一个家庭办公室,但是你必须有一个工作区,如果没有,那就自己创建一个。 在工作区域内工作,这听起来很简单,当你在确定的工作区域工作,你可以随手够到你需要的工具,工作的氛围可以帮你很快的进入理想的工作状态