12级新生经验交流会演讲草稿
演讲稿提纲:
1、开场白
2、取其精华去其糟粕
3、大学学习方法
a) 一科都不能挂
b) 得高分很容易
c) 培养自制力
d) 培养自学能力
4、软件工程学习方法
a) 最有前途的语言?
b) C——》C++——》C++/Java/C#(推荐Java)——》选择平台(先电脑,再手机或网站)
c) 逐渐培养出电脑一样的思维方式
d) 编程的内功
e) 可以做什么
5、迷茫的时候怎么办
a) 一定要自己做决定
b) 一定不能逃避
c) 一定要向别人征求意见
d) 一定要明确目标
e) 一定要尽可能的全面分析
f) 一定要学会舍得
g) 一定要制定计划
h) 一定不能后悔自己的决定
6、结束语
演讲稿:
各位同学:
//开场白
大家晚上好,我是软件091班张贺,很高兴今天能站在这里和大家分享我这几年的学习经验,这样挺好,既能把我自己的经验教训和你们一起分享,供大家做个参考,也算是我自己也可以总结一下我的这几年的收获的动力。
//去其糟粕取其精华
我讲的东西不一定全部正确,不过,我大学本科阶段也就学到了这些,关于下边我要讲的-软件工程要学什么?怎么学?这一部分内容,也是我根据自己对咱们软件工程各部分知识的理解来总结的。所以呢,还是希望大家去其糟粕取其精华,吸收对自己有用的部分。
关于各种讲座,什么创业的讲座,诚信做人的讲座,诸如此类。大家可以去听几场,有时候一个讲座有两三个小时,不要怕耽误时间,可能其中大部分内容都会让你觉得无聊,但是只要一场报告会你学到一句话,学到一种思考方式,开拓一个新的眼界,那你就赚了。而且在现场听一些教授、创业成功人士讲述自己的经历、经验,比你自己在网上、书上看他们的经历、经验,效果要好得多。
例子:1.创业讲座:0.9*0.9*0.9*0.9*0.9 = 0.59
2.数据挖掘讲座:写论文
//大学的学习方法是什么?
学习是个循序渐进的过程,不可能一蹴而就。小学、初中、高中的学习过程如此,咱们软件工程的学习过程也是如此,有共通之处,但是也有很明显的差异。如果把大学的学习看作是学习的话,那小学、初中、高中就算是游戏。为什么这么说呢?因为从小学目标是考个好初中,初中目标是考个好高中,高中目标是考个好大学,目标都很明确,而通往目标的路线也是固定的,一年级、二年级、三年级、。。。、六年级,初一、初二、初三,高一、高二、高三,学什么课程都是学校规定好了的,也都是必须要学好的,只有每一门都学好,才能升入理想的学校。但是大学中就不是这样了,因为课程的定位已经变了,以前所有的课程都为了一个目标:升学,现在就不一样了,那么多课程,也有一个共同的目标:一科都不能挂,追求完美——不挂科,态度问题,这是最低标准的目标,在这个基础上还要知道课程都是做什么的,要我说,有这么几类:
1.计算机相关知识(离散数学、编译原理、数值计算等)
2.软件专业基础(C、C++、计算机组成原理、操作系统等)
3.考研内容(高数、计算机组成原理、操作系统、数据结构等)
4.混学分专用(不能说)
这些课程的目标不同,并不代表成绩不重要,因为大学里边得高分很容易的,也不说拿出高中的多少努力了,只要你每节课都听,新接触的课程课下多下点功夫,实验认真做,考试前复习3天,上80分足够了。为什么大一拿了三等奖学金,而不是二等、一等。因为我那段时玩电脑了,五一买了电脑,一直玩地下城,一直玩到放暑假,这样大一下学期没好好听课、也没怎么复习。我买电脑本来是说为了学习的,想的挺好,就像以前放假拿书回家,我要好好看书,我要努力学习,其实书包都没打开过,放假回家什么样,返校时候还是啥样,是不是很多同学都对这个场景似曾相识啊,买电脑也差不多,说是学习,但是缺乏自制力。那我为什么又能得奖学金呢?因为我聪明吗?不是、虽然我没怎么复习,但是我每堂课都去。买电脑之后一个影响是考试没考好,影响学习,再有一个就是对入党有影响,我的入党日期就推迟了一次。大家也不要太相信自己自制力,最好过了四级再买。为什么学院让大家过了四级才能带电脑,其实四级和电脑并没有什么直接的联系,最主要的还是学院很相信你们——没有足够的自制力。说道写程序,可以去实验室写程序,也可以去图书馆写程序,还可以到自主学习中心写程序,网吧就不要去了,没有谁能在那里写程序。所以你们买电脑前要考虑清楚是不是真的有必要,因为我个人在这个上边吃过亏,才提及买电脑这种琐事的,就当给你们的一个反面教材吧。
这是我对大学学习的一个总结,那么至于咱们软件工程到底该怎么学呢?
//软件工程的学习方法是什么?
软件工程属于工科,对动手能力要求比较强。只要你从事IT相关工作,不管是开发还是科研,都要自己动手进行编码,编码就要使用编程语言,现在编程语言多如牛毛,比如C/C++、Java、C#、VB、还有脚本语言Python、JavaScript等,面对如此多的选择,眼花缭乱的,大家一定都想学一门最有前途的语言?大家现在不必考虑哪门语言最有前途,在以后大家不断学习的过程中,大家就会发现这个问题是没有任何意义的。因为语言只是工具,每一门语言都有自己的用武之地,使用什么工具,是根据你想做什么事情来决定的,而且,只要你学会了一门编程语言,再学其他的编程语言就很轻松自如了。
话说回来,有这么多语言供咱们选择,咱们如何去学习呢,我建议大家学习语言的路线:
C ——> C++ ——> C++/Java/C# (推荐Java)——>选择一个平台(先电脑,再手机或网站)——>深入学习。
【推荐的原因是我身边这样选择的人比较多,而且大部分老师也有相关项目】
C语言一定要学精通,不管你将来想做PC客户端开发、Android开发、IOS开发、嵌入式开发或网站开发等,你都要学好C语言,C语言作为计算机语言的入门语言再好不过了。为什么呢?因为在主流语言中,C语言是最简单的,学习C语言不需要掌握“面向对象”的概念,C语言也没有很多的“模版库”。C语言中最难的部分,应该就是“指针”了,而“指针”恰恰是理解计算机底层结构的精髓,如果大家看不懂指针,那就看两遍,看三遍,课本上指针那一章也没多少页,多看几遍也无妨,实在看不懂也无妨,等你们学习了计算机组成原理、操作系统等课程之后再回头来看指针,就会豁然开朗了。
好的程序员不是看书看出来的,俗话说“To say is one thing and to do is another”,尤其是写程序,可能你有思路,但是你不一定能动手写出来。所以,在我们学习的初期,一定要动手编程,先照着书上的代码敲,要有耐心,争取知道每句代码的意思。把书上的程序看懂之后,再做老师安排的实验题目,那就会轻松许多了。只是照着书本敲代码也很枯燥无聊,大家如果想多做些练习,可以去网上搜一下《C语言100例》,把那个里边的题目做一做,不用100道全部做完,只要你做完80道,你就熟练掌握C语言了。但是,还谈不上精通,因为程序内部的一些原理,只有学习了其他课程,才能够理解。
//编程 = 动手+动脑
另外呢,多编程,不仅要动手,天天Hello world也没什么用,如果不动脑筋,Hello 谁都不管用,让自己的脑子跟着程序运行,知道每一句代码都是做什么的,电脑的运行很简单,都是一步一步的,每一步都有自己的作用,跟着电脑运行,逐渐培养出电脑一样的思维方式。
学过C语言之后,就要开始着手学习C++了,为什么要学习C++?因为C语言是面向过程的编程语言,而C++是面向过程到面向对象的一个过渡,既有面向过程的部分,又有面向对象的部分。大家学习C++的时候,先不要急着去知道什么是面向对象,先把C++的语法、类熟悉一下,具体的学习方法,和C语言是一样的,照着书本敲代码,完成老师的作业,再把《C语言100例》用C++实现一遍。这时候呢,你已经了解C++的一部分并且稍微接触了一些面向对象的概念了,尽管可能你还没有深刻的理解面向对象的思想。
之后的一段时间,建议学一些关于MFC的知识,自己动手写一些小程序,比如计算器之类的。(玩玩)
大二之后呢,你可以在C++/Java/C#这三门语言中任选一门,这三门语言,只要学好其中一门即可,我推荐你们学习Java/C#。为什么呢?因为它们是纯面向对象的语言,有利于我们建立面向对象的思想,而且Java/C#语言的应用平台很广,电脑上的程序、手机上的程序、网站都可以使用Java/c#进行开发。
这就是编程语言的学习,这都是外功,还有内功呢。
什么是内功?内功决定你学习新知识的速度快慢、决定你写的程序的质量以及写程序的速度。
数据库:几乎所有的程序都需要用到数据库。
编译原理:计算机是怎么把我们的代码变成可以运行的程序的?
离散数学:这个是其他知识的基础,对离散数学有了一个了解,学习其他的知识(计算机组成原理、计算机网络、数据结构之类的)才能更轻松。
数据结构和算法:重中之重,没有哪个程序可以脱离数据结构和算法的,设计数据结构和算法就像玩脑筋急转弯,很有意思,很吸引人,10亿-30次。
计算机组成原理:不能局限于组装电脑,要深入了解电脑内部结构,进而与咱们编写的程序结合起来,知道咱们的程序是如何在计算机内部运行的。
操作系统:程序在哪里运行?并不是在硬件上,而是在操作系统上,操作系统是一个特殊的软件,把软件和硬件联系起来。还有呢?一台电脑为什么可以运行那么多程序?是怎样运行的?其中涉及的哲学理论也很多。
计算机网络:想不想写个QQ?想不想入侵学校教务处修改自己的信息?不止这些,只要是程序,基本都会涉及网络知识。
设计模式+面向对象程序设计方法:怎样把程序设计的更完美。
线性代数+概率论及其他数学知识:学习的初期,甚至工作前几年不会用到这些知识,但是数学知识的确是计算机专业后期很重要的内容,现在有了一个大概的了解,打好一个基础,以后再需要用到的时候会省下不少功夫。
英语:必须学好,阅读技术文档,相关资料,读中文虽然省事,但是不能领会到作者的本意,要想成为一个开发高手,一定要学好英语。
软件工程:一个软件的生死过程。【不仅是开发阶段,每个过程都需要我们专业的人才。】
上述课程是我能够想到的,至于其他课程也许很重要,但是我还没有发现其重要性。要是有不对的地方,还望见谅。
上边就是认为对内功影响较大的几门课程,现在大家是不是觉得软件工程需要学的东西很多?这就对了、这也正是咱们从学校里出来的学生和那些从培训机构出来的本质不同,因为和培训机构相比,咱们的学习体系是比较科学的。自己学也可以,但是不如跟着老师学,自己看书可能死活都看不懂,但是老师一讲,哦~原来就是这么回事啊。。。所以要充分利用大学中的资源——老师,图书馆,学长,学姐。
我们以后可以做什么?
Web开发、PC终端开发、移动终端开发、嵌入式开发、服务器开发、测试
Ps:更具体的工作岗位,可以看一下360、腾讯、百度等大公司的校园招聘(不是社会招聘),这种大公司招聘的岗位就比较全面了。
//迷茫的时候怎么办
大学不同于小学、初中、高中,大学是我们进入社会前的最后一个避风港,高中的时候,我们不需要为以后考虑太多,因为所有的路基本都是固定的,最终目标就一个:考上大学。但是到了大学之后,我们需要考虑的事情就有很多了,在大学期间,很多时候我们都会感到迷茫,很多时候我们都不知道自己的方向在哪里,即使看到了供你选择的方向,你又不知道该走哪条路,比如说:
刚开学的时候,很多人都会犹豫,我要不要进学生会?要不要竞选班委?要不要进社团?
有一部分同学大一下学期会纠结,我要不要转专业?计算机专业是否适合我?
大二时候就会纠结,我到底学哪一门语言呢?我要不要找老师做项目?
大三就会纠结,我要不要考研?
大四更纠结了,考研的同学会考虑,我要考哪个学校?我要报哪个专业?选哪个导师?找工作的就会纠结,我是找这个公司?还是找那个公司?我要应聘什么职位?
这么多问题,到底答案是什么?我们要怎么选择呢?我们要学会选择。
1.一定要自己做决定,你要意识到,现在你是已经步入大学了,只有你能做你自己的决定,你自己的路必须要你自己去选择;
2.一定不能逃避,有的人喜欢用逃避,这是麻痹自己,而逃避的结果,往往就失去了很多机会,比如找老师做项目,刚开始没什么人找老师做项目,就告诉自己,再等等;等到后来找老师做项目的人多了,就告诉自己,老师那里可能已经不招人了;即使去找老师做项目的,有人走到半路,就和自己说,我能力是不是不够;还有的同学不好意思去找老师,不知道怎么和老师说;这都是犹豫不决的表现,在这个过程中,不仅浪费了时间,还遭受心理上的折磨,还失去了锻炼的机会。
3.一定要向别人征求意见,有诗云“不识庐山真面目,只缘身在此山中”,俗话说:当局者迷旁观者清,当你思维混乱的时候,听听别人的意见,整理一下自己的思绪,然后再去解决困难,或许就轻松一些了。但是别人的意见,仅供参考,最终还是要结合你所面临的具体问题去具体分析,因为最了解你自己目标的人,只有你自己;
4.一定要明确目标,明确自己想要什么,有一个明确的目标,然后围绕这个目标分析各种选择的利弊,这个目标就是你走出迷雾的指南针,顺着自己的目标,分析那些让你困惑的因素。大学之前的目标都不是我们自己确定的,都是一种固定的模式——小学、初中、高中,然后升入大学。但是现在只能靠我们自己确定目标了,我们不断问自己想要什么。目标可以有长期目标、短期目标,比如现在你们可以为自己设定目标,上学期把C语言学会,把100例看完,期末不挂科,找个女朋友。
5.一定要尽可能的全面分析,往往在我们迷茫的时候,就是因为我们顾虑太多,影响我们判断的因素太多,所以我们要尽可能的全面分析各种因素,把情况考虑清楚,把利弊考虑清楚,这也有助于我们做最终的决定,尤其是当事实满足不了我们的欲望的时候,要学会割舍一些不必要的目标。还要学会分清主要、次要、必要、重要,自己想得到的东西里边,哪些是主要的,哪些是次要的,哪些是必要的,哪些是重要的;
6.一定要制定计划,有了明确的目标,还要制定合理的计划,有了计划,我们能够很清楚的知道自己走到哪一步了,下一步要做什么,这样做事情也有条理,还可以定期总结一下自己的进展,看看未来的计划是不是要需要改变。
7.一定不能后悔自己的决定,世上没有卖后悔药的,而且后悔是最没有意义的,与其后悔,不如反思一下自己哪里出了错误,人非圣贤孰能无过,记住这个教训,以后不要再犯同样的错误就好了。
上边是我迷茫的时候常用的方法,渐渐地也就逐渐养成做事的习惯了,也是我认为我大学中学到的最有用的,为什么这是最有用的,而不是专业知识呢?因为这是一种思想的转变。有同学会说,这些道理很简单吗,还用你说?道理的确很简单,说到道理,我们每个人都懂得不少道理,如果在纸上写,每个人都可以写上几十页,但是,道理不是用来说的,只有你做事的时候真真正正用道理去解决了问题,那你算真真正正明白了道理,这叫什么,这就叫“学以致用”,如果我们把从小到大学到的道理都彻底明白,那我们都是圣人了,但是为什么我们不是呢?因为我们做事的时候很少能用到我们脑子中所谓的道理。所以大家做事遇到困难,不管是学习中的还是生活中的,多多想想自己脑子中的道理,用自己学的东西去解决困难。
这就是我大学期间的一些经验,希望大家能够从中选择对自己有用的部分,做下参考。
谢谢!
附:
个人经验总结:
我们需要学什么内容?这些内容都需要学到什么程度?为什么要学这些内容?学这些内容需要什么基础?怎么学?
学什么 | 程度 | 为什么要学 | 需要什么基础 | 怎么学 |
C语言 | 掌握 | 建立面向过程的思想,知道一个程序是怎么样一步步运行的【job】 | 无 | 写程序 |
C++ | 熟悉 | 由面向过程思想到面向对象思想的过渡,注意C++和C的区别,尤其是C++中Class和C语言中struct的区别【job】 | C语言 | 写程序 |
JAVA/C#/C++ (推荐Java) | 掌握 | 进一步建立面向对象的思想,可以尝试摆脱控制台窗口程序(运行程序的那个黑框框),尝试写一些可视化程序(比如电脑中的计算器、时钟等)了 | C++ | 写程序 |
设计模式 | 熟悉 | 面向对象思想在程序中的体现,以后写程序尽可能多用设计模式 | Java/C#/C++ | 写程序 |
数据结构和算法 | 熟悉 | 每个程序都需要用到数据结构,设计一个好的数据结构和算法也是很有趣的。【job】 | C语言 | 写程序 |
计算机组成原理 | 熟悉 | 深入的了解计算机硬件部分【job】 | 数据结构 | 看书+实验 |
操作系统 | 熟悉 | 众多的应用程序是如何在一台计算机上运行的【job】 | 数据结构 | 看书+实验 |
计算机网络 | 熟悉 | 现在的应用程序,几乎没有哪个程序不涉及网络【job】 | 数据结构 | 看书+实验 |
编译原理 | 熟悉 | 计算机怎么把我们的代码翻译成可以运行的程序 | 数据结构 | 写程序 |
离散数学、数值计算 | 了解 | 了解一下 | 无 | 写程序 |
线性代数、高等数学、概率论 | 掌握 | 考研课程 | 无 | 看书+做题 |
注:上述内容为个人整理总结,仅供参考。带有【job】标志说明找工作的时候,笔试、面试一般都会涉及的内容。
我们以后可以做什么?
Web开发、PC终端开发、移动终端开发、嵌入式开发、服务器开发、测试
Ps:更具体的工作岗位,可以看一下360、腾讯、百度等大公司的校园招聘(不是社会招聘),这种大公司招聘的岗位就比较全面了。
我的建议:
1.积极参加各种竞赛,如程序设计竞赛,数学建模竞赛等。
2.加入ACM俱乐部,学习算法,开拓思维。
3.参加学院机器人足球队(需要较好的C/C++基础,熟悉Windows程序设计、MFC)
4.主动联系老师做一些开发项目(主要有手机软件开发、网站开发,也有其他类型的,但是我怎么不了解)