热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

编程萌新指南:这九大误区请及时避开

全文共2592字,预计学习时长7分钟图源:unsplash笔者刚刚开始编程生涯时,常常在思考什么是编程的正确方式,但我无法确定正确答案。不过,我很快就明白了方法不止一种,但


全文共2592字,预计学习时长7分钟





图源:unsplash

笔者刚刚开始编程生涯时,常常在思考什么是编程的正确方式,但我无法确定正确答案。不过,我很快就明白了方法不止一种,但其中有些方法并不是很好。这就是笔者想要阐述的。你可能已经发现了方法的重要性,并且想知道如何优化自己的学习过程。那么,以下这些误区,你一定要及时避开。

不要执着于学习尽可能多的语言/技术

初学者常常误以为掌握很多语言和技术会给人留下深刻的印象。虽然的确是这样,但更重要的是证明你可以应用它们。

通过项目展示不同的编程语言/技术技能是个不错的主意。它既显示了你的适应性,也考虑到了编程技术不断变化的本质。但是,如果只专注于学习现有的一切编程语言的语法和操作方法,那就错了。每当你学习一门新语言或新技术时,一定要加以应用,不要一味地急着去学下一个。

编程很像数学,你需要不断地练习。每当学习一种新工具/技术时,确保你在应用它,并在此过程中建立自己的作品集。在这个过程中,你的编程能力将会得到提升,从而提高自己的竞争力,这是双赢。

投入使用前先确定新技术是否符合需求

花时间做些调查,可能有更好的框架或语言适用于你要做的事情。笔者喜欢阅读文献,查找使用上述技术构建的项目,然后再做出选择。例如,一些库/框架可能具备满足需求的函数,而另一些库/框架可能需要你编写复杂的代码。即使某些技术不够普及,它们也可以节省大量时间,并可能创建更强大的功能。

总之,在决定使用哪种工具之前先做一些研究。笔者曾见过程序员不眠不休地试图找到一个解决方案,但有时退一步着眼于全局更有效。如果你的项目比较大,那么使用你能想到的技术构建较小的模型是一种很好的方法,可以以此评估你的作品是如何结合在一起的,来查看它们是否符合需要,以及是否在正确的道路上。

图源:unsplash

不要掩饰工作

确保你在展示自己的作品,并且不仅仅要展示你最好的作品,还要展示你是否能改进不那么自豪的工作,笔者已经能够推动多个老项目从平庸到令人印象深刻。有时,我却会完全忘记它们的存在。因此,建立作品集,首先要浏览你过去的项目,看看是否可以整理利用之前的东西,这可以节省很多时间。

其次,学会推销你的作品。充满激情地讲述你的创作过程,比如你为什么选择这个特定的项目,你为什么以这种方式做,等等。个人风格会让你的作品更令人难忘。当然,别忘了把作品放在GitHub上。

不要忽视任何设计

好的设计等于好的工程。简明、高效的编写不仅使代码可重复使用和更易读,而且会使你创建的任何东西都变得更好。在构建时不应用合适的设计原则最终会导致性能和/或扩展性方面的问题。此外,代码的设计和优化经常在面试中考到,所以最好尽早养成良好的编码习惯。

前端/用户界面/用户体验的设计也很重要,这往往决定了你的用户是否会坚持使用。精心打磨过的前端设计的项目更令人印象深刻,这会使你的工作看起来更完善、更专业。挑选一本关于代码设计的好书,学习用户体验设计的基本概念,你能开发出更好的产品。

随时记录

图源:unsplash

在构建作品集时,请记得不要省略对代码进行注解和对项目适当地批注。因为这表明你熟悉行业标准,并且能使你的代码流更容易被用户理解。

高质量的文件记载还可以突出你的技术写作能力,让你脱颖而出。在专业环境中,做记录通常是工作的一个基本方面,因此从长远来看,培养这项技能也是有益的。许多工程师经常使用相同的代码库,适当的记录可以帮助相关人员及时了解项目的最新进展。

