回 帖 发 新 帖 刷新版面

主题:(非计算机系学生)如何入门篇(13)策略-【切入点】


http://www.sjjk.cn/csbbs/
http://blog.bcchinese.net/jackmacc/
"学习要像蝴蝶破茧"
jackmacc@163.com
jackmacc@gmail.com
构造完美,程式完美,接近完美.
思想,机器,人生

***************************************************************
    【切入点】2006年8月16日 (新版)
***************************************************************

"不论现在还是将来我还会继续的努力"
----------------------------------
当前学校呆板的应试教育.就业培训弊端,必然是不适合所有的人,这是事实.
我虽然也曾经读过专业课程,但是感觉是没机会选择自己喜欢的专业,
所以只是偏重的学了自己专业有计算机的一些东西,


"如何才是一个真正的,一个完美的程序员.一个CS_Quester"
----------------------------------
程序员首先是很苦的设计工作。虽然有些时候还谈不上是一个纯粹的程序员。
现实中的工作还不是更多的涉及到编程设计开发方面
但是,始终都要追求一种"方式"理想的生活方式.


"要立志才能立业"
----------------------------------
回望当初,我是个狂热的爱好者(CS_FAN)。为了这个单纯的想法我真的付出很多,很多.

"必须首先使,自己象一个程序员"
----------------------------------
生活要有"程序员的标准",那必然对于一个CS_FAN,是需要花时间做到的
很多时候,留在计算机旁的时间超过睡觉的时间,

"但最苦的时候却没有就此放弃。"
----------------------------------
起初读书的时候,因为钱不是很多就剩下点吃饭的钱,买书,
积攒起来买机器,所以后来.5六年我都是没啥钱,都消耗在这个学习CS花费上了。
想一想花的比别人多的多,但生活却比别人苦。

"有所失去,才会相应得到些结果"
-----------------------------------
在长期的学习过程中,锻炼着耐性和对计算机技术的敏感度,这对于新的技术,设备,软件的了解很有益的.
这就是我在很多地方反复对一些爱好者说计算机,不仅仅是语言,编程/编码的原因。
关键在于,你能否从面对的不同的"东西",体验了CS漫长的学习过程,磨练磨练了自己
"作为一个CS程序员的技术或者思想的根源"


"但是现在我想时光倒流,不要很长时间
再给我5年就让我在那两尺之地,学更多的东西"
-------------------------------------
我遇到的困难并不只是来自于计算机本身,有些,则来自于对计算机的"激情"在生活中的挫败感.
而这种东西也许将伴随着整个人生吧.时常就有一种懈怠的情绪,但只要有了希望就又有了"激情"
就可以马上打起精神继续努力

还有一种在工作中,学习中的孤独感.它来源于一个人在研究和琢磨技术的深刻的困难的体验中.
它是抹不去的只有经受考验.这时候对各种难题都感到困难.同时对自身感到失望,很长时间的
懈怠了工作,这时候我会去买书看书,买最厚最好的书,当我拿到书的时候一股激情就来了,
于是三五个月我就看着书,不去想那些暂时无法攻破的学习难关.对一个知识点侧面理解
时间长了知识面宽了技术难题就还是解决了.

时间多么的宝贵,哪有时间做其他的事,你不要以为你很年轻,曾经我也曾经19岁,似乎
年轻就是在无限的苦闷中度过,我也一样
***************************************************************

▼学习计算机知识,是有必要追溯到计算机发展的历史的,学习软件知识要从计算机发展的背景知识下手
不然别人只会说你知识面窄,首先对发展历史有个概念认识才好在一些书中有所启发.承前启后.
有根有据.既陶冶了情操也增加了信心.明白CS的成功不是一个人的事情.要靠大家.共同的努力
借鉴前人.引导后人更加努力.找准目标.

▼就我认为计算机不是想学什么再学什么的问题,关键就是入门,找到一个学习【切入点】,让自己感觉良好
于是才不会在计算机旁边发呆,感到失望和一片茫然

"当年我多想有个电脑,最后我得到了,我忘不了那种幸福的感觉"
以前没有计算机的时候没有机会体会和摸到它.其实有一种情结始终存在着,好比战士没有武器
当你拥有它时,你要感觉是你需要控制这一切,说句狂妄的话"我已经控制这片区域"控制机器就像就好比士兵拿着
.步枪一样,这种感觉才是最好的.

