问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

程序员如何提高自己的编程技巧

发布网友 发布时间:2022-04-24 02:22

我来回答

2个回答

懂视网 时间:2022-04-12 02:28

本文写给那些认为在项目上所花时间和效率成正比的程序员。我要说的是,事实并非如此。虽然你需要在电脑前敲键盘输入东西,但这只和编程沾上一点边。那么,程序员该如何利用时间呢? 俗话说,磨刀不误砍柴工,拿出一部分时间提升自己的技能,可以提高工作效率

本文写给那些认为在项目上所花时间和效率成正比的程序员。我要说的是,事实并非如此。虽然你需要在电脑前敲键盘输入东西,但这只和编程沾上一点边。那么,程序员该如何利用时间呢?

俗话说,磨刀不误砍柴工,拿出一部分时间提升自己的技能,可以提高工作效率。你可以参考以下几条建议:

1. 编写单元测试,提高效率(如果你还没有这样做)

这是一个十分基础的工作,但是许多程序员并没这么做。但你应该这么做。这样做不仅能够提高代码质量,还能提高工作效率。你不但能够在发布和修改你的程序时更加自信,而且还节省了相当多的时间。

试想一下,如果你正编写一个大型网络应用程序,其中一个小小的代码出现了差错,要修改它便意味着整个程序的重建、数据的重新配置以及特性的重新检查(而这个错误很可能隐藏很深)。再设想一下,你可能需要一遍又一遍地重复类似的事。现在,借助“单元检测”,就可以让你避免重复以往的修改/检查工作,可以节省很多时间。

2. 训练你的编程能力

这其实很容易。看看其他专业人员。板球队员通过“网上训练”提高技能。音乐家通过练习演奏来提升水平。歌手也需要不断通过练习改进。令人吃惊地是,绝大部分的程序员却不练习。但你需要不断练习。

阅读一些诸如《Effective Java》和《Design Patterns》等类型的书,并每天做些基础训练。从欧拉项目中找出些问题,然后 用你最喜欢的计算机语言解决它。

编者注:欧拉项目,一个知识检测网站,定期发布题目,提交正确答案即可进入关于该问题的讨论,学习题目的不同解法。

和你做的普通项目不同,这些练习没有时间限制。因此,好好安排利用你的时间正确地做事。通过这样的练习,你的工作效率将有很大提高。这是显而易见的,不是吗?

3. 使用并改进开发库

很多编程人员不喜欢用开发库。他们宁愿自己编写代码,也不愿意使用开发库。主要理由如下:

a. 他们不了解开发库;

b. 开发库里有很多他们并不需要的信息;

c. 相比于开发库,他们更容易掌握自己编写的代码;

不妨考虑下以下几个方面:

a. 开发库已经过严格测试,覆盖范围广,可以帮助你节约很多时间。如果你改进了开发库,你可以帮助很多人。

b. 但如果你仅改进你的私有代码,则不可能有那样的影响。

c. 最重要的是,其他同行也在帮忙补充开发库的信息,这可以间接地帮助你。

总而言之,除非开发库与你的要求太不相符,你最好考虑选择使用开发库。

4. 阅读代码和技术资料

阅读代码和修改/编写代码一样困难。在当今开源世界的情况下,可以参阅大量优质代码。选择一个你最喜欢的开发库,然后仔细阅读以充分利用里面的资源。或许你不能很快便理解所有的内容,但是通过不断的训练,你将能够区分其中使用的不同模式,同时把这些模式用到你的代码中。

除了看代码之外,你也可以订阅专业领域内优秀专家的博客,来获取最新趋势信息。

http://www.jobbole.com/entry.php/313

热心网友 时间:2022-04-11 23:36

