0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

每位开发工程师应该反思的10个问题

工程师人生 来源:网络整理 作者:工程师吴畏 2018-08-15 14:01 次阅读

你想成为一个开发者/程序员么?

那是时候放下《24小时学会超级骗子语言》之类的书了。相反地,每天问自己一下10个问题,并养成一个习惯吧。

是否有某种模式?

探寻可行与不可行中的模式,能发现(事物)背后的原理,这些原理则驱动着看似无关的概念和行为。要想对你做的工作有更深的理解,养成问自己“是否有种模式存在?”的习惯吧。

这不仅仅适用于你的代码。在各类商业需求的变化中有某种模式吗?技术进步的方式中有某种模式吗?你看到同样的错误反复地蹦出来吗?

理解就是领悟模式。 —— 以赛亚·伯林

我该如何使它变得更简约?

通常作为web开发者,我们想提出复杂且可扩展的解决方案。做一些极其复杂的东西,会让你觉得自己就是宇宙的主宰。而问题是你永远不能预测到产品和业务今后会怎样变化。

“架构”和编写代码更像是园艺而不是建筑。你需要有能力去适应不断变化的环境,解决方案越复杂,越难以适应。

简约是复杂的最终形式。 ——列昂纳多·达·芬奇

为什么它是那样工作的?

知道事情运作和知道它运作的原因,这是两件完全不同的事。如果你知道事情为什么是那样(运作),那么你就能够做出更好的决策。

一个优秀的程序员和懂一点编程语言的人,差别在于理解缘由的深度。

同样的原则也适用于修复某个问题。“只需重启一下服务。” “你试过重启吗?” 当问题发生时,我们经常会想到这些话。每次你这样说时,你就失去了一个绝好的学习机会。

理解问题的原因,能让你解决根本原因,并且永久消除这类错误。最起码,你将不再犯同样的错误。

之前有人做过吗?

无论何时,如果你发现自己正在发明一个复杂的算法,你很可能就是方法不对。除非你正忙于研究博士论文,一般已经有人解决了这个问题。

需要编写一个给离用户鼠标最近的item添加标签的算法?看看Voronoi Tesselations(泰森多边形法,多边形密度)。想要找到卡车送货的最短路径?看看Dijkstra算法吧。想要找到用户输入内容的近似标记?试试计算它的 Levenschtein 距离吧。

这些只是几个简单示例,但相信我,还有很多很多。

如果我看得更远,那是因为我站在巨人的肩上 ——艾萨克·牛顿

谁最先提到它?

你以为你知道REST吗?

你有读过Roy Fielding描述REST的论文原文吗?你真的明白它的用意吗?那种比你多 5 分钟经验的家伙,在IDE v7工具中用 REST API 生成向导写出来的博客,可不算数的。

帮自己一个忙,尽可能试着去读某种概念或理论的原始文档吧,然后通过各种手段去了解行业领袖的最新发展动态。如果你不知道他们是从哪开始的,你怎么跟得上他们的步伐呢?

我热爱现在所做的吗?

编程不简单,咱们承认吧。

除了难以外,编程还总在不断发展。最先进的框架从2年前的“笨重恐龙”已经发展到今天的标准。想要一直站在你的“游戏”顶端,你需要树立终生学习和研究的观念。

如果你不热爱你所做的,那么你就没有跟上其他家伙的希望。所以找到那种让你激情燃烧的编程类型吧!不要因为市场缺口或者收入不菲而决定成为一名安全专家,不要因为一篇文章说用户体验是最热门的科技工作而决定成为一名用户体验专家。

再说一次,做你热爱的。

做你热爱的,所需的资源将随之而来。—— 彼得·麦克威廉斯

我还可以在哪些其他的地方用到这个?

我看到Web开发者给他们自己设定的最大的一个限制就是,想象力的失败。

如果我们学习一个特定环境下的东西,或者看到解决某个特定问题的技术时,我们认为这就它唯一适用的地方。这种观点大多时候都是错的。每次学到新东西时,反问自己:“我还可以在哪些其他的地方用到这个?”

