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

简介:

最近几幅精彩的关于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”微信公众号

相关文章
|
5月前
|
设计模式 算法 程序员
代码的诗意:技术与艺术的交织
【6月更文挑战第28天】在数字世界的构建中,编程往往被视为一项枯燥且逻辑性强的技术活动。然而,当我们深入探究时,会发现编程不仅涉及逻辑和算法,还蕴含着一种独特的艺术美。本文将探讨编程如何融合技术性和艺术性,揭示代码背后的诗意及其对创造性思维的促进作用。通过个人的技术感悟,我们将看到,编程不仅是科技的产物,也是人类创造力的展现。
38 1
|
机器学习/深度学习 数据采集 人工智能
强化学习打泡泡超人整体框架
强化学习打泡泡超人整体框架,泡泡超人是一款手机端炸弹超人游戏,本文设计了一款AI智能体操作手机触屏完成游戏的框架,涵盖了手机屏幕控制,智能体训练,电脑同步手机画面,电脑控制手机等功能点
80 0
|
机器学习/深度学习 人工智能 自然语言处理
扩散模型背后数学太难了,啃不动?谷歌用统一视角讲明白了
扩散模型背后数学太难了,啃不动?谷歌用统一视角讲明白了
240 0
|
监控 算法 数据可视化
数字孪生只是表面功夫吗?深层次的价值是什么?
数字孪生炒得火热,但好像对企业发展还没有任何实质性的突破,是否只是表面功夫?
161 0
数字孪生只是表面功夫吗?深层次的价值是什么?
|
小程序 搜索推荐 程序员
程序员的路是一行一行走出来的,分享给想要进入这个行业的人
  01、大学   回想十年前,我还是一名大学生,傻乎乎的对未来没有任何的规划。每天就知道混日子,打打游戏、谈谈恋爱。至于毕业后能不能找到一份工作,心里完全没个底。   有时间的时候读读《代码大全》、《人月神话》、《人件》、《代码的整洁之道》等等经典名著,这将对你的未来大有裨益。如果文笔还不错的话,还可以在各大论坛上写写博客,把读书的心得分享出来,记录自己的同时分享给更多的人。   如果时间还有一点剩余的话,在 GitHub 上开源一些项目吧!比如说,搞个抢票的软件、微信读书组队的小程序。假如这些项目星标超过 5K,那么找工作的时候不能说轻而易举吧,至少能亮瞎面试官的双眼。   坚持
136 0
|
架构师 Java 大数据
程序员如何跳出35岁魔咒,史上最全思维图收集解救你
时常有人在知乎、百度等平台抛出问题:程序员过了 35 岁或 40 岁是不是就失去了竞争力,要转管理岗了吗? 100offer 在2017年对其平台上的5844 位技术岗位求职者做了一个抽样调查,得出了如下统计结果: 10年以上的求职者,也就是“中年程序员”求职者的比例达到了10%,有了小幅攀升。
2096 0
《黑匣子思维》读后感
    最近花了大约两个星期的时间零零散散的阅读了一本叫作黑匣子思维的书,书的观点比较明确且归功于翻译者的水平,整本书看起来还算比较轻松的,按照正常的阅读速度我估计一个周末就可以阅读完了。
1396 0
下一篇
无影云桌面