热门标签 | 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经典论文回顾

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

读芯君爱你



推荐阅读
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
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社区 版权所有