发布于 2016-05-20 09:55:01 | 128 次阅读 | 评论: 0 | 来源: 网友投递
程序员 软件开发人员
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、中级程序员、高级程序员、系统分析员,系统架构师,测试工程师六大类
1. 此处有没有模式?
研究在哪些情况下行得通,哪些情况下行不通的设计模式,能够让我们发现潜在的规则,了解看似不相关的概念和行为。为了更深层次地了解工作,你需要时不时地问问自己,“此处有没有设计模式?”。
这句话适用的不只是你的代码。在根据业务要求而变的类型变化中有没有模式?技术发展有没有模式?你是否经常看到同样类型的 bug 连连弹出?
理解其实就是一种感知模式。——以赛亚·伯林
2. 如何让它变得简单起来?
通常作为 web 开发人员,我们会想着拿出复杂又可扩展的解决方案。搞点复杂的会让你觉得自己非常的高大上。问题是,你永远无法预知你的产品和业务在未来将会发生怎样的改变。
架构和编码与其说像建造,还不如说更像园艺艺术。你必须得能够适应不断变化的环境。解决方案越复杂,它的适应力就越弱。
简单才是终极的复杂。——达芬奇
3. 它为什么这么工作?
知道事物能工作,与知道它为什么这么工作是两个完全不同的事情。知道一些事物的行为原因,有助于你做出显然更好的决策。
伟大的程序员,和那些只是知道一门编程语言的人之间的区别是,两者处于的知识层深度不同,前者深刻地理解其工作原理。
这也适用于修复问题的时候。“只要重新启动服务即可。”“你重启了吗?”当弹出问题的时候,我们往往会说类似于这样的话。然而,如果你这样说了,那你就失去了一次学习的黄金机会。
知道为什么会出现问题,才能从根本上修复问题,才能避免再出现这样的问题。
4. 之前有人做过吗?
当你自我感觉发明了一种复杂算法的时候,可能就意味着你正在错误的道路上了。最好的方法是搜索其他人是否已经解决了这个问题。
需要写算法,以便于添加标签到最接近用户鼠标的菜单项中?别急,已经有解救方法了。想为送货车找一条最短路径?也已经有解决方法了。
想找类似于用户刚刚 enter 的标签,那么也不用自己绞尽脑汁写了。
上面这些只是几个例子,但是相信我,你碰到的问题,别人早就碰到过了。
我能看得更远,那是因为站在巨人的肩膀上。——牛顿
5. 谁第一个提出来的?
你觉得自己知道 REST?
那么,你读过 Roy Fielding 说明 REST 的原始文件吗,你了解它的期望目的吗?暂且不说那个在 IDE V7 中使用 REST API 生成向导比你更有经验的博主了。
所以,告诉自己试着去阅读概念和理论的原始来源。然后通过各种方法去了解行业思想领袖给出的最新开发成果。如果你不知道是从哪里开始的,那么你怎么理解目前的发展进程呢?
6. 我真的热爱我目前的工作吗?
首先让我们面对一个事实:编程很难。
即使很难,编程也在不断发展。如果用现在的标准来看,2 年前的框架简直笨拙地就像一头恐龙。要想留在这一行,那么你需要终生致力于学习和研究。
如果你确实不喜欢编程,那么要想跟上那些热爱的人的步伐,希望并不大。找找你为什么对她没有兴致的原因。不要因为与市场存在差距或因为待遇还不错,就决定成为一名安全专家,不要只是因为最近的文章上面评论说,UX 是高科技领域中最热门的职位,就立志成为一个 UX 专家。
重要的事情说三遍:做自己热爱的事情。做自己热爱的事情。做自己热爱的事情。
做自己热爱的事情,你所需要的资源也会随之而来。——彼得·麦克威廉斯