听说你们要开始学C了

同学们好:

先自我介绍一下,我是你们的助教吴喆(厚颜无耻地要求大家叫我吉吉老师:-D),本科学的电子,所以陆陆续续接触了不少C/C++的工作,曾经被编码折磨得死去活来,如今却对其念念不舍,颇有点“斯德哥摩尔综合征”的味道,或许,我就是个受虐狂吧,哈哈(不禁想起三国杀里的黄盖对周瑜说的话——请鞭笞我吧,公瑾!)。

大学学习过程中还是走了不少弯路的,而且还有些弯路是“致命的”,当时也并不是无人点拨,只可惜我一根筋,听不进相左意见,直到撞了南墙才肯回头认错,痛改前非,现在在外工作,方知踏实学习之珍贵,对校园生活也甚是怀念起来。目前在用C语言教小朋友信息学奥赛,所以更是回忆起大一学C语言的点点滴滴......

大一,多么的naive!当时的我用“无知”或者“浅薄”二字形容无比适合,抱着搞硬件电路,那就可以“混”软件的态度,用傲慢演绎了何谓二货。那时太“专”应试了,可能刚高考完,思维还没有从题海中得到释放,对于新新学科,尤其是暂时看不到未来何用的学科,产生了鄙夷的态度,这是很极其可悲的!因为起步就落后了别人一大截,技能指数增长的初期没牢靠,所以后期就显得乏力,那会儿自己还在线性缓慢进步时,别人已经指数爆炸了。

除了傲慢,还有懒惰,不是手工活儿的懒惰,是思维上的懒惰。记得当时习惯了算数学题的快速、简洁、美观,对起步如负铅块的C语言课程感到极为不适,为何如此讲究语法?怎么计算个数还要声明类型?格式输出有那么重要吗?......这种看似小问题,乃至有人认为不是问题的问题,都是跳跃思维在作怪,恰恰会阻碍大家后续前进,会减慢登上C语言高级台阶的速率,我们应该用严谨有序的逻辑思维程序思维来做好铺垫。

在此,踩过荆棘的大师兄奉劝诸君,入门需谨慎,骄懒有风险!

以上闲扯了些开场白(不喜者请跳读,这里可用跳跃思维哈==),接下来讲点干货(fucking goods)。

1.为什么要学习程序设计呢?

想先问一个问题,大家此刻在网站上看到了我写的博客,请问它从“无”到“有”怎么来的?相信这个问题要是详细展开,绝对没几个人能回答得上来,但这就是计算机技术帮助我们做到的,而要理解计算机技术,从程序设计开始是一件很有意义的事,不仅能了解计算机程序工作原理,更是掌握了编写程序的技能,何乐而不为呢?

2.为什么选择C语言呢?

  程序语言有很多,选择有很多,选C有优势,可以解决某些小程序的编程,将来学C++也好过渡,它比较基本。(以上都在胡拽,其实我个人推荐初学用Python。。)

3.怎么学习C程序设计呢?

①给自己一个暗示,训练思维和开拓眼界为主——原来大千世界还有一种这样的思考方式。这样就不至于在困难面前低头,可以增添自己的认知智慧,当然,谁不想让自己变得更聪明的可以排除除外;

②掌握好基础语法,重视所有出现的概念。有的概念一时半会儿搞不清楚的,也要记下来,为后文做好铺垫。。(怎么感觉读C语言课本跟在读小说似的)

③重视实践,先给自己要编写1000行代码的目标。有的同学看书看明白了,就觉得重码一遍费力,但是我可以很认真负责地告诉这位同学,请相信人脑的“失真度”,信息从“图像”到“字符”绝对存在损失,这就极其要求大家动手操作了,这样才能训练大脑的神经回路,得到精准的知识记忆,再在记忆的基础上,打通任督二脉,拓宽大脑的工作记忆空间,获得对C语言知识的更高层次的认识;

④获得反馈,咬定助教不放松。。系统(更何况在新生学习初期一般都不成系统)在没有外界能量输入的情况下,一定是会熵增的,也就是变得复杂,变得混乱,所以新生们,你们一定要多多询问老师,尤其是拿人钱财,替人消灾的助教老师啊,尤其是那个叫吉吉老师的助教啊,不要放过他,把问题都砸向他吧,让他帮助你们获得良好的反馈,然后熵减,然后复利,然后飞飞飞飞飞起来~~~

听说你们要开始学C了,诸君看罢此文,都准备好启程了么?

时间: 2024-12-23 22:56:17

听说你们要开始学C了的相关文章

“小雷,听说你大学的专业是计算机科学与技术?”“是的,领导。”“那好,去帮我搬下电脑。”

"小李,听说你大学的专业是流体力学?""是的,领导.""那好,去帮我倒杯水.""领导,请你尊重这门专业,流体力学是--""请你谈谈非等熵的稳态可压磁流体力学方程在持续等离子体约束受控热核聚变中的应用.""领导,饮水机在哪?" "小海,听说你大学的专业是学土木工程的?""是的,领导.""那好,去把地扫一下.""领导,请你

