威尼斯手机平台-电子正规官网登录首页

热门关键词: 威尼斯手机平台,威尼斯登录首页,威尼斯正规官网
那也是各类新手工业程师应该驾驭的事情,大概以后亟待做些调解了
分类:新闻公告

图片 1

【电工电气网】讯  在过去的十年时间里,软件开发行业已经发生了非常大的变化。过去,程序员需要在大学或工作中花费好几年时间才能学习掌握一些编程知识,熟悉了解一些昂贵的服务器性能,而现在,只需几周时间就能搞定一项网页开发编程语言了。基于人工智能生成的代码,为整个行业带来了颠覆创新,也让我们处在了下一代范式快速转型中,身处在这个拐点上,我们不得不说,未来网页开发很可能会不复存在,以后甚至都不需要任何编程劳动力了。  “计算机想要在围棋上击败人类,可能还要等100年!”——《纽约时报》,1997年  “围棋大师被谷歌计算机程序击败!”——《纽约时报》,2016年  下面,就让我们来看看当机器人取代程序员写代码,会带来哪些范式转型吧。  转型一:WordPress  WordPress是在 2003 年 5 月 27 日发布的,在它丰富的插件和网站主题内容支持下,很多没有技术背景的创业者无需编写代码,就能推出自己的网站,WordPress 平台也因此很快便在全世界风靡起来。虽然这个平台存在一定的局限性,但是它依然占据了全部互联网网页开发 26.5% 的市场份额,那么剩下的 73.5% 的市场份额会是什么样呢?让我们再进入转型二来做进一步了解。  转型二:开源代码、Node 和框架  Node 一开始曾被广泛认为是一种玩具编程语言,但是它已经快速接管了网页开发,并且培育出了一个异常庞大的开源社区。对于那些还不太熟悉Node 的人,先简单介绍一下:Node.js是一个基于 Chrome Javascript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。Node 最厉害的地方,就是让那些只开发客户端代码(前端网页开发)的程序员,可以无需切换编程语言就能编写后端代码。  不仅如此,Node 已经构建了一个令人难以置信的庞大社区,很多人都在为开源做贡献。现在,Node 基础设施和开源软件包都已经非常强大了,允许开发人员不仅仅去解决他们自己的问题,而且能够构建出一套为整个社区解决问题的方法。如今,使用 Node 开发软件产品就像是拼乐高积木,你只需花些时间把每块“积木”连接起来就可以了。  转型三:只需要一个应用程序接口,就能搞定 SaaS、BaaS、以及其他框架  你新开发的照片 App 需要面部识别功能吗?如果你想要解读人们在照片中的表情,又该怎么办?所有这些问题都可以靠一个应用程序接口搞定,事实上,如今你能想到的一切东西,都有一个应用程序接口(出于所有集中性非技术目的,应用程序接口就像是另一种乐高积木)。  那么,这具体意味着什么呢?现在,任何一款软件都能够通过开源工具、或是带有某些特定应用功能的应用程序接口开发出来。如果你给某位网页开发人员两周时间,告诉他们克隆市场上某款主流的消费者产品,他们至少可以使用相关工具,快速制作出一款基本版出来。  当然啦,开发一款应用程序和创立一家公司是两回事儿,但有一件事不可否认的是,现在独立程序员的生产力已经变得十分惊人了!当然,我们并不是说过去的程序员不行,毕竟现在的程序员也是站在巨人的肩膀上,才能做出一些成绩。  我们现在处在哪个阶段?  你需要一个网站?根本无需编写代码;你又需要一款高度定制的网页应用,来为用户提供一些专属功能或服务?Node 程序包提供的“玩具编程语言”就能轻松搞定。你还需要一款移动 App?写一个 Javascript,然后就能从代码库里获得一款安卓和 iOS 原生移动应用。需要在你的应用里加入先进的机器学习技术?有应用程序接口来帮你搞定。你的公司找不到程序员?给 bootcamp 打个电话,他们有足够的编程达人。这一切是不是听上去都很不错?但实际上,我们能做的也只有这些了。如今程序员所接受的培训内容,其实都是最终能被机器人所取代的,一些强大的自动化工具完全可以智能生成代码。  未来,利用开源软件包、强大的开发工具和混合框架,企业只需招聘一些毕业生,短短 4个月时间就能学会如何编程,这在今天是难以想象的,只要有了商业想法,任何人都能轻松打造出一款高性能、可扩展且可维护的应用程序。  目前,已经有公司(比如 codefree.co)开始提供相关服务,允许没有编程背景的人无需写任何代码就能开发出一款个性化的网页应用;还有公司利用机器学习技术帮助企业开发、设计东西。尽管现阶段依然存在一些定制化问题,但相信随着时间的推移,各种问题都会逐步解决。  我们要到什么时候,才能看到人人都会开发程序?  显然,我们并不是说要让每个人都能轻松开发程序,如果说有 1000 个程序员使用开源程序包(乐高模块),总是要有一个人去开发源程序。我们需要教授人们如何构建乐高模块,需要更多工程师,而不是那些“打补丁”的人。所以从这个角度来看,如果你只想招聘一些毕业生,花 4 个月时间是根本无法做到的,别说 4 个月,可能 4 年时间都难以实现。  因此,我们需要鼓励更多程序员提升自己的技能水平,深入学习人工智能、虚拟现实、增强现实、计算机视觉、以及机器学习等技术。这些都是未来程序员所必备的技能,但是今天已经起步了,凡是不关注这些技术的人或企业,几年后可能会就要花更多成本去学习。  网页饱和了,移动也饱和了,你能想到的商业想法,市场上早就已经有三、四款同类产品了。所以,现在摆在我们面前的,是要去尝试解决更难的问题,掌握更强大的技能。  现在我们该怎么做?  教育是唯一的“出路”,相对于快速的市场发展速度,传统教育机构其实已经非常滞后了。如果你是一个企业老板,可能现在得想想如何去培训你手下的技术人员,在这方面,谷歌已经开始这么做了。假设你是一个网页开发人员,如果还是把重心放在 Javascript、Ruby on Rails、或是 PHP 这些编程语言上,可能现在需要做些调整了。尝试学习机器学习或计算机视觉技术,虽然可能目前不会立即给你带来丰厚的收益,但至少能确保未来你不会被淘汰。