发现了在图表上定位节点的新的好方法?将同样的技术应用于发现二维数据集中有趣的数据点?找到了通过websockets从客户端发送数据到服务器端的新方法?它怎样才能应用到可扩展的后台服务上呢?有时你会是错误的,但有时你将是正确的。

这给我们带来了下一个问题……

逻辑可以带你从A到Z,但想像力可以让你无处不在。 ——阿尔伯特·爱因斯坦

今天我做错了什么吗?

提高创新的最简单方法之一就是降低失误的成本。

游戏开发公司Valve和其他几个公司很赞同这个观点。这些也同样适用于你成为Web开发者的成长过程。如果你害怕失败,你就不会有大的突破。

勇敢点、去尝试、失败了、去学习,然后再来试试。

不要害怕错误,你将认识失败,然后重新再来。——本杰明·富兰克林

我们怎样使它成为可能?

现实中,一切皆有可能,而凡事均有例外。

先开始假设不管你做什么事情都是可行的,然后回推过去来工作。你可能会发现,你想做的暂时是不切实际的,但以当今世界的变化速度,它变得可行的时间,可能比你想的要早。

在事情未成功之前,一切总看似不可能。?——纳尔逊·曼德拉

我可以向谁学习?

永远不要在你是最聪明的地方工作。

挑选拥有可以启发你、激励你做得更好的同事的工作和公司。没必要和编程有关系,在文本编辑器和命令行之外还有一个世界。从其他领域学习,并应用到你的工作中。

不管怎么样,保持竞争力更好!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开发工程师
    +关注

    关注

    1

    文章

    91

    浏览量

    14934
收藏 人收藏

    评论

    相关推荐

    嵌入式工程师常用的开发工具有哪些?

    工具。 一、集成开发环境(IDE) IDE是嵌入式开发的核心工具之一。例如 Keil MDK,它支持多种微控制器架构,提供了强大的代码编辑、编译、调试功能。工程师可以在一集成的
    发表于 12-20 15:29

    工程师应该掌握的几种正确电容放电姿势

    又有工程师被电伤了! 看来这是搞电子工程师,尤其是平时好奇心太强搞拆解的或搞开关电源工程师的家常便饭吧! 拿一AC-DC开关电源板来举例 在开关电源220V输入前端,都会有一很大的滤
    的头像 发表于 12-04 09:36 555次阅读
    <b class='flag-5'>工程师</b><b class='flag-5'>应该</b>掌握的几种正确电容放电姿势

    FPGA算法工程师、逻辑工程师、原型验证工程师有什么区别?

    ,共同进步。 欢迎加入FPGA技术微信交流群14群! 交流问题(一) Q:FPGA中的FPGA算法工程师、FPGA逻辑工程师、FPGA原型验证工程师三者有什么区别? A:FPGA 算法工程师
    发表于 09-23 18:26

    求LORA技术开发工程师合作

    求LORA技术开发工程师合作
    发表于 09-02 10:21

    正是拼的年纪|65岁电子工程师上班VLOG #65岁退休 #电子工程师 #搞笑 #上班vlog

    电子工程师
    安泰小课堂
    发布于 :2024年07月25日 11:31:02

    找STM32硬件开发兼职工程师

    上海做传感器的公司,找STM32硬件开发兼职工程师,会硬件开发,嵌入式软件开发,可项目外包。有意联系:15900460170
    发表于 06-22 19:12

    嵌入式软件工程师和硬件工程师的区别?

    嵌入式软件工程师和硬件工程师的区别? 嵌入式软件工程师 嵌入式软件工程师是软件开发领域中的一种专业工程师
    发表于 05-16 11:00

    大厂电子工程师常见面试题#电子工程师 #硬件工程师 #电路知识 #面试题

    电子工程师电路
    安泰小课堂
    发布于 :2024年04月30日 17:33:15

    如何入门硬件工程师

    想跨行业做硬件设计工程师应该如何学习规划呢
    发表于 03-17 21:49

    如何搞崩一硬件工程师心态?试试对ta说这几句

    硬件工程师
    扬兴科技
    发布于 :2024年02月20日 18:05:49