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

简介:

最近几幅精彩的关于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问题部分


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


  • 帮助的人对你的问题了解的并不充分(如果有些了解的话)。给他们必要的背景解释,但是不要说得过于繁杂。这代表你需要介绍你部分的代码,应用程序日志,程序配置,或者你案例中任何细微的调整。


  • 保持文档整洁。去读一篇充满拼写错误,无格式的代码,或者没有结尾的问题描述的错误报告,是很困难的。


  • 不要上传敏感代码。再三检查你的贴上去的密码,访问令牌和用户数据。如果确实犯了错误,你要承担责任并且马上解决它。


结语


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


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


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



原文发布时间为:2017-5-5

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号

相关文章
|
6月前
|
机器学习/深度学习 算法 搜索推荐
代码之舞:探索编程艺术的深层美学
在数字世界的舞台上,编程不仅是技术的体现,更是艺术的一种展现。本文将深入探讨编程背后的艺术性,从算法的优雅到代码的简洁,揭示如何通过技术实现创造性思维的飞跃。我们将一起走进编程的世界,感受它在解决问题过程中所展现出的独特魅力和美学价值。
|
8月前
|
设计模式 算法 开发者
代码之美:探索编程艺术与实践的交汇点
【4月更文挑战第2天】 在数字世界的构建中,代码不仅仅是一种工具,它亦是艺术家手中的画笔。本文旨在探讨编程作为一种技术和艺术相结合的领域,揭示那些隐藏在代码背后的美学原则和创造力。我们将从编程的基础出发,逐步深入到设计模式、算法优雅性以及代码的可读性和维护性,最终探讨如何通过技术实现创新并解决问题。文章的目的是为那些渴望在技术实践中寻找创造性和美感的开发者提供灵感和指导。
|
8月前
|
程序员 开发者
代码与禅意:寻找编程中的内在和谐
【4月更文挑战第8天】 在数字世界的纷繁复杂中,编程不仅仅是一项技能,更是一种艺术。本文探讨了编程与禅宗哲学之间的深层联系,阐述了如何在技术的冰冷逻辑中寻找到心灵的温暖和内在的和谐。通过反思编程过程中的创造力、专注力和简洁性,我们能够揭示出技术实践与精神修养之间的桥梁。
|
机器学习/深度学习 数据采集 人工智能
强化学习打泡泡超人整体框架
强化学习打泡泡超人整体框架,泡泡超人是一款手机端炸弹超人游戏,本文设计了一款AI智能体操作手机触屏完成游戏的框架,涵盖了手机屏幕控制,智能体训练,电脑同步手机画面,电脑控制手机等功能点
89 0
|
定位技术 图形学
窥探他人眼中的世界:用眼睛反光重建3D场景,《黑镜》走进现实
窥探他人眼中的世界:用眼睛反光重建3D场景,《黑镜》走进现实
161 0
|
监控 算法 数据可视化
数字孪生只是表面功夫吗?深层次的价值是什么?
数字孪生炒得火热,但好像对企业发展还没有任何实质性的突破,是否只是表面功夫?
171 0
数字孪生只是表面功夫吗?深层次的价值是什么?