用阅读书籍的方式来培养编程素养和代码风格?不推荐!!!

比起推荐书籍,我认为想用最快的速度提高自己的Coding Style,最粗暴、高效的方式就是套模板!

在这里插入图片描述

先介绍下我的基本情况:北大CS本科,ACM算法竞赛金牌,毕业后在FaceBook敲了7年的代码,manager每review我的代码,都会给很好的Feedback:

你写的代码可读性好、简洁,单这一点其实很多程序员都做不好

关于提高代码质量,我总结了这些年打ACM竞赛&大厂工作的经历,爆肝3个月、增删16次的总结的算法模板cheatsheetV5.0

面试常考算法模板cheatsheetV5.0

在这里插入图片描述

想学习了解具体提高代码质量的细节,建议去试听一下我针对今年大厂秋招形式的**算法面试公益讲座**,新人注册即可免费试听第一节download这个模板,建议感兴趣的小伙伴免费体验!

我在“算法面试公益讲座——如何提高你的代码质量”中提出了一些观点:

优秀的Coding Quality包括:

Bug Free
不管有没有可能出问题,都要对入口函数的参数进行异常检测
访问一个下标的时候,一定要确保这个下标不会越界
访问一个对象的属性或者方法时,一定要确保这个对象不是空
不用全局变量
……
好的Coding Style
二元运算符两边加空格,单元运算符不加空格
花括号和 for, if 之间要加空格(Java),圆括号和 if 之间要加空格
……
容易让人读懂的逻辑
没有冗余代码
有边界检测和异常处理

想进大厂,代码质量(Coding Quality)优秀是基本要求。这个模板总结了双指针、排序算法、二叉树、宽度优先搜索、深度优先搜索等大厂常考算法的使用条件、时间复杂度、代码模板,很多人都反馈过:能粗暴、有效的提升Coding Style!

Fake it,until you take it. 想写出漂亮的代码同理,我们来看看二分法怎么套模板写出简洁优雅的代码:

  1. ⼆分查找(在排序的数据集上进行二分)
  2. 在排序数组中找最接近的K个数(在未排序的数据集上进行二分)
  3. 书籍复印(在答案集上进行二分)

如果你是Java程序员,看这里:在这里插入图片描述

如果你是Python程序员,看这里:

在这里插入图片描述

最后,奉上我整理的一些搭配算法模板的LintCode练习题,请安心食用~

深度优先搜索:
子集
图是否是树
因式分解
子数组之和
K数和
电话号码的字母组合

二叉树:
寻找重复的子树
二叉树的后序遍历
找出树中每行的最大值
二叉树的所有路径
[对称树]

宽度优先搜索:
安排课程
岛屿的个数
拓扑排序
最大子数组差
序列重构

贪心:
会议室
最大乘积
最大子数组差
俄罗斯套娃信封
加油站

二分法:
经典二分查找问题
寻找峰值
最长上升子序列
搜索旋转排序数组

最后最后,补充一句:不建议新手一上来就刷leetcode,题库太大,且同考点题目冗杂!建议使用国内炼码(lintcode),按照考点划分的题库,效率高达刷1道等于在leetcode刷3道,收录了名企的面试题集,非常针对大厂的算法面试。

**

LintCode 炼码vip免费兑换页面

**

当然,用书籍培养代码质量思维也是很不错的,但比较适合想要徐徐图之、空闲时间多的人,这里推荐《代码整洁之道》
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值