首页 > 编程语言 >数学不好的人适合学编程

数学不好的人适合学编程

时间:2023-07-16 15:55:06浏览次数:43  
标签:思维 计算机 编程 适合 算法 数学 自学

数学不好的人适合学编程

  白日梦 无知  

说起数学,说多了都是泪。从小到大,数学都差。混到高中,还是漏中。高二时,听数学老师说,学习计算机,数学很重要。我很是激动。虽然我想学好,但是不知道为什么总是学不好。最后阴差阳错,竟然上大学不是计算机专业(http://www.cnitedu.cn)。不说那么多,说多了都是泪呀。泪崩了我。哈哈哈哈。

本科确实没有上计算机,本科农学,学习农业各种技术,对于数学,要求不高,学了点学校自编的所谓的高数。然后学了统计学,学的很渣。似乎我觉得我数学就是没有天赋,学不好吧。看到那些数学公式什么的,恐数症啊我!实在是对计算机有兴趣,后来还是慢慢不知不觉的就开始自学计算机了。后来还决定跨考计算机的研究生了。可能是导演不让我的人生那么顺利吧,哈哈哈,没考上。其实也是很自然的。时间不够是主要一方面,难度确实很大,科目又多,尽管我花了很多力气,还差很多。其中,最为刻骨铭心的是数学。因为农学没有真正学过完整的高数。而全国计算机统考是要考数学A的。那么我就得从头到尾自学一遍。

看到前面的铺垫,嘿嘿,到现在这里,数学如何学,你猜得到吗?因为课程多,时间紧,也就没有时间去跟其他专业上课,太慢了。所以,这是一个问题,必须解决。怎么办?没办法,凉拌。那就全部自学咯。我不知道我哪来的勇气,竟敢直接自学高数A!!甚至完全自学计算机!!不管怎么样,或许就是那一份天真和坚持吧,最大的动力就是兴趣。有了计算机的兴趣,我对数学一忍再忍,学的咬牙切齿,至今都历历在目。

我知道刚开始学数学,很多名词都不懂,所以,我就先学一遍,熟悉所有名词和基本概念。你也想得到,学了后面忘了前面,那是再平常不过的事了。本来数学就差了。我不是天才,我只是一份无畏的天真,就这样,花了一段时间学了一遍。就看教科书,熟悉了一遍。而学习的地点就是图书馆,时间就是每天晚上。我可以把这段时间成为魔鬼时间。每次去图书馆时,都感觉一种强烈的恐惧和痛苦。但是我还是必须去学,不学,那么就没有希望,也没有资格跟自己憧憬未来。所以,还是坚持学了。所幸,坚持下来了,学了一遍,总算是熟悉了,可是这才是刚刚开始。这个时候,很多机械专业等同学,也是在复习,而我才是学习一遍完毕而已,而他们已经复习一到两遍了。我的天,我才刚刚自学完毕。效果,那不用说。我又不是天才,能怎么样,只能说我见过数学A的市面了。压力山大山大的。后来也就开始做题,那一本复习资料做题,做到后面忘了前面,我也是没有办法,只能尽快多学点。这样也就过完了一遍。最后就是做题,买了真题试卷,结果发现很多都不会做,动不了手。也就只有再复习复习。就这样,稀里糊涂的又买了一本资料,比较薄的,练习做题。很行,有些题目还是能做了。

到考试结果出来时,考了75分的样子,刚好及格的样子。这样也是对我学习数学的一个肯定吧。虽然不高,也算是没有垫底,也是对我完全自学高数的一个肯定吧。有这个成绩,对我来说,已经知足了。

而后来,我也总结出了为什么我数学学不好了。一是记忆力不好,试卷有很多差不多的题目,可是不会做,虽然做过,但是记不住。如果你说不需要记住,那么此时就是第二个,我的数学思维太差,运算能力太差了。这个是我自学计算机的过程中大量的思考总结出来的。我不能不说,这个是应试教育的失败,成天就知道考试,而思维,没有得到开发,因此,思维就很死,没有创新,没有真正的思维,而只有机械的套公式做题,就算有那么点数学思维,也只是一些人对数学比较有天分。但是,我觉得这些都是可以培养出来的。只是老师都没有培养罢了。

然而,计算机我也是完全自学的,然而,效果还不错。考出的成绩,和一般的计算机专业的学生差不多,只是我的其他各个科目没有突出的,导致都是偏低。这个我们就不用关注了。写这么多,只是想告诉你,我数学很差,但是我计算机学的还是可以的。不敢说是大神,但是不也是烂尾货。而在自学计算机的过程中,完全独立自主,也让我学到了老师没法教的对于我一辈子都很有用的东西--学会了思考。

而在后面学习编程时,大量发挥了思考优势,学习也会快多了且深入很多。当然,还不够,我还要继续完善。然而,在编程学习中和使用中,不是大量的使用数学做什么。很重要的一点就是思维。我一个人开发过一些小软件,没有其他人的参与,各种功能也是实现了。不管是不是山寨的做法,但是至少都能够完整的实现。这里并没有用什么高深的技术,很多时候就是一种思维流程。

而编程也是分很多层次的。当然也有完全用数学编程的。像各种数学分析、搜索引擎、科学计算等都是纯数学思维计算的,像这种层次的,我今生无缘研究了。因为我的数学,泪呀。

不过不用沮丧,我们开发软件,并不是都是做这些数学计算的。虽然会用到数学计算,但是根本就不用我们去写这些算法。各个大神写好了库,供我们使用,这样我们就可以实现很多牛叉的功能,但是我们却不需要懂这些算法如何实现的。

普通的编程,基本都是使用这个库使用那个库或者这个框架那个框架的。我们需要学的,就是懂计算机就行了。怎么说呢?学习计算机相当于是文科,或者是半文半理的。各种书中,大量的不是讲如何计算一个东西,而是讲计算机如何运作,比如计算机组成原理,以及人们如何去实现人容易理解的东西,又可以让计算机好实现的,比如数据结构。而编程方面,也是讲,如何与计算机交流,比如写代码。所以,计算机算是一个“机文”学科,而不是人文学科,更不是数学类学科。而在计算机这个领域里,所有的算法,多数是基于生活的基于非数学的算法,比如进程调度磁盘调度等等。学了这些后,你会发现,你可以更好的理解生活,而不是远离生活,而数学刚好相反,数学把世界抽象化了,抽象成了一个公式,我们无论如何也不能接受生活就是一个公式,对吧。

与计算机打交道,其实就需要懂计算机。平常我们使用计算机时,点点鼠标,就是打交道了。不过这个是很表面的,这样根本就不算懂计算机。而真正懂计算机,应该是学了编程之后,才能真正了解计算机。编写代码就是与计算机交流很接近的层次了,最为接近的就是写机器代码了,不过,现在应该会写的不多了吧,或者根本就没有了。

编程里的各种语法,通过编译器解释,最终转化为计算机能懂的语言,我们就实现了与计算机对话。就好比我们请一个翻译,与国外人交流一样。要想交流的很好,你就要懂他的世界文化。所以,你要懂计算机组成原理、要懂得电子电路,要懂得操作系统,如果这些都不懂,连进程线程都不知道,你敢说你懂么?这些是很基础的技术,同时也是所有计算机都有的特点,所以,不管是什么计算机,现今的计算机都具备这些特点。而我们要学这些东西,都不是数学,甚至与数学扯不上关系,虽然是有数学在服务于计算机,但不等于,数学不好就学不好计算机的说法。

而听到很多人说,数学很牛叉的人,计算机一定会学的很牛叉。我看不见得。计算机不等于数学。只不过,数学好的人,对于理解各种算法会快一些,仅此而已。而计算数学不好,这些算法也是可以容易理解的,关键是看时间花的够不够,基础扎不扎实。

对于平常的开发来说,会使用库,理解库的整个机制,用不上什么算法,都是一些逻辑思维流程。我们平时自己写的小算法,其实也是平时写多了,想多了,就有了积累,以后再需要的时候,也就是温故知新罢了。而学习计算机恰好可以锻炼你的思维,计算机里集合了大量的大师的思维,简直就是人类智慧的宝库,只要你有兴趣学,坚持学,你也会有所成就,而如果只是为了找份工作,那就是另当别论了。不过也就是学学一些框架和库的使用罢了。而真正要学好,还是要提高自己的思维,吸收能吸收的任何思维优点,为我所用!这就是所谓的站在巨人的肩膀上面,而不是使用巨人写出的东西你拿来用。最有用的是那一套思想,这才是最有价值的,只有站在巨人思想的巅峰,你才会是另一个巨人,当然,不是巨人怪,哈哈哈。

当然,我也只不过是很普通的人,只是因为我的一段宝贵的经历,让我学到了很多东西,在这里将这些经验分享给你,并不是什么了不起的,只是想给你一份启发罢了。同时也是给你一份鼓励,看到我那么渣的数学,依然时坚持在软件开发行业活了两年之久,还会更长,学习计算机的基础也比较扎实,我想你也不会再为数学不好而疑惑重重吧,至少你数学还比我强哦。

加油吧,我只能说到这了。剩下的路,靠你自己坚持和奋斗。不过,我一直在这里,为你打气,因为我还在不停的努力,力求有所成就!共勉吧,同志!

标签:思维,计算机,编程,适合,算法,数学,自学
From: https://www.cnblogs.com/wangprince2017/p/17557961.html

相关文章

  • 后端编程开发 --- 学习路线
    1.选择一门后端语言。比如脚本语言,python、ruby、php、nodejs(typescript)。函数语言,elixir、scala、erlang、clojure、haskell。其他语言,java,.net,golang,rust。新人推荐nodejs或php。2.写一些入门程序。比如爬虫,json解析,自动化任务。3.学习依赖包管理和项目创建。比如java的maven,p......
  • cto网络工程师:英语、数学
    英语:6%考试分值5分1、软考英语都考什么:直接从RFC文档内随便空出5个空要求大家完形填空先看后两个,然后一篇一篇去看三十篇文章可以百度翻译   数学:指数(有一半的概念都要用到指数的概念)、对数指数:    对数:   ......
  • [数学]乘法逆元
    1.定义逆元素,是指一个可以取消另一给定元素运算的元素,在数学里,逆元素广义化了加法中的加法逆元和乘法中的倒数。如果说a在模p意义下的乘法逆元是x,那么ax≡1(modp)2.求逆元的方法·扩展欧几里得同余方程的转化扩展欧几里得的求解代码如下#include<bits/stdc++......
  • 网络编程 p1 网络基础
    网络基础网络通信概念:两台设备之间通过网络实现数据传输;网络通信:将数据通过网络从一台设备传输到另一台设备;java.net包下提供了一系列的类或接口,供程序员使用,完成网络通信;网络概念:两台或多台设备通过一定物理设备连接起来构成了网络;根据网络的覆盖范围不同,对网络进行分......
  • 《架构整洁之道》学习笔记 Part 2 编程范式
    计算机编程发展至今,一共只有三个编程范式:结构化编程面向对象编程函数式编程编程范式和软件架构的关系结构化编程是各个模块的算法实现基础多态(面向对象编程)是跨越架构边界的手段函数式编程是规范和限制数据存放位置与访问权限的手段软件架构的三大关注重点:功能性、组......
  • 高等数学暑假打卡行动 --【Day 1】-- 初等函数回顾+极限概念
    今日重点基本初等函数和初等函数区别基本初等函数包括:幂函数\(y=x^a\)、指数函数\(y=a^x\)、对数函数\(y=log_ax\)、三角函数\(y=sinx,y=cosx,y=secx,y=cscx\)和反三角函数\(y=arcsinx,y=arccosx,y=arctanx,y=arccotx\),多项式函数\(a_nx^n+a_{n-1}x^{n+1}+...+a_1x+......
  • Python 并发编程之IO模型(转载)
    Python并发编程之IO模型https://www.cnblogs.com/linhaifeng/articles/7454717.htmlIO模型介绍为了更好地了解IO模型,我们需要事先回顾下:同步、异步、阻塞、非阻塞同步(synchronous)IO和异步(asynchronous)IO,阻塞(blocking)IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别......
  • 【雕爷学编程】Arduino动手做(02)---光敏电阻模块3
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • 【雕爷学编程】Arduino动手做(02)---光敏电阻模块2
    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞......
  • OI数学入门
    模运算//加法x=(a+b)%p;x=(0ll+a+b+c)%p;x=((a+b)%p+c)%p;//减法x=((a-b)%p+p)%p;//乘法x=1ll*a*b%p;x=1ll*a*b%p*c%p;高精度:正数的高精度读入,输出,储存,和\(+,-,\times\)运算。代码:#include<bits/stdc++.h>usingnamespacestd;constintMAXN=1e5+10;struct......