程序员能力

架构师目标

限于喜欢 提交于 2020-03-10 17:32:51
1、卓越的程序员   有些架构师的设计与实现会出现断层的问题,如果架构师不去实践,只是想当然的认为“没问题,这个想法能实现”,那么对于项目的落实而言是个很大的隐患。 2、抽象思维   很多优秀的架构师们都一致的表示,逻辑思维和抽象思维能力是一个架构师最重要的素质。 3、技术前瞻性   架构师不光要着眼于现在,不仅仅局限于开发细节。而是跳出三界外,考虑面向未来问题和潜在风险的应对之道。 4、问题解决大师   架构师因为具有多领域知识和经验的积淀,所以在面对庞大系统之时,仍然能够敏锐的发现其底层之真实。 5、多领域知识   架构师身为一名技术领袖,需要通过发散知识的光芒来统御开发团队。 6、沟通能力 7、内力   很多人理解的内力就是开发技术,包括语言的掌握、对框架的掌握、数据库管理能力、安全管理能力等等。但是我们看到,架构更多的内力体现在对技术的综合运用上,光会编程的程序员,最多就能做到高级程序员,也就是技术实现上的高手。 8、权衡取舍 9、管控能力   架构师在管理和控制的能力上,需要有自己独到的见解,而不是简单的认为这是项目经理或者财务部门的事情。在这里架构师所需要的管理与控制,其实是从技术的角度,对一些问题的控制,特别是开发过程中的监控,而不是普通意义上的纯粹管理。 10、艺术气质   一个优美的系统则是可以像有机的生命一样成长的,这是因为从系统开始架构的那一刻起

[转]程序员必读书单(转)

拈花ヽ惹草 提交于 2020-03-09 16:39:14
作者: Lucida 微博: @peng_gong 豆瓣: @figure9 原文链接: http://lucida.me/blog/developer-reading-list/ 关于 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读。旨在成为最好最全面的程序员必读书单。 前言 Reading makes a full man; conference a ready man; and writing an exact man. Francis Bacon 优秀的程序员应该具备两方面能力: 良好的 程序设计 能力: 掌握常用的数据结构和算法(例如链表,栈,堆,队列,排序和散列); 理解计算机科学的核心概念(例如计算机系统结构、操作系统、编译原理和计算机网络); 熟悉至少两门以上编程语言(例如C++,Java,C#,和Python); 专业的 软件开发 素养: 具备良好的编程实践,能够编写可测试(Testable),可扩展(Extensible),可维护(Maintainable)的代码; 把握客户需求,按时交付客户所需要的软件产品; 理解现代软件开发过程中的核心概念(例如面向对象程序设计,测试驱动开发,持续集成,和持续交付等等)。 和其它能力一样, 程序设计 能力和 软件开发 素养源自项目经验和书本知识

《梦断代码》读后感 二

时光毁灭记忆、已成空白 提交于 2020-03-08 07:43:37
4.  在乐高王国这一章中,我看到了“牛仔程序员”,就如同软件工程老师所讲的,四种人,第一等人是有能力有责任,第二等人是有责任没能力,第三等人是有能力没责任,第四等人是无能力无责任。老师所说,一人英雄的时代已经结束,对于这种人就是一匹独狼,团队里的毒药。在《梦断代码》中提到,软件界中关于“牛仔程序员”的说法由来已久。所谓牛仔程序员,就是那些不守规矩、偏好独干、喜欢挑战的程序员。对于许多经理来说,牛仔程序员简直就是噩梦;而在许多程序员眼中看来,他们是英雄。这在我们团队开发时,也是如此。无论是哪个同学,都希望找一个什么都会干,什么都肯干的同学一组。然而,这并不可能,不是每个同学都能写好代码,会写代码。一个团队,如果只是一个人在干活,这个团队迟早会解散。 5.  在搞掂设计方案这一章中,我看到了书中提到的边缘案例,这就如同我们目前所做的结对开发中的数组中的子数组最大值超过了int32的表示范围时,我们该怎么办。程序员们经过训练要巨细靡遗通盘考虑,他们太执着于警惕会出问题的情形,结果难免会迟钝不灵。他们在边缘案例上绞尽脑汁,以至于偏离了中心店。而我也感同身受,我们目前的学习,和做软件还是有很大区别的。我们先考虑的都是怎么实现老师要求的这些功能,并没有把用户想像成一些根本不懂程序的人来看待,我们所做的程序,唯一用户就是任课老师。 6.  里面有一句安德森说的话,“我在那当经理时,自己不写代码

不与人沟通的程序员不是好程序员