作为一个经验丰富的程序员,有哪些事情是你希望在一开始编程的时候就知道的?或者换个方式来说,你认为每个新手程序员应该做或者学什么才能让自己的编程水平更好?

为开源项目作贡献最好的方式是为它减少代码,我们应致力于写出让新手程序员无需注释就容易理解的代码,让维护者也无需花费太多精力就能着手维护。

有经验的程序员会做到下面 29 项事情,这也是每个新手程序员应该知道的事情。

在学生时代,我们会更多地用复杂巧妙的技术去挑战新的难题。首先我们会学习循环,然后是函数啊,类啊,等等。当我们到达一定高的程度,能用更高级的技术写更长的程序,我们会因此受到称赞。此刻我们发现老司机们用 monads 而新手们用 loop 作循环。

如果你想成为更好的开发者,你应该尤其注意第 15 点和第 29 点

之后我们毕业找了工作,或者和他人合作开源项目。我们用在学校里学到的各种炫技寻求并骄傲地给出解决方案的代码实现。

1.积极大胆地谷歌。你得知道如何有效地组织搜索关键字,查阅别人写的代码,然后合理地用在代码里,从而解决问题。

哈哈,我能扩展这个项目,并实现某牛 X 功能啦,我这里能用继承啦,我太聪明啦!

2.拥抱变化,坚持不懈。老手程序员在接触新技术时,能欣然接受像个初学者一样处处受挫,并总能在完成工作的同时自学成才。

我们实现了某个小的功能,并以充分的理由觉得自己做到了。现实项目中的编程却不是针对某某部分的功能而言。以我个人的经验而言,以前我很开心的去写代码,并骄傲地向世界展示我所知道的事情。有例为证,作为对某种编程技术的偏爱,这是用另一种元编程语言构建的一个线性代数语言,注意,这么多年以来一直没人愿意碰它。

