专栏首页大数据文摘前方高能!这可能是一张会颠覆你编程学习的思维图!

前方高能!这可能是一张会颠覆你编程学习的思维图!

大数据文摘作品,转载具体要求见文末

编译团队|璐 张伯楠

最近几幅精彩的关于2017年网页开发者所采用技术的可视化图出现在了网络上。下图(偏向后端开发)就是其中之一。

这些对于新手和专家都是超赞的资源。图里面清晰地展示了如想从事前端网页开发员、后端网页开发员或者系统管理员工作,所需要了解的一切技术。

而我相信这些对于刚开始学习人生头几行代码的纯新手是尤其有用的。

下面就是我这么想的理由。

我编程已经超过15年(从8岁时使用QBASIC游戏开始)。我认为我是一个全栈工程师,作为一个全栈工程师,上面可视化图表中出现的每一项内容我都或多或少地有所了解。

现在好好看看这些图片。你觉得它看起来很吓人,对不对?但是成为一个开发者,这并不是一张你需要全都知道的图谱。完全不是!你真的觉得我——或者任何开发人员——真的知道怎么使用全部这些东西吗?

臣妾做不到!

当你刚刚开始接触电脑编程的时候,这些知识完全过多了。你可能听说过有学生能用10种语言编程,见过传说中的Linux专家,或者学习大量的计算机科学概念尝试跟上你的导师速度。就像其他成千上万的人一样,你很可能犯了一个非常可以理解的错误:你觉得你需要知道关于编程的一切。

但你并不需要这么做。而且没有人会期待你做到这点。

即便做过几年的开发人员之后,我只在那些图片中一小部分技术能够达到“精通”的水平。其中的一些我甚至不知道是什么!我曾经在不同的项目上用过它们中的大概一半,但是75%的这种使用情况在我的一生中都不超过1小时。

但是如果你让我坐下来学习一个小时,我很可能能够使用。这是因为我知道怎么像一个开发者一样去学习。

作为一个开发者,如果你尝试在每个新技术上都保持在最前列你会常常铩羽而归。他们实在是太多了,并且比以往变化的都快。最好的方法是,你可以选择一些技术随时留意最新变化。

所以,你应该学习怎么像一个开发者一样去学习,而不是把你的时间花在学习每一个语言和技术上。下面来解释一下:

学习怎么看介绍文档

