求学长学姐给点意见。
经常听到很多同学说,他一开始对计算机很感兴趣,但是随着大学里的学习,他越来越厌烦,甚至厌烦了!你这么想不是你的错!我们很难适应高中应试教育到大学自由学习的转变。到了大学,我们突然觉得解放了。没有老师强硬的指示,我们不知道怎么学,不知道学什么!所以,教育对我们是很不负责任的!
如果你在上大学之前就已经会编程了,那也没什么!但似乎很少有人像冯云一样从小接触编程教育!所以我们上大学之前几乎是从零开始的!
其实据我所知,刚上大学开始学编程有点晚。这么说的原因并不是简单编程难。努力的话,几年就能拿到,在公司的其他经历可以弥补!这里我想说的是,一个真正的程序员不仅要有强大的编程实力,还要有强大的理论后盾!你只会编程。没有强大的理论,你就不会把理论变成实际的代码,你就不会做出高效的、高技能的程序!在计算机理论、图论、人工智能等方面。都是很难的理论,但是如果你能有效的用在计算机领域,你的功德无量!很少有中国人能做到这一点,也没有几个程序员已经很厉害了。拥有高科技的理论和技术并加以应用就更难得了!
(在这里,我可以推荐一本书《游戏编程中的人工智能技术》。这本书摒弃了自动机、产生式、各种规则的传统人工智能理论,而是讲了更前沿的计算智能——生物遗传算法、人工神经网络!这本书不仅讲理论,还结合理论用c++语言实现了各种游戏程序!有时候抽象的理论是以数学为基础的,没有一定的数学基础很难理解,但是因为被数学证明是正确的,所以是可行的!能够用语言实现就更令人印象深刻了!)
所以,如果你热爱计算机,那么在大学之前就应该成为一名编程高手,大学之后主要是研究各种技术的实现和各种技术的学习。如果你把他留在工作中,可能会很困难。我的同学参加工作后很少继续看技术书,因为技术书很难懂,有的还有耐力和精力去做!如何在编程中实现这些是等着外国人,让我们来复制,这样我们的软件技术才能强大?
然而,在大学之前成为一名优秀的程序员几乎是不可能的。我们没有一个好的学习编程的环境,面对中考和高考的各种压力,我们几乎没有机会学习编程!其实小学,初中,高中,那些课程不需要像我们一样反复复习,反复制定,浪费很多时间。我们应该学什么?学会一种可以应对各种变化的技能,就是自学,学会思考,学会自己解决问题,学会团结协作!小学教育,口号很好,其实完全压制了这种学习方式!
因此,我们应该尽快在大学里营造一种热爱计算机的氛围!这个很难讲,当代大学生很迷茫!我不知道该怎么办。有些人知道要好好编程,但是光说不做!有的人,写了几段代码就出问题了,调试不了,就放弃了!大家都是这样,所以宿舍没人编程,渐渐的整个计算机学院都编程了!的确,我们的计算机老师对编程知之甚少。要知道中国的计算机引进和发展也不过20年。正是这样,老一辈在理论上建立了这些计算机。他们不会编程是很自然的。大学老师主要学理论,外教也是,因为理论太难了!
所以大学学编程完全要自己考。你要有信心和意愿学好它,这个过程是循序渐进的!用最快的方式找到自己对编程的爱好和兴趣!
我介绍几种方法和学习方法。希望你能找到兴趣。至少我知道。记住,如果你跌倒了,你应该站起来。
。
1。一定要和喜欢编程的人,或者擅长编程的人,或者经常编程的人在一起,经常讨论问题!新手编程会有很多问题,你自己很难解决。
2。我建议VB和C一起学习。这只是我的建议!我为什么这么说?如果刚开始只学C,会厌倦整天在DOS里没有图像!如果直接学窗口编程,会很难,所以我建议学VB,VB。很简单的语法,很快就能看到自己编程的图片,慢慢就会喜欢上编程了。没有图就没意思了,你说呢?反正我是这么认为的。你的文笔好坏,没有图片很难用眼睛直接看出来!VB是最简单的语言!没有C复杂的语法结构,程序出错的概率相对C来说很小,因为VB的封闭性很好,帮你解决了复杂的过程!其实JAVA,MFC,c#完全可以达到VB的效果,只是入门相对比较难!
嘉里3000江湖少侠6c是我们必须要学的。是非常接近底层的语言!如果你想成为大师,你应该学习这个!c是纯面向过程的语言,语法也不是很难。使用一年半左右就可以完全掌握。记住这个需要你练习,多做程序,主要是算法程序,最好把你课本上的习题都做好。几乎所有人都学过谭浩强的书,我一开始觉得很好,但是看了很多外国人打的很多外文书和代码,我只能说,这本书只能是你的开始,并不能让你更深层次的理解语言。但是你要问我初学者用什么书,我就介绍这本书。C的精髓在于指针。可以灵活使用指针,差不多相当于掌握了C语言。这是一种高效的语法支持,速度之快超乎你的想象。我很感动,在VB下慢了很多。
那么我们从VB中学到了什么呢?很简单,比如制作WINDOWS程序,使用控件,使用数据库等。还有很重要的一点是,你可以练习你所学的数据结构和各种计算机算法,这些很快就会用图形显示出来!你现在可以知道了。当你学习真正的WINDOWS编程时,你会对你以前所认识到的东西有深刻的理解。什么是API,什么是动态链接库,什么是控件,比如VB和MFC,是什么让我们用起来这么简单!
如果你能做到以上两点(加上你的专业,如果你努力的话,上课时间大概是1年),我想你会对计算机感兴趣的!你逐渐进入学习计算机的氛围!你接下来要做的有两个方向。一个是学好其他计算机课程。另外就是在巩固C语言的基础上学习c++或者WINDWOS编程!这两个谁先学无所谓。还记得你在大学学的10专业课吗,数学,离散数学,数据结构,编译原理,汇编,数据库,计算机体系结构,操作系统,计算机网络,软件工程。你应该尽力学好它们。这是整个计算机系统的本质。这些都是相互联系,相互关联的。一个科目你可能不懂,但是学了其他的你可能就懂了。记住,学好编程,一定要学好这些理论,以后会受益匪浅。
4。在你看来,学C或者VB都没有错,或者学WINDOWS编程的话,记得要有自己的想法,做一个可视化的小程序,一个小游戏或者一个小应用软件。你可以做到这一步,你会学到很多!在这期间,你会遇到很多问题。你要自己思考,多问别人,多上网查资料!但是,最好不要抄袭别人的程序。如果你自己去做,去思考,你会收获最多。即使是模仿别人的程序,也会用自己的想法去实现。其次,你可以复制一部分代码作为自己的。在你知道如何实现自己的想法之后,写代码只是浪费时间,而且你的编写效率也没有现成代码高,完全可以照搬,但是如果你是初学者,千万不要那么做!不然你就靠它,有一天你真的让自己写了,你就无从下手了!所以刚开始的时候,可以尝试复制,逐渐摆脱他们的依赖,然后摆脱他们。这个时候,你可以一直依靠他们。
5。大学期间有很多程序实验班,要认真做。你从他们那里得到的是你自己的,也可以作为一个小项目!大学期间,加上实验班,基本上独立编程或者团队编写的小软件总数应该不少于7、8个。做大程序,可以少做!
以上,我告诉你如何学习如何入门电脑,提高兴趣!我相信你应该和我一样去做,应该没有问题!对于每一个细节,接下来我都会详细的写给你看!
两个。理论对你很重要,尤其是你这个技术程序工程师!
大学几乎所有的课程都是针对理论的!大学是你学习理论的最好机会,因为我们有不懂的地方可以问老师,老师会帮我们解决的!当然,有些老师是垃圾,你得自己解决!我上面说的10专业课是你以后学习其他理论的基础。你不可能一辈子都有老师的帮助,以后还得靠自己去学其他理论。所以你在学习10专业课的同时,要学会对自己,思考问题!如果你以后上大学只是为了做网页,你不需要在这里学习写作,同时,你也永远成不了专家!
数学:
数学非常重要,几乎所有的科学都以它为基础。我们每个人都不可能成为数学大师。我们没有时间和精力去搞这么抽象的东西。我们要做的,就是以后去理解和数学相关的东西!
虽然很久没看大学课本了,但我还是很清楚自己到底学到了什么。极限,导数,微分,积分,空间向量几何,多重微分,多重积分!傅立叶变换,等等!其实这些很大程度上都是随着物理学的发展而发展的。现在仿真技术这么厉害,是基于物理的!希望大家现在能明白这些真正的含义,不要只是做题!人海战术就是浪费时间和精力!极限:说白了就是自变量趋于某一值时的值。我们可以说0.999999。当9趋于无穷大时,它的极限是1。否则说0.999999是1就是错的。如果没有9趋于无穷大的条件,那也是错的!极限是有条件的!所以不管学什么,一定要把概念搞清楚。你想学的东西都是基于概念的。不理解这些概念,以后就学不会了!
毕竟我这里说的不是数学。我想说的是,学的东西要扎实,基础要牢固,概念要理解透彻,死记硬背是不行的!如果你不了解它的现实和它的意义,你就不知道你在学什么!
离散数学:
这其实是最难的理论课,估计没几个老师能讲好!
* *,命题逻辑,谓词逻辑,数论,图,群,环,场!前面几个部分很简单,以后图论会异常难!这里就不多说了,因为不懂。太难了。我连他们的现实依据都找不到!它们之所以难,是因为我们难以容纳神秘的思维方式。容纳思维方式太难了。我们只靠感觉,因为这些真正强大的人真的很少,能指导我们的就更少了。我自己一直无法理解群体的真正含义,也没有查过任何相关资料。但我知道,数学理论再抽象,也一定有它的现实基础,它的表象确实存在。
数据结构:
数据结构是一门很重要的学科,完全靠实践,就是你要多打代码。这在一定程度上取决于语言。我很清楚,第一次学数据结构,也就是实践很少,脑子几乎一片空白,考前反复复习才知道自己在讲什么。我只能手动模拟执行过程,算法转化成程序一直是个谜。但我觉得这就足够了,因为任何理论只有理解了才能在它之上,所以接下来的质的飞跃就要靠自己了,自己把那些算法变成代码,当你有了想法,就可以用合适的数据结构实现,这需要计算机的努力,绝对的。一个资深程序员,绝对是一个努力的人。这种把自己的想法编码,也是你独立思考的开始。记住思考很重要。他是善于思考的人。灵感来得很快,你的灵感会告诉你,你能做到。这一切都是思考的结果。我不是一个思考者,但我知道,我每天对世间万物的沉思,正在引导我寻找太多为什么的答案。!做节目多的人,节目会改变你的思维,这是绝对错误的。
编制原则:
实际上,编译原理与汇编、操作系统、语言密切相关,编译器在操作系统之上,语言之下。说到编译器,除了把源程序编译成目标程序,我们还要介绍很多地方用到的自动机理论,这也是很重要的。在人工智能中,分析语法、单词等很多事情都很重要。编译原理和语言相辅相成。只学语言是无法真正理解语言的,但编译器是以语言为基础的。没有语言理解,就学不会编译。现在大部分大学的编译原理讲的都是基于面向过程的语言,但我觉得已经足够了。你真的理解了编译说的话,你正在深入的学习面向对象的语言。你一定会掌握面向对象的编译过程。熟练掌握面向对象语言,中间代码生成,语义分析后的动态存储空间分配,都与汇编密切相关。我学习汇编的时候,总是先用C语言写好所需题目,再转换成汇编语言。这是一种无意识的中间代码生成。虽然不完全一样,但是你掌握中间代码生成就够了。动态存储空间分配主要基于指针所指向的动态空间。因为非指针变量在编译时有内存分配,所以这也是编译应该做的。
大部分是8086。我推荐TD作为编译器,这是一个很好的开发环境。调试程序是最重要的事情。没做过的人想象不到调试有多难。良好的开发环境有助于有效地开发程序。个人认为学习汇编应该和计算机组成挂钩,主要是指令系统和关于CPU的知识。汇编是最低级也是最快的语言,有时候为了高速运行还得用它来实现想要的功能。我觉得只要会做递归函数就能达到汇编的精通。你学到了很多指令的用法,寄存器的使用,数据和代码在计算机中的存储方式,函数的调用方式,堆栈如何实现函数。你会有一个深刻的发展。相信我,你必须在计算机上实现一个递归函数。另外,
数据库
大学没接触过太多项目,一般编程对数据库也不是很了解,只是达到了做网上书店需要的基础知识,包括ER图,各种范式,还有数据流图,语言上怎么插入数据,删除,搜索等等。其实不搞理论的话,我觉得这些对于编程来说足够了,但是对于高级数据库程序员来说还不够。
计算机组织
这一点对于学习汇编和C语言其实很重要,因为这些语言并没有屏蔽掉这些硬件细节,而VB几乎完全屏蔽了硬件细节,所以不需要了解太多的硬件知识。但是学习汇编和C语言并不意味着你可以做CPU和连接内存。我们只需要知道它们的运行机制,但你不要怀疑电信号是如此有趣,以至于你无法想象它的速度和高低电平传输。但事实就是这样,你不需要怀疑,承认就好,因为我们还不能解释法律,所以只能用法律。原理对于软件程序员来说应该足够了,会让你更容易理解操作系统和硬件。
操作系统
操作系统大家都很熟悉,几乎所有的计算机课程都紧密相关。他们都有太多的联系,有些可能会混淆。当全部讲完的时候,你应该会有一种豁然开朗的感觉,就是关于计算机的一切都不应该是一个谜。操作系统和硬件之间的接口是硬件提供的指令。就像操作系统的定义一样,它管理系统资源和硬件的使用。当你学习操作系统的时候,你可以把它当成一个管理者。它是一个有自己管理方法的管理器,为每个进程管理这些硬件。进程是一个有权在内存或外部内存中运行的程序。目前的操作系统是多任务的,可以运行多个程序。并发是指单个CPU,每个进程在CPU中依次执行。因为太快了,你根本感觉不到它们的交替,就像同时跑步一样。大多数教科书都谈到并发性。我们大部分的电脑都是单CPU的。如何交替运行是操作系统管理进程使用硬件的方式不同。但是你的方法应该不会让其中一个进程总是得不到想要的硬件使用(活锁或者饥饿),但是也很难想出一个没有死锁的好方法(这里我就不说死锁了,毕竟我不会说操作系统)。简而言之,这些就是你要学习的方法,关于管理CPU,管理内存,外设等等。我在给进程定义的时候也说了外存,通常指的是硬盘。因为你内存太小,有很多程序在运行,所以我要先放在外存里,也叫挂。总之,你学的是管理硬件的方法,如何管理才能高效方便用户使用。如果可以,你也可以设计一套管理方法,那么你就做了一个新的操作系统。
计算机网络
最后一个跟硬件有关,说实话,电脑网络很复杂。你第一次学完之后,很难把网络七层的管理方法都搞清楚。大部分同学都很迷茫。网络是一个庞大的系统。从硬件到软件,都规定在一个非常正规完整的体系里,让每个人都可以遵循这个规则,让每个人开发的软件和硬件都可以使用。请记住,计算机交互就像人类交互一样。它用0和1来代替人类的语言、表情或者任何可以传递信息的东西。也可以说是计算机通讯的暗号。只有双方都知道这个暗号的含义,才能进行交流。你怎么能和另一个人交流,那么计算机怎么能和另一台计算机交流呢?比如我要送你一个礼物(电脑认为我要给你发数据,A发给B),所以我要先通知你,看你能不能接受(这符合人与人之间的交流)(A发给B一个由0和1组成的代码,两台电脑事先有约定,比如10016558)。如果请求没有丢失(处理丢失的方法有很多种,你也可以自己想办法处理。比如过一段时间没有收到对方是否同意接受,可以重新发消息。总之,只要你愿意想象,任何事情都是可能的,(1)对方发出一个可以接受的信息(比如10010065438)。途中有很多情况,比如你怎么送,坐车,还是步行?如果堵车怎么办,是一起送礼物还是分开送,等等。具体来说,我们可以在网络中快速分别发送。这些是我们学过的方法。(2)对方发出无法接受的信息。你是要马上发,还是不发,还是以后发?这些方法很生动,这才是你需要学习的。如果你能处理网络中的任何问题,不用学也能做到。我想告诉你的是,你要学的只是通信协议(也就是实现规定的暗号)、通信方法、如何处理问题等。你有好方法,可以不学了。很简单。方法是人发现的。如果你比它强,你可以用你的。
软件工程
软件工程是从实践中总结出来的经验,对于很少做项目的大学生来说确实很难。只要做过一些项目,比如网上书店等系统,就会有所了解。这是完全正确的。我清楚的记得软件工程分为这几个过程:(1)可行性研究,也就是你想做的系统是否可行,是否值得做,能达到多大的效益。(2)整体分析,这是把你要做的系统做一个整体的规划。只是一个概述,没有详细的阶段。该系统大致分为几个模块。(3)详细分析,这一阶段就是把每个模块详细化,把所有细节都写出来。(4)程序编码(5)测试(6)售后服务。
每个流程又分很多规范,因为一个项目是很多人很多公司做的,没有一个好的规范就会很混乱,所以最后很容易扎堆。
三个。学会自学,学会思考,学会合作和沟通!
大学一定要学,这是一定要学的!否则你很难进步。自学大家都懂,但确切的意思是你必须学,必须读一本书。看完了就要有自己的看法,要么接受,要么否定。如果你两种态度都没有,说明你根本没有读过。即使你曲解了作者的意思,作者是对的,你否定了他的观点,这也证明你有思想。但是我们看书,有错很快就能改正!所以你自学,你要学,知道是什么,知道为什么!
很多人总说没心情学习。说实话,只是你没有培养自己对这个领域的兴趣。归根结底,都是自己的原因。你读不好,这是浪费时间和你的精力。还不如不读书,做点有意义的事!
读书和思考是同时进行的,学而不思则罔,思而不学则懒,直到上了大学才真正明白这句话的含义!思考比什么都重要。思维可以看成两种,一种是有意识的,一种是无意识的。我们在做一些运动的时候,这种思维是无意识的,完全靠你的本能,是先天和后天训练得到的!但是我们遇到的大部分事情都是有时间思考的,所以你遇到事情要冷静,思考问题的突破口!
说实话,中国的教育是失败的。他过分强调知识的结果,而忽略了过程和开始。思维过程很重要。其实结果并没有那么重要。思维方式决定了一个人。从小就被告知1+1=2。但是为什么呢?很少有人知道往哪里想,怎么想。我可能有点跑题了,但这很重要。可能我说数学是为了引出思维模式。教思维的时候,很难。最根本的是,人对思维还是有争议的,不同人的经历在一定程度上决定了人的思维。我这里只说学习思维。我觉得人从出生起就有一定的特长(这是相对的),也就是说,在同一环境下学习的人(我们排除之前经历的影响,比如学音乐),肯定会区分好坏,如果大家都努力的话。一个有音乐天赋的人如果不努力,可能会落后于那些努力却没有天赋的人,所以通过努力才能有天赋是没错,但是如果你想用自己有天赋的一面,就会事半功倍。天赋和兴趣不是一时半会儿的事,但大多数人都能在天赋中找到兴趣,却不能在兴趣中找到天赋。所以,在大学阶段(中国的这种教育在高中阶段几乎是不可能的),你要在自己掌握的时间里,尽早发现自己的天赋和兴趣所在。记住,你在这个领域有天赋并不代表你在这个领域领先别人,而是你已经比很多人优秀了。如果你努力,你会走得更高。因为很少有人知道为什么牛顿看着苹果落地就想出了万有引力定律,为什么我们不能。
很多人说是牛顿爱思考的结果,没错,但不是每个爱思考的人都能认为这就是非常好的问题,这就是我们和别人的区别。因为很难把思维传授给别人,这样的专家少之又少,靠他们留下的书很难解决问题。
记住,你不是爱迪生,你不是爱因斯坦那样的天才。如果你是,你不必这样做。你的学习需要交流和合作。这些连天才都是不可或缺的。一个人学习,掌握知识是慢而无效的,多人学习会让你进步很快!
实话告诉你吧!我也贴在了我们的贴吧里,希望能帮到你。