可读性:函数命名随意,实现逻辑混乱,代码格式不统一。。。
可靠性:程序运行很难稳定,bug百出。。。
维护性:代码逻辑没有层次,混成一团,很难维护改进
移植性、重用性:许多人写的代码,只能各自使用,很少有能共享的功能性代码
高效性:很少从算法、资源占用、执行效率等角度去考虑,经常导致服务器负载过重
那么我们改进时,就可以从以上几点出发。
总结了一下自己以前的经验,主要有以下几点:
提高自己的程序语言基础。对于许多新手程序员来说,只是简单的学会了该语言,知道一些简单的用法。但是实际编程的时候,许多写法、用法不标准。举一个很常见的例子:许多人刚刚学c++,java等面向对象编程的语言时,虽然知道了类、知道了类一般都有“多态”的特性,但是他们还是经常会用“类型判断”去判断某个对象是属于哪个类的实例、然后强制转换、再调用方法。却完全忽略可以用多态来避免这种丑陋的实现!
熟悉语言规范。如果不知道自己所学的语言还有规范,那么建议你现在去查找。说个简单的规范,Java的类名要取得有意义、首字母要大写。再比如:一个函数只实现一个功能。再比如一个复杂的:连续的if else条件判断最好不要超过10个。
培养自己严谨的逻辑思维能力。我们写程序,至少都会在脑海里走一遍程序的流程。如果流程走通最后却出现bug,那么就是流程的某个细节我们没有考虑到!有的时候,我们总是自认为自己已经考虑的非常全面了,其实不然。同样举一个例子:对一个集合,写个for循环按照一定的条件删除里面的元素。其实这里面隐藏了一个“集合在动态变化”的陷阱。比如说,将第一个元素删除了,如果集合的数据结构是将第二个元素移动到第一个元素上,那么,第二个元素就遍历不到了。所以,有时候,我们看似很简单,觉得逻辑非常正确的代码,可能就潜伏着陷阱。
熟悉所用语言的API。学一门语言,其实不只是学语法,学语义。更重要的是学基本的API类库。因为你实际编程的时候,自己所写的代码其实很少,大部分都是用的别人的API,将许多API的功能穿起来,才是自己实现的功能。用好的API,能增加代码质量、提高代码可读性、减少代码bug、减少工作量。就比如说堆栈这个数据结构,程序员基本都知道,但是大部分人可能都不能实现一个正确的堆栈API。
熟悉了解一些数据结构、算法。平常写程序时,或多或少都要接触一些常用的数据结构,比如说链表、map等,了解它们的原理对于那些没学过数据结构的人来说很重要。很多时候,一个简单的功能被实现的超级复杂的原因就是没有使用简单清晰的数据结构。
掌握一些编程思想、设计模式,这会让你的代码更加具有结构性、条理更加清晰!比如说,面向接口的编程思想,能让你的代码易于修改、易于扩展。如果更进一步,站在架构的角度去考虑。
多看高手代码,读一些优秀的开源代码,看一些经典的书籍。比如说《Effective C++》、《Effective Java》、lucene的源码。这些会让你提升巨大,只有了解到高手眼中的世界,才能有成为高手的可能!
代码重构。多回顾之前写的代码,进行一个系统性的整理。因为我们起初开发,不是面面都能想到,许多新东西是不可避免的,这就意味着可能会导致一些逻辑混乱。在开发完成后,多回顾回顾,寻找能改进之处,这也是一种进步。
即时缺少高屋建瓴的能力,我们也应该多从全局的角度去考虑整个工程的代码的层次、模块、架构等问题点。可以尝试着进行功能点拆分、接*互设计等工作。
为自己的代码添加测试用例。可能因为懒惰,许多程序员基本都不会为自己的代码添加测试用例,这其实是一个不好的习惯。即时是有测试人员的团队,添加测试用例对你的好处也是显而易见的。
至于从团队的角度,可以考虑建立以下几点:完整的规范、执行流程、review机制和辅助工具。由于本篇文章主要针对的是个人,就不展开。工具方面,可以考虑开源的ReviewBoard。
个人的代码质量提上来,团队的水平才能提上来,公司的效率才能提升。其实最主要的是,个人的层次、境界才能提升!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
容易发财的房地产中介公司名字 我想对自己的房子进行房产评估,去哪里办理,需要... 改字体的时候不小心改错了,全变成格仔了怎么办 手机文件不小心改错名字了怎么办 女生每天早晚各跑步一个小时,配合饮食,一个月瘦多少? 每天早晚各慢跑一小时.一个月能瘦多少斤 爱剪辑怎么去水印 给视频去水印方法 游戏本关机时可以晃吗? 笔记本玩游戏CPU温度高,会花屏 打剑网三一小时声音大,发热,还能继续吗? 程序员如何提高自己的技术水平 程序员如何提高自己才不被淘汰? 作为刚入职的java程序员,一年时间内如何提升自己的实力,更有竞争力... 2020程序员如何提升自己的能力吗? 刚踏入职场的程序员,如何快速踏实地提升自己的能力 孕妇可以吃很多牛肉吗 孕妇可以吃牛肉炖什么 孕妇可以吃牛肉? 牛肉煮什么汤孕妇可以吃 孕妇可以吃牛肉煮饭吗 孕妇可以吃牛肉吗,对胎儿有影响吗 孕妇能吃自己买来的生牛肉煮熟了放在冰箱里的吗? 我的千牛网怎么不能上传图片呀! 孕妇可以吃牛肉煮粥吗 孕妇吃牛肉可以吗 千牛图片空间上传不了图片 怀孕之后,可以吃牛肉吗? 手机千牛图片发不出去怎么回事 牛肉怎样煮孕妇能吃吗 千牛软件怎么不能上传图片 新手JAVA程序员怎样快速提升自己技术? 程序员竞争力太大了,怎么样才能提升自己呢? 林丹刚退役,出轨女主赵雅淇就下场开撕,赵雅琪是什么身份? 程序员怎样不断持续提高自己的技术水平,并且提升自己 赵雅淇发文,女人何苦为难女人呢? java程序员如何提升自己? Java程序员在工作之余如何提升自己? 程序员怎么去提升自己能力? 怎样才能提高编程技术? 清炖鲫鱼汤的做法步骤图,清炖鲫鱼汤怎么做好吃 清炖鲫鱼汤怎么做 电脑显卡驱动日期是什么意思?我想知道这个显卡是不是人家已经用过的?我是今天才安装的。 显卡的驱动日期和生产日期是一码事吗?如果不是那么驱动日期是什么意思?求大神帮助 我的显卡驱动程序日期是20071218 那是不是说明我的显卡在2007年12月18日就开始使用了??? 显卡驱动日期1999年 我有点接受不了。 是什么意思 驱动日期? 是第一次装入电脑的时间吗? 怎么修改显卡驱动日期.急急急。。。 贷款呆账准备和贷款损失准备一样吗? “贷款呆账准备”和“贷款损失准备”一样吗? 贷款损失准备金和存款准备金 贷款损失准备和一般风险准备二者的区别