作者 | 梁唐 出品 | 公众号:Coder梁(ID:Coder_LT) 大家好,日拱一卒,我是梁唐。 我们继续来肝伯克利CS61A,这次我们看的是作业9,同样是基于Lisp语言的几个编程问题。...没接触过或者不了解Lisp的同学可以去翻一下我上一篇文章,里面有一些关于Lisp的简单介绍。 这一次的作业一共有五道题,题量和难度都不算大。 好了,废话不多说,我们来看题吧。...什么情况下会在s.first和s.second之间出现点呢?答案很简单,当s.second是数字时。
他们的代码写得比你好,他们的调式速度比你快,他们只要瞄上一眼文档就能理解其中的内容。他们自信,他们享受写代码的过程。...在大学毕业找工作那段时间,我为面试做准备,那些算法题给我带来了无尽的挫败感。所幸的是,我的努力最终还是让我获得了回报,我拿到了几家大公司的offer。...我记得以前卡壳的时候,我恨不得抓着自己的脑袋往墙上撞。我对那种沮丧感深有体会,特别是在处理那些与开发环境相关问题的时候。...我看起来学得毫不费劲,那是因为我已经付出了很多。 在刚开始学习这些算法的时候,一道题目可能花上我几个小时,到最后还是解不出来。于是我在网上查找答案,试着去理解别人的解法。...不管你处在什么位置上,总会有人在你前面,也总有人在你后面,那么为什么还要浪费时间去想这个问题呢?反过来,不如多想想怎样才能提升你的代码质量,怎样才能把代码写得更好、让人更容易读懂、运行得更快。
先说说简历整体的篇幅和排版,我当年是刚好一页,这个是无工作经验的同学比较推荐的篇幅;排版也比较干净整洁,该对齐的也都对齐了,看着让人舒服即可。...再看简历内容,首先我觉得一个干净端庄的照片还是有必要的,关键是要面带微笑 ) 简历的开头一定要写明你的基本信息、联系方式、求职岗位等。如果你有个人博客或 Github 项目的话,记得把链接贴上去。...现在来看,这个板块反而是我整个简历写得最烂的地方!...但我觉得这里我做的比较好的地方是没有写过多的项目介绍,这个是很多校招同学容易出现的问题,就是项目介绍写得比自己的工作还多!...现在看来,这个板块也是我整个简历写得最烂的地方,跟报菜名似的列举了一堆技术名词。然后呢?你每个技术掌握的怎么样,是了解还是熟练,哪个技术学的好、哪个技术学的坏,谁知道呢对吧,完全没有重点!
,如果是干净的,git diff将没有输出,否则输出修改的文件的差异 #!...if [[ -n $(git diff --stat) ]] then echo 'dirty' else echo 'clean' fi 如果觉得判断字符串是否为空的[[ ]]条件判断语句写得太麻烦...,配合 --quiet 选项还可以更简单使程序的返回代码(EXIT CODE)来判断 git diff --quiet || echo 'dirty' 但是,前面第一句话就说了,git diff只是比较已经纳入版本控制的文件被修改的差异...,那么 git status 是更妥善的办法,使用 git status -s命令输出当前状态,如果git 文件夹是干净的(也没有untracked文件),则不输出任何内容,否则显示改变或增加的文件列表...所以我们可以使用类似下面这样的表达式来判断git 文件夹是否干净。 $ [[ -z $(git status -s) ]] || echo 'modified/untracked'
2.有利于团队新员工培训 编写干净代码的另一个好处与第一个好处是密切相关的,那就是可以让新员工更容易更快地使用代码。假设我们需要雇佣一个开发人员,那么要花多长时间才能理解代码并学会使用它呢?...如果我们的代码很乱,写得很差,就需要花更多的时间来学习代码。另一方面,如果代码干净、易读、简单易懂,她将能够更快地开始她的工作。 有些人可能会说,这不是个问题,因为其他开发人员可以帮助她。...当我们努力写出干净的代码时,其他人就会向我们学习,也就更容易跟着写出干净的代码。当然,仍然需要留出一些时间来帮助每个新开发人员了解和理解代码。当然,我的意思是几天,而不是几周。...的确,编写和保持干净的代码并不意味着应该忽略任何改进它的机会,我认为应该始终对目前的做法保持可改进的态度,并努力寻找改进的机会。...有时我就会遇到这些问题,我在这方面做的很不好。 然后,有人提出了一个很好的建议:让每个函数或方法只执行一个任务。这个简单的建议改变了一切,帮助我写出了干净的代码,至少比以前更干净了。
我读过 Rust 的入门指导文章,所以我知道了这项技术。我读过一本关于 TCP / IP 工作原理的书,所以现在我了解了这些内容。但这不是真的。 如果这是真的,我们都会成为超级明星。...怎样才能写得更多========记住:阅读是一种习惯,写作是一种技巧。为了提升你的技巧,你必须要写得更多。写更多内容的一种简单方法是以不同的方式进行设计评审。...无论如何你都必须这样做,所以为什么不在写作时改进呢?但是,如果你想在工作之外进一步提高写作水平,请考虑开设博客。...我指导过的许多程序员只是简单地复制粘贴所有内容。代码片段,函数声明,等等。我知道如何初始化一个 git 仓库,因为我每次都手动完成它。大部分人会选择从 Github 或者搜索引擎复制相关指令。...感谢你的收看,欢迎关注我和我的专栏,解锁更多最新技术文章 我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!
2.有利于团队新员工培训 编写干净代码的另一个好处与第一个好处是密切相关的,那就是可以让新员工更容易更快地使用代码。假设我们需要雇佣一个开发人员,那么她要花多长时间才能理解代码并学会使用它呢?...如果我们的代码很乱,写得很差,她就需要花更多的时间来学习代码。另一方面,如果代码干净、易读、简单易懂,她将能够更快地开始她的工作。 有些人可能会说,这不是个问题,因为其他开发人员可以帮助她。...当我们努力写出干净的代码时,其他人就会向我们学习,也就更容易跟着写出干净的代码。当然,仍然需要留出一些时间来帮助每个新开发人员了解和理解代码。当然,我的意思是几天,而不是几周。...写干净代码的技巧 现在除了讨论编写干净代码的好处,也是时候学习一些技巧来帮助我们实现这个目标了。正如将在以下看到的,干净的代码包含并遵循着一些方法。这些方法使代码更干净、易读、更易于理解、更简单。...有时我就会遇到这些问题,我在这方面做的很不好。 然后,有人提出了一个很好的建议:让每个函数或方法只执行一个任务。这个简单的建议改变了一切,帮助我写出了干净的代码,至少比以前更干净了。
人人都会用,那我们怎样才能写得比别人优雅?比别人漂亮? 鉴于一线互联网大厂在前沿技术领域的持续研究和大规模投入,直接向他们取经,是最便捷也是最高效的学习方式。...我们应该如何优化呢? 其实,我们可以借助一下webpack的require.context() 方法来创建自己的(模块)上下文,从而实现自动动态require组件。...我们都会写路由,但是你知道如何写才能保证多路由模块解耦,保证更方便增加新的路由模块吗? 因为目前是否积累优秀实战经验已经成为区分前端水平高低的评判标准,这边给大家推荐网易资深工程师开设的直播分享。
人人都会用,那我们怎样才能写得比别人优雅?比别人漂亮? 鉴于一线互联网大厂在前沿技术领域的持续研究和大规模投入,直接向他们取经,是最便捷也是最高效的学习方式。...我们应该如何优化呢? 其实,我们可以借助一下webpack的require.context() 方法来创建自己的(模块)上下文,从而实现自动动态require组件。...我们都会写路由,但是你知道如何写才能保证多路由模块解耦,保证更方便增加新的路由模块吗?
你也许注意到,我之前提到了列表解析式,我们现在就来介绍下什么是列表解析式。 列表解析式 之前我说过,任何能用映射或过滤完成的事情都可以用列表解析式完成。这就是我们要学的东西。...那么怎样才能实现过滤呢?...实际上,如果你需要生成某种列表,那么很有可能使用列表解析式更方便、更简洁。 如果想求所有小于 0 的数字的平方呢?...那为什么还要用列表解析式呢?其实,解析式可以用在任何可迭代的对象上。 其他解析式 可以在任何可迭代对象上使用解析式。 任何可迭代对象都可以用解析式生成。...函数式代码可以写得非常干净,但也可以写得很乱。一些 Python 程序员不喜欢在 Python 中使用函数式的模型,不过大家可以根据自己的喜好,记得用最好的工具完成工作。
在生活中,很多人都习惯了抱怨,”为什么他这样“、”要是他这么做就好了“、”我没有时间“、”做不到“、”我只能这样做“.... 你可能知道这些话很消极,也知道说这些话没什么用。但就是忍不住说这些话。...弗兰克看到,还有另一些人非但活了下来,而且变得更坚强。他们居然每天用玻璃片把胡子刮干净,高贵地面对苦难。...怎样才能不让外部环境,或者别人左右你,积极地获得主动权呢?史蒂芬在书中介绍了几个方法。 第一,在刺激和回应之间,给自己思考的时间。 别人提了一个大胆的提案,你脱口而出“不可能”。...你说:我就是这样做事的。你心里其实在想:我这辈子改不了了。你把改不了的责任推卸给命运。试着选择积极的语言替代,比如:我可以选择不同的作风。 你说:他把我气疯了。...比如,我不能影响上海的房价,但是我可以增加能力,赚更多钱;我不能影响老板的脾气,但我可以学习向上管理,增强有效沟通;我不能让一天变成25小时,但我可以加强时间管理,拒绝不重要、不紧急的事情。
但是你怎样才能做得更好呢假设您可以让世界上最好的Java开发人员向您解释他们如何回答这些问题?...那么微服务呢在过去两年的职业生涯中,我一直在使用Spring Boot和基于Grails的微服务。...这两种都是很好的技术(如果你要求的话,我更喜欢Spring Boot),可以让你快速交付……这两种技术都不能让你免于编写糟糕的代码! 根据我的经验,微服务体系结构是相当困难的。...为了使它们变得简单,您不仅需要正确划分域模型,还需要编写干净的可维护代码。 我们从现代微服务框架中获得的速度不应该阻止我们编写高质量的代码。服务的编写速度可能很快,但可能会维持数年。...既然你可以在亚马逊上查找这本书的索引,我觉得我也可以在这里分享它。你会得到12个信息丰富的部分: 引言——好吧,这一条信息不够充分! 创建和销毁对象——这对于任何Java应用程序都是基本和关键的。
打个比方,一个心思缜密、注重细节的人写出来的简历想必也是格式整齐、干净大方的。而如果一份错别字连篇、格式错乱的简历摆在你眼前,你很难不将这份简历的作者跟粗心大意、潦草马虎的人联系起来。...一份格式整齐,没有错别字的简历,就好比一个干净素雅的人一样,越看越耐看。面试官不是机器人,也有自己的喜好,看到赏心悦目的简历心情也会好很多,心情一好,你的简历就更容易博得面试官青睐。...换做是我,如果看到太长的简历,我直接就不看了,因为我没有兴趣了解你的生平,我只想知道你适不适合这份工作而已,至于你什么时候干了什么事,这些细节都是其次的。那么多长的简历才算短小精悍呢?...“额……这个我没研究过……” “行。那我们聊聊数据结构吧。你说说MySQL的索引用的是什么数据结构吧?” “额……MySQL我不太熟悉呢……” “行吧。那你先回去等通知吧。” 这不就尴尬了吗?...因为写得细可以引导面试官问你擅长的内容,这样一来对自己的面试是大有裨益的。
以至后来,写一段文字拿给他点评,本来以为已经写得很清楚的地方居然也被找出很多歧义。之前往往会抱怨说为什么我写得已经这么清楚了别人还是不明白,但那次被挑出问题之后才真正明白了什么叫“读者意识”。...这样的学习经历是我之前没有过的,平时即便有人说你写得不清楚,也很难有这样的机会告诉你为什么不清楚,哪里不清楚,怎样才能更清楚。...我记得高考报志愿的时候准备选英语专业,一些人提出质疑,说英语不过是一个工具而已,干嘛要把它当专业呢?...对于作者本人来讲,写作会让人变得更精确,更注重细节,更刨根问底,更真切地关注他人。写作可以把私人的记忆变成群体共享的身份认同,可以把会流走的过去变成凝固不变的历史。...即便是非公共场合的写作,比如日常的邮件,如果能写得漂亮,也会让人很欣赏很感动。所有这些文字其实都不是浮于生活表面的薄薄的一层纸。
接下来大脸猫来带大家来分析一下,我们该不该放弃假期时间对网站SEO优化呢? 大部分SEOer都知道搜索引擎习惯新鲜的高质量内容,并且很多时候会随着时间的推移逐渐降低旧的内容的搜索引擎排名。...这么做是否可取,会不会对搜索引擎排名有所影响呢? 经过很多次的测试,大脸猫发现如果将一个很多年前文章标注原有的时间日期,基本上所有关键词排名都会有明显的降低。...因此高质量的文章并不是仅仅指的是一些写得非常不错文章,高质量指的还有可以为用户解决的问题的文章。 高质量的内容:完整、干净、速度快、解决用户的主要需求。...今天是讲假期该不该继续做网站优化,为什么我要将上面这些发布时间会影响搜索引擎排名呢?...我讲上面这些内容就是想要说明,文章会随着时间的推移而失去好的搜索引擎排名,但是高质量的文章并不会随着时间的推移而失去好的搜索引擎排名。
那 eval 呢?evali 里面可以放字符串,可以是就可以。问题是我们也没法使用 eval,因为不能用英文字母。 还有什么方法呢?...所以接下来的问题就变成了怎样才能拿到 function constructor,只要能拿到就有机会 在 JS 中可以用 .Constructor 拿到某个对象的构造函数,例如 "".constructor...或者用更简短的方法,用来 +[] 也可以利用自动类型转换得到 0 这个结果,那么 +!![] 就是 1。...怎样才能得到字符呢?答案是和数字一样,即强制多态。 上面说过 ![] 可以得到 false,那在后面加一个空字符串:![] + '',不就可以得到 "false" 了吗?...有些人可能会说我平时写 BUG 写得好好的,搞这些乱七八糟的有什么用,但这样做的重点并不在于最后的结果,而是在训练几个东西: 对于 js 语言的熟悉度,我们用了很多类型转换和内置方法来拼凑东西,可能有些是你从来没听到过的
为什么这么说呢? 每次聚会上,你得带领小伙伴们去给领导敬酒啊、奉承啊——这是一件极其难为情的事!很多程序员不喜欢这一套,我也不喜欢,但总有人喜欢你这样做。...我每天有了大把的时间去钻研技术,甚至还能够在 ITeye、CSDN 上写博客,甭管开始的时候写得有多差,总会时不时有读者留言说:“谢谢博主啊,你的分享解决了我的问题。”...但我想表达的是,作为一名正儿八经的程序员,我想做一名纯粹的理想主义者,每天敲敲代码,活在程序的世界里。 到底理想主义的程序员是什么样子呢?...那怎样才能做一名理想主义的程序员呢? 1)保持专注,别总去想卖个肉夹馍发点额外的财。 2)善于思考,面对一个 bug 的时候,不急躁,不慌张,能够从容地思考 bug 背后发生的原因。...那程序员的理想到底应该是什么呢? 我希望未来有一天,因为我的代码,让这个世界上的一些人生活的更便利,感觉到一点点幸福或愉悦。不管这些人多还是少。
那什么样的代码才是优秀的代码呢?对于这个问题,我想每个人心中都会有自己的答案。今天我就来和你聊聊我的思考。 对于条件运算符(?...你觉得哪一段代码更“优秀”呢? if (variable !..."D" : "E"; 十多年前,作为一名 C 语言程序员,我非常喜欢使用条件运算符。因为条件运算符的这种压缩方式,使代码看起来简短、整洁、干净。...但是,比起一长串的准则,一个关键词的好处是,更容易让人记住。我想这点好处可以大致弥补以偏概全的损失。 该怎么理解“经济”呢?这需要我们把代码放到软件的整个生命周期里来考察。...即便具体环境千差万别,我还是有一些例子,可以和你一起分享: 代码写得又快又好,是“经济”的;代码写得快,但是错误多,不是一个“经济”的行为。
领取专属 10元无门槛券
手把手带您无忧上云