中级农民
积分 104
大米 颗
鳄梨 个
水井 尺
蓝莓 颗
萝卜 根
小米 粒
学分 个
注册时间 2020-5-5
最后登录 1970-1-1
注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
本帖最后由 Anonyknight 于 2020-10-26 07:50 编辑
我的本科毕业是计算机,学过数据结构,算法,但是没刷过题,在硬件公司呆了几年,现在想转互联网公司,开始了刷题之旅。
地里大神多,我等凡人,多抱团取暖,现阶段我这水平只能给新手带点干货,喜欢请点赞,求大米。
对自己学习能力有怀疑?
你有人类进化几万年的大脑,祖先在无数次战争,疾病都生存了下来,现在读到大学,不要妄自菲薄,怎么使用这个最宝贵的大脑?大脑说明书课程:神经心理学公开课《Learning How to Learn》
这位教授28岁文转理,最后成为教授。
语言选择:高级语言JAVA或者PYTHON
语言有他们应用的领域,比如说大数据的火爆带动了PYTHON,如果新手,建议跟自己目标相关的领域的语言。请看文章分析:
https://spectrum.ieee.org/comput ... ming-languages-2019
什么?没目标领域?人生苦短,我用PYTHON。它还有些人性,贴近自然语言。
刷题基础知识:学习算法,伪代码能弄懂,包括时间复杂度,空间复杂度,最好能写相关的程序。
建议coursera的algorithm 课程,Princeton大学Robert Sedgewick教授开的
这个教授是图灵奖获得者Donald Knuth的弟子,大师的作品《The Art of Computer Programming》,适合高级玩家,入门看弟子的作品更容易。
Leetcode做一个题目的流程:
看题之后先想一想,尝试做,15分钟没有思路,看题目讨论区或者答案。然后,自己尝试写一遍。
如果继续答案都看不懂,可以用VS CODE把样例输入数据写成测试,和代码方程,用DEBUGGER一步一步跑。理解每一个步骤和变量
用VS CODE的好处是可以保存本地历史记录,方便复习。
不会用DEBUGGER?
第一遍:Leetcode探索学习区专题练习:
基础阶段建议分主题刷,一次性学习一个主题,阵地战。
Leetcode已经提供了专题学习。
https://leetcode.com/explore/learn/
包含了各个TOPIC/TAG的相关题目。刷EASY, MEDIUM的题目。
最后的目标,看到一道题,能知道它考点是什么。
第二遍:进阶刷题。
复习之前刷的题,每个TOPIC再继续刷,锻炼自己对核心逻辑的理解。
尝试HARD题目。HARD无非多几个考点。
第三遍:模拟面试刷题
随机选题,leetcode 练习,掐时间训练,看能不能按照面试的要求30分钟之内做完一道MEDIUM题目。
面试做题的流程: Cracking The Code Interview 作者总结:
http://www.crackingthecodinginte ... e_coding_skills.png
按照GOOGLE样板面试流程练习白板或者ONLINE 没有语法提示的EDITOR。
代码规范:
规范很重要,代码是给人看的,机器其实只认二进制代码. 至少注意:
变量名命名
变量数量
假设每个变量是BOOLEAN,8个BOOLEAN有可能的组合是2的八次方=256个逻辑。更不用说其他的数据类型了。变量数量要越少越好。
如果使用VS CODE,用LINT 查代码质量,还可以设置McCabe查代码复杂度。
刷题高级经验参照:
胖头龙的咸鱼刷题笔记-算法篇
最核心的语录:”很多算法问题的最优解,放在几十或上百年前也都是人类知识边缘的数学问题,当年大师们也花了不少功夫才研究出来发论文的,如果被我等弱鸡几十分钟就凭空搞定,大师们不要面子的吗?“
别灰心,不要对自己期望太高,做不出来是正常的,练习能造就完美,自己不切实际的期望对自己伤害很大。
最后,更多书籍,请转精华:
想在美国找CS软件工作?Warald提供需要学习的书籍和课程名单!
补充内容 (2020-11-1 13:19):
专题复习数据结构和算法:
https://www.hackerearth.com/prac ... ar-search/tutorial/
https://www.hackerearth.com/prac ... rrays/1-d/tutorial/
上一篇:
请教学期中刷题的策略 下一篇:
请教一道算法题目