为什么学了一个学期的c语言,感觉一直都是在用代码去做一些简单的数学题,没有什么实际用途?
"学习C语言用一个学期,而且感觉是用代码做一些简单的数学题,没什么用途",这说明你的感觉是对的,老师的教学方法错了,必须彻底改变学习方法,以提高学习效率。象这种底层的高级C语言,一般学会并熟练使用,时间不超过两周。
学习编程语言,绝不能象高数一样,一节一节地学扎实,推理有据。编程语言类有它的学习方法。
我九十年代初,在工作中学C语言,两周时间,不仅学会了,而且做了一个集编辑、图形描画、零件程序解释的APP,之前一点基础都没有,就一本介绍库函数及C基础的英文书。学习第一步:下载并安装IDE,通过做界面程序,验证所学的结构、变量、指针、逻辑关系、文件读写、内存分配、图形界面编写等,不仅学明白了,而且用于实际开发中。
很多初学者,老是喜欢钻牛角尖。如变量,unsigned char,char,signed char,BYTE,WORD,int,unsigned int,long int,LONG,LP,void *,int *,p=&i,p=(struct tr*)&p等等变量,表达式搞的晕晕乎乎,以致于觉得云遮雾罩,高深莫测。
很多人惊呼:老师水平咋这么高!
初学者建议使用VS编绎器,它对C,C++有极好的兼容性,在VS上做好RC,用子程序实现C的编程学习。
这时我们就陷入了一个学习误区。学习第二步,把以上的指针、变量写成程序,编绎系统自然会告诉你那错了。有助于快速理解C语言的各种概念。
如下图,关于指针、结构:
上图所示代码,指针错了,系统提示error2102错误。指针改正后,如下图:第三步,把编程语言与数学算法分开。C是语言,高数、线代、微分数值解等是算法。语言学明白了,实际应用时,把算法写成函数库,供以后使用
很多人认为,既然AI要用到算法,那么,学语言时,就要先学算法。
大错而特错!算法属于应用,属于数学建模,它是固定的,工作中随时可找到函数库,直接调用。如下,做库函数:总结:把语言与数学要分开学。学习语言,要边做程序边学习。单纯C语言,学习时间应不超过两周时间。
编程语言最核心的东西就是算法,也就是你说的数学题。算法牛不牛,决定了产品牛不牛。百度背后的搜索算法,今日头条的推荐算法,成就了他们今天。
难道你想做复杂的数学题?如果你数学好可以做一些复杂的数学模型。比如人工智能领域ocr识别模板匹配算法(算法公式如图),你也可以搞下计算机中比较牛的几个算法:定向搜索算法、二分查找、分支界定算法、Buchberger算法、Diffie-Hellman密钥交换算法、数据压缩算法、Dijkstra算法、离散微分算法、动态规划算法、期望-最大算法、梯度下降算法、哈希算法、堆排序、决策树、 随机森林、分层聚类算法、线性分类器···
一个学期,能干嘛,虽然我不编程,不过十年前无聊自己玩过易语言,然后有款游戏叫 程序员升职记,这个游戏我玩了一下,到10关以后基本看着攻略都不会,即使看着攻略过关了也不知道为什么,但玩了这款游戏让我一个30的人突然就明白了什么叫逻辑思维能力,真就是逻辑思维,不知道怎么描述,不过我想玩程序的人应该逻辑思维能力很强,至少你现在所做的就是锻炼这个能力。可以去试试这个游戏,如果能通关再说你学的东西有没有用吧
以我一个外行人的感觉就是,各种命令什么的谁都会,但好的程序猿可以用最佳的组合做出来,代码最少,机器运行流畅,逻辑思维不行的人也能做出一样的程序,但代码复杂,运行起来各种卡顿,感觉你可以练习一下,同样的结果怎么用更加优化的方式来实现这个方向
在现有的计算机体系中C语言可谓是编程的鼻祖,使得人们从晦涩难懂的机器汇编语言过渡到更接近平常正常人思维的高级语言。C语言的出现也直接促使了编程之树的蓬勃发展,使得更为复杂的程序成为可能,也大大提高了程序跨平台的兼容性。
学C语言刚入门的时候都会觉得它只适合用来解数学题毫无用处的这种感觉。对于之前没有编程经验的人来说,学了一个学期C语言,还不能算得上入门了,仅仅只是对C语言有一个概念性的理解,很多专有名词都还有可能理解不透彻,更别提它要如何去使用。
实际上任何一门变成语言,当你会用它来做一些简单的数学题,就已经打开了编程的这扇大门,后面还有更多的概念和应用等着去挖掘、实践,这绝对不是一朝一夕就能完成的,需要一个长期学习、运用从量变到质变的过程。
编程离不开数学、算法、数据结构,这是循序渐进的一个过程。这就好比小学要花5~6年去学习加减乘除、小数、分数等等一些基础的数学概念和算法,到了初中才会去学习如何通过数学去解决实际生活中遇到的一些问题,到了高中已经能够建立数学的模型去解决更为复杂的问题,有了这些铺垫上大学才能对于晦涩难懂的数学理论进行学习和应用。
大道至简同样适用于编程,程序的UI界面只是表皮,真正支撑程序的是算法和结构逻辑。再复杂的程序最终都会变成机器才能懂的一串0和1。
但同样是乐高积木,却有人能用50万块乐高积木搭建搭建惟妙惟肖、鬼斧神工、令人叹为观止的"故宫三大殿"模型,这里面包含了决心、创意、坚持。过去的人还在羡慕鸟儿能自由在空中翱翔的时候,如今的人却能坐上精密的飞机在空中穿梭,甚至借助载人火箭飞船翱翔宇宙,学习并没有止境,编程这条路同样没有。
学习编程需要更多的是自学和敲代码实际应用
很多人对于C语言的第一印象就是谭式C语言,更贴切来讲是程序设计基础,书本上并没有很高深的程序,教授的老师也并没有指望你学完程序设计基础去做一些多么厉害的东西,只是希望你学会什么是C语言,程序设计是什么样的。这也进一步地印证了"师傅领进门,修行在个人"这句话。
不管现在的何种编程语言都遵循发展C语言的古法常量、变量、类、结构体、函数、循环、判断分支等等。一门编程语言足够吸引人的地方在于它拥有一个庞大的生态系统,让开发者开发时引用到很多优质的库,这样就会大大的缩短开发的时间,比如Python、JavaScript、GO、Java等等就拥有这样的特性。编程语言的更新和迭代往往会带来更好的应用,会推出更多的应用库同时修正以往不好的设计。学习编程是需要付出代价
衡量一门编程语言好不好也取决于对于初学者的友好程度,容易上手也不需要花费几年的时间去掌握它。可是编程语言仅仅只是给你一个平台,至于你是搭建一个茅草屋还是搭建一个座高楼大厦完全取决于你自己,而这个过程是要付出代价。
以上个人浅见,欢迎批评指正。
认同我的看法,请点个赞再走,感谢!
喜欢我的,请关注我,再次感谢!
前言:想法正常,但是认知有误。1、学习编程的目的
编程的目的是为了解决问题,即便是因为兴趣爱好也是算是解决问题的范畴。因而学习C语言,做数学题也是锻炼能力的一个过程。因为现实过程中的问题,一般是多因素的。就比如种树,实际上解决的时候,就得考虑拿什么挖坑、拿什么浇树,甚至是不是在种下之前进行堆肥。而抽象为数学题的时候,可能就是给了面积和间距,就求数量了。
数学是什么,到底怎样的一门学科。很多时候,我们在学校学习的时候,仅仅把这门学科当作是记得少,算得多的一门学科。到了实际的应用中,没有数学很多问题还真不好解决。
这里就说地铁的停车和开车,类似的火车也是一样的,这是一类很普通的大众交通工具。我们经常乘坐,但是很少去考虑它的实际运行性能。
但是,不去关注不代表没有,这里就会有一个PID的控制方式。简单拆分为数学的 积分、微分、比例。因为实际的运行不是凭司机感觉去加速、减速,这么大动量的物体就会按照这相关的算法去控制。这里的算法就可以粗略理解为程序。
数学本身就是有用的,编程解决数学题,更加有用。数学本身似乎没有太大的实际用途,并不像体育能教会我们怎样去锻炼身体,因为数学的本身就是将实际物理形态的东西抽象了,这样做的目的是为了概括一类问题,解决一类问题。比如---公式。2、C语言的一些应用场景
我是一个嵌入式工程师,有个时候设计一些简单的硬件,有个时候会编写一些程序。我使用的平台叫做单片机。相关的应用也不少,比如电磁炉、电饭煲,里面的控制核心就是各种各样的单片机,而单片机的灵魂就是C语言。当然单片机在这里,他们会有一个高档的名字叫微控制器。一般而言,有这样字眼的家电,价格上就会不一样。
这里是单片机的具体应用,也是C语言的具体应用,因为在找工作的时候,岗位JD里面会明确规定:1、会用单片机;2、会使用C语言编程。比如电饭煲什么时候断电,传统的做法都是水干了,温度达到100 温控器就跳闸。实际上,利用C语言编程判断温度是不是达到100,达到100 就断电,也是可以实现的。只是在实际应用的时候,就不仅仅是比较温度了,还有有温度的测量原理以及准确测量温度的方式。
总结:想来想去也没找到好从好句,借用名言------任何语言的编程到最后都是算法。
赶紧辍学吧,你那老师不行,眼看着就把你往沟里带的节奏。你老师到底做过什么项目没有?我们学车C语言都是半路出家,一个星期就出师了,然后找项目做设计,大规范学一下,然后各种技巧、指针、算法原则都是用到再查,不用在课堂上记住,Internet就是图书馆,要什么查不到?
就好像学中文不需要背会字典一样,那些要考试才问的东西不用学,这个道理明白不?
程序员有很多种层次。第一个:科研型,这种就跟科学家一样,大部分会选择底层语言,能创造出什么不好说,属于探索性质的,但是一旦探索到,可能可以引领世界往前走一步。第二个:架构型,是科研型的实践衍生,通过各种研究成果,架构软件体系,供行业应用,大部分被称为架构师。第三种,应用型,应用工程师也具备一定的架构能力,但更偏重应用整合,表现为能熟练应用各种开发框架。第四种,入门型,一入侯门深似海,望君慎重,这类人才刚接触开发不多久。第五类,摸鱼型,跟其他行业摸鱼的一样,只是把他当作一份普通的工作而已,学习?不可能的,开发也不可能的,半桶水晃的叮当响,这种人后来开始鼓吹中年危机,转管理去了。
c语言 偏低层,底层主要是系统编程,直接操作寄存器等等,偏重数据结构,所以初学者基本就是练习 计算器的功能
上大学学了FORTRON77,除了算几个正弦函数和排列,几颗小星星以外,感觉不出来能做什么事?后来自学了C语言C加加数据库等等等等又学了BorLand c++感觉创造一个窗口界面太累了,直到后来用了VC 6.0才感觉到了创造界面的方便。如果只是学了C语言,给我的感觉,除了做实验什么也做不了。大学毕业十年后,我才真正的编了一个实际工程中使用的程序,给我开发的单机,提供上位机支持。我91年工作的那个时候会编程序的人,基本上是零。现在满世界都是科班出身的人了。说明一下,除了FORTRON77,其他的我都是自学的
课堂上学到的c语言本身就是很简单的,在国内大学的c语言课堂上你很难学到真正做项目的能力,所以他们提出可以上手学习做一些c语言工程,我认为学习做项目的能力很重要,但是有些回答给的是做游戏,做窗体的项目,我倒不是很赞同。
国内大学普遍把c语言作为程序设计的入门课程,甚至我大一的时候那门课程的名字就不叫c语言,而是叫《程序设计基础》,其实意义很明白了:老师根本没指望你学完能用c语言做多么厉害的东西,他是希望你学会程序设计,而不只是c语言。至于做工程,其实c++,java都比c语言要好,除了底层计算机系统、嵌入式、物联网这些偏硬件的方向其他方向需要你用c语言做工程的方向其实少之又少,哪怕是嵌入式、物联网等方向写进单片机的程序其实也普遍比较简单,更需要补的是硬件知识和掌握各种API,而写底层系统你还要学的东西就实在是太多太多了。所以我依旧认为你把课堂上老师教你的内容学会了,入了编程的门就够了,更多高大上的复杂的东西你以后会发现普遍不是用c语言写的,你现在去学用c语言写窗体,写小游戏你以后会发现其实人家都在用Qt,c#,java这些,写的比你快还比你好,你学了也用处有限。
确实有余力可以选一门应用更广泛的语言继续学习,与c语言相互印证,或者想学习做项目的话,学一学单片机,自己做个呼吸灯,电子钟,温度显示器,指纹锁,收音机之类的,淘宝上买个可编程机器人与其他传感器组合实现一些自动寻迹,目标识别啥的功能,都很有意思,这才是目前c语言在工业界比较普遍的应用,写游戏写客户端写后台啥的早就是其他语言的主战场了,没必要空耗太多功夫。
先上结论,因为c语言只是最最基础的工具。c语言与编程的关系就像学会写汉字与写小说的关系,其实我觉得如果你以后的目标是自己开发出像微信、QQ、淘宝、抖音等等那种面向普通用户的大型程序的话,说c语言是拼音都不为过。
开始时候也觉得c语言天天就只是做一些没什么用的数学题很没意思,后来学习了其他语言和计算机相关知识后我发现其实学校教我们c语言的主要目的可能根本就不是叫我们用c语言开发出多么厉害的程序,而是以下这些目的:
①带你接触一种很多主流计算机语言都遵循的语法。
很多主流计算机语言(像c++,c#,java)都遵循了c语言的分号换行,大括号标记代码段,循环条件和if判断条件用小括号括起来,数组索引用中括号括起来等基础语法,以及特殊一些的js,Go,python也部分遵循了这些语法。这些习惯以后会伴随你敲的每一行代码,有的甚至老程序员了都会漏掉分号或者半边大括号,所以早点带你习惯这种语法是很重要的。
②带你接触编程常用概念。
c语言中的常量,变量,类,结构体,函数,循环,分枝判断等等都是大多数语言依旧在使用的概念,这些概念在程序中无处不在,在任何一门语言的学习中你都要先学习这些概念。
③带你熟悉程序员的思维方式。
举个最简单的例子,你在现实中如果要按照高挨个站队你会怎么做?这就是一个排序问题,程序员是怎么解决这个问题的?反正我学习了排序之后才意识到自己站队一般是用选择排序和插入排序的方法,而冒泡排序,归并排序,快速排序,堆排序等等算法其实应该是数学家或者程序员特有的考虑问题的方法,一般人很少接触到,还有递归和迭代,是最典型的数学家或者程序员的思维方式:把一个问题简化成我解决过的问题,不断简化下去得到最终的解。这种思维方式将会伴随你一生,哪怕你不做程序员了也会用得到。
④带你初步认识计算机的工作原理。
c语言是最贴近计算机底层的高级语言,特别是c语言中最令初学者困惑的指针和内存分配直接揭示了程序在计算机中的运行过程,其实你以后学到c++和计算机组成原理、汇编语言的时候就会更进一步理解为什么c语言里是那么设计的,熟练的c语言程序员看到一行代码就能知道执行完这行代码在内存里发生了什么,这在以后任何语言的debug中都是很重要的,你要知道你的每一行代码在做什么。
⑤带你学习写代码、编译、调试、运行的过程
这个想必我也不用多说,你以后学习任何一种计算机语言都离不开这几个步骤,只是有的可能把编译的过程隐藏起来了不给你看见。
最后,上面这些也只是我的一点总结,并不代表老师们的真实意图,我也还只是接触了计算机知识中的冰山一角,大概说的很不全面,也欢迎补充、指正。以及题主如果确实想急于做一些有意思看起来比较高大上的项目的话,可以去图书馆找找一些名叫"c语言项目实战"、"XXX项目实战(基于c语言)"、"c语言游戏编程"等等这样的书(不一定就是这些名字,我也没看过这些书),或者直接去学习python吧,刚学完c语言学习python应该会很快,在学习的过程中还能和c语言互相印证,然后你就可以借助python语言中的一些开源库做很多高大上的工作了,但我还是建议你学好c语言基础,因为那是你以后学习其他语言的一把钥匙。
朱琳凭借西游记走红,一遇唐僧误终身,69岁无儿女她是杨洁导演万里挑一选中的女儿国国王,也是无数8090后的梦中情人。因为演的太好,被人怀疑和唐僧的扮演者徐少华互生情丝,相隔20年两人相见的场景让人泪眼婆娑。如今已经70多岁的朱琳
划清界线!前英皇渣男被老婆数臭割席,怒爆债主临门老公仍不工作(转载须注明严厉打击抄袭,侵权必究)38岁香港组合Boyz成员之一张致恒(Steven),曾经凭一首死性不改红极一时,正所谓色字头上一把刀,那句唱得街知巷闻的歌词人天生根本都不可以
咱厝公司出品天龙八部之乔峰传在泉举办特别观影咱厝公司出品,著名导演王晶亲临现场观影现场泉州网2月8日讯(记者许小程潘登实习生张国栋通讯员石勇文图)昨日,由甄子丹担任总导演监制领衔主演的武侠动作电影天龙八部之乔峰传在泉州市区开
曾经是卡戴珊家最丑小妹的凯莉。詹娜,整容当网红逆袭成亿万富豪卡戴珊一家子卡戴珊姐妹一家可以说是好莱坞加NBA事儿最多的家族了。这一家姐妹更是把整个NBA当后花园。男友可以组个季后赛阵容。其中妹妹詹娜从小就是存在感最低的那个。凯莉詹娜和妈妈凯
都撕破脸皮了,还能反转呢?潘粤明和董洁的互动,绝对称得上世纪大和解了。尤其是在资深瓜友这儿,两人当年撕得有多难堪,大伙都还记着呢。惊讶之余,也少不了某些感情层面的猜测分手十年的夫妻俩,该不会有一丝复合的迹象
神雕后期小龙女被蒙古人虐杀,李莫愁学成归来与杨过结为夫妻各位看过神雕侠侣的都知道,杨过最后和小龙女在一起了,那么有没有人知道神雕后期的故事,在神雕后期,李莫愁其实没死,而且被南海神尼收为弟子,从此不问世事,这才导致她在神雕结局之前一直没
狂飙剧中这两个隐藏情节,细思极恐狂飙剧终后在网上也引起了一阵热议,这部剧看点极多,高启超从被黑恶欺凌到自己成为黑恶孟德海要实现自己的理想首先要保住身上的皮的价值观李响用与罪恶为伍自我牺牲的方式获取情报黄瑶为亲生父
华语片席卷柏林电影节?15部作品井喷式入围文安妮特编辑安妮特世界三大国际电影节之一的柏林电影节将于2月16至2月26日举行,此前公布的入围名单中,有15部华语作品入围各大单元,其中包括14部电影(包含长短片),以及1部剧集
情人节返场活动即将来袭,这五款皮肤返场概率极高,至尊宝上榜过段时间就是情人节了,正常来说王者荣耀官方肯定不会错过这种重要节日,根据王者荣耀以往的更新活动来看,在情人节期间会上架限定皮肤返场活动,今年大概率是抽奖返场活动。大家好,这里是阿呆
游戏王怪兽卡念动力族(6)中文名PSY骨架王日文名PSYPSY骨架王中文名炼装勇士山铜狂战士日文名炼装勇士山铜狂战士中文名绀碧之机界骑士日文名紺碧機界騎士绀碧之机界骑士中文名紫宵之机界骑士日文名紫宵機界騎士
雷霆咆哮3雷鸣战斗机ICC。MC雷鸣战斗机是ICC为地球某东方文明打造全新空战思维的一款重要空中战斗单位,代号斩首行动,将奔雷7咆哮者无人机雷鸣战斗机,组成更有攻击层次的作战逻辑。雷鸣无人机简称大T,