1.概况

博主的专业是数学与应用数学,简称应数。虽然后面跟了个应用数学,但是这个专业应该是本科阶段最接近数学的专业了。我认为这个专业使我具有如下的几个优势:

  1. 数学的学习使我具有较强的思维能力。编程本质上就是通过写代码的方式来解决实际的问题,而解决问题时,清晰的思路显得尤为重要。数学,比起其他学科,会更加抽象一些,对我锻炼思维能力颇有助益。
  2. 很多编程时遇到的实际问题,最终都可以转换成类似的数学问题。应数专业有一门必修课,叫做数学模型,讲述的是如何用抽象的数学符号、数学式子、图形等刻画客观世界的本质,从而转换成数学问题,最终用数学方法解决问题。而解决这些数学问题时,如果计算量较大,最终还是要使用编程的方式来解决。
  3. 学习数学使我养成了勤动手,爱分析和计算的好习惯。由于很多数学问题非常抽象,推理的过程很长,同时也有一定的计算量,这使得我必须勤于动手,通过纸笔画图、分析、计算。编程时,我也会先画图分析,写出程序的基本框架和流程,再动手敲代码,这使得我在编程的过程中事半功倍。

2.我为什么喜欢编程?

事情还得从我上中学讲起。当时,我父亲着力把我往数学方面去培养,他给我买了很多数学的科普书籍,比如《数学花园漫游记》《数学与哲学》《数学家的眼光》等等,试图培养我对数学的兴趣。他认为我天生就是一个学数学的料(至今我仍然不知道他为啥这么认为),这也是我后面专业报了数学的一个重要原因。但这些数学的书籍在讲述数学世界的美的同时,经常提到计算机的概念,这反而提起了我对计算机的兴趣,对编程的兴趣。

除此之外,我作为一个走读生,并没有受到学校太大的限制,并且让我很早就接触到了计算机。那是我上高中的时候,我父亲给我买了一个笔记本电脑。当然,他的初衷是让我利用计算机学习课程,比如一些网课,还有查阅资料、记电子笔记等等。但是对于一个几乎从来没有接触过电脑的中学生来说,这是个非常新奇的事物。中学阶段,课业压力重,学校的事情大部分都千篇一律,没有什么变化。所以,哪怕是一台小小的笔记本电脑,我也会在无聊的时候乱折腾。

这“折腾”起来就不得了了,很多事情我现在想起来都觉得很有意思。我喜欢往电脑上装各种软件,看看有什么奇怪的功能,然后再卸载掉。我也会进到系统的设置里面,胡乱捣鼓各种设置。我还会上网冲浪,看看网络上有什么新奇、有意思的东西。我还学会了用U盘重装系统,当我感到电脑已经被我搞的一团糟的时候,就把系统重装了。如此种种,让我认识到了计算机世界的神奇。

我在课余,还有一个重要爱好,就是下棋。这个棋就包括中国象棋、围棋还有五子棋等等,这些棋类我都会买几本书来系统学习,这就导致我的水平比普通人高出一点,已经在我生活的圈子里找不到对手了。那就只能到网络上和网友下棋,或者是跟电脑软件下棋。在我跟电脑软件下棋的时候,一旦把难度系数调高,就会感受到非常强的压迫感,无论如何都很难赢电脑,这又激发了我对棋软的兴趣,甚至去买一些付费软件(水平比免费软件要高出一大截)来测试,比如让两个软件互相下棋。不过更令我感兴趣的是,这些软件到底是如何计算的,为什么能做到每一步棋都如此稳、准、狠,令人摸不着头脑的同时又无懈可击。

在我买的棋类书籍中,有一两本书,是专门讲解人工智能如何下棋的。在计算机的世界中,一切都是数值的运算。以中国象棋为例,棋软会定义每个棋子的价值、棋子的位置带来的威胁度、棋子能走的位置是否通畅等等,并通过一些算法,计算出当前局面的分数,并不断用类似穷举的方式去推演接下来可能的走法。这些观点非常吸引当时对计算机还一无所知的我。

