译者 | 喷鼻香槟超新星,责编 | 屠敏
头图 | CSDN 下载自东方 IC
出品 | CSDN(ID:CSDNnews)

以下为译文:
我在20岁从大学辍学,后来又作为共同创始人创办了一家深度科技创业公司,过去的5年对我来说是一段弯曲而又启迪心智的旅程。在这段韶光里,写代码一贯对我的生活发挥着积极浸染。
它帮助我找到了生活的目标,以及一个有很多志同道条约伙的环球社区。虽然我离完备搞清楚如何创业还有很远的间隔,但当我回顾自己刚开始时的一些紧张迷惑时,我才意识到很多其他人可能也曾经有过类似的疑问。
(长帖预警。所有不雅观点均为我的个人意见。其余,这篇帖子面向的是所有刚开始学习的开拓者和程序员。如果你已经是一个履历老道的开拓者了,那这篇文章对你来说,可能除了能带你重温一遍初学编程时的影象以外别无它用。)
你该当从哪门编程措辞开始学习?
任何一门都可以!
直接开始利用任何一种盛行的措辞写代码就可以,不论是Python,Java,Javascript,Golang,Perl,C,Ruby,Julia,Haskell,还是PHP。你很快就会创造它的优雅之处,也会跌跌撞撞地碰着它的怪脾气,并开始与这个措辞建立起一种亲密的相爱相杀的关系。你也会创造它背后超级棒的社区,而且大概你会爱上那里的朋友们!
盛行的那几种措辞险些都是多用场的,任何一门措辞都可以用来做任何事情(Javascrip现在都能用到卫星上了!
),以是选哪一种都没错。
随着代码量的增多,你会创造编程措辞实在就像人的措辞一样,你须要根据自己想定居的地点来决定学习哪一种。
如果你要在俄罗斯定居,在那里说英语的话大概也有人能听懂,但你如果说俄语的话就能担保所有人都能听懂了。相似的,如果你想在游戏领域扎根,建议你学C++,而对付客户真个Web,比如说浏览器来说——JS是唯一的选择,数据科学领域则由Python 和 R措辞统治。
说到底,是你在给机器下指令做一些事情,而这些指令可以用多种措辞来表达。要开始试着把措辞当成一个抽象层,它位于在你和机器之间,是一种互换的媒介。很快你就会创造,对编程艺术的研究远比措辞本身主要得多。
我强烈推举你听一听下面这个redhat播客,它能带你理解编程措辞的进化缘故原由和过程。(https://www.redhat.com/en/command-line-heroes/season-2/hello-world?ref=hackernoon.com)
太长不看系列——乃至你选Basic(我在11岁的时候就自学过它)我也不在乎,反正就先动手写一个挺酷的玩意儿出来就对啦!
你该当从何处动手开始学习呢?
从这里开始!
就在你现在看着的这个浏览器,你正在阅读的地方就可以开始。到了本日,互联网已经能够供应最详尽的学习资源,它是你能打仗到的最大的图书馆,也是能够最大化促进教诲公正的工具。在我们生活的这个时期,你在任何时候都只需轻轻地点击一下鼠标就能即刻获取到天下上所有的知识。
(图中笔墨大意:欢迎来到幼儿园!
“你现在的意思是说,我所接管的教诲的安装进程足足要花13年!
这个学校用的是哪门子的过期软件呀?”)
大概你可以跳过学校这一步,直接从互联网长进修。(开玩笑的。而大概我是负责的呢?)
从Youtube开始,想学什么就搜什么,然后开始猖獗地看。试着报名参加在线课程,你可以随着课程一起写代码,乃至做得更好,考试测验将你自己的小项目融入学习过程,最大限度地提高你的学习效果。
随着你的代码越写越多,你会创造,你最宝贵的履历并非来自于精心策划的教程,而是来自于凌晨三点还花费大量韶光沉浸在GitHub(阅读他人的开源代码和issue),Stack Overflow和官方文档里。真正的知识就隐蔽在这里,阔别所有的浮华和虚伪!
不过有一句话要提醒你,在你想付费学习任何课程之前,请先把所有能打仗到的免费资源看完用完。你会感到惊异,你所须要的大部分学习资料实在都能免费得到。戒备那些承诺有“收入分成协议”的“学院”,那些仅仅是糖衣炮制的骗局而已。
在我看来,专业的编程传授教化业务可能会阻碍学习者的好奇心,并仅仅将他们的天赋限定到“可雇佣”的模子里。
太长不看系列——不要费钱,去谷歌搜一下,上Youtube看一下,看完那些瓷实而丑陋的文档,这将是你漫长的学习之路中非常主要的一部分!
你要用代码实现什么?
什么都可以!
你想写什么就写什么吧,不论是一个游戏,一个网站,一个APP,一个电路板上的IoT电路,一个仿真ERP,像解谜那样的数独或hangman,任何你想写的,只要不是被迫写的就都可以。看看这个我很早以前写的井字棋游戏,凡事都要有个开头的。(https://kshitijpurwar.github.io/DumbTicTacToe/public/?ref=hackernoon.com)
我曾经用BASIC的switch case语句编写了个小字典,里面只有13个单词,输入单词的时候就会给出定义,是个挺没用的程序,但是对那时候幼小的我来说,帮助理清了一些基本的观点。
你会须要练习,学习如何理解语句管理,抽象的观点,逻辑的分离,DRY原则,掌握和数据的流动,模式和反模式,内部和外部的交互,系统设计等等。这些都是编程的根本模块,一旦节制了这些,你险些就能够设计和构建出任何东西了。学会在系统层面思考是一种关键的技能,毕竟你要么就自己创建一个别系,要么就须要在某个别系当中事情!
这一部分只有一个建议,请不要限定自己只做一些陈词谰言的项目,比如Twitter的情绪剖析,或者是你在课程中随着做的那种项目,而如果你要做这种项目的话,请在个中加入一些你自己的新意。像这些的老套项目散发着以简历加分为目的的恶臭,缺少原创性。开释你的创造力吧,写出一些奇怪而独特的东西,唯一的目的是学点东西,这可能大有裨益。
不要梦想用自己第一次的代码创业,如果你已经这样做了,那我给你点赞,但是刚开始写代码最好还是不带目的地去做,随便用代码实现什么都可以!
竞争性编程是必要的吗?
不是。
FAANG的追随者们会希望你相信这是通往最迷人事情的捷径,但事实并非如此。这就像拥有6块腹肌一样,你肯定看起来很酷,可能会在Uber找到一份事情,但也仅此而已了。
不想做是完备没有问题的。就像磨炼肌肉一样,是的,你可以举起50公斤,但你看到有多少人每天在大街上举重的?以是只要保持身体强健就好了,培养自己的技能、心态温柔应能力,碰着任何问题,你都该当绝不犹豫地上去办理它。
健壮分两种,健身房那种和实际功能性那种,要知道差异呦!
算法考试是稽核一个人逻辑思维和解决问题能力的一种实用方法,这也是为什么大家都倾向于利用这种方法的缘故原由,但你能用来突出自己编程能力事情还有很多。理解人们面临的现实天下问题,培养自己抽象化以及办理问题的能力。作为一个开拓者,事情远远不但意味着和机器之间的互换。在现实生活中,人的成分会参与个中,而培养软技能也是必不可少的!
如果你以为自己缺少竞争性编程实践而处于劣势,这在一定意义上的确是事实,但也只是对少数几家精英公司而言,对其他公司来说,基本的编程技能和学习能力就足够了!
“善于编程比赛与事情上的精良程度呈负干系”
在将机器学习运用于在Google招聘数据后,Peter Norvig得出这样的不雅观察结论。
从短期来看,它可以在大学校招的激烈竞争中供应上风,但从长远来看,没有人该当把缺少竞争性编程履历看做自己职业生涯上的障碍!
我并不是说不鼓励竞争性的编程,事实上,它确实对培养编程能力有一定的帮助。但在现实生活中,编程事情的很大一部分内容就在于不断地碰钉子,一边碰钉子一边考试测验。任何人如果以为有捷径可以跳过这种撞南墙的过程,那切实其实便是白日做梦。
众所周知,印度人由于其严格的教诲体系,以及有缺陷的“狼多肉少”或零和博弈思维,比如“抢凳子”的心态,使他们具有超强的竞争意识。但在编程界这种思维办法不会让你走得太远!
你必须接管过一定的培训,拥有一个学位或受过辅导吗?
不完备是这样!
是的,如果有人能辅导你,这肯定是很好的,但这不是必要条件,你可以自己辅导自己。是的,你会跌跌撞撞,经历很多次的失落败(大概会比你有辅导的情形下的失落败多很多次),犯很多屈曲的缺点,等等。但是,这都没紧要!
你能在失落败中学到的东西远比在成功中要多。——JAY Z
在生活中,你能从失落败中学到的东西要比成功更多,以是要学会拥抱失落败!
如果你思考得足够深,你会创造,这些疑虑实在不是你自己产生的,而是社会长期以来往你的大脑中贯注灌注的,你把这些疑虑接管了,误认为是你自己产生的。如果你想成为一名精良的程序员,你得学会在没有任何外界帮助的情形下独自作战,以是你须要年夜胆起来,而且要有耐心。
硅谷最具传奇色彩的故事都是关于耐心和一腔热血的,而无关血统背景。
从我自身来说,我不雅观察到一个很主要的征象,我们总是高估这个天下塑造我们的能力,而低估了我们自身奋斗的能力。这便是为什么我们总是试图找人辅导,缘故原由便是我们没有教会自己如何带着纪律性和激情亲切去自学!
让自己随着好奇心随性而为(传奇人物Paul Graham的《天才公车票理论》,The Bus Ticket theory of Genius),探索这个天下,而不要过于用力!
我赞许,学业和奇迹之间,的确有一种隐含的因果关系,但如果你让自己被激情所使令,做一些真正让你冲动的事情,你会在人生的道路上走得更远的。
如果这篇帖子让你产生了共鸣,或者帮助你在个人的旅程中点亮了一盏灯,那么我就很愉快了。
原文:https://hackernoon.com/5-things-i-wish-i-knew-when-learning-to-code-l1ai3z37
本文为 CSDN 翻译,转载请注明来源出处。
☞Python 爬取周杰伦《Mojito》MV 弹幕,这个评论亮了!
☞墨奇科技汤林鹏:如何用 AI 技能颠覆指纹识别?
☞Mybatis 逆向工程利用姿势不对文档全被清空,一怒之下写了个插件……
☞趣谈程序员真喷鼻香定律:源码即设计
☞干货 | 大口语彻底搞懂 HBase RowKey 详细设计
☞热评 | 当心新基建热潮中的区块链项目烂尾