搜索
首页常见问题如何学习成为优秀的程序员

如何学习成为优秀的程序员

Jun 13, 2019 am 11:14 AM
程序员

如何学习成为优秀的程序员

作为一个在IT行业的软件程序员,每天促使我去上班的动力就是对编程的乐趣和激情。但是为了激发乐趣并获得永恒的快感,我们需要学习和遵守一些基础知识以成为一名优秀的程序员。

当然我总结的这些东西没有那么神,你说你要想学了之后就一定可以成为优秀程序员,那是不可能的。这只是从我的经验角度出发提供的一些捷径。对于优秀程序员的定义,此处可以理解为能开发出超棒的IT解决方案并且能促进行业整体发展的程序员。

1.掌握基础知识

不管任何行业和任何工作,概念的理解都是成功的关键。除非你有强大的概念基础,否则就不可能成为一名优秀的程序员。核心概念的理解有助于你用最佳的方式设计和实施解决方案。如果你觉得你现在还没有好好掌握关于核心计算机科学和编程语言的特定概念,那么现在回过头去重新学习这些基础知识犹未晚矣。

2.给自己写的每个代码集都贴上标签(how,what)

我发现区分程序员优劣的一条很明显的分割线就是,是否有这个热情去知道"what and how"。有的程序员对于自己的代码是如何执行的以及执行结果等知道得一清二楚。我也理解有时候因为时间紧迫,我们不得不在只知道这些代码可以完成工作的情况下就立刻进行下一步。虽然这对解决问题而言,似乎是另一个方向的话题,但是作为一个程序员,我们应该尽可能地深入研究问题以达到最高水平。相信我,随着时间的推移,你会在不知不觉中养成这个好习惯,然后受益无穷。。

3.通过帮助他人从而学到更多

可能我们中的大多数人只有在自己需要帮助的时候才会上论坛和群。有一条区别程序员是否优秀的分割线就是,优秀者经常会去这些地方以帮助他人。而且他们在帮助别人的同时,自己也能学到很多东西。如果是在一个团队中,也应该互相帮助。相信我,理解别人的问题背景、研究并提出解决方案会让你学到的更多,成长的更快。

4.代码要写得简单、易懂、有逻辑

正如在生活中其他方面一样,KISS(Keep it simple and short)规则同样适用于编程领域。代码要有逻辑,避免过于复杂。有些人之所以要将代码写得那么复杂只是为了证明自己有写复杂代码的能力。但是我的经验告诉我,简单且逻辑化的代码才能有效工作,不但问题少而且更易扩展。我记得有这么一句话

好的代码本身就是最好的文档。在你要添加注释之前,先问问自己,"我怎么改进代码,才能不需要写这个注释?"——Steve McConnell

5.多花时间分析问题,后面就可以少花时间去修复

多花点时间用来理解和分析问题,设计出最优的解决方案,然后你会发现接下来的工作将事半功倍。设计过程并不意味着一定要使用建模语言和工具,也可以很简单,例如抬头仰望天空,然后在脑子里来一场头脑风暴。那些一拿到问题就习惯性去噼里啪啦写代码的程序员,最后拿出来的成果往往会与要求的不同。

你如果在洗澡的时候脑子里还没有程序的整体结构,那就意味着还没有做好开工写代码的准备。——Richard Pattis

6.第一个分析审核自己的代码

虽然有点困难,但是在其他人发现之前自己先知道问题的所在,能让你学会如何写出"接近于无bug"的代码。自己对自己的代码审核要公正严谨,也要能毫无犹豫地接受他人的审核。近朱者赤,与优秀的程序员一起工作,积极听取他们的反馈,必然也会帮助你成为一名优秀的程序员。

7.面对日新月异的技术千万不要沮丧

最近一段时间在IT行业里,我碰到的很多人——要么念叨着对他们的工作失望了,要么甚至于已经辞职在找新工作了——都一致表示,他们想要学习并使用最新的技术。对于这个愿望我认为可以理解,但是这个词"最新的",我觉得不甚正确。我们每天都能听到有人在说"现在又出来什么新的工具、API、框架和其他方法等"可以使得编程工作更加的简捷。这在技术领域其实一直在发生。真正需要我们去关注和理解的是核心和基本技术的转变,在这个基础上再去看新的框架、工具和API。举个例子,在很多Java公司可能每隔一周就会换上新的web框架,但是其基于客户端—服务端通信模式的需求方式、MVC模式、filters/servlets/JSP、资源绑定、XML解析等核心概念依然是相同的。所以,与其时刻担心框架和工具的变化,还不如花点时间好好学习这些核心概念。相信我,在理解这些核心概念的基础上,我们才可以更快地掌握新的框架、工具和API。

8.应急措施并不能长久有效

很多时候,软件程序员可能会采取应急和变通的解决方案(或因为时间紧迫,或缺乏对问题的深刻认识,或技术经验不足)。但是,这些应急方案会破坏代码,导致其后期很难扩展和维护。我能理解,有的时候这种情况真的很难避免,但是就像我们都应该讲实话一样,你讲了谎话,那就得知道谎言总有戳穿的那一天。

9.阅读文档

优秀程序员的基本习惯之一就是阅读大量的文档,技术指标、JSR、API文档、教程等等。阅读文档为我们用最好的方式编程打下了必需的基石。

10.学习他人的代码

我非常喜欢与那些在IDE里有java源代码的优秀程序员交流互动,阅读/参考他们的代码。因为这么做不但能了解基本知识,还可以学会写项目的新方法。阅读和参考一些可靠和已知的开放源码或者自己的高级代码,也有助于我们更好地编程。

以上是如何学习成为优秀的程序员的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中