无任何编程基础,也能入门编程的经验总结

2021-04-02 09:49:05 +08:00
 hakunamatata11

首先,放下你手上那些大部头的书和堆成山的资料。

其次,不要觉得“收藏了就等于学会了”,毕竟收藏夹里的资料再好再牛逼,你不去学、不去的话也是一堆垃圾。

接下来,开始入门编程。

先奉上我的刷题笔记:

第一步,找到 coding 的感觉。

书的话,只推荐 2 本:

《 Head first Java 》:不急着读完,大概看完前三章,跟着作者玩游戏、解谜题,让你感觉到“原来编程这么好玩”,这本书的目的就达到了。当然,当你熟练编程后,你又会发现这本书其实涉及到了很多重要知识点,属于寓教于乐的类型。

《编程之美》:这本书收集了约 60 道算法和程序设计题目,这些题目大部分在近年的笔试、面试中出现过,作者试图从书中各种有趣的问题出发,引导读者寻找更优的解法,这里也有《编程之美》的配套习题

接下来,学着刷题。

刷题一定要循序渐进,否则你就会感觉“学完二分法,做二分不会;学完 DFS,做 DFS 不会,学完……”,开始陷入刷题的自我怀疑。

感兴趣的话可以去刷LintCode [新手编程必刷 50 题] ,我刷了一部分,感觉还不错:很基础,很小白。

刷完这 50 道题,你就能对算法和数据结构有最最最基本的认识,同时能够极大地提升你对编程的兴趣。

如果一定需要有个“老师”带着你,我之前上过《算法基础班》,老师讲得很详细,用了 Java & Python 双语言讲解,全程都会带着你“码”一遍,有兴趣的话可以先白嫖下前四节试听课,也能让你对编程有初步的认识。

第二步,学习刷题的技巧。

我把这个过程拆成以下六步,当然,大家也可以根据自己的情况调整,仅供参考。

①无脑狂抄。

我刚开始 coding 的时候脑子就是一团浆糊,曾经有一次做一道题做了整整一下午,连个 p 都没做出来。那天我叫的奶茶外卖还把吸管搞丢了,心态直接崩溃。

还好这时候我朋友建议我先照着题解抄,直到抄出题感为止。

你还别说,这个方法确实有效。一开始我觉得我在做一份很无聊很机械的工作,后来慢慢就能看懂别人的思路了,最关键的是不会犯一些基础的错误(比如少了一些符号导致代码编译错误)。

②思考题目的底层逻辑。

站在面试官 /出题者的角度想,这道题考的是什么思想?考察做题者的什么能力?

比如是基本概念、逻辑运算、数据结构的掌握程度?在做题之前多想一点,会让你的做题轻松一大半。

③举一反三,一题多解,多题一解。

这一步其实比较玄学,但又是对于我的提升最有用的一次。看到一道题的时候,想到解法以后再进阶想一下:除了 A 解法,还能不能用 B 解法? C 题的解法,是不是也能用到 D 题上?

会让你有触类旁通的感觉。

④学会讲题,阐述解法思路

这是我在《九章算法班》上学到的“应试技巧”。其实大多数人学算法都是为了找到好工作,而找到好工作最关键的一步就是应对算法面试。

而算法面试并不是把题目做出来就能过,在面试官面前写代码、讲思路非常考验自己的心理素质和逻辑思维,也很大程度的决定你能不能拿到 offer

所以大家可以去找朋友、老师,在他们面前练习讲题、大胆把思路讲出来。咱虽然是哑巴英语,至少不至于是哑巴中文不是?

⑤找到刷题套路,套模板解题

分享我在 ACM 金牌选手令狐冲老师那拿到的** [算法模板] ,包括面试常考算法和数据结构(二分法、双指针、动态规划等)的代码模板,还把使用条件、复杂度、参考例题**都整理好了。

《九章算法班》的首节免费试听课上可以获取,令狐老师的课程也敲有意思,大家不妨去试试~

⑥学习算法优化

包括注重代码质量、规范变量命名等。等到了这一步,你就可以搞定大多数公司的算法面试了。

第三步,自信地应对算法面试。

终于到了最关键的一步,我的习惯是会在面试前一周看该公司的面试真题LintCode上也有详细的整理,并持续更新中。

最后是一些实用面试技巧:

做一个题之前,先沟通清楚。得到面试官肯定,再开始写代码,写完以后再解释

不要闷头写,也不要一边写一边解释太多(容易写不完)

可以要提示,经过提示做出来的题,也是可以拿到 Hire 的,但是先自己努力想一下,别太容易放弃,容易让人觉得不会主动思考问题。

别和面试官吵架。面试官带着答案来面试你的,不同意见在大部分情况下,都是你自己想错了。

⑤会就会,不会就不会,不要遮遮掩掩,坦诚很重要,容易让人觉得和你沟通“不顺畅” 。

做过的题就说做过,不要故意说没做过。因为他既然已经怀疑你做过了,即使你说没有,他也无法打消这个顾虑,还不如让他换题。

令狐冲主讲的春招公益讲座《 FB 面试官揭露面试技巧:如何做到刷 100 题胜过别人刷 300 题》中包含了我刚才讲到的全部内容,此外,关于提升代码质量的 12 个技巧、在面试中如何和面试官有效的沟通、如何用最快的速度刷最核心的题目等算法面试的方方面面,令狐冲在前四节试听课上讲得很清楚了,感兴趣的朋友可以去试听体验一下~

756 次点击
所在节点    推广
1 条回复
qq73666
2021-04-02 09:59:10 +08:00
刷题==编程??见识到了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/767433

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX