听说你们要开始学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 ...
随机推荐
- Linux系统下的ssh使用(依据个人经验总结)
对于linux运维工作者而言,使用ssh远程远程服务器是再熟悉不过的了!对于ssh的一些严格设置也关系到服务器的安全维护,今天在此,就本人工作中使用ssh的经验而言,做一些总结记录来下. (1)ssh ...
- .gitignore详解
今天讲讲Git中非常重要的一个文件――.gitignore. https://git-scm.com/docs/gitignore 首先要强调一点,这个文件的完整文件名就是“.gitignore”,注 ...
- ThinkPHP常用查询
1.常规 $map2['state'] = 1; $User->where ( $map2 )->find(); 2. OR 查询 $where['name'] = array('neq' ...
- php 时间加减
<?php date_default_timezone_set('PRC'); //默认时区 echo "今天:",date("Y-m-d",time() ...
- BZOJ 2115 【Wc2011】 Xor
Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 ...
- UCenter创始人密码正确但是登录不了
UCenter创始人密码正确但是登录不了,没有什么提示,就反复输入密码登录 也进不了......... ================================================ ...
- C 语言学习的第 05 课:C 语言基础(01)
C语言程序中的绝大部分应该记录在以.c作为扩展名的文件里,这种文件叫做C语言 程序的源文件. C语言中还包括以.h作为扩展名的文件,这种文件叫做头文件. C语言中的四则运算: 加:+ 减:- 乘 ...
- 命名空间“System.Web”中不存在类型或命名空间名称“HttpUtility”。是否缺少程序集引用?
vs2010下解决方案: 1.右击项目选择“属性”,目标框架选择“.net FrameWord 4”; 2.右击项目中的引用,添加引用,在.net下选择System.Web,确定OK. 解释: fra ...
- 关于GeoWebCache的部署说明
最近因为工作需要学习了GeoWebCache,有了一些实战经验跟大家分享一下. 废话不多说,直接上问题! 1.切片的缓存问题 当地图服务(这里默认指WMS)的数据更新时,GeoWebCache的切片如 ...
- JAVA锁的膨胀过程和优化
首先说一下锁的优化策略. 1,自旋锁 自选锁其实就是在拿锁时发现已经有线程拿了锁,自己如果去拿会阻塞自己,这个时候会选择进行一次忙循环尝试.也就是不停循环看是否能等到上个线程自己释放锁.这个问题是基于 ...