前言
编程和算法能力是当代工程师的核心竞争力之一。想要快速提升自己的编程和算法能力,却苦于没有合适的方法?别担心,今天我将与你分享6个高效编程习惯,让你轻松提升编程和算法能力!
大家好,我是Erik,一名211大三的计算机学生,曾经获得过一些不错的奖项(具体可以看我主页),希望带更多的同学一起学习ACM/算法/蓝桥杯,快快关注,我将持续分享更多的计算机干货知识!
一、保持良好的缩进和换行,选择一种自己喜欢的代码风格
良好的代码格式习惯可以让你的代码更易于阅读和维护。选择一种自己喜欢的代码风格并坚持下去,这将使你在编写代码时更加得心应手。
在软件开发中,代码风格与规范是非常重要的,因为它们可以提高代码的可读性、可维护性,并促进团队合作。不同的公司和组织可能有不同的代码风格规范,以下是一些常见的代码风格和规范,包括谷歌和华为的:
谷歌代码风格:
谷歌的代码风格主要针对Java语言,但也适用于其他语言。
-
强调简洁和清晰,避免不必要的复杂性。
-
使用有意义的变量和函数名。
-
坚持一致的缩进和空格,通常缩进使用4个空格。
-
保持代码的整洁,避免过长的函数和类。
-
使用注释来解释复杂的逻辑或不明显的代码段。
-
遵循MVC(模型-视图-控制器)设计模式。
华为代码规范:
华为的代码规范旨在提高代码质量,减少软件维护成本。
- 强调代码的规范性和可读性,确保团队成员可以轻松理解彼此的代码。
- 使用统一的命名规则,使变量、函数、类和常量的命名具有描述性。
- 保持一致的缩进和空格,通常使用2个或4个空格缩进。
- 避免使用复杂的表达式,简化逻辑判断。
- 在适当的场合使用文档注释,提供代码的详细说明。
- 遵守软件设计原则,如SOLID原则。
除了上述两家公司的特定规范,还有一些通用的代码风格和规范被广泛采用:
-
PEP 8:对于Python开发者来说,PEP 8是官方推荐的代码风格指南,它涵盖了命名约定、缩进风格、代码布局等方面的最佳实践。
-
Oracle Java Code Conventions:这是Java编程的一个广泛接受的代码风格指南,它提供了关于代码结构、变量命名、注释等方面的建议。
-
C++ Core Guidelines:由Bjarne Stroustrup(C++的创造者)和其他C++专家共同制定,这些指南旨在帮助开发者编写清晰、可维护的C++代码。
-
Airbnb JavaScript Style Guide:这是一套广泛使用的JavaScript代码风格指南,它涵盖了变量命名、语句结构、对象和函数风格等方面的最佳实践。
遵循这些代码风格和规范,可以让你更容易地融入不同的开发团队,提高代码质量,减少错误,并使软件项目更加成功。
给大家看两份代码,差异显然。
混乱写法:
#include <iostream>
int mian(){
int n;
cin>>n;
int ans=0;
for(int i=1;i<=n;i++)
if(i%2==0)ans+=i;
cout <<ans;
}
推荐写法:
#include <iostream>
int mian(){
int n;
cin >> n;
int ans = 0;
for(int i = 1; i <= n; i ++)
if(i % 2 == 0)ans += i;
cout << ans << '\n';
return 0;
}
二、尽可能复用代码,多写函数,少写一大坨代码
复用代码可以提高代码的效率和可维护性。通过将功能划分为小的、可复用的函数,你的代码将更加简洁、易读,同时也能减少出错的可能性。尝试编写一些小的函数,并将它们在不同的场景中复用,这样你的代码质量将得到很大提升。
例如我要计算平面上两点的距离,我就可以写一个函数来计算:
double getDist2d(double x1, double y1, double x2, double y2)
{
double dx = x1 - x2, dy = y1 - y2;
return sqrt(dx * dx + dy * dy);
}
//调用
double dist1 = getDist2d(x1, y1, x2, y2);
double dist2 = getDist2d(x3, y3, x4, y4);
然后在需要使用的地方进行调用即可。
尽量避免以下情况的出现:
//不推荐这样写
double dist1 = sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
double dist1 = sqrt((x3 - x4) * (x3 - x4) + (y3 - y4) * (y3 - y4));
三、使用有意义的变量名
在初学编程的时候,做一些C语言的练习题,我们经常看见各种千奇百怪的命名,什么 a , b , c a, b, c a,b,c等等,这个在工程项目中是致命的。
使用有意义的变量命名可以提高代码的可读性。当你或其他人在查看代码时,能够通过变量名快速理解其含义,这样可以大大提高代码理解和维护的效率。尽量避免使用简短或者无意义的命名,例如用"x"和"y",而是选择能够描述变量用途的命名,例如"distance"和"speed"。
当然,如果你是在“算法竞赛”等特殊的场合,为了方便理解和加快手速,可以使用简短的命名,例如:
- cnt(count)一般用于计数。
- a(array)一般表示一个数组。
- val(value)一般表示权值。
- fa(father)父节点。
- col(color, column)颜色或列。
- pre, lst前一个。
- nex, nxt后一个。
四、多模仿、少瞎写
通过模仿优秀的代码和算法实现,你可以学习到更多的编程技巧和思维方式。在模仿的过程中,你将逐渐形成自己的编程风格和算法思维,从而提升自己的编程和算法能力。你可以通过阅读优秀的开源项目、参加技术交流会议或者观看技术教程等方式,来寻找灵感和学习他人的经验。
有时候咱们自己想到一个非常巧妙的方法,然后写了一坨屎山,后面发现早就有人写好了解决这个问题的库,并且经过了长时间的沉淀,稳定高效,顿时感觉自己就像小丑一样。
例如我在《算法基础课》中讲过的二分模板,无数的同学惊呼牛逼,大家在学习了这个二分模板之后就不再需要记忆什么小于,小于等于的条件了,混乱的二分模板从此统一,用了两年没错过。
五、刻意练习,参加竞赛
参加编程竞赛和刻意练习是提升编程能力的重要方法。竞赛可以让你在限定时间内解决问题,锻炼你的编程思维和快速解决问题的能力。同时,刻意练习可以帮助你克服编程中的薄弱环节,全面提升编程能力。
你可以参加一些算法竞赛,如LeetCode、Codeforces等,或者参与算法挑战赛,与其他优秀的编程爱好者一起竞技。
真心给大家推荐由我主讲的性价比超高的《算法基础课》,想要学习更多ACM/蓝桥杯/CSP/NOIP算法竞赛知识,无论你是想要竞赛拿奖的大学生、想要在笔试面试中脱颖而出、或者是对计算机编程感兴趣的小朋友,都可以学习,一定不要错过!点此了解(官方群:746470220):https://www.starrycoding.com/course/1
六、勤作总结,梳理知识
在学习和实践过程中,及时总结自己的经验和教训,可以帮助你更快地成长。将自己的学习心得和编程技巧记录下来,形成自己的知识体系,对于长期提升编程和算法能力具有重要意义。你可以写博客、做笔记或者与朋友分享,通过总结和分享,巩固自己的知识,并从中获得更多的启发。
真的真的,强烈推荐所有的计算机大学生养成写博客的好习惯,尝试把自己所学的知识总结并分享出来,可以让自己掌握得更牢固!不是心理安慰,而是真的有效!
推荐做笔记的方式是使用markdown语法,配合一些笔记软件,比如Typora等等,最好是能学习一下Latex,这不仅对做笔记有帮助,对以后写学术论文也有很大帮助!
总结
以上就是提升编程和算法能力的6个高效习惯。只有通过不断地学习、实践和总结,才能在编程的道路上越走越远。希望这些建议能对你有所帮助,让我们一起努力,成为更优秀的程序员!