给初学编程的人的新年干货
给初学编程的人的新年干货
2016-01-05 11:55:43 来源:简书
抢沙发
2016-01-05 11:55:43 来源:简书
摘要:现在IT新技术日新月异。就常用编程语言而言,有c c++、汇编、java,c 、Python等;操作系统平台有unix linux,windows系列;
关键词:
编程
四、成功的秘诀
古希腊大哲学家苏格拉底,思想深邃,思维敏捷,关爱众生又为人谦和。许多青年慕名前来向他学习,听从他的教导,都期望成为像老师那样有智慧的人。他们当中的很多人天赋极高,天资聪颖者济济一堂。大家都希望自己能脱颖而出,成为苏格拉底的继承者。一次苏格拉底对学生说:“今天我们只学一件最简单也是最容易的事,每个人都把胳膊尽量往前甩,然后再尽量往后甩。”苏格拉底示范了一遍,说:“从今天起,每天做300下,大家能做到吗?”学生们都笑了,这么简单的事有什么做不到的?
第二天,苏格拉底问学生:“谁昨天甩胳膊三百下?做到的人请举手!”几十名学生的手都哗哗地举了起来,一个不落。苏格拉底点头。一周后,苏格拉底如前所问,有一大半的学生举手。过了一个月后,苏格拉底问学生:“哪些学生坚持了?”有九成的学生骄傲地举起了手。
一年后,苏格拉底再一次问大家:“请告诉我,最简单的甩手动作还有哪几位同学坚持了?”这时,整个教室里,只有一个学生举起了手,这个学生就是后来成为古希腊另一位伟大哲学家的柏拉图。
如果说柏拉图的故事太过遥远,那么就再给大家讲一个发生在眼前的故事。
一次英语课上,老师带来300句高考精华句子,并且许诺说:如果能够把这些背诵得滚瓜烂熟,高考成绩一定会提高。大部分学生以为又是老师哄学生的话,但身为有一个学生却有着迫切提高成绩的压力,对老师的话铭记在心。回去后,他把这300句话当作至宝,先翻译成中文,又翻译成英文,发现几乎每个句子都程度不同地存在错误,或时态、或单词、或结构出现错误。他把这些知识整理在一个本子上,重点记忆。随后的一个月,他仿佛吃了兴奋剂,拼命地背诵和默写这300句话,在付出一个个的清晨和夜晚的时光后,终于取得丰硕的成果,他能够一字不差地默写出这300句话。从此,这300句英文成为他的绝技,使他的英文成绩很快得到了提高。这个人就是现在留学培训的航母——新东方的掌门人俞敏洪。
有如鹏网的同学问我“学计算机有没有什么速成的办法”,我想说的是最好的速成的方法就是“坚持”。一切其他的速成方法学出来的东西都太容易,“越容易得到的东西越不值钱”这是一条永远不会变的价值规律。越是厉害的武功,越是难练,需要的时间越长。很多人,都是中途退场了。
坚持是最容易的,因为每个人都可以做到;坚持又是最困难的,毕竟没有几个人能够坚持下来。坚持下来的人就是成功的人。
最后一句话:切务浮沙筑高台,练从难处练,用从易处用!无速成,唯有坚持!
同学们千万不要犯大部分人都犯的错误:
下载了一硬盘的视频教程、电子,几乎没看过,即使看过也是看看就算了,根本没用心看过,更别说跟着老师进行代码练习。
光down不看是浪费硬盘和带宽
光看不练是浪费时间和青春!
不要光下载不看,不要光看不练!
错误认识1. C/C++太老了,过时了,平时用得很少,现在流行都Java、C#等等。
解惑:不要动不动觉得什么东西过时了,COBOL还有OO版本面世,还有FORTRAN,LISP,好古老的语言吧,现在还用得很广呢。杨中科老师经常提醒我们“一切语言都是纸老虎,一通百通”,学校已经开了C/C++的课,并且想继续深入学习编程,那么就继续使用学过的语言来学习,不要再去学一门新的语言。等把C/C++弄熟了以后,回头一看,相信你也能像杨中科老师那样“半天学会一门新语言”了吧。
错误认识2.入门要从OO开始,培养用OO方式思考的习惯。
解惑:初学者一入门便摆弄Java、C++等很容易形成误解,似乎OO=Java,C++...。一切编程语言的根本都是面向过程的,Java、C++等语言也是支持面向对象特性的面向过程的语言。面向过程就是if……else……、while、for这些东西,Java、C++等语言中难道就没有这些语句了吗?
过程式语言(或者说结构化方法)的精髓不会消亡,OO里面也不可能摆脱掉一条条的语句、函数调用,结构化方法还是需要提倡的。OO方法不是那么容易学会的(OO语言的语法弄得很熟练不代表你懂OO),而结构化那套方法,自个写个千把行的程序就很能体会了,我是说写个实用点的东西,比如试着自个实现一些数据结构和算法,写几个小游戏等。写个一千行Helloworld等于没写。
我觉得方法是实践中体会出来的,不是看看书就能学会的。过程式语言的代码一般比较简练,我们编程序最终的目的是要解决问题,是要计算,是要获取信息,不要被OO,设计模式等迷糊了。
错误认识3.过程式语言弄久了,很难转入OO的思维模式
解惑:我以前也没有深想过这个理由,不过时间久了,发觉自己不过是把数据和方法集中在一起而已,看着方便,其实有很多不合理的东西,这里头就需要OO的理论指导了,还是需要时间来体会。我相信有很多用OO语言的人也不过是在框架里头添添代码,调用来调用去而已,把人类当作数据和操作的打包器。
个人觉得只有在用过程式方法做了十来年,编码上十万行后才有思维定势,难以习惯用OO的眼光看待系统,然而这个转变,我仍觉得比改变一个人的恶习容易许多。OO方法不是学了个Java,C++等就能掌握的,需要实践,需要时间。过程式语言也容易培养一个人严谨的做事态度,比如用汇编,C等写代码,没有命名空间、没有一大堆类库,没有模板、没有异常,你要花很多心思处理一些细节,比如警惕数组索引越界、悬挂指针、野指针等等,请不要觉得麻烦,这个就是计算机啊,底层就是这样的啊。
错误认识4.别用C了,看我用Java、 VC等轻轻松松就写了个漂亮的图形界面
这篇文章是给初学者看的,也可以给一些浮躁的人看看,初学编程的人精力应该放在数据结构、算法上面,尽量多看一些底层的东西,数字逻辑,操作系统,编译原理,计算机组成、体系结构,计算机网络等等基础知识。编写GUI拖几个控件有什么好吹的,既然你会拖几个控件那么一个初中都没毕业的也会拖控件,你和他的差异性体现在哪里?你知道窗口消息怎么回事么,你编的界面是把易用放在第一位呢还是把漂亮放在第一位呢,你的GUI程序容易修改吗?比如我一会要加个button,一会去个listbox,你会不会改的疯掉呢?你是不是在OnClick里头写了大段大段的代码,做类似“从edit1.text中去掉不是数字的字符,搜索xxx再转成16进制,再复制到edit2.text”的事?
学习还是找纸版的书老实的看比较好,想想你积攒了多少电子书而又看了多少。
底层不了解,仅多也就飘在别人上头,别人一闪身,你就得摔下来。
初学编程的人一来就IDE, GUI,Network啥的猛搞,能不浮躁么?还是沉下心来研究一下基础知识吧,我以脑袋担保你有生之年会觉得他们有用的(呵呵,你转行我就没辙了),别看着别人弄JFC,Socket了你还在头大这个quicksort怎么就不对呢就心里惶惶的,你要知道在一批API不被支持后不少人心里空空的没个着落:天啊,我除了那个就啥都不会了,郁闷啊,花了我那么久时间钻研那套API,呜呜。。。。
错误认识5. C好难啊,我入门还是从Java,C#开始吧
解惑:语言只是表达思想的工具,不要只局限于一种语言,不要狂热于某一门语言。记住如鹏网的杨中科老师说那句话“价值规律就是——越是容易得到的越不值钱”。
第四十一届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:pingxiaoli
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。