你应该从哪门编程语言开始学习?——任何一门都可以!
直接开始使用任何一种流行的语言写代码都可以,不论是Python,Java,Javascript,Golang,Perl,C,Ruby,Julia,Haskell,还是PHP。流行的那几种语言几乎都是多用途的,任何一门语言都可以用来做任何事情,所以选哪一种都没错。随着代码量的增多,你会发现编程语言其实就像人的语言一样,你需要根据自己的需要来决定学习哪一种。
如果你想在游戏领域扎根,建议你学C++,而对于客户端的Web,比如说浏览器来说——JS是唯一的选择,数据科学领域则由Python 和 R语言统治。
你应该从何处着手开始学习呢?——从这里开始!
就在你现在看着的这个浏览器,你正在阅读的地方就可以开始。到了今天,互联网已经能够提供最详尽的学习资源,它是你能接触到的最大的图书馆,也是能够最大化促进教育公平的工具。在我们生活的这个时代,你在任何时刻都只需轻轻地点击一下鼠标就能即刻获取到世界上所有的知识。
在你想付费学习任何课程之前,请先把所有能接触到的免费资源看完用完。你所需要的大部分学习资料其实都能免费得到。从Youtube开始,想学什么就搜什么,然后开始疯狂地看。试着报名参加在线课程,你可以跟着课程一起写代码,甚至做得更好,尝试将你自己的小项目融入学习过程,最大限度地提高你的学习效果。
你要用代码实现什么?——什么都可以!
你想写什么就写什么吧,不论是一个游戏,一个网站,一个APP,一个电路板上的IoT电路,一个仿真ERP,像解谜那样的数独或hangman,任何你想写的都可以。
不要妄图用自己第一次的代码创业,如果你已经这样做了,那我给你点赞,但是刚开始写代码最好还是不带目的地去做,随便用代码实现什么都可以!
竞争性编程是必要的吗?——不是。
算法考试是考察一个人逻辑思维和解决问题能力的一种实用方法,这也是为什么大家都偏向于使用这种方法的原因,但你能用来突出自己编程能力事情还有很多。了解人们面临的现实世界问题,培养自己抽象化以及解决问题的能力。作为一个开发者,工作远远不只意味着和机器之间的交流。在现实生活中,人的因素会参与其中,而培养软技能也是必不可少的!
“擅长编程比赛与工作上的优秀程度呈负相关”
在将机器学习应用于在Google招聘数据后,从短期来看,它可以在大学校招的激烈竞争中提供优势,但从长远来看,没有人把缺乏竞争性编程经验看做自己职业生涯上的障碍!它确实对培养编程能力有一定的帮助。但在现实生活中,编程工作的很大一部分内容就在于不断地碰壁,一边碰壁一边尝试。
众所周知,印度人由于其严格的教育体系,以及有缺陷的“狼多肉少”或零和博弈思维,比如“抢凳子”的心态,使他们具有超强的竞争意识。但在编程界这种思维方式不会让你走得太远!
你必须接受一定的培训,拥有一个学位或受过指导吗?——不完全是这样!
是的,如果有人能指导你,这肯定是很好的,但这不是必要条件,你可以自己指导自己。是的,你会跌跌撞撞,经历很多次的失败(也许会比你有指导的情况下的失败多很多次),犯很多愚蠢的错误,等等。但是,这都没关系!