在我没有机器之前,省吃俭用,还买了一本装机的书,想起来真的很疯狂,在还没有计算机的时候就已经在看
有关配件有关软件的书并且买了一张window98,的安装盘,不停的对人说这是微软公司花两年时间200多个程序员
是辛勤工作的结晶,当时市场价值200美元(没想到这张盗版盘还是有问题的,始终无法使用)
可是这张光盘凝聚了我所有的希望(那时我才20岁,我想有台电脑)

在那一年炎热的夏天当我把,学到的CS 关键词 一个一个英文缩写.编程成字典
和解释的简语,抄些到笔记上面时候.我很自豪(可笑我以前从来没有如此认真的和投入的做过)
搞清楚什么是AI什么是AT&T什么是DIR,代表什么.回头看这些陈旧的记忆,真感到人生暂短,去日苦多,
那是多么深刻充满伤感的体验.至今难忘.

1998连我得到了我的第一台电脑,虽然生活拮据当时我得到了,这也许是我 对机器的一种
特殊感情的根源吧,每当打开我的机箱的时候我都会记得打开第一台电脑机箱的那种兴奋感觉.



▼加入CS的行列,你的道路可能不会比我轻松多少的,需要激情,更加需要勇气,让胆怯的人离去,
留下敢于忍受孤独钻研CS的精神的开拓者.就好像是一个殉道者."神眷顾你,并先离弃你的肉体"
学习CS 特别是那些半路出家,从其他行业上转过来的人.首先不如意.而后受到离弃.(工作,生活)
好像事事坎坷.

▼我宁愿喜欢可以动手去做的人,我遇到不懂的概念到书店,去买去看,不知道课程就请人写所有的
课程列表,首先去实践,然后再谈谈困难,善于总结.

"所有一切的开始不是,凭空的言语而在于真实的付出行动.
这一步是关键的'难上难'而且要不计得失"
-------------------------------------------------

▼如何开始,其实依据我的经历并没有什么先后之分,因为一本书的内容牵扯众多知识点,学语言更加如此
例如C++,你会对应用指针感到迷惑,那是因为,你还没有学习寄存器的访问方法(原理)当你
学习汇编的时候也会被中断调用,有例如,任务堆栈转换,感到迷惑那是因为你还没有理解,冯-布依诺
计算机的基本原理,编程设计无疑会牵扯很多CS的原理的很多东西这些都要去琢磨.好比有抢却没有子弹.
有武器没有目标有目标却打不中.精深的知识仅仅在思想中,仅仅外化为物质的表象.编程就是表象,而内在
是设计,精髓却是,计算机科学应用到实践的进步.这个庞大的计算机科学体系


▼所以没有那一本书会包含所有知识,我每次都会放下看不懂的去买一本新书就为了理解前一本书的提到的概念,
自学的过程中要学会从几本书获得的概念的深刻的多侧面的理解,然后将补充问题,产生
更加多的思索,这样才是自我推进的学习态度和方法.

"渐渐的发现,书和机器,往往比肚子重要多了"
------------------------------------------------------
还是学生的我却要负担60到180元不等一本的书,于是常常都会在别人眼里过得十分的狼狈
没有关系我能够做到,

"现在就让害怕孤独的人离开,允许他们逃走"
-------------------------------------------
接下来是你一个人的梦想的世界,可能在你还没有证明你不是在瞎胡闹之前,这样做也许你会伤害到一些对你报有
希望的人,但是你一定要坚持把时间保护好,也许长时间你会得到别让的唾弃,他们会在背后说你是不务正业,
但是我没有理会这些人,苦闷的时候总是坐在心爱的计算机对面,左手旁边是我新买来的书.

"书山学海,一不小心你会被隐讳难懂的概念,搞蒙"
--------------------------------------------
现在,网络上一不小心就会掉进聊天,和无聊的网络诱惑无法自拔,好在我三五年我根本,
没有余钱上网,当时同样现在我有时感到在网路上浪费很多时间,同时我更担心我会迷失在
这种快餐文化的迷雾里.我很担心有些学弟会掉进这种虚无的境地,并不时所有网络上的知识
都值得去研究.搞CS 要靠基础理论做后盾,盲目过早参与技术应用的竞争很不值得.
例如.那些号称短期学会什么什么.安排就业的什么什么机构.
当时我同时不反对,先拿文凭,先吃饭的现实的态度.毕竟人还是要吃饭的.
但是这不时CS 是就业培训.