3.承认细节的重要性。例如变量和函数的命名、CSS 属性的命名、该用哈希还是用数组,以及其他看起来微不足道,但可能对项目有深远影响的事情。

在维护了更多的代码后,我的观点发生了变化。

4.承认大多数的“重要决定”其实并没有那么重要。一般的开发者经常在技术选型等“重大问题”上陷入唇枪舌战,而程序员老鸟们会避免浪费时间在骂战中。这一点上,他们就像禅宗大师一样(zen-like)。

1. 我们不应去刻意探求如何构建软件。软件是我们为解决问题所付出的代价,那才是我们真实的目的。我们应努力为了解决问题而构建较小的软件。

5.选择合适的工具解决问题。网上有无数的开源库、工具和框架,让人眼花缭乱。而老手们清楚地知道针对怎样的问题,应该用什么样的工具。

2. 我们应使用尽可能简单的技术,那么更多的人就越可能会使用,并且无需理解我们所知的高级技术就能扩展软件的功能。当然,在我们不知道如何使用简单技术去实现时,我们也可以使用高级技术。

6.明白代码「不值钱」(该删就删)。你必须习惯于删掉几百行代码来重写程序的某一部分,毫不留情。

所有的这些例子都不是听来的故事。我遇到的大部分人会认同某些部分,但不知为什么,当我们向一个新项目贡献代码时又会忘掉这个初衷。直觉里用复杂技术去构建的念头往往会占据上风。

7.在评估技术的时候要全面。例如,我一直在鼓吹Elixir。它语法优美,社区完善,有很大的潜力。但Elixir诞生的时间太短,所以如果要构建复杂的功能,可能会难以找到能帮你提高效率的开源工具。因此,在评估要不要选择使用一项技术时,你得把所有这些因素都考虑在内。

软件是种投入

8.学会说“我不知道”。没有比拒绝承认自己不知道更能浪费一个开发者的时间了。

你写的每行代码都要花费人力。写代码当然是需要时间的,也许你会认为只是你个人在奉献,然而这些代码在被审阅的时候也需要花时间理解,对于未来维护和开发人员来说,他们在维护和修改代码时同样要花费时间。否则他们完全可以用这时间出去晒晒太阳,或者陪伴家人。

9.仔细分析错误信息里的线索。传统教育告诉我们:失败是坏事。报错信息这种东西也经常被跟失败联系起来,然而优秀程序员明白,这些错误消息里其实隐藏着能将你指向最终正确解决方案的线索。

所以,当你向某个项目贡献代码时,请心怀谦恭。就像是,你正和你的家人进餐时,餐桌上却没有足够的食物,你只索取你所需的部分,别人对你的自我约束将肃然起敬。以更少的代码去解决问题是很难的,你肩负重任的同时自然减轻了别人的重负。

10.了解过早优化和必要的“炫技式”优化的区别。老手们清楚在什么时候需要写一些看上去没那么好懂,但会让程序运行更快的代码。

技术越复杂越难维护

11. 每个人都会犯错,为自己的过失负责。而尤其在团队里,把责任推来推去没有任何意义,因为错误的发生往往不只是一方的因素造成的。

作为学生,逐渐使用高端技术证明了自己的价值。这体现在,首先我们有能力在开源项目中使用函数,接着是类,然后是高阶函数,monads 等等。我们向同行显示自己的解决方案时,常因自己所用技术高低而感到自豪或卑微。

12. 成为你所用的开发工具的重度用户。如果长期在某个开发环境下有相当比例的开发工作,那你应该去掌握使用它的细节。

而在现实中,和团队去解决问题时,情况发生了逆转。现在,我们致力于尽可能使用简单的代码去解决问题。简单方式解决问题使新手程序员能够以此扩展并解决其他问题。简单的代码让别人容易上手,效果立竿见影。我们藉以只用简单的技术去解决难题,从而展示自己的价值。

13. 学会用Vim(至少会一点)。 你至少应该在这个编辑器里学会勉强地移动和翻页。

