每个计算机系毕业的人,大都学过不少数学课,而且不少学校的计算机系的数学课,通常比一般的其他工科专业的数学要难一些,比如不上高等数学,而是学数学分析,不上线性代数而去上高等代数。但是,大部分毕业了后去做程序员的人,即使是所谓的名校计算机系毕业的,大都工作中也基本完全用不上学的那些数学,基本上,一半时间在CRUD,另一半时间在处理各类字符串、链表、Hash表,知道在面试中回答各种排序的时间复杂度是他们需要的数学的上线了。
而在念书的时候,虽然上大学之前,有不少内行的外行的,年老的年轻的人告诉你,数学很重要啊。但是,通常来说,各个学校的计算机系的同学么,爱好学习的,可能重视的也是Thinking in Java,C++ Primer之类的语言书,或者设计模式之类的架构书,抑或是算法与数据结构这些玩意儿;而像我这样天天偷懒放羊的,也不会把数学当作是什么重要的课程好好学习。所以,“数学真重要”,这句话,似乎对于大家来说,始终只是飘在天上的一句话,随风飘逝了。
于是,五年过去了,程序员们都有了不少的工作经验了,如果不是对工作毫无追求混吃等死的程序员的话,对于天天干活的语言,不论是Java还是C++应该都熟能生巧了,所谓的设计模式、重构、自动化测试等等也手到擒来了,大部分人的title上都加上了Senior了,牛一点的后面大概还跟上了一个Manager,然而,大家都开始考虑一个新的问题——“30岁以后怎么半?”,于是,转PM的转PM,考公务员的考公务员,像我这样仍然抱定——“你看人家美国Rohit都50了还不是天天写程序,别人想请还请不到的”的单纯想法的人越来越少了。然后,就算这些人,时不时也会觉得,自己天天干的超越CRUD的,所谓写点OO的框架,不也是很无聊的体力活么,写程序的人干两年谁都会干。于是,又有不少人下海创业了,多年以后,这些人中的大部分都会和我一样悲催的没有挣到前继续回来给大大小小的公司写程序。
其实,杯具往往发生在一开始,其实,要是咱们当年好好学习,才会发现,也许数学对于你当个不错的程序员来说,没那么重要,但是要再往上走一步,有一点点技术上的创新,就都是数学的事儿了。两年前,我在T公司,用Configurator处理某个程序的时候,开始有点儿意识到这一点了,于是,那阵子还花了不少时间重新翻了翻数理逻辑。今年,换了新工作后为了工作看点儿机器学习的东西的时候,终于发现,这全都是数学啊。当你要超越CRUD,做任何一点点有创新性的技术的时候(不说产品),最有机会遇到的问题,其实是数学问题。虽然从Spring到Hibernate到Rails之类的框架,或者Hadoop,HBase之类的分布式计算框架,也都是技术上的重大革新,但是这些框架类的程序,完善都是阶段性的,一旦出现后,很快都会有相应的Best Practice,又会成为熟练工种的活。而真正针对问题域的解答,反是每天都可以有些新鲜的想法、思路和方案的,这些,往往有个数学的门槛。所以如果你真是挺喜欢写程序的,而且希望自己一直能写更好玩更难的程序,总有一天,你要过了这一道坎儿。
所以我很是同意不知道是谁说得,如果你只想当个good programmer,那么数学不重要。但是如果你想当个great
programmer,那么数学很重要。在你手里只有锤子的时候,你看什么东西都会是个钉子,想想你如果没有学过算法和数据结构,可能你的大部分程序需要自己写排序的话,都会是傻傻地冒泡吧,反正对于大部分程序来说,在现在这么快的PC下,这点时间差别,大部分情况下,也就是让你等程序执行测试的时候,多个倒杯水的时间。但是很多新鲜,好玩,有挑战的问题,很多数学的概念没有的话,恐怕不是多等个倒水的时间了。而如果你过了这个门槛,你又会发现,一个崭新的世界,又到了你的面前。
回过头来,我说数学重要的话,那么重要的是哪些呢?大家常说的通常是离散数学,不过最近比较热门的机器学习这个方向,我目前看到的相关资料都大量依赖于线性代数和概率论,以及一点点微积分。所以,如果你和我一样,希望做点有追求的技术工作的话,开始花点时间学习数学吧。其实万事开头难,也许你和我一样,对着一堆公式符号,感到头晕眼花,但是如果真得按下心来,看上一个小时,这么坚持个一周,其实就会发现,这没啥难的,就当学门新的编程语言得了。
分享到:
相关推荐
内容概要:本文深入剖析了安川MP7系列工业控制系统的关键源码,重点介绍了运动轨迹规划、通信协议处理以及故障处理机制等方面的技术细节。通过对实际代码片段的解读,揭示了该系统在硬件寄存器直接访问、特殊功能码处理等方面的独特之处。同时,文中还分享了一些基于实践经验得出的重要参数设置及其背后的故事,如特定摩擦补偿系数的选择原因等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对安川产品有一定了解并希望深入了解其内部工作机制的专业人士。 使用场景及目标:帮助读者掌握安川MP7系列控制器的工作原理,提高对类似系统的维护能力和故障排查效率。对于想要进一步研究或二次开发该系统的开发者来说,也能提供宝贵的参考资料。 其他说明:文章不仅限于理论讲解,还包括了许多来自一线的实际案例和经验教训,使读者能够更好地理解和应用所学知识。
自动化测试与脚本开发_Python3_pynput_键盘鼠标操作录制执行代码生成工具_用于自动化测试_脚本录制_重复操作模拟_宏命令生成_提高工作效率_支持GUI界面_跨平台兼容_
嵌入式八股文面试题库资料知识宝典-深入分析Windows和Linux动态库应用异同.zip
嵌入式八股文面试题库资料知识宝典-C语言总结.zip
内容概要:本文详细探讨了风储直流微电网中母线电压控制的关键技术。首先介绍了风储直流微电网的背景和发展现状,强调了母线电压控制的重要性。接着阐述了永磁风机储能并网技术,解释了永磁风机如何通过直接驱动发电机将风能转化为电能,并确保与电网的同步性和稳定性。然后深入讨论了双闭环控制MPPT技术,这是一种通过内外两个闭环控制系统来实现实时调整发电机运行参数的技术,确保风机始终处于最大功率点附近。最后,文章探讨了储能控制母线电压平衡的方法,即通过储能系统的充放电操作来维持母线电压的稳定。结论部分指出,通过这些技术的有机结合,可以实现对风储直流微电网的有效管理和优化控制。 适合人群:从事新能源技术研发的专业人士、电气工程研究人员、风电系统工程师。 使用场景及目标:适用于希望深入了解风储直流微电网母线电压控制策略的研究人员和技术人员,旨在帮助他们掌握最新的控制技术和方法,以提高系统的稳定性和效率。 其他说明:文章还对未来风储直流微电网的发展进行了展望,指出了智能化和自动化的趋势,以及储能技术的进步对系统性能的影响。
嵌入式八股文面试题库资料知识宝典-C++object-oriented.zip
内容概要:文章详细介绍了HarmonyOS的目录结构及其重要性,从整体框架到核心目录的具体功能进行了全面剖析。HarmonyOS凭借其分布式架构和跨设备协同能力迅速崛起,成为全球操作系统领域的重要力量。文章首先概述了HarmonyOS的背景和发展现状,强调了目录结构对开发的重要性。接着,具体介绍了根目录文件、AppScope、entry和oh_modules等核心目录的功能和作用。例如,AppScope作为全局资源配置中心,存放应用级的配置文件和公共资源;entry目录是应用的核心入口,负责源代码和界面开发。此外,文章还对比了HarmonyOS与Android、iOS目录结构的异同,突出了HarmonyOS的独特优势。最后,通过旅游应用和电商应用的实际案例,展示了HarmonyOS目录结构在资源管理和代码组织方面的应用效果。; 适合人群:具备一定编程基础,尤其是对移动操作系统开发感兴趣的开发者,包括初学者和有一定经验的研发人员。; 使用场景及目标:①帮助开发者快速理解HarmonyOS的目录结构,提高开发效率;②为跨设备应用开发提供理论和技术支持;③通过实际案例学习资源管理和代码组织的最佳实践。; 其他说明:HarmonyOS的目录结构设计简洁明了,模块职责划分明确,有助于开发者更好地管理和组织代码和资源。随着万物互联时代的到来,HarmonyOS有望在开发便利性和生态建设方面取得更大进展,吸引更多开发者加入其生态系统。
内容概要:本文详细介绍了飞轮储能充放电控制的Simulink仿真模型,重点在于采用永磁同步电机的矢量控制和dq轴解耦控制策略。充电时,外环控制转速,内环控制dq轴电流;放电时,外环控制直流母线电压,内环同样控制dq轴电流。文中还讨论了硬件与软件环境的选择,以及仿真模型的调试与运行情况,最终得出该模型具有良好的跟随性能和波形完美度。 适用人群:从事电力电子系统、储能技术和Simulink仿真的研究人员和技术人员。 使用场景及目标:适用于需要对飞轮储能系统进行深入研究和仿真的场合,旨在提高充放电效率和稳定性,满足不同应用场景的需求。 其他说明:该仿真模型已调试完成,可以直接用于进一步的研究和实际应用,为未来的飞轮储能技术研发提供了有价值的参考。
嵌入式八股文面试题库资料知识宝典-北京瑞德方科技.zip
嵌入式八股文面试题库资料知识宝典-同方万维硬件测试工程师.zip
1_15套python PDF格式.zip
内容概要:本文详细介绍了三相三电平整流器的仿真过程及其性能分析。文中首先概述了三相三电平整流器的基本概念及其在电力系统中的重要作用,接着重点探讨了电压电流双闭环控制方式的工作原理和优势,以及SPWM调制技术的具体应用。通过仿真文件展示了整流器在不同条件下的响应情况,验证了这两种技术的有效性和优越性。最后,作者表达了对未来实际应用的期望。 适合人群:从事电力电子研究的技术人员、高校相关专业师生、对电力控制系统感兴趣的工程爱好者。 使用场景及目标:适用于希望深入了解三相三电平整流器工作原理和技术细节的研究人员;目标是在理论基础上掌握电压电流双闭环控制和SPWM调制的实际应用方法。 其他说明:本文提供的仅为仿真文件,未涉及实物实验数据。
嵌入式八股文面试题库资料知识宝典-恒光科技.zip
嵌入式八股文面试题库资料知识宝典-北京天华威视科技有限公司面试题.zip
嵌入式八股文面试题库资料知识宝典-微软研究院笔试题目的答案.zip
Arduino UART实验例程,开发板:正点原子EPS32S3,本人主页有详细实验说明可供参考。
嵌入式八股文面试题库资料知识宝典-朝歌数码.zip
嵌入式八股文面试题库资料知识宝典-Cortex系列.zip
嵌入式八股文面试题库资料知识宝典-中科中科长青笔试题.zip
内容概要:本文详细介绍了自适应巡航(ACC)控制和纵向跟车避撞控制的分层式控制策略。上层控制通过建立离散跟车运动学模型和基于反馈校正的跟车预测模型,获得期望加速度;下层控制则根据上层提供的数据计算期望制动压力和节气门开度。文中特别强调了引入松弛因子进行多目标优化求解,以及利用模糊控制动态调整权重系数的方法,如车间距误差权重系数q_Δd、两车相对速度权重系数q_vrel和自车加速度权重系数q_ar。通过这种方式,系统能够在复杂多变的道路环境中保持灵活性和稳定性。仿真结果显示,在前车以50~70km/h的正弦速度变化行驶的情况下,自车能够平稳跟车,各项参数变化平稳。 适合人群:从事智能车辆研究的技术人员、自动驾驶领域研究人员、高校相关专业师生。 使用场景及目标:适用于智能车辆系统的设计与开发,特别是需要提升ACC系统性能的研究项目。目标是提高驾驶的安全性、舒适性和经济性。 其他说明:实验基于Matlab/Simulink 2021a和Carsim 2019.0版本完成,提供了完整的运行视频和参考资料。