▼看书要有心得,积累学习得方法,不是看完一本书就玩了的,我的书每一本都是有选择的读,
初学者也许不能"断章取义"建议从头到尾,找到不懂的东西,再去找补充的书来读,这样
看书才有效果,才不迷惑,编程设计就是把你自己的东西融入形式之中(编写的程式中),所以你不必
一开始就编写出一点什么,纯粹浪费时间,因为这时候的知识还只是一隅,还不足概全貌
还不如从头到尾看别人,比较精彩的阐述和技巧,

▼说了这么多就,就是要有心理准备要树立决心,百折不挠,如果一开始就急于求成,我想必定会很失望.
CS庞大的计算机体系,不到万事具备,不会向你敞开大门,那些巧门的发现,人人风格形成需要很长时间锤炼和
自我发展.循序渐进绝对应征这句话,学会CS 同样也是学习能力和方法的同步能力的提高.是相辅相成的
没有开始的时候的激情和信念就没有后来的进步.

▼必须把所有重要的CS原理都了解,你才能开始没有困惑的设计开发,很多人由于没有"到位"就开始去编程
结果变成了机械的模仿,程序最终是出来了但是没有成就感,知识就是知识,不能由于要考试,就敷衍了事,
我不会有要考试才去真正写程序的想法,现在还不是C,C++,java,pasal,都可以写,但是精通必须选择其一
我现在有涉足工业控制(单片机)领域,更不想贪多,和急于求成.许多搞这个行业的人给了我实际的榜样
成就是靠兢兢业业实干出来的.

"凡是从小做起"
--------------------------------
▼先把自己的机器搞搞,有些人的系统很烂还在用来学习编程,到一家公司,一个用delphi编程的程序员
,要装扫描仪可是我发现找不到光驱,我先帮助解决了这个问题(原来是USB闪存冲突),搞好后,他惊奇的问光驱
没有,你怎么弄好的,呵呵!如此"程序员"不白痴也太懒散了吧!

▼没有全面计算机体系的了解,建议不要急于去编程,学学计算机发展的历史,知道一些计算机的发展
方向,一些关于操作系统,看看微机原理,接口,计算机的逻辑结构等等知识,对基础的事事有写认识
起码知道不光只有 Pentium4不光只有Windows,外面的世界很大.

▼这里说了很多,但是你没有留意到,我不是想告诉大家具体要从某一本书开始,那样没用,每一个人的知识背景不同,
还有就是社会背景也不同,那些想学的人.有些人可能已经是使用电脑的行家,可是有些人甚至可能连电脑都没有,这种
状况怎么能一概而论.个人要根据自己的状况安排自己.对学习计划适当裁剪.
我当时也没有机器,当时还是如同土八路一样那木棍当抢操练,多看预备的数学,逻辑等等不需要上级操作的知识
其实,许都关键知识都是不需要上机的.我现在上机写东西也是为了工作.闲下来,还不是看书.

▼其实介绍某个具体的东西如何,如何,的文章已经很多,有时候,某人拿起一本书,就觉得如鱼得水这就
是预备知识比较好的情况.初学者往往哪一些名词,一个一个的小问题,把自己搞蒙.这些基本概念需要看众多的
入门介绍,有个大概了解,才好在今后的学习中逐个攻破.开始回答这些问题,答案真的并不重要,那些问题实在是太杂乱了,
实际上甚至也没有用,正好证明初学者那种无计划无自序,急于求成的心态,可能回答了,有的人会短时间,有所帮助,
但是这不是我的初衷.

▼每个人只能找到自己的切入点(途径,启发自己),这个切入点就是关键,没人能代替你找到
因为每个人都不知道另一个人具体的情况,即使有,但对大多数人,是无济于事的
我并非,残忍的想说某个人太笨,有些人真的是太急于求成,根本没有准备好、

▼没有无数次的努力与失败的尝试,那里会磨练一个程序员的胆气,和对事物敏锐的观察力
不实践走出第一步,不以众多的失败为阶梯怎么能理解自己该从何处着手.
如果意志坚定就该努力敲击那扇CS的大门哪怕鲜血淋漓,最终会磨练自己.总结学习中
的得失.再接再厉.

"第一本书就是起点,当时实际上这之前我看过很多书."
------------------------------
▼没有什么捷径可言,(我只对大多数笨人说),我也算笨的,我选择的那"第一本书"就是"起点"?
可是在这之前我已经努力很久,起初也问很多的人(没有基础概念),答案都是"……"连我自己都记不清,
也许都是些没有用的东西,也会得到错误的答案,其实那都不重要.重要的是通过挫折和失败.
我知道了,那条路行不通.那些路可以尝试.答案真的不重要,我想说启示,启发,悟性,才是关键,
而最有帮助的就是"激情"和"信心"和坚持不懈的"决心"