NBUT 1186 Get the Width(DFS求树的宽度,水题)

[1186] Get the Width 时间限制: 1000 ms 内存限制: 65535 K 问题描述 It's an easy problem. I will give you a binary tree. You just need to tell me the width of the binary tree. The width of a binary tree means the maximum number of nodes in a same level. For exampl

【MVC框架】——Global.asax文件中的RegisterGlobalFilters()和RegisterRoutes()方法

最近在学习MVC框架时,发现新建MVC的项目,会自动创建一个Global.asax文件,它跟我们平时所看到的文件的文件后缀名不一样,而且在这个文件中也有好多方法.现在介绍一下其中的两个方法,RegisterGlobalFilters()和RegisterRoutes()方法. 什么是Global.asax文件 Global.asax文件是ASP.NET应用程序文件,提供了一中在一个中心位置响应应用程序级别和模块级别时间的方法,它位于应用程序根目录下,每个应用程序根目录下只能有一个该文件.虽然创建

JY的题目(水)

JY的题目[问题背景]一天,JY觉得DZY智商太低下,决定和他离婚,除非DZY做出来她出的题目.DZY当然非常想和JY在一起,所以他只好又去请计算机大神WJC帮忙,WJC已经帮过他N多次忙了,不想再帮他了.DZY听说你的编程学的也不错,所以找到了你.你的任务是:帮助DZY解决JY出的题目. 『JY的题目』[问题描述]给定两个十进制正整数A和B,请计算出A和B用二进制表示时有多少位是不同的.例如,“3”的二进制表示为“11”,“9”的二进制表示为“1001”,“11”不足4位,不足部分实际上为0,

JS个人的简单总结

学了4个月的前端,东西学了很多,其中HTML和CSS在于灵活的运用和记忆,JS和前两种有很大区别,个人觉得也是以后工作中非常重要的一点,是唯一有逻辑性的东西,下面是个人的一些简单的学习过程总结: 首先,我们学习了JS的来历和一些简单的语法知识,并且学习了一些由JS原代码组成的代码,一些简单的事件,然后我们学习了BOM和DOM两个最重要的核心对象模型,即浏览器对象模型和文档对象模型.并且学习了其中的很多鼠标和键盘和浏览器事件,虽然实现了我们与用户的交互,但是在学习的过程中却发现有很多麻烦的东西,比

程序员学习路线

学了差不多两年的编程,沉下心来回想一下,除了类似 HelloWorld 这样简单的程序会写,其他稍微复杂一点的程序代码,连看都不敢看.说没有学过什么语言,那肯定不是啦!可能就是因为接触的语言多了,都是学了些皮毛,感觉什么语言都会.其实,是什么都不会. 大一,有接触过Java,SQL server,Matlab,Html ,看到真的没什么感觉.于是就简简单单的跟着老师上课的步伐,半知半懂地学着.考试勉强混过了.下个学期,也一如既往.到了大一快要结束的时候,听说软件测试不需要学太多的程序代码,于是就

TeX — Beauty and Fun

TeX — Beauty and Fun 这里是一个宣传 TeX — 世界上最漂亮,最有趣,最可靠的排版程序的网页.希望通过我的介绍,你能体会到使用 TeX 的快乐感觉,并且成为一个 TeX 的用户和支持者.由于中国 TeX 的普及率还很低,我们必须适当宣传.如果你也情不自禁爱上了 TeX,你希望更多的人从中受益,那么就把 TeX介绍给你的朋友们吧. 不管你怎么到了这里,或者是写论文时被 Word 繁琐的功能弄晕了,想看看这个新鲜东西能否消除你的烦恼?或者你是久闻 TeX 大名,但是不知道这到底

无业务不伸缩,云计算有ESS

无业务不伸缩,云计算有ESS 一名网工的情怀 从初出茅庐到资深网工也用了十年时间吧,在专业的运维公司呆过.在政府外包单位干过.再到生产型企业最后在化工行业.有过泪.有过痛,辗转多年见过形形式式的人和事一转眼又过去了数年,从去年开始暗下决心开始进行新知识的学习和储备学习了Cisco运营商,学习了OCP.直到有一天听说了阿里云大学才知道原来云计算还可以这么玩--这段时间在阿里云计算的班教.导师指导下终于完成了教学内容和考试,在此特别感谢云大学里的那些认真负责的教辅人员感谢他们半夜十一点还在为我们解惑

从Activity的启动流程理解Binder

简述 关于Activity启动流程和Binder的文章很多,大多数是分开来讲的,本文将二者结合起来,着重分析启动流程中跨进程方面的细节,其实,启动流程看似调用繁多,主要是复杂在Activity栈管理等方面,如果将其看作一个整体,整个启动流程就简单很多.在启动流程中,App和AMS的跨进程调用是其中的重点,理解了这个,会加深对Binder和启动流程的理解认知,也能窥到Framework层的冰山一角.另外我也发现,很多文章在讲启动流程的时候,关于ActivityMangagerService进程如何