这里(https://docs.python.org/3/tutorial/inputoutput.html#methods-of-file-objects)有一个Python文件输入和输出的例子。这里(https://golang.org/pkg/io/ioutil/)在golang上有一个类似的例子。

看见相似点了吗?当你尝试回答下列这些问题的时候,范例代码、简短的总结、以及类型接口(如果你幸运的话)将是你最好的伙伴。

  • “这些程序包能否完成我想做的事?”
  • “我怎么做到我想做的?”
  • “这里有没有更好的方法来达到我心中预设的目标?”

学习如何阅读源代码

本链接(https://github.com/python/cpython/blob/3.6/Lib/json/encoder.py)是JSON编码器在Python的应用。如果这个程序包的一些地方运行的与你预期不同,或者介绍文档缺失,读一读源代码会让你找到答案,尽管(常常)格式不是很亲切。

一些小技巧我发现很有用:

  • Github的代码检索工具。
  • 让你看到源代码的交互工具(比如Ruby的Pry)。
  • 拷贝开源项目并且加入调试语句来看它们如何运行。

学习怎么调试程序

调试器、中断语句、打印语句!学习怎么运用它们来修正你程序中的问题,因为这将是你花时间最多的地方。记住这些有用的东西:

  • 当你开始调试一个程序错误,尽可能多的考虑外部因素。要是代码完全没有问题,而是跑代码的服务器有问题怎么办?或者一些数据的格式错了呢?如果不能马上发现代码的问题,你可能考虑错了方向。
  • 休息一下。当你调试程序的时候,你很容易就只关注你觉得有问题的部分,完全忽视了真正存在错误的地方。让自己休息一会,别忘了你的大脑实际上只是一系列互相连接的线路,所以如果你在一条路径上走的太远,大脑很难跳到另外一条平行的线路上,而可能这条线路才是你实际上寻找的。所以站起来,想想别的事,清空你的大脑。当你回来的时候,程序漏洞将会直直的盯着你的脸。我保证。
  • 程序(绝大部分)总是正确的。它完全按照你的指令运行,这点有好处也有坏处。你需要找你(或者其他人)在哪里让它去做了错误的事情。

学习如何寻求帮助

这件事并不像听着那样掉价。有大量的非常棒的地方可以给你提供帮助,让你走出困境。我一般会依次看:

  • 谷歌
  • StackOverflow(http://stackoverflow.com/)网站(常常在谷歌看到)
  • 程序包的Github问题部分

当你请教别人的时候,最好能记住下面的内容:

  • 帮助的人对你的问题了解的并不充分(如果有些了解的话)。给他们必要的背景解释,但是不要说得过于繁杂。这代表你需要介绍你部分的代码,应用程序日志,程序配置,或者你案例中任何细微的调整。
  • 保持文档整洁。去读一篇充满拼写错误,无格式的代码,或者没有结尾的问题描述的错误报告,是很困难的。
  • 不要上传敏感代码。再三检查你的贴上去的密码,访问令牌和用户数据。如果确实犯了错误,你要承担责任并且马上解决它。

结语

作为一个开发人员,相关的知识技能太多不可能全部熟练掌握。甚至不要去费力尝试。学习如何把工作做到最好,建立适合你的工具列表,并且不要尝试找到所有的答案。专注于如何快速找到答案。

不论你是刚刚开始编程还是已经有丰富的经验,我希望这篇文章对你有所帮助。

记住:没有人期待你什么都知道。享受这个过程,并且不要停止学习。

如果你想聊聊编程,你可以在Twitter或者Codevolve.com上面找到我。

编程快乐!

原文链接:https://medium.freecodecamp.com/this-picture-will-change-the-way-you-learn-to-code-557ac1e109bd?source=linkShare-9549803b36be-1492658954

关于转载如需转载,请在开篇显著位置注明作者和出处(转自:大数据文摘 | bigdatadigest),并在文章结尾放置大数据文摘醒目二维码。无原创标识文章请按照转载要求编辑,可直接转载,转载后请将转载链接发送给我们;有原创标识文章,请发送【文章名称-待授权公众号名称及ID】给我们申请白名单授权。未经许可的转载以及改编者,我们将依法追究其法律责任。联系邮箱:zz@bigdatadigest.cn。

本文分享自微信公众号 - 大数据文摘(BigDataDigest),作者:大数据文摘

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-05-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 视频更新|斯坦福CS231n深度学习与计算机视觉课时17-迁移学习之物体定位与检测(下)

    大数据文摘
  • 视频更新|斯坦福CS231n深度学习与计算机视觉课时16-迁移学习之物体定位与检测(上)

    大数据文摘
  • 为了与科技巨头争夺人才,高盛也允许你穿得像程序员啦

    从此,这一老牌华尔街公司员工不用再每天西装革履示人。这封内部信没有详细规定相关着装要求,但是表示,“我们所有人都知道怎样的着装适合工作场所,哪些不适合工作场所。...

    大数据文摘
  • 【目标检测】开源|CentripetalNet在Anchors-Free目标检测SOTA,实例分割MaskAP为40.2%

    基于关键点的探测器取得了良好的性能。然而,错误关键点的匹配仍然很普遍,严重影响了探测器的性能。为了解决上述问题,论文提出的CentripetalNet,使用向心...

    CNNer
  • 四大机器学习开源框架:Theano、Caffe、Torch 和 SciKit-learn你最喜欢哪款?

    1.Theano Theano 在深度学习框架中是祖师级的存在。它的开发始于 2007,早期开发者包括传奇人物 Yoshua Bengio 和 Ian Good...

    BestSDK
  • 重磅!李航《统计学习方法》第二版上线,6 年耕耘增加无监督学习

    导语:统计学习即机器学习,是计算机及其应用领域的一门重要学科。此前,李航老师完成的《统计学习方法》是了解机器学习最好的教材之一,该书从 2005 年开始写作一直...

    磐创AI
  • H7-TOOL脱机烧录器功能开源发布

    H7-TOOL汇总帖:https://www.cnblogs.com/armfly/p/12283459.html

    armfly
  • 何为DevOps?如何成为一名DevOps工程师?

    提到DevOps这个词,我相信很多人一定不会陌生。但是如何成为一名DevOps工程师?

    小小科
  • layui修改 form表单的 长度

    Little JAVA
  • 【独家编译】美国智能电动车公司Scooterson获得175万美元天使轮融资 将推出共享电动车服务

    Scooterson创始人Deepansh Jain 【数据猿导读】 Scooterson推出的电动车代号为Rolley,售价为2490美元 记者 | 大文 官...

    数据猿

扫码关注云+社区

领取腾讯云代金券