"手把手"
----------------------------
▼那些问一步走一步的方法都不适用,我的答案也许不是唯一的,以前学校的老话"嚼碎的东西"就是指的这个,
而现在放在面前的是一盘冷肉你该怎么办,你是否该自己动手,还是等人来,我想你还是自己动手做饭吧,
不然时间长了会发臭,既然你离开了老师的纠缠,现在还保留一点"情结"么?

"一边工作一边学习,就是我生活的全部,"
-----------------------------------------------
▼我觉得在讨论一个具体的问题的答案的时候几个人的知识水平应该适度,
这样问题才会在,分析和争论中得到深化,思路清晰了,才会有真的收获
谈论论域不对.论调冲突难免会感到郁闷.这是我最反感的.

▼问题不是给你什么书看,也许你需要的,还是信心和勇气,你的内心恐惧没有答案的漫长等待
你也许还是回反问同样的问题,我的回答却还是,好像"佛经"一样让你摸不着边际
不知道你明不明白,我是真的想帮助大家的心情,有时候,同样的问题反复的,被几个人
先后提出,回答和反问同样没有什么实际的效果,因为对于初学计算机的人,会觉得答案比较
重要,但是往往答案中包含了许多抽象的陷阱,结果问题被,原封不动的再提回来,

"学习要像蝴蝶破茧"
---------------------------
▼往往结果是误解的纠缠着人,结果一些不得其法的人,最后分成两派,一派在自学的过程中,
磨练了自己的精神和勇气有所突破,另一些就无奈的成为失败者,我不想再谈什么具体的具体的解决办法
没什么用在你学习的过程中你会不断碰到问题,要学会自己解决,不然怎么超过那些本来就是计算机系的人

也许我的话是"狂妄"了些,但没有如此的胆气,如何克服困难

▼在学习的各个阶段,都会有一个"切入点"的问题,难道每个时候里都会幸运的得到一个,思路到
问题都清晰的答案,谁会那么了解你的困难,

"让胆怯的人离开,只留下勇敢面对孤独的CS_Quester"
--------------------------------------------------------

我只是想帮几个人入门,而不想成为什么"老师"
"老师"都很讨厌,学生着实可怜,^_^




回复列表 (共49个回复)

21 楼

[em2]谢谢楼主!我一定会努力学习下去的·!

22 楼

我这几天看了本书《编程高手箴言》  2004/1电子工业出版社出版  梁肇新编著
有一章节中他谈到了正确入门的方法,一下就是他的箴言:
“1.3 正确的入门方法
    在这一节中,主要讲从我的经验来看,一般程序员需要注意的地方。教你怎样去具体学习不是我的责任,你可以去任何一个书店去找一本书回来自己看就可以了。这里只是对这些书做一些平常从来没注意的内容。
