源:http://www.zhihu.com/question/19562626
评:
看这问题看得我心痒痒。存了四天,决心快下班儿这会答了。
先旁敲侧击:
纽约时报上前些时间有一篇文章,题为《年龄只是一种心理作用吗?》,大意说的是一个心理学实验:把一群六七十岁的老年人接到一个疗养所,并且制造出60年代的场景,老人们返老还童了。
比如说,每天都有人给老人们送来1960年的报纸(真的是那时候的报纸的内容),用“先生”和“小姐”称呼他们,但是并不会把他们当作老人看——有行李?好的先生,请跟我走(我不会帮你拿的)。
神奇的是,经过一段时间,老人们的各项生理指标都提升了,比如说,力量指标,记忆指标等等。
《思考快与慢》里也有一些例子,接受prime (我就译为“暗示”吧)的人,会超着被暗示的方向反应。给一些非裔学生数学题做,题目一模一样,对于A组的学生,实验者暗示他们:亚裔更擅长数学题,别费劲儿了。对于B组的学生,他们被暗示:非裔咋了,咱还不是有马丁路德金。结果神奇的是,B组的成绩大大好于A组。
这些奇妙的实验给我最大的启示就是:凭什么我们需要自己加上一些显然会抑制自我的壁垒?难道你没有过这样的经历:在台上要演说的时候是不是一心想自己要紧张结果就真紧张了,在便池觉得自己尿不出来就真尿不出来了?看到女神的时候觉得自己要心慌结果就真的心慌了
所以你要自己先觉得晚了,那么你可能真的会因为"觉得晚"这个念头,而学得烂的...
再从笔者自己说起:
笔者17.9岁进大学开始编程,说早不早说晚不晚。为啥这不算早?因为学校有一群中学就开始NOI的保送生啊!可是你去问他们,他们也会告诉你,其实吧,他们也晚。为啥?因为清华有一群小学就开始NOI的保送生啊!
恰巧的是,我清楚地记得大一上的时候(对了这里顺便吐槽一下,谁特么安排的大一上C++啊,真是惨无人道)的某个下午,坐在图书馆,拿着这本书就在琢磨:我是不是学得太晚了...这特么都读不懂啊,但是保送的同学们怎么这么轻松(人家一直用用了好几年能不轻松吗)。注意哦楼主,那时候我才18岁。所以这至少说明,你不是一个人,26岁也没什么特别,有人18岁就觉得自己晚了,怎么拼得过人家初中就编程的呀!
事实证明,确实拼不过(别想从我这听到奋斗了一个学期我就把其它同学甩后面的鸡汤)。大一整一年的C++课都61和62那样子。
问题在于,你只比较了起点,你没人比较线段。
想想,他们编程熟练,技法娴熟,不是因为“他们开始得早”,而是他们“学得已经够久”。而学得够久这事儿,跟啥时候开始有任何关系呢?当然有!如果你现在82岁,再学5年,差不多手指再敲敲也该断了。问题是,同学,你才28啊。而现在看回去,我的水准应该跟当时保送的同学也齐平些了,当年我18岁的时候,编程水准是1,他们是80,因此我的水准是他们的1.25%。但是现在我的水准是80,他们是90,嘿!我就进步成了他们的88%! (下面会解释为什么他们的水准增加变慢了)
对于“本应该”早学这个问题,这么琢磨下去的话,是琢磨不到头的。
其实话说回来,知识使用的分布不是均匀的。比如说,学英文的话,最好赶紧把用的次数最多的5000个词背下来,你几乎可以无障碍跟人交流了。原因很简单,大多数跟人有关的分布都符合幂律,也就是80/20定律。你把5000个单词背完,它们在你日常生活中占的比重大约是95%的书面英语。甚至,背完前1000个单词,它们已经占了85%的口头英文。
同样,学编程也是一个道理。没有人要求你把后缀树学到和哈希表一样深度(前者是非常复杂的数据结构,后者是计算机入门课都会教到的概念),在日常工作中,你能2年遇到一次前者,那你的工作已经可以被考虑为挺有“技术含量”的了。但是后者差不多日常生活都会碰到,如果后者你花了两天时间熟练到不行,那么我可以很有自信地说,你已经掌握了5%的计算机知识!两天时间5%哦!(当然你要换算一下说40天就100%显然是不可能的,因为最后的0.1%可能会花你1年时间)。
因此,你现在26岁,花上一年两年时间,先把最常用的基础抓起来,数据结构,语言,算法,计算机思想,离散数学等等。这些学到熟练几乎可以让你找到份靠谱的工作了。之后在工作中,或者继续学习的过程中,慢慢接触那些比较难但是用得比较少的概念。如果真是有兴趣,我相信你是可以坚持下去的。然后呢,不就30岁?抬头纹都还看不出来,急什么。
恰巧我今年也26岁,这也是为什么看到这篇文章就有答的冲动的原因,推荐两篇文章跟你共勉。
一篇是Google Research总监(至少这是我上次听到他的title)的:十年学会编程。这篇文章教会我耐心和毅力。
最后在贴我的翻译之前,声明两点
1)以上的数字几乎都是概称,用举例用,请勿在数字上纠结,没有意义
2)版权所有,不允许以任何形式复制粘贴到其它地方
以及Quora上的对一个跟这个问题几乎一模一样的问题的回答,作者已经同意了我翻译过来,我就贴到下面,括号里加上我的注解。这篇文章有种无畏的闯劲儿(希望直接看英文的朋友点这里:Is it too late for me to be a programmer if I am already 28 and have no computer science background?)
问题标题:对于28岁的没有计算机背景的我,现在才学编程算太晚了吗?
问题介绍:我已经有了一个应用科学的硕士学位,但是我现在意识到我其实很想学习软件开发,成为一个程序员。我应该重新从本科开始学习计算机科学吗?
回答正文(作者: Barry Rountree, 亚里桑那大学博士,神经科学):
我今天是来唱红脸的!
对,没错,对你丫来说,就是太迟了!
曾几何时,你还年轻一些的时候,好像做什么事之前你从来没有问过别人:“我到底行不行?”。其实学编程不需要太多背影,可惜的是,它的确需要你不问自己“行不行”。而你现在问了,那么不好意思,你不行。
琢磨一下,一个ChromeBook大概花你1800块人民币。只要你好好捣鼓一下,你可以下载一套足够好用的软件(crouton)。你只要可以联着网,你就可以免费获取——几乎所有专业级程序员用的,一模一样的任何资料,文档。这些资料文档解释了所有东西,比如怎么用某些工具,以及某些工具怎样使用才能达到最佳效果(我猜作者这里指的是编程语言或者IDE)。
其实最难的一件事是,从哪里开始着手学习。但是注意,虽然你总可以找到更好的途径,但是其实并没有多坏的途径(指的是你得挑一条路子就开始学,不要担心你挑的路子不是所谓的“正统路子”或者“科班路子”)。你可以自己学,在你自己有空的时间学。另外唯一需要的,只是一个安静的地方来思考而已。如果你想加快学习进度,跟朋友一起学吧。
但是再回过头来,你一定不能养成问“我到底行不行”的习惯。如果你觉得学习13岁小孩都已经知道的东西会让你尴尬的话,那么你干脆别开始好了,因为你很快会发现1/3你的年纪的小孩子已经早就掌握了你要学的玩意。(这里跟我举的NOI保送生例子类似,想想吧,钢琴,吉他,数学,哪个东西不是有的小孩12岁就已经成大师级别了,所以你就要退却了?但是你没想过,又不是每个人都一定要成为大师才可以。取乎其上不也可以得之其中吗)
针对你的第二个问题:去大学学习计算机科学不会教你咋编程。请把大学里学的计算机当成“科学”,而不是药学学位(大概指的是偏向实用而不少讲求科学方法的学位)。计算机学科家琢磨的时编程类型,操作系统,和底层系统之类的细节和理论。而一个程序员琢磨的是她面前的程序,她面前的操作系统,和她面前的计算机(她只要琢磨着怎么把程序写出来就好了)。
程序员都是自己教会自己的。试着在你的屏幕上用程序画分形几何的图案(比如下面这样的)
你要是真自学到了这个程度的话,去拿个计算机的硕士学位吧,到时候你就超过只有学士学位和同等经历的本科生们了。
我35岁左右才开始念我的PhD(神经科学),然后42岁博士后才出站。直到最近开始读Quora上的问题我才意识到,原来有的人是会问“要是我现在去做X,是不是太晚太老了呀”。
-完-
分享到:
相关推荐
朝九晚六社畜一枚,只用了一个月就学会了python,并开始尝试接单。从一个连变量、基础语法、编程规范都不会的小白,到熟练运用。开始接单赚钱,刚开始赚的少一点,一单赚个100块左右。随着技能水平提升,现在一个月...
深度学习是机器学习的一个分支,是一种利用神经网络从数据中学习模式的能力,而机器学习则是指计算机具有无需明确编程就能学习的能力。深度学习作为深度神经网络的学习方法,通过对海量数据的复杂结构和特征的抽象...
呼伦贝尔市-扎兰屯市-街道行政区划_150783_Shp数据-wgs84坐标系.rar
text13届真题二.zip
街道级行政区划shp矢量数据,wgs84坐标系,下载直接使用
内容概要:本文详细介绍了如何使用WPF(Windows Presentation Foundation)实现逼真的工业组态软件中的流体管道动画。主要内容涵盖管道绘制、流体动画效果、动态速度控制以及性能优化等方面。首先,通过C#代码展示了如何使用几何图形和颜色动画创建动态变化的管道。接着,引入粒子系统和模糊效果来增强流体的真实感。为了实现流体速度的动态调整,文中提供了流速控制器的实现方法。此外,还讨论了基于帧刷新的性能优化技术和双重缓冲机制的应用。最后,文章提到了一些高级技巧,如Perlin噪声生成流速波动、粒子沿曲线运动、动态纹理等。 适合人群:对WPF开发感兴趣的中级及以上水平的开发者,尤其是那些希望深入了解WPF图形和动画特性的程序员。 使用场景及目标:适用于需要开发工业组态软件或其他涉及流体模拟应用的项目。主要目标是帮助开发者掌握如何使用WPF创建高效且视觉效果出色的流体动画。 其他说明:文中提供的代码片段可以直接应用于实际项目中,同时也鼓励读者进一步探索更多复杂的流体模拟技术。
HCIA-Datacom高阶:vlan、vlanif、单臂路由、静态路由、ospf综合实验
毕业论文 基于fpga的rs 232串口通讯逻辑设计说明书.doc
呼伦贝尔市-阿荣旗-街道行政区划_150721_Shp数据-wgs84坐标系.rar
内容概要:本文详细介绍了微电网中能源管理的随机博弈模型及其Python实现。首先,通过构建MicrogridEnv类来模拟多方博弈环境,每个智能体可以进行买卖操作并调整负荷。接着,引入了ET网络用于处理价格博弈,ADL网络用于负荷预测。这两个网络通过策略梯度协同优化,共同实现动态定价和负载调度。文中展示了具体的训练过程和实验结果,证明了该模型在波动环境下能够显著提高系统收益稳定性。此外,还讨论了动态定价策略的具体实现,包括供需平衡系数计算和价格波动修正项的设计。最后,通过多智能体交互代码展示了真实的博弈过程,并进行了对比实验,验证了模型的有效性和优越性。 适合人群:对微电网能源管理和强化学习感兴趣的科研人员、工程师和技术爱好者。 使用场景及目标:适用于研究和开发微电网能源管理系统,旨在通过动态定价和负荷调度优化能源利用效率,提高系统收益和稳定性。 其他说明:本文不仅提供了详细的代码实现,还深入探讨了模型背后的理论依据和设计思路,帮助读者全面理解微电网能源管理中的随机博弈机制。
皮秒分辨率的FPGA TDC技术研究.pdf
内容概要:本文档《Tomcat面试专题及答案.pdf》详细介绍了Tomcat服务器的相关知识点,涵盖配置、优化、部署、内存与垃圾回收调优、Session处理、JMS远程监控、专业分析工具、Session数目查看、内存使用情况监视、类加载与对象回收情况打印以及Tomcat的工作模式。文档首先讲解了Tomcat的默认端口及修改方法,随后深入探讨了四种Connector运行模式(bio、nio、aio、apr)及其参数配置。接着介绍了三种Web应用部署方式,并阐述了Tomcat容器创建Servlet实例的原理。在优化部分,重点讨论了连接配置、内存调优、垃圾回收策略的选择,还涉及了共享Session的多种处理方案。最后,文档概述了一个HTTP请求在Tomcat内部的完整处理流程。 适合人群:有一定Java开发经验,特别是Web开发背景的研发人员和技术专家。 使用场景及目标:①准备技术面试,尤其是针对Tomcat相关问题;②优化现有基于Tomcat的应用系统性能;③深入了解Tomcat架构及其工作原理,以更好地进行应用部署和维护。 其他说明:文档内容详实,既适合初学者入门学习,也适合有一定经验的开发者深入研究。建议读者在实际工作中结合自身环境进行针对性配置与优化实践。
软考中级-软件设计师知识点整理(一篇就过(3).html
内容概要:本文详细介绍了使用MATLAB进行数据预测的各种方法和技术细节,涵盖了现代的人工智能算法如LSTM、BP神经网络、RBF和Elman等,以及传统的统计方法如ARIMA和GM灰色预测。文中不仅提供了具体的代码实例,还分享了许多实用的经验和注意事项,强调了数据预处理的重要性。作者通过多个实际案例展示了不同算法在不同数据集上的表现差异,指出了选择合适算法的关键在于理解数据本身的特性。 适合人群:对时间序列预测感兴趣的科研人员、工程师以及有一定编程基础并希望深入理解MATLAB预测工具的学生。 使用场景及目标:适用于需要进行时间序列数据分析和预测的研究项目,旨在帮助读者掌握如何根据具体应用场景选择最合适的预测模型,并能够独立完成从数据准备到模型评估的全过程。 其他说明:文章特别提醒读者,在面对复杂多变的实际问题时,除了关注算法本身外,更要重视数据的质量和预处理步骤。此外,作者还提供了一些关于模型调优的小贴士,如调整LSTM层数、设置ARIMA参数等。
街道级行政区划shp数据,wgs84坐标系,直接使用。
内容概要:本文详细介绍了流水线贴膜机的控制系统设计,涵盖PLC与触摸屏的协同控制。具体包括上下气缸、夹紧气缸、输送带电机、贴膜伺服和旋转电机的控制逻辑。PLC程序实现了各部件的协调运作,而触摸屏提供了友好操作界面。文中不仅展示了完整的程序结构和关键代码片段,还分享了许多实际调试经验和常见问题解决方案。 适合人群:对工业自动化控制感兴趣的初学者,尤其是想要深入了解PLC编程和运动控制的技术人员。 使用场景及目标:适用于学习PLC编程、触摸屏设计、气缸和电机控制、伺服定位等基础知识。通过该项目,学习者可以掌握工业自动化系统的完整开发流程,理解各组件间的协作机制,并积累实际调试经验。 其他说明:项目支持博图V15.1及以上版本,强调模块化设计和良好的代码规范,有助于提高程序的可维护性和扩展性。文中提供的实例和技巧能够帮助初学者更好地理解和应用工业自动化控制技术。
内容概要:本文详细介绍了自主研发的工业级三维扫描系统,该系统利用二维激光雷达与高精度单轴云台相结合,实现了高效、精准的三维点云建模。文章重点阐述了云台控制、数据同步、点云重建、滤波算法以及多雷达适配等方面的技术细节。云台控制系统采用裸机驱动程序,确保角度定位误差小于0.03度;数据同步方面,通过时间戳双缓冲机制和优化的时间对齐算法,提高了数据处理速度;点云重建部分,提出了改进的坐标转换矩阵,显著提升了重建精度;针对工业环境的特点,开发了多种滤波算法,有效去除噪点;此外,系统支持多种雷达的动态配置,增强了灵活性和适应性。 适合人群:从事激光雷达SLAM研究、三维建图、工业自动化领域的研究人员和技术人员。 使用场景及目标:适用于矿山、冶金、建筑等复杂工业环境中的三维数据获取和建模任务,旨在提高测绘效率和精度,降低设备成本,增强系统的鲁棒性和可靠性。 其他说明:文中提供了大量的代码片段和实际应用场景案例,强调了技术创新和实用性的结合,展现了从硬件设计到软件算法的全面解决方案。
观测日期 位置 海洋位置名称(例如,马尔代夫大堡礁) 纬度 观测点纬度 经度 观测点经度 海温(°C) 海面温度(摄氏度) pH值 海水的酸度(较低意味着酸性更强,这是酸化的标志) 漂白严重程度 分类变量:无、低、中、高 观察到的物种 采样期间观察到的海洋物种数量 海洋热浪 布尔标志(真/假),指示SST是否>30°C 随着气候变化的加速,世界海洋正在经历重大变革。该数据集汇编了海面温度(SST)、pH值、珊瑚白化严重程度和生态关键海洋区物种观测的合成但真实的测量结果。它涵盖了2015年至2023年,模拟了海洋环境如何应对全球变暖、酸化和热浪。 该数据集的目标是支持机器学习、气候分析和生态建模
街道级行政区划shp数据,wgs84坐标系,直接下载使用。
赤峰市-敖汉旗-街道行政区划_150430_Shp数据-wgs84坐标系.rar