在回答这个问题之前,说一个,我发现的现象。
我为两家美国公司工作过,一般招人的时候,尤其是没有什么工作经验的,国内这边的面试是主要问你对编程语言的了解,对常用框架的理解,而美国那边面试的时候主要问算法和数据结构,还有基础理论。
我们后来仔细想了一下这个后面的思维方式,国内招一些初级的人,主要关注的是你能不能干活,要马上能干活,所以更多的关注你的实际操作技能而不是基础理论。而老外更关心你是不是有潜力能把活干好!
国内招高级编程人员会加大对数据结构和算法,基础理论的考察,因为这个时候更关注你是不是可以把活干好!
到这里,可以得出一个简单的结论数据结构和算法和其它基础理论是你能不能把事情做好的保证。你想在这个行业里有所发展必须把这些东西学会掌握。
第二个问题,怎么能更好的学习,如果你是学生那就把那些理论背下来,用编程实现。多做习题,要下死功夫。
如果,你是工作的,肯定没有太多时间进行过多的学习,读一些基本知识,理解一下,找打别人已经做好的东西根据理论有选择的使用。