入门最基础的方法就是从C语言入手。如果以前学过BASIC语言的话,那么从C语言入手是非常容易的。我就经历了一个过程,根本不觉得这中间有太大的难度。其实,C语言本身和BASIC没有什么两样。BASIC和C语言没有本质的差别。C语言就是入门的正确方法,没有其他。
    现在的C语言本身就包含了嵌入汇编,使学习汇编语言的时候更加方便。你可以忽略掉纯汇编里面的很多操作。也许有人觉得这个方法太漫了。但要知道,工欲善其事,必先利其器,要想成功,没有一个艰苦的过程是不可呢能的,所以一开始的时候就要有耐心。如果你准备花5年的时间成为高手,那我敢说,你根本不用等到5年,你只要有这个耐心就足够了,你可能2~3年内就能达到目标。但如果你想在一年时间内就成为高手,即使5年后,你还是成不了高手。
    插曲:我们公司1998年招的开发人员都是应届大学生。很明显,有人好象什么都会,又会CorelDraw,又会Photoshop,又会Flash,又会C++,甚至vb也会。可是这样的人到现在还是全都会,但是什么事情也做不好,做的东西“臭”死了。但其中有一个人就不同,他以前甚至连Windows的程序都没有作过,只会在DOS下做几个小程序。但当我们把超级解霸的程序给他看,让他去研究的时候,他只用了一周的时间,就迅速掌握。他哪个月进步非常快,几乎就是一生中进步最快的阶段,这就是一个质的飞跃。
    从基本入手后,当你的积累到达一个阶段以后,就会有一个质的飞跃的阶段。事实上,我也有这么一个阶段,这个阶段也是我离开大学以后,真正去公司做事的时候。当我真正拥有一台计算机后,我把所有以前积累的问题再一个月内做了探讨以后,感觉自己的水平迅速提高。//(梁肇新的例子)
    入门和积累是很重要的。事实上,到达高手的境界以后,不管什么语言不语言的,其实都根本不用去学,只要那过来看两天,就全部精通。如果你没有入门,即使去书店找n本书,天天背它,你也不会成为高手。
    所有的语言只是很花哨的表面的东西。高手马上就能透过表象而看到它的本质。这样才是真正的高手。他不需要在去学什么Java,或者其他什么语言。当他真正要写个Java程序的时候,只要把Java,只要把Java程序那过来看一看,瞄一瞄书,就会都清楚了。如果这时他学VB就更容易了,我想他不用一天的时间,就能学会。到达高手的境界以后,所有的事物都是触类旁通的。
    当你成为C语言的高手,那么就你很容易进入到操作系统的平台里面去;当你进入到操作系统平台里去实际做程序时,就会懂得进行调试;当你懂得调试的时候,你就会发现能轻而易举地了解整个平台的架构。这时候,计算机基本上一切都在你的掌握之中了,没有什么东西能逃得出你的手掌心。
    上面只是针对程序的角度说明,另外一点也很重要,即好的程序员必须具备开放性思维,也就是思考问题的方法。程序员,尤其现在很多的程序员,都被误导从MFC入手,这就很容易形成封闭式的思维方式。这也是微软希望很多人只能学点表面的东西,不致成为高手,所以他大力推荐MFC之类的工具,但也真有很多人愿意去上他的当,最后真正迷失方向。说他做不了程序吧,他也能做程序,但是如果那个程序复杂一点,出现问题时,问题出在哪里就搞不清楚了,反正是不清楚。如果你真正有一种开放性的思维,在你能够成为高级程序员的时候,对MFC这些是不屑一顾的,MFC、VB根本不会在考虑的范围之内。
    事实上很多人,包括外面很多公司里面工资挺高的人,可能一个月能拿五、六万的这些人,他们的思维也不一定能达到很高的境界。但是,他确实做了很多的事情,已经有好的积累了。但要上升到更高的境界上,就要有正确的思维方法。这就是为什么比尔.盖茨说,他招人的时候宁愿招一个学物理,而不是学编程的。学物理的人回有非常非常广的思维,他考虑的小到粒子,大到宇宙,思维空间非常广阔,这样,他思考问题的时候,就会很有深度。
    有人研究物理研究得比较深的时候,他能针对某个问题一直深入进去。很多写程序的人只会注意到这行代码或那行代码,则比较起来则显得肤浅。所以,编程的时候也要深入进去,把你的爱好、你的所有思维都放进去,努力做到物我合一的境界。”
    好东西大家一起分享!^-^

23 楼

棒@@

24 楼

[em2]多谢兄台的这些话了。。让我看到了一点方向

虽然不是很明确。。呵呵。

25 楼

看了主些我对计算机有了新的认识。

26 楼

请到我们的论坛
http://www32.websamba.com/CS_Quester/
http://www.202sf.com/CS_Quester/
CS-Quester(计算机科学探求者)

27 楼

我是学过C语言、VB。可是只是皮毛,并且对计算机的硬件只是靠自己的一点兴趣积累起来的。对编程有兴趣,可是不知道怎么去想。也没见识过编程序到底能干什么。有那位高手指点一下,关于程序现有的精彩实例。观赏观赏。谢谢!

28 楼

对于非计算机专业的同学们来说还是先从最简单的编程入手的好,这样可以小有成就感而促成更大的学习兴趣,建议不要一开始就去搞原理搞汇编,这样学起来会由于很难看懂那些巨抽象的原理而学的跌跌撞撞无比艰难以致打消学习积极性甚至是丧失学习的信心,说得重了点就是好高骛远终是远,不如从小处学起慢慢培养积极性在循序渐进的往难处往深处学。罗马不是一天建成的,冰山也不是一日冻上的。

29 楼

well

long time ago


30 楼

好高骛远?
从小处学起慢慢培养积极性在循序渐进的往难处往深处学?

???????


从基本入手后,当你的积累到达一个阶段以后,就会有一个质的飞跃的阶段
要上升到更高的境界上,就要有正确的思维方法

我来回复

您尚未登录,请登录后再回复。点此登录或注册