其实,我不知道这里面究竟哪件事是导火索,让我从此无可挽救的喜欢上编程。或许,计算机作为新兴的事物,本身就具有极强的魅力,所以喜欢上她并不需要理由。不过,中学期间并没有太多时间系统学习编程,具体的学习还是得等到上大学之后。

3.学习编程时,我会怎么做?

上了大学之后,我就可以发挥出我较强的自学能力这个优势了。我学习编程的主要途径就是阅读大佬的书籍,以及大量的练习。我想,这两件事情大家都会去做,而且应该也能做的挺不错。不过我想说的是另外两件事,那就是:

  1. 学习编程不只是编程,还要多去学习数学和英语。
  2. 学习编程,更重要的是编程的思维,画图+总结梳理是非常重要的。

3.1 数学和英语的重要性

作为一个数学系的学生,我想说的是,数学确实对编程有很大的帮助。我也结识了一些学习编程的朋友,根据我的观察,由于我对数学有自己的一些理解,在解决一些编程问题时会有不同的角度,这尤其体现在某些算法问题上。不过,更重要的还是学习数学对一个人思维的锻炼,我发现,数学学的好的同学,抽象思维的能力比普通人要强得多。数学是需要花专门的时间去学习的,不过网络上有很多免费的课程,市面上也有很多相关的教材,多去看看大佬是如何分析和思考问题的,反过来也会对编程有所帮助。

至于英语,我想不必多说。学习编程时,免不了要去看英文文档,如果看不懂的话,会走非常多的弯路。不过我认为,英语不用去专门花额外的时间去学,在看英文文档的同时,去查一查不认识的词就行了。我自认为英语学的还可以,所以需要查询的词汇比较少,如果你英语基础比较薄弱,那就多查查就行了。在技术文档里,很多词汇都会反复使用,所以到后面熟练了,感觉会比一开始好很多。

3.2 画图+梳理总结

画图!画图!画图!

写程序之前,请先画图,梳理清楚你想写什么,流程是怎么样,然后再动手去写代码。不然,很有可能是一波操作猛如虎,调bug调一上午。

举个数学中的例子,有时候你会觉得某些概念或者定理非常抽象,这个时候厉害点的老师就会告诉你,应该数形结合。而编程,很多时候也是有些抽象的,但是很少会像数学那么抽象。数学中有些定理实在是过于抽象,由于我水平不太够,实在是无法通过画图的方式来表述。但是编程中很多看似非常复杂的问题,一旦用图来表示,就会变得清晰明了,从而被解决。

当然,在梳理总结知识点的时候,也可以通过画图的方式。如果你觉得你没法准确的通过画图来表述某个知识点,那很有可能是因为你学的不够扎实。

总结

说一千道一万,关键还是要去付诸行动,比如每天抽出2~3个小时来学习编程,周末全天时间都来学习编程。我学习编程的目标还是为了更好的武装自己,既然有兴趣,又能在某个领域做出自己的贡献,何乐而不为呢。其实,我也没有想好未来要去哪家IT公司,但不管是去哪里,能充分发挥出我的价值,我就满意了。

本篇博客主要是讲下我对编程的一些看法,方便你更好的了解我。由于主要是发表一些看法,我也没有举一些具体的例子,如果想要和我一起学习编程,建议你去阅读下我其他的博客,我会尽量做到日更。

另外,如果对我有什么建议,可以直接在评论区提出,非常感谢大家。

