程序员如何学习更好的知识

by Kevin Gardner

凯文·加德纳(Kevin Gardner)

如何保持学习并成为更好的程序员 (How to keep learning and become a better coder)

Coding has come a long way since the days of Robert Taylor and ARPANET and Sir Tim Berners-Lee and CERN — and it continues to advance. When it comes to mastering the art of coding, there is always room for improvement. The better you can code, the more options you’re likely to have in your career. It’s important that you don’t let yourself get complacent with where you’re at and that you constantly strive to learn more and keep pace with developments and your community.

自罗伯特·泰勒(Robert Taylor)和ARPANET,蒂姆·伯纳斯·李爵士(Tim Berners-Lee)和欧洲核子研究组织(CERN)时代以来,编码已经走了很长一段路,并且还在不断发展。 在掌握编码技术时,总会有改进的余地。 您编写的代码越好,您在职业中可能拥有的选择就越多。 重要的是,不要让自己对自己所处的位置感到自满,并且要不断努力地学习更多,并与发展和社区保持同步。

The following are five great tactics you should incorporate into your learning practices so that you can constantly become a more effective coder.

以下是您应该在学习实践中采用的五种重要策略,以便您可以不断成为更有效的编码人员。

计划如何克服局限和干扰 (Plan out how you’re going to overcome limitations and distractions)

Let’s start with the basics. One of the most important things you need to do to raise your coding abilities is to know what you need to work on. There is so much to learn when it comes to coding, but every coder usually has some task or language in particular that they struggle with. Knowing what you don’t know can sometimes be hard in coding if you’re not pushing yourself often and trying to do new things.

让我们从基础开始。 要提高编码能力,最重要的事情之一就是要知道需要做什么。 关于编码,有很多东西要学习,但是每个编码器通常都有一些特别的任务或语言,他们很难与之抗衡。 如果您不经常推动自己并尝试做新的事情,那么有时您很难知道不知道的内容。

If you’re just getting started, you might start with learning JavaScript. It’s the standard web platform language, is the most popular in terms of usage, and is commonly used for mobile app creation. You could try a boot camp to expand your skills set, but these can get expensive, so only commit if you’re truly invested and want someone to report to.

如果您刚刚入门,则可以从学习JavaScript开始。 它是标准的Web平台语言,在用法上最受欢迎,并且通常用于移动应用程序的创建。 您可以尝试新手训练营来扩展您的技能,但是这些技能可能会很昂贵,因此只有在您真正投入并希望有人向其报告时,才投入工作。

Something to consider also is where you’re coding. Georgia Institute of Technology released a study that found online developers take about ten to fifteen minutes to get back in the flow of work if interrupted. Plan for how to eliminate controllable distractions like social media, background noises, and so on. Make a good environment conducive to focus, in whatever ways work best for you.

编码的地方也要考虑。 佐治亚理工学院发布的一项研究发现,在线开发人员如果被打断,大约需要10到15分钟才能恢复工作流程。 规划如何消除可控制的干扰,例如社交媒体,背景噪音等。 以最适合您的方式,营造一个有利于专注的良好环境。

不要只停留一个迭代或一个例子 (Don’t stop with just one iteration or example)

You’ll never perfect your coding abilities if you write code until it works and just stop, or if you copy and paste without learning why something works. It’s a good idea to get into the habit of writing code three times to perfect your work and understanding before you call a project complete. You might also write your code by hand. This may sound counterintuitive — computer code via pencil and paper — and will more than likely take a bit more time, handwriting code sharpens your proficiency at any level.

如果您编写代码直到代码起作用并停下来,或者如果您在不了解某些原因的情况下进行复制和粘贴,则您将永远无法完善自己的编码能力。 在完成一个项目之前,养成三遍编写代码的习惯是一个好主意,以完善您的工作和理解。 您也可以手动编写代码。 这听起来像是违反直觉的(通过铅笔和纸来写计算机代码),并且可能要花费更多的时间,手写代码可以在任何程度上提高您的熟练程度。

Code can almost always be improved upon. Improve your coding by rewriting it to work faster, to be more reliable, or to make it easier to document. If you really want to be a master coder, you should get into the habit of throwing code out after it’s complete and starting over. This way, you know that your final product, after the third time writing code to fulfill the spec, will be as good as possible and your grasp of it firm.

几乎可以随时对代码进行改进。 通过重写代码来提高编码效率 ,使其工作更快 ,更可靠或更易于记录。 如果您真的想成为一名高级程序员,则应该养成在代码完成并重新开始后将其扔掉的习惯。 这样,您便知道,在第三次编写符合规范的代码之后,您的最终产品将尽可能地好,并且您将牢牢掌握它。

始终有一个项目在进行中,尤其是使用新代码时 (Always have a project in the works, especially with new code)

In addition to your routine work, you should have projects and challenges in the works at all times that push your bounds and allow you to grow as a coder. Try to always be doing something you have never done before in your programming experience so you’re consistently learning.

除了日常工作外,您还应始终在工作中遇到一些项目和挑战 ,这些挑战和挑战会不断发展,并让您成为一名编码员。 尝试做自己在编程经验中从未做过的事情,以便不断学习。

It’s easy to master a few sets of skills that allow you to fulfill your role, and then be tempted to stop there. But you should have side projects that will allow you to work on some area of coding that’s problematic for you and that you haven’t yet mastered.

掌握一些技能可以轻松地完成自己的角色,然后很容易就此止步。 但是,您应该有一些辅助项目,使您可以从事某些对您来说有问题且尚未掌握的编码领域。

Build side projects as you learn new material. Personal goals and projects are often the best starting points for experimenting with new subjects, languages, and techniques.

在学习新材料时,请建立辅助项目。 个人目标和项目通常是尝试新主题,语言和技术的最佳起点。

避免只学习一种语言 (Avoid only learning one language)

Each programming language has its own unique advantages and disadvantages. Don’t fall into the bad habit of thinking one language reigns supreme and all the others are more or less useless and unworthy of understanding.

每种编程语言都有其独特的优点和缺点。 不要以为一种语言占主导地位而养成其他语言或多或少毫无用处且不值得理解的习惯。

Learning another language gives you a new perspective and could help you to handle projects down the road with greater expertise. Some of the many new languages you could start working on that you might not yet be familiar with include C/C++, Ruby, Python, Django, Pascal, and NodeJS. Learning other coding languages, with different approaches and viewpoints, offer you a chance to think about problems from multiple angles. Expand your mind and creativity.

学习另一种语言可以为您提供新的视角,并可以帮助您以更高的专业知识来处理项目。 您可能尚未熟悉的许多新语言可能包括C / C ++,Ruby,Python,Django,Pascal和NodeJS。 通过不同的方法和观点学习其他编码语言,可以使您有机会从多个角度思考问题。 扩展您的思维和创造力。

A helpful resource for coders with this learning process is a coding coach. This is a robust training program with detailed procedures that will help you learn languages along the way.

对于编码人员来说,通过这种学习过程,一个有用的资源是编码教练 。 这是一个功能强大的培训计划,其中包含详细的过程,将帮助您一路学习语言。

尽可能咨询其他更有经验的编码员 (Consult other more experienced coders whenever possible)

You can learn so much by taking part in projects with fellow coders — for example, among IT staffing at your organization — who are more skilled and experienced than you. This way, you can ask those with more experience for assistance and explanations when you encounter some task or issue that you’re unfamiliar with. Another useful approach is to consult online resources and solutions; simply Google questions and learn from people on Reddit, YouTube, blogs, or Codecademy, among many others.

您可以通过与其他编码员一起参加项目来学到很多东西,例如与您的组织的IT人员相比,这些编码员比您更熟练和经验丰富。 这样,当您遇到一些您不熟悉的任务或问题时,您可以向经验丰富的人寻求帮助和解释。 另一种有用的方法是咨询在线资源和解决方案。 只是Google提出问题并向Reddit,YouTube,博客或Codecademy等人学习。

When you work with other skilled coders — in-person and online — make sure you read their code. Reading code produced by better coders is a great way to expand your horizons and see how others with more skill tackle tasks that you would have handled differently.

当您与其他熟练的编码人员(面对面和在线)合作时,请确保您阅读其编码。 阅读由更好的程序员编写的代码是扩大您的视野并了解其他人的能力如何的又好又好方法,这些人本应以不同的方式处理任务。

Network and partner with those whose skills you admire and wish to acquire. When you work on projects with better coders, you get to learn new things while being paid. And as you work to elevate your skills, explore the breadth and wealth of online resources out there, ready to be consulted.

与您欣赏并希望获得技能的人建立联系并与之合作。 当您使用更好的编码器进行项目开发时,您会在获得报酬的同时学习新知识。 在您提高技能的同时,探索其中丰富的在线资源,随时可以进行咨询。

翻译自: https://www.freecodecamp.org/news/five-great-tactics-for-becoming-a-better-coder-5c6da86ab0d0/

程序员如何学习更好的知识

