听说你们要开始学C了
同学们好:
先自我介绍一下,我是你们的助教吴喆(厚颜无耻地要求大家叫我吉吉老师:-D),本科学的电子,所以陆陆续续接触了不少C/C++的工作,曾经被编码折磨得死去活来,如今却对其念念不舍,颇有点“斯德哥摩尔综合征”的味道,或许,我就是个受虐狂吧,哈哈(不禁想起三国杀里的黄盖对周瑜说的话——请鞭笞我吧,公瑾!)。
大学学习过程中还是走了不少弯路的,而且还有些弯路是“致命的”,当时也并不是无人点拨,只可惜我一根筋,听不进相左意见,直到撞了南墙才肯回头认错,痛改前非,现在在外工作,方知踏实学习之珍贵,对校园生活也甚是怀念起来。目前在用C语言教小朋友信息学奥赛,所以更是回忆起大一学C语言的点点滴滴......
大一,多么的naive!当时的我用“无知”或者“浅薄”二字形容无比适合,抱着搞硬件电路,那就可以“混”软件的态度,用傲慢演绎了何谓二货。那时太“专”应试了,可能刚高考完,思维还没有从题海中得到释放,对于新新学科,尤其是暂时看不到未来何用的学科,产生了鄙夷的态度,这是很极其可悲的!因为起步就落后了别人一大截,技能指数增长的初期没牢靠,所以后期就显得乏力,那会儿自己还在线性缓慢进步时,别人已经指数爆炸了。
除了傲慢,还有懒惰,不是手工活儿的懒惰,是思维上的懒惰。记得当时习惯了算数学题的快速、简洁、美观,对起步如负铅块的C语言课程感到极为不适,为何如此讲究语法?怎么计算个数还要声明类型?格式输出有那么重要吗?......这种看似小问题,乃至有人认为不是问题的问题,都是跳跃思维在作怪,恰恰会阻碍大家后续前进,会减慢登上C语言高级台阶的速率,我们应该用严谨有序的逻辑思维或程序思维来做好铺垫。
在此,踩过荆棘的大师兄奉劝诸君,入门需谨慎,骄懒有风险!
以上闲扯了些开场白(不喜者请跳读,这里可用跳跃思维哈==),接下来讲点干货(fucking goods)。
1.为什么要学习程序设计呢?
想先问一个问题,大家此刻在网站上看到了我写的博客,请问它从“无”到“有”怎么来的?相信这个问题要是详细展开,绝对没几个人能回答得上来,但这就是计算机技术帮助我们做到的,而要理解计算机技术,从程序设计开始是一件很有意义的事,不仅能了解计算机程序工作原理,更是掌握了编写程序的技能,何乐而不为呢?
2.为什么选择C语言呢?
程序语言有很多,选择有很多,选C有优势,可以解决某些小程序的编程,将来学C++也好过渡,它比较基本。(以上都在胡拽,其实我个人推荐初学用Python。。)
3.怎么学习C程序设计呢?
①给自己一个暗示,训练思维和开拓眼界为主——原来大千世界还有一种这样的思考方式。这样就不至于在困难面前低头,可以增添自己的认知智慧,当然,谁不想让自己变得更聪明的可以排除除外;
②掌握好基础语法,重视所有出现的概念。有的概念一时半会儿搞不清楚的,也要记下来,为后文做好铺垫。。(怎么感觉读C语言课本跟在读小说似的)
③重视实践,先给自己要编写1000行代码的目标。有的同学看书看明白了,就觉得重码一遍费力,但是我可以很认真负责地告诉这位同学,请相信人脑的“失真度”,信息从“图像”到“字符”绝对存在损失,这就极其要求大家动手操作了,这样才能训练大脑的神经回路,得到精准的知识记忆,再在记忆的基础上,打通任督二脉,拓宽大脑的工作记忆空间,获得对C语言知识的更高层次的认识;
④获得反馈,咬定助教不放松。。系统(更何况在新生学习初期一般都不成系统)在没有外界能量输入的情况下,一定是会熵增的,也就是变得复杂,变得混乱,所以新生们,你们一定要多多询问老师,尤其是拿人钱财,替人消灾的助教老师啊,尤其是那个叫吉吉老师的助教啊,不要放过他,把问题都砸向他吧,让他帮助你们获得良好的反馈,然后熵减,然后复利,然后飞飞飞飞飞起来~~~
听说你们要开始学C了,诸君看罢此文,都准备好启程了么?
听说你们要开始学C了的更多相关文章
- 听说你还没学Spring就被源码编译劝退了?30+张图带你玩转Spring编译
源码学习第一步,Spring源码编译 之所以写这么一篇文章是因为群里的小伙伴在编译源码时碰到了问题,再加上笔者自身正准备做一个源码的注释版本,恰好也需要重新编译一份代码,至于为什么要将源码编译到本地就 ...
- jzoj5988. 【WC2019模拟2019.1.4】珂学计树题 (burnside引理)
传送门 题面 liu_runda曾经是个喜欢切数数题的OIer,往往看到数数题他就开始刚数数题.于是liu_runda出了一个数树题.听说OI圈子珂学盛行,他就在题目名字里加了珂学二字.一开始liu_ ...
- JZOJ5988 珂学计树题
题意 liu_runda曾经是个喜欢切数数题的OIer,往往看到数数题他就开始刚数数题.于是liu_runda出了一个数树题.听说OI圈子珂学盛行,他就在题目名字里加了珂学二字.一开始liu_rund ...
- 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 ...
- JY的题目(水)
JY的题目[问题背景]一天,JY觉得DZY智商太低下,决定和他离婚,除非DZY做出来她出的题目.DZY当然非常想和JY在一起,所以他只好又去请计算机大神WJC帮忙,WJC已经帮过他N多次忙了,不想再帮 ...
- 初学PHP心得(第一天)
我是PHP初学者,听说女生挺适合学这门语言的.所以,我就下定决心,来好好的探究下它,希望它能成为我开启IT道路的第一道关卡. 今天心血来潮,来记录下一天的成果和收获吧.既然想法有了,那就要去实现它.于 ...
- 从Activity的启动流程理解Binder
简述 关于Activity启动流程和Binder的文章很多,大多数是分开来讲的,本文将二者结合起来,着重分析启动流程中跨进程方面的细节,其实,启动流程看似调用繁多,主要是复杂在Activity栈管理等 ...
- 洛谷P3810-陌上开花(三维偏序, CDQ, 树状数组)
链接: https://www.luogu.org/problem/P3810#submit 题意: 一个元素三个属性, x, y, z, 给定求f(b) = {ax <= bx, ay < ...
- 你知道Spring是怎么将AOP应用到Bean的生命周期中的吗?
聊一聊Spring是怎么将AOP应用到Bean的生命周期中的? 本系列文章: 听说你还没学Spring就被源码编译劝退了?30+张图带你玩转Spring编译 读源码,我们可以从第一行读起 你知道Spr ...
随机推荐
- Qt5.7.0配置选项(configure非常详细的参数)
configure是一个命令行工具,用于配置Qt编译到指定平台.configure必须运行于Qt源码根目录.当运行configure时,编译源码使用的是所选工具链中的make工具. 一.源码目录.编译 ...
- tensorflow学习笔记四:mnist实例--用简单的神经网络来训练和测试
刚开始学习tf时,我们从简单的地方开始.卷积神经网络(CNN)是由简单的神经网络(NN)发展而来的,因此,我们的第一个例子,就从神经网络开始. 神经网络没有卷积功能,只有简单的三层:输入层,隐藏层和输 ...
- node爬虫之gbk网页中文乱码解决方案
之前在用 node 做爬虫时碰到的中文乱码问题一直没有解决,今天整理下备忘.(PS:网上一些解决方案都已经不行了) 中文乱码具体是指用 node 请求 gbk 编码的网页,无法正确获取网页中的中文(需 ...
- java8日期时间
###与时间有关的5个包* java.time* java.time.chrono* java.time.format* java.time.temporal* java.time.zone###ja ...
- 【C#】C#容易忽视的错误
1.string 拼接站内存,前提是字符串比较多的时候string 字符串类型拼接占内存,解决方法就是用 StringBuilder和String.Format2.不知道内置的验证数据类型的方法. ; ...
- POSIX字符集
[. .] 排序元素 [= =] 等价元素 类别 匹配字符 [:alnum:] 数字字符 [:alpha:] 字母字符 [:blank:] 空格与制表符 [:cntrl:] 控制字符 [:di ...
- Asp.Net MVC<六>:Controller、Action 待续
控制器 抽象类Controller Visual Studio的向导创建的Controller类型继承自抽象类Controller. 它是ControllerBase的子类. 实现了IControll ...
- bzoj 1305 dance跳舞
最大流. 首先二分答案,问题转化为x首舞曲是否可行. 考虑建图,对每个人建立三个点,分别表示全体,喜欢和不喜欢. 源点向每个男生全体点连一条容量为x的边. 每个男生整体点向喜欢点连一条容量为正无穷的边 ...
- 前端Javascript框架收集
1.AngularJS 2.React 3.vue.js 4.JQuery 5.Zepto.js 6.Require.js 7.sea.js 8.backbone.js 9.Meteor.js 10. ...
- ajax之 get post请求
get请求 function get(){ $.get( "./Aservlet?id=5", function(data, textStatus, jqXHR){ $(" ...