作为一个数学专业的学生,我是怎么看待编程的?相关推荐

  1. 数学专业的学生的毕业论文是怎样的?

    当有人非常硬气地说出"我只要学,就什么都会"时,总会有人回怼到"高等数学可能不行".其实我个人认为,数学是一个美丽且浪漫的学科,从笛卡尔做梦梦见两只蚂蚁爬过的路 ...

  2. 作为一个计算机专业的学生,除了教材,这些书籍你读过多少?

    随着越来越多的人开始接触编程.学习编程,各种各样的编程书籍也开始大卖,不少同学反映很多的书籍对学习的帮助不大,那么哪些书籍对于学习编程的人来说是比较好的呢? 国外知名网站stackoverflow上曾 ...

  3. What every computer science major should know 每一个计算机专业的学生应该知道什么

    Given the expansive growth in the field, it's become challenging to discern what belongs in a modern ...

  4. 金融专业要学C语言吗,我是金融数学专业的学生,现在我要报一个计算机培...-卓优商学院问答...

    两者都有各自的优缺点,相看个人更看好哪方面.更多了解才能更好做出选择!金融如果学习金融专业需要具备以下几点:一.从学习知识.个人能力的方面进行探讨1.资质聪慧,具备良好的自身素质和应有的学习能力.2. ...

  5. 你们计算机专业的学生应该看看这篇文章

    你们计算机专业的学生应该看看这篇文章 现在计算机专业学生怎么这样 - 谈计算机毕业生的浮夸 来源: 站长信息网 评论 11 条 字体:[大 中 小] 收藏 投稿 前几天和一位做人力资源的朋友在饭店里面 ...

  6. 麦马计算机科学和麦马数学专业,积极配合 成功申请麦克马斯特大学数学专业...

    一.学生录取基本信息 学生姓名:N同学 录取院校:多伦多大学.麦克马斯特大学.女王大学 录取专业:数学 申请学位:本科 学校:国内某中学 GPA:84+ 考试成绩:雅思6.5+ 入学时间:2018年秋 ...

  7. 数学专业跨考计算机的多吗,数学专业跨专业考研的优势与劣势

    赵静 摘要:跨专业报考硕士研究生一直以来都是数学专业学生考研的一个选择. 由于其特殊学科特点,使得很多其它专业的一些导师对数学专业的学生并不排斥,甚至有些专业更是明确表明欢迎数学专业的毕业生报考.本文 ...

  8. 数学专业课程《实变函数论》学习总结

    我觉得我们学院的老师不是在给我们传授各种数学知识,而是在告诉我们一个道理:你的能量超乎你想象-- 何出此言?自打入院以来,别人学"高等数学",我们学"数学分析" ...

  9. 数学专业转CS容易吗?需要做哪些准备?

    写在前面 岛主发现有很多数学专业的同学想要跨保到计算机专业,那么针对本科是数学专业的同学,想要转计算机专业容易吗?需要做哪些准备呢?今天岛主来分析一下这个问题. 先说结论:数学专业跨保到计算机专业较为 ...

最新文章

  1. 俄罗斯最新开源的牛掰数据库ClickHouse
  2. 【Spring学习】spring动态配置多数据源
  3. Nginx-基础使用
  4. 怎么实现页面友好跳转_如何实现软,友好和一致的UI设计
  5. linux wamp,ubuntu wamp server ..................
  6. tensorflow随笔——LeNet网络
  7. jsf初学解决faces 中文输入乱码问题
  8. 【javaEE】——多线程进阶(锁策略:面试相关考点)04
  9. CPU测温软件怎么读出来的内核温度?有什么简单靠谱的读取
  10. html css 怎么画星形,使用CSS如何绘制五角星?(附代码)
  11. Hive元数据存储和表数据存储
  12. 十位语言大师给你的英语学习建议
  13. JDK版本对应其major.minor version,看这一篇就够啦(附java历史版本下载地址)
  14. Linux内核实现名称空间的创建
  15. matlab 删除workspace,MATLAB命令中清空workspace的是
  16. [Python] 散点图(二维散点图、三维散点图、散点图矩阵)
  17. android怎么美化ui,安卓教程第一期最终篇(转)systemui.apk最全修改美化
  18. PAT (Basic Level) Practice (中文)题目集合
  19. 最新动态 | 合宙MCU新品即将发布,LuatOS-SoC软硬件齐发力
  20. 看保罗-艾伦的《我用微软改变世界》有感,谈中国原创发明创业的苦逼环境!操蛋的中国VC!

热门文章

  1. solaris 的ZFS操作
  2. 171023_矩阵特征值和矩阵函数
  3. 黑盒测试方法—等价类划分法
  4. pytorch1.13启用caffe2
  5. Word学习笔记-使用技巧
  6. R语言条件逻辑回归-因变量是配对资料
  7. 流量Ⅰ--一文了解pcap网络数据包的结构?
  8. shell脚本增加回车符
  9. 【VC】accent conversion 口音转换论文
  10. python之NetworkX的使用