之前有小姐姐问我刷题之前需要准备些什么,其实这个因人而异,对于很多正统computer science专业或至少修过算法和数据结构的人来说,大概什么都不需要准备,直接上手刷题就好。今天来跟大家分享一下对于转专业小白,准备以下几点,我觉得就可以开始动手刷题啦。
🥇 至少会一门programming language。Python,Java,C,C++,Scala……编程语言数不胜数,只要至少会一门就好。
🥇 了解基本的算法/数据结构。不需要知道特别复杂的数据结构,但是基本的比如array, stack, queue, hashmap, tree等等,至少要知道原理。
🥇 在心里做好持久战的准备。第一次刷题对我来说是非常打击的,很多medium和hard的题我完全没有思路,有时甚至看一遍答案也不会写,这些都非常正常,心态摆正,这道题现在不会没关系,学会解法和思路,下次再遇到这道题会写就好。
其实很多时候1和2也是因人而异,如果你是实践类型的选手,喜欢learn on the job,我建议对编程语言和算法/数据结构有个基本了解,就可以上手刷题了。Leetcode的一个好处是可以按照data structure的tag来做题,归类做得还算可以,在做每个data structure下面的题的时候,再仔细做归纳总结,有时候看看讨论区的高票帖子,会有不一样的思路,很多都非常值得借鉴。
如果你是喜欢打牢基础再进行上层建筑的选手,好好学习数据结构,至少知道这个data structure是怎么implement的,会非常有帮助。下面推荐一个我曾经上过的网课,对我来讲很有帮助。
✨ Berkeley CS61B Data Structures
这门课程一直都是非常经典的数据结构课,在油管上就能找到lecture视频,我学的是Josh Hug的版本,个人非常喜欢他讲课的节奏和讲解的方式。这门数据结构课是用Java作为编程语言,还可以在github上clone下来课程的repo,做课后作业。整个跟下来非常有收获。如果有Java语言基础的小伙伴,建议一定要学一下这门课程。
对于还不熟悉编程语言的小伙伴,我建议从Python或者Java入手开始学习。我自己其实在之前会计研究生的时候有修过一门Java课程,不过当时因为并不觉得自己会跟写代码有什么关系,就没怎么上心好好学(简直悔不当初),我第一次开始刷题时也是用Java刷的。后来进入到我的数据科学研究生项目的时候开始写很多Python,于是在正式找工作的准备时也就开始用Python刷题了。如果想上手Java,同样推荐前面的Berkeley CS61B。如果想上手Python,可以跟Berkeley CS61A,也可以先从Coursera上面的Python for everyone这门online课程跟起。
以上!不知道大家喜不喜欢看这种类型的分享,关于刷题/找工作/转码转数据科学我能说一大堆,如果喜欢的话请给我留言,这样才有动力继续写呀😘
最新评论 15
:想问作者是在读研期间转cs专业的吗?
:這個系列超棒!!必須支持!
:兔子写得很详细 我在做数据分析相关的工作 也想补一补算法相关的课 谢谢分享
:谢谢胖达!希望有帮助!coursera上面也有一门python data structure,我觉得讲得有点浅,但是可以没事溜着看!
回复 @丢掉气味的兔子:嗯嗯好哒 记下了!
:太赞了!求介绍转码合适的简历project
:好嘞。mark在to do list上!
:这个系列可以继续!!太爱看了!
:笔芯椰子。会好好写这个系列!争取吸引非转码人士哈哈
:太有帮助了!感谢兔子分享这些~我刚开始刷了two sum,虽然是用brute force还是最简单的题 还想问一下你的数据科学背景对你找SDE工作有帮助吗?
:我觉得还是有的!不过这个可以说好多哈哈,inshort我觉得做码农其实也需要数据分析能力,当然跟不同的team做的事情也有关系。面试的时候一些machine learning modeling这些对我在讲proj的时候也有帮助!
回复 @小酒窝Jinnie啊:能找到自己喜欢的方向好棒呀。我感觉我还是迷迷糊糊不知道自己喜欢啥。这一点上特别迷茫
:请问python你用了多久学会啊?
:哈哈这个问题太模糊啦。【学会】如果是指入门,会简单语法的话,我觉得大概几个星期就可以了,但是背后还有更多的东西呀