程序员如何学习更好的知识_如何保持学习并成为更好的程序员相关推荐

  1. JNI学习开始篇 基础知识 数据映射及学习资料收集

    JNI学习开始篇 基础知识 数据映射及学习资料收集 JNI介绍 JNI(Java Native Interface) ,Java本地接口. 用Java去调用其他语言编写的程序,比如C或C++. JNI ...

  2. 学习计算机基础知识论文,中小学生应注重学习计算机的基础知识_信息技术论文.doc...

    中小学生应注重学习计算机的基础知识_信息技术论文_范文先生网 "知识爆炸"和"知识老化"这两大问题,不断困扰着现代教育,人们解决这一问题的良方之一,就是加强学生 ...

  3. 深度学习将灰度图着色_通过深度学习为视频着色

    深度学习将灰度图着色 零本地设置/ DeOldify / Colab笔记本 (Zero Local Setup / DeOldify / Colab Notebook) "Haal Kais ...

  4. 基于几何学习图像的三维重建发展_基于深度学习的三维重建算法:MVSNet、RMVSNet、PointMVSNet、Cascade系列...

    欢迎关注微信公众号"3D视觉学习笔记",分享博士期间3D视觉学习收获 MVSNet:香港科技大学的权龙教授团队的MVSNet(2018年ECCV)开启了用深度做多视图三维重建的先河 ...

  5. java第一阶段知识_坚持:学习Java后台的第一阶段,我学习了那些知识

    最近的计划是业余时间学习Java后台方面的知识,发现学习的过程中,要学的东西真多啊,让我一下子感觉很遥远.但是还好我制定了计划,自己选择的路,跪着也要走完!关于计划是<终于,我还是下决心学Jav ...

  6. python爬虫基本知识_爬虫 (十三) 学习 python 基础知识点的正确姿势 (六)

    我会以比较学习的方式,主要拿Python和我之前学习的javascript进行比较,拿学习javascript的学习经历来迁移到学习Python,如果你在此之前有一门编程思维,那么你可以这么做,如果没 ...

  7. python程序写完后点哪个运行快_让你的Python运行更快

    讨厌Python的人总是说,他们不想使用它的原因之一是它很 慢.嗯,特定程序(无论使用何种编程语言)是快还是慢,在很大程度上取决于编写该程序的开发人员以及编写优化而 快速的 程序的技能和能力 . 因此 ...

  8. 深度学习基础知识_数学基础(学习笔记)

    线性代数 向量.矩阵.矩阵计算,矩阵的秩,范数 了解更多可以参考: 哔哩哔哩: 晓之车高山老师 https://space.bilibili.com/138962930/channel/collect ...

  9. python自动化测试需要知识_自动化测试需要学习那些知识

    一.概念: 设计程序自动执行测试用例,从而减少人工消耗在功能测试上的大量时间,提高测试效率的一种测试方法.从自动化测试的概念便可以看出学习自动化测试的重点:设计程序,也就是编写代码. 二.前提准备:掌 ...

最新文章

  1. 双边滤波器的原理及实现
  2. 数据仓库—stg层_数据仓库之Hive快速入门 - 离线实时数仓架构
  3. logic demonstration process in the English debate system
  4. tf.summary.FileWriter
  5. 使用Pix For Windows调试Shader傻瓜教程
  6. MySql 存储过程 光标只循环一次
  7. poj 1087.A Plug for UNIX (最大流)
  8. git项目合并(本地上传到已有的仓库)
  9. tablet2+android,z2tablet不开机了 怎么处理,索尼Sony Xperia 安卓平板论坛
  10. windows 文件保护机制
  11. 在SQuAD2.0榜单上出现过的部分模型详解StructBert,T5,RoBERTa,RetroReader,ALBert
  12. 核心乐理---五线谱基础
  13. Log4j2 重大漏洞与解决方案
  14. 关于粒子图像测速实验的一些小经验
  15. 关于4A统一安全管理平台解决方案简单介绍
  16. 问渠哪得清如许,为有源头活水来
  17. web.config connectionStrings 数据库连接字符串的解释
  18. java obd_obd-java-api-master 读取ELM 327 OBD数据的 API Develop 247万源代码下载- www.pudn.com...
  19. ANSYS DesignXplorer优化设计与可靠性专题视频教程
  20. 计算机专业活动简报,计算机系团总支活动简报2011.11第一次

热门文章

  1. WinPcap笔记(1):VisualStudio2015配置WinCap
  2. 小程序FMP优化实录,大厂面试题汇总
  3. linux文件系统只有几k,关于Linux文件系统的的简单理解和认识
  4. linux 创建精灵进程,linux 进程通信之 守护进程
  5. 牛客网笔记之JAVA运算符
  6. DPDK+Pktgen 高速发包测试
  7. [BZOJ 4300]绝世好题
  8. Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
  9. Metro UI 菜单(Winform)
  10. xml学习总结(四)