对于javascript语言, 掌握readline()函数和split()函数的使用
编写代码速度要看内功,代码只是形式,编写代码过程中先在纸上完成题目的分析和方法的筛选,这一步先不要用代码作为分析语言,用纯逻辑分析,逻辑要严密,相当于在大脑中先运行排除掉一些后续翻译代码潜在的的bug,然后代入一个测试用例模拟运行分析是否可行,在纸上分析觉得可以的话就可以开始编码(题目简单基础的话可以只在大脑中完成),遇到bug就结合纸上的模拟运行的记录进行debug, 很多面试题都是考察经典的计算机编程理论。
做编程题(以培养编程思维为目的)的时候要适当克制用ide运行排错的意识,很多时候想用编译器进行边界条件的检查,但编程思维或编程信心也部分来自于脱离编译器独立得出正确的边界条件的过程。对于算法水平一般的人来说,考虑的主要是稳定性的边界条件。
学习编程题是为了更好的指导机器工作,不是让程序员去替代机器执行它所擅长的,不要试图理解每一个细节(可以适当不追求你的可读性,符合行业标准即可),除非必要。
编程是程序员为主,程序员是程序成长的主导者,不要有深度学习里的那种黑盒借口,这里的程序你是可控的。
如果一个API上网查的速度小于记忆回忆的速度就需要记住,这和现在有了AI翻译但那些会讲英语的人仍然优秀的原理是相同的。
平时刷题的时候不要过多花时间去从0想一个新算法,现在能够学习到的经典算法(其中部分已应用到生产中)的算法都是优秀的人花精力和天赋总结的,更多时候只需要理解别人的成果外加不断的练习巩固就可以提升自己的编程算法能力。
编程算法题笔试面试遇到不会的首先分析这个题的可能解题方向是啥(更多的是数据结构与算法的内容,不需要像搞科研那样的创新),如果是考察的经典的解题思路,由于一般这种题都会是在经典题型上进行变体(大公司很少考原题),需要将问题拆分为子问题逐个解决,这样有助于克服思绪混论的问题,然后,如果想不到解题方向,就将题进行简化为经典熟悉的简化题型(哪些题你确定你掌握了呢,根据打蛇打七寸的思想找,一定是有这种已掌握的题型的。)找是否可以排列组合成一个可能的解题思路。