萝らか妹 提交于 2020-03-07 11:29:18
  很多人认为计算机变得如此智能,所以在不久的未来将不再需要程序员。另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题。甚至不少程序员对他们是做什么的都没有清晰的概念。   在这篇文章中,我想给不知情的人解释一下程序员到底是做什么的:   程序员是将人类想法翻译成计算机语言的译者。   他们是两种世界之间的纽带。你认为维护这个纽带很容易吗?    人类世界的背景   The problem with people is that they’re only human. - Bill Watterson   人类的问题是,他们只是人而已。——比尔·沃特森   人类是生物进化的产物,并且拥有独特而宝贵的器官——大脑,它能为程序员提供想法。大脑有组合复杂的新大脑皮层(对人类而言是独特的),还有从哺乳动物和爬行动物继承的旧结构。旧的大脑结构主要负责生殖(性)和生存(寻找食物或者躲避危险)。新大脑皮层进化成能够更好地支持这些功能,但是,它开始产生奇怪的副作用——意识、思考和好奇心。幸亏这些副作用的影响,人类产生了文明并在数千年后发明了计算机。   一些人相信经过数千年的发展,人类应该变成完全沉闷的、理性的、可预测的生物,但是这并没有发生。人类旧的大脑结构、复杂的心理和社会行为往往使人们不理性,不可预测并带有欺骗性。并且,人类有糟糕的记忆力、强烈的情感和个人兴趣。但是

程序员的本质

痴心易碎 提交于 2020-03-07 11:27:56
很多人认为计算机变得如此智能,所以在不久的未来将不再需要程序员。另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题。甚至不少程序员对他们是做什么的都没有清晰的概念。在这篇文章中,笔者想给不知情的人解释一下程序员到底是做什么的。 程序员是将人类想法翻译成计算机语言的译者。 他们是两种世界之间的纽带。你认为维护这个纽带很容易吗? 人类世界的背景 The problem with people is that they’re only human. – Bill Watterson 人类的问题是,他们只是人而已。——比尔·沃特森 人类是生物进化的产物,并且拥有独特而宝贵的器官——大脑,它能为程序员提供想法。大脑有组合复杂的新大脑皮层(对人类而言是独特的),还有从哺乳 动物和爬行动物继承的旧结构。旧的大脑结构主要负责生殖(性)和生存(寻找食物或者躲避危险)。新大脑皮层进化成能够更好地支持这些功能,但是,它开始产 生奇怪的副作用——意识、思考和好奇心。幸亏这些副作用的影响,人类产生了文明并在数千年后发明了计算机。 一些人相信经过数千年的发展,人类应该变成完全沉闷的、理性的、可预测的生物,但是这并没有发生。人类旧的大脑结构、复杂的心理和社会行为往往使人 们不理性,不可预测并带有欺骗性。并且,人类有糟糕的记忆力、强烈的情感和个人兴趣。但是,程序员没法选择与更理性的物种工作

程序员的本质

纵饮孤独 提交于 2020-03-07 11:26:22
导读:本文来自 softwarecreation 上一篇《 What do programmers really do? 》,译文由伯乐在线整理编译《 程序员的本质 》。文中阐述了程序员的本质,以及一名优秀程序员所具备的能力。一个优秀的解决方案需要计算机世界与人类世界的双重技能。只有连接起两个世界,才能成为一个真正的优秀程序员。 内容如下: 很多人(包括我岳母)认为计算机变得如此智能,所以在不久的未来将不再需要程序员。另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题。甚至不少程序员对他们是做什么的都没有清晰的概念。 Computers are useless. They can only give you answers. – Picasso 计算机没有什么作用。他们只能告诉你答案。——毕加索 在这篇文章中,我想给不知情的人解释一下程序员到底是做什么的: 程序员是将人类想法翻译成计算机语言的译者。 他们是两种世界之间的纽带。你认为维护这个纽带很容易吗? 人类世界的背景 The problem with people is that they’re only human. - Bill Watterson 人类的问题是,他们只是人而已。——比尔·沃特森 人类是生物进化的产物,并且拥有独特而宝贵的器官——大脑,它能为程序员提供想法。大脑有组合复杂的新大脑皮层

[zt]程序员的本质

扶醉桌前 提交于 2020-03-07 11:25:43
omputers are useless. They can only give you answers. – Picasso 计算机没有什么作用。他们只能告诉你答案。——毕加索 很多人(包括我岳母)认为计算机变得如此智能,所以在不久的未来将不再需要 程序员 。另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题。甚至不少程序员对他们是做什么的都没有清晰的概念。 在这篇文章中,我想给不知情的人解释一下程序员到底是做什么的: 程序员是将人类想法翻译成计算机语言的译者。 他们是两种世界之间的纽带。你认为维护这个纽带很容易吗? 人类世界的背景 The problem with people is that they’re only human. – Bill Watterson 人类的问题是,他们只是人而已。——比尔·沃特森 人类是生物进化的产物,并且拥有独特而宝贵的器官——大脑,它能为程序员提供想法。大脑有组合复杂的新大脑皮层(对人类而言是独特的),还有从哺乳 动物和爬行动物继承的旧结构。旧的大脑结构主要负责生殖(性)和生存(寻找食物或者躲避危险)。新大脑皮层进化成能够更好地支持这些功能,但是,它开始产 生奇怪的副作用——意识、思考和好奇心。幸亏这些副作用的影响,人类产生了文明并在数千年后发明了计算机。 一些人相信经过数千年的发展,人类应该变成完全沉闷的、理性的

