chaoz的杂货铺

生命有息、学无止境、折腾不止

0%

左耳朵大叔介绍的书籍、文章、网站

程序员练级攻略(2018)

工具

编程的IDE

安全

Web

各种语言的编程规范

编程语言

Java语言

C/C++语言

Go语言

理论学科

算法、数据结构、网络模型、计算机原理等这样的计算机科学专业需要学习的理论知识是必须要学习的

数据结构和算法

基础知识
理论加持
思维改善
基础算法题

其中有大量的算法题,解这些题都是有套路的,不是用递归(深度优先DFS,广度优先BFS),就是要用动态规划(Dynamic Programming),或是折半查找(Binary Search),或是回溯(Back tracing),或是分治法(Divide and Conquer),还有大量的对树、数组、链表、字符串和hash表的操作。通过做这些题能让你对这些最基础的算法的思路有非常扎实的了解和训练。对我而言,Dynamic Programming是我的短板,尤其是一些比较复杂的问题,在推导递推公式上总是有思维的缺陷(数学是我的硬伤)。做了这些题后,我能感到我在动态编程的思路上受到了很大的启发。

编程题

比如:atoi,strstr,add two nums,括号匹配,字符串乘法,通配符匹配,文件路径简化,Text Justification,反转单词等,这些题的Edge Case和Corner Case有很多。这些题需要你想清楚了再干,只要你稍有疏忽,就会有几个case让你痛不欲生,而且一不小心就会让你的代码写得又臭又长,无法阅读。通过做这些题,可以非常好地训练你对各种情况的考虑,以及你对程序代码组织的掌控(其实就是其中的状态变量)。

其它理论基础知识

计算机系统相关知识

喜欢这篇文章?打赏一下作者吧!

欢迎关注我的其它发布渠道