记得测试

笔者不仅仅关注项目是否可以执行预期的功能,对于更重要的项目,应该要求更高。如果可能的话,要在多种设备、操作系统、浏览器和每种极端情况下进行测试。一定要做好准备,因为你永远不知道别人会在什么情况下评估你的工作。

最好养成单元测试的习惯,并在GitHub上为项目编写全面的测试套件。这表明你对工作质量非常重视,并且重视零漏洞、稳定的软件开发。通过这种方式,你还会学到很多模块化的重要性,反过来又有助于提高自己的专业水平。

不要只关注编码

图源:unsplash

编程技术在不断变化,但它们蕴含的计算机科学概念却没有变。学习算法、数学和计算机科学的概念并不是毫无用处的,即使它们看起来并不能立即见效。这些核心概念会在你的思维过程中发挥作用,通过加强你的计算机科学基础知识,帮助你成为一名更好的工程师。

事实上,算法和数据结构的知识经常在面试中被考到。理想情况下,你的目标是在编码和理论之间取得良好的平衡,进而成为一名全面发展的程序员。

不要孤军奋战

找一个同样在自学编程的人作为学习伙伴,这对于初学者来说会有很大的不同。你们可以分享进步,也可以从彼此的错误中学习。你们还可以在项目上合作,如果分工合作的话,完成工作的时间会缩短。结伴学习的另一个主要优势是能够练习结对编程和模拟面试,这样可以帮助彼此认清并改进自己的弱点。

平心而论,这适用于每个领域,但是由于编程的内向性,人们很容易忽视合作的价值。即便你觉得自己不需要学习伙伴,请记住,将来在大多数的职业场合会与其他开发人员合作。因此,在团队环境中正常工作的技能是必不可少的。

虽然软技能可能对于一名程序员来说不是第一位的,但从长远来看,它们肯定会对你的职业轨迹有所帮助。

不要只为了钱

图源:unsplash

要因为热爱而去做。听起来很残酷,但编程的确不适合所有人。编程需要相当多的投入,但它确实有潜力成为前途光明的职业道路。笔者见过很多人在学习的过程中放弃了,那是因为他们一开始就没有足够坚定。没有人希望在自己根本不喜欢的职业中度过一生,它最终会让人感到不满足。

最后,不要妄想你能攻克所有的人和事。要有切实的期望,乐观的态度,并保持谦逊。最重要的是,永远不要停止构建和学习。


推荐阅读专题

留言点赞发个朋友圈

我们一起分享AI学习与发展的干货

编译组:蔡漫祺、朱怡

相关链接:

https://medium.com/better-programming/what-not-to-do-the-beginner-programmers-guide-7e3d427db903

如转载,请后台留言,遵守转载规范

推荐文章阅读

ACL2018论文集50篇解读

EMNLP2017论文集28篇论文解读

2018年AI三大顶会中国学术成果全链接

ACL2017论文集:34篇解读干货全在这里

10篇AAAI2017经典论文回顾

长按识别二维码可添加关注

读芯君爱你



推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 本文详细介绍了如何在 Spring Boot 应用中通过 @PropertySource 注解读取非默认配置文件,包括配置文件的创建、映射类的设计以及确保 Spring 容器能够正确加载这些配置的方法。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 本文详细记录了在银河麒麟操作系统和龙芯架构上使用 Qt 5.15.2 进行项目打包时遇到的问题及解决方案,特别关注于 linuxdeployqt 工具的应用。 ... [详细]
  • 深入解析:阿里实战 SpringCloud 微服务架构与应用
    本文将详细介绍 SpringCloud 在微服务架构中的应用,涵盖入门、实战和案例分析。通过丰富的代码示例和实际项目经验,帮助读者全面掌握 SpringCloud 的核心技术和最佳实践。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
author-avatar
mobiledu2502882733
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有