程序猿“一键续命”秘笈

耗尽温柔 提交于 2020-03-07 11:07:44
“程序员小哥哥,可以麻烦您个事吗(满怀期待的眼神)?” 3分钟没有回复的话,那么程序员小哥哥一定是在编程; 1小时之后,还没有回复,那么程序员哥哥一定还在编程; 1天之后消息依然没有提醒,那么程序员哥哥一定还在写代码…… 假设生活欺骗了你, 就去问问程序员为什么编程 假设工作让你心情宕机, 就去问问程序员BUG改完了吗 程序员大概是被我们调侃最多的职业了,但其实程序员对工作的要求正如他们对生活品质的要求:枸杞红枣保温杯,捏脚捶背样样全,一周一次大保健,20岁还是壮小伙,25岁已成油腻男。抵不住写代码的辛苦。收入是越高,可是头发越少,想来他们一定是因为压力山大,才发际线渐渐消失的吧~ 来讲述一个在深圳的程序老鸟的故事。 大城市普遍的现象就是较高的物价,高消费、高房租,谈了个女朋友连商场都不敢去逛(穷),几个月不出门宅在家里找工作。现在工作难找啊,大公司看资历竞争也大,一不小心就给淘汰了,小公司工作压力大啊,对程序猿更是早秃的直升机。 好不容易进了一家各方面都满意的公司,想着我应该是稳定下来了,现在就是努力工作提高业绩,一步步的往上爬。一段时间后,对公司的任务也算是得心应手,公司也器重我不断的加大工作难度,可工资是迟迟不上涨,我决定跟老板理论,可他给我来了个“帽子戏法”,之后我便跳槽到另一家公司。 第一次跳槽就让我尝到了甜头——我的工资翻倍了,之后又因为种种原因我陷入不断跳槽的深渊中

做了好几年的程序员,才发现自己天天都在用设计模式!

若如初见. 提交于 2020-03-05 21:29:09
原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者。 系列文章介绍 本系列文章主要围绕程序员,特别是Java或者后端程序员必须掌握的一些技术和技能,这些文章都是结合我个人的编程学习经历,总结和沉淀下来的方法论。作者目前在阿里做Java,忙里偷闲分享一些技术文章,希望能让更多人更容易地学习编程。 系列文章将会把一些技术学习方法、过程、要领与我的学习经验相结合,更加浅显易懂,并且我也会把我学习时用的资料,书籍和文章拿出来分享给大家,节省你我的时间。所谓授人以鱼也要授人以渔,是本系列文章希望达到的目标。 一个热爱分享的程序员,一个爱生活的斜杠青年。分享程序员编程学习干货和个人成长心得,期待你的关注,让我们一起进步! 本文思维导图 什么是设计模式 学习编程的朋友,想必对于设计模式这个词并不陌生,至少你一定也听说过,如果你是做Java的,那么就更加需要了解设计模式了,为什么这么说呢,因为Java作为一门面向对象语言,很多代码都可以通过设计模式得到简化、规范,提升编码效率和可读性。 按照百度百科的说法,软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 也就是说,代码可复用性是设计模式的核心要义。

《梦断代码》读后感2

岁酱吖の 提交于 2020-03-04 07:51:25
今天我读了《梦断代码》第4章乐高王国,第5章管束奇客和狗,第6章搞掂设计方案。 在乐高王国这一章中,我看到了“牛仔程序员”,就如同软件工程老师所讲的,四种人,第一等人是有能力有责任,第二等人是有责任没能力,第三等人是有能力没责任,第四等人是无能力无责任。老师所说,一人英雄的时代已经结束,对于这种人就是一匹独狼,团队里的毒药。在《梦断代码》中提到,软件界中关于“牛仔程序员”的说法由来已久。所谓牛仔程序员,就是那些不守规矩、偏好独干、喜欢挑战的程序员。对于许多经理来说,牛仔程序员简直就是噩梦;而在许多程序员眼中看来,他们是英雄。这在我们团队开发时,也是如此。无论是哪个同学,都希望找一个什么都会干,什么都肯干的同学一组。然而,这并不可能,不是每个同学都能写好代码,会写代码。一个团队,如果只是一个人在干活,这个团队迟早会解散。 在搞掂设计方案这一章中,我看到了书中提到的边缘案例,这就如同我们目前所做的结对开发中的数组中的子数组最大值超过了int32的表示范围时,我们该怎么办。程序员们经过训练要巨细靡遗通盘考虑,他们太执着于警惕会出问题的情形,结果难免会迟钝不灵。他们在边缘案例上绞尽脑汁,以至于偏离了中心店。而我也感同身受,我们目前的学习,和做软件还是有很大区别的。我们先考虑的都是怎么实现老师要求的这些功能,并没有把用户想像成一些根本不懂程序的人来看待,我们所做的程序,唯一用户就是任课老师。