看,我用循环替代了递归函数并且一样达到了我们的需求。当然我明白这是不够聪明的做法,不过我注意到新手同事在这里会遇上麻烦,我觉得这种改变将有所帮助吧。

14. 不要接陌生技术领域的私活。个人做自由职业项目,其中很大一部分挑战就是评估项目时间。不要规划自己未知领域的事情,那会让你处于想当尴尬的境地。

如果你是个好的程序员,你不需要证明你知道很多炫技。相应的,你可以通过用一个简单的方法解决一个问题来显示你的价值,并激发你的团队在未来的时间里去完善它。

15. 不要数你干活花了几个小时。技术大牛会把时间花在有深度的工作上,并且他们清楚花了多少时间完全不重要。

当然,也请保持节制

16. 学会坦然接受批评。当你的代码因为各种原因四分五裂时,你需要培养用理性和逻辑的方式来应对(而不是情绪化处理)。

话虽如此,过于遵循 “用简单的工具去构建” 的教条也会降低生产力。通常用递归会比用循环解决问题更简单,用类或 monad 才是正确的途径。还有两种情况另当别论,一是只是只为满足自我而创建的系统,或者是别人毫无构建经验的系统。

17. 同有更多经验的人结对编程。没有比这个更高效的编程学习方式了。

本文来自:Linux 中国 LCTT 译者:plutoid

编译自: 作者:Matthew Rocklin

18. 一定要先自己做一遍代码审查。当你在GitHub上发起一个pull request之前,先把代码当成别人写的,自己先审查一遍。

(文/开源中国)    

19. 认识到做自由职业的难点不是写代码,而是其余的所有事情。销售、推广、客户支持,质量保证以及产品管理,所有这些都会花费大量时间。

20. 发现并解决更大的问题。优秀的程序员不拘泥于眼前的问题,而是清楚如何用更长远的方式彻底的解决这一类问题。

21. 深入了解一些大型开源项目的核心能让你开发时如虎添翼。如果你知道如何给你的项目打猴子补丁(Monkey Patch), 那么你将无所不能。

22. 跳过多数的会议。你的公司雇你是来写代码的,而不是谈代码的。当会议多到失控的时候,不去参加也没有任何问题。而且一旦你开始这样做,别人会更珍惜你的时间。

23.知道什么时候开始回馈。到了某个时候你需要将你的技能和经验传授给年轻的开发人员,就像你的导师当时教授你一样。

24. 能写烂代码。有时候可以当一当“胶带式程序员”。关键是随着时间推移,你需要弄清楚什么时候可以走捷径,什么时候必须走捷径。这其实是最难掌握的技能之一。

25. 礼貌地告诉别人你工作到很晚。如果你是办公室里最后一个,可以发一封简短的汇报邮件。别人一般会注意到邮件上的时间戳的。

26. 像一个领导者(Leader)一样做事,而不是老板(Boss)。老板是让别人为他工作的人,领导者是人们追随的人。做个领导者。

27. 去打打桌上足球。从长期来看,同其他开发者(或不同岗位上的同事)建立联系会比在紧巴巴的期限里交付一个功能更有价值。

28. 在压力下学习。你需要知道如何应对像系统宕机而你要负责将它复原的情况,即使一开始你完全没有头绪。

29. “Move fast and break things” 别让完美主义阻止你做事。错误往往是最好的学习机会。所以别把犯错当作失败,而应该把它们当作值得学习的经历,并意识到:正是不断克服和突破这些错误,作为一个程序员,你才能不断成长起来。

像生活中的很多事情一样,编程也是你做的越多,了解的就越多。所以如果你是一个新手程序员,还是直接去编码吧。记得将这些最佳实践应用在日常工作中,来不断提升你的编程技艺。

本文由威尼斯手机平台发布于新闻公告,转载请注明出处:那也是各类新手工业程师应该驾驭的事情,大概以后亟待做些调解了

上一篇:没有了 下一篇:威尼斯正规官网你无法在不破坏成千上万个现有测试的情况下更改产品中的单行代码
猜你喜欢
热门排行
精彩图文