鱼C论坛

 找回密码
 立即注册
查看: 4047|回复: 27

[技术交流] 某大神的学习回忆

[复制链接]
发表于 2015-8-23 17:06:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
没能上大学,是我人生中的遗憾。但对如今的我来说,不值一提,我并不觉得羞耻,我更加为如今的大学生感到难过。
    高考对我来说是一次意外而必然的失败,但我并没有气馁。我默默的忍受了那段痛苦,化悲伤为力量,用功学习了计算机基础,从最早的打字练习开始。
    如今我还记得那时用“金山打字”学习打字的情形,先是英文盲打,接着是五笔打字。之后,我又学了办公软件,接着是硬件知识,还有自学了网页设计,photoshop、Fireworks、Coreldraw平面设计,整个过程只用了两三个月。我很感谢那里的学校和老师,教给了我很多东西。在那个时期,我是忘我的,可以说那是我成长的一个起点。

    那时,有同学和老师在做论坛,我对网站建设产生了兴趣,并自学起了网页设计。现在想想,这是我人生的一个转折点。
    从那时起,我开始接触HTML(超文本标记语言)。因为没有老师教,又是电脑小白,我偶尔会去书店翻翻书。开始时,基本上都是在学习如何使用Dreamweaver做网页。
    第一份工作,做了一名普通的电脑技术员;因为是ZF定点采购的电脑公司,每天,我都忙于在ZF、单位、学校之类的地方打转,每天默默地上门服务、修电脑、打印机加粉等等。这段时间,我认识了很多人,也学到了很多东西,更是摆脱了原来那个失落的自己。
    在工作的两年期间,我自学了ASP,这是我最早学习的计算机语言,微软公司专为网站开发而设计的后台专用脚本语言。学习ASP那段时间,可以说是最苦的。我的英文不太好,而ASP代码又全部都是英文;加上我从来没有学过编程,一个门外汉,怎么也找不到方法去学好它。
    我买了两本ASP的书,很厚。虽然我已经下定决心要学好ASP,可我尝试了无数次,都失败而告终。书中的每一章每一节都是一个知识点,而且都是一些英文单词。看着那一串串的代码,我只知道,它认识我,而我却不认识它。即便我死记硬背,到头来也只知其然,不知其所以然。
    我一次次去书店看书,找入门的办法,可依然无效。每次我走到书店的计算机书籍那片区域时,都有些茫然。我看到的全是很高深的书籍,感觉自己进入了一片大海,有些分不清东南西北。无论如何,我从来不曾放弃,我告诉自己,将来有一天,这些书都不再是问题,现在或许我什么都不会,但将来我一定会。
    每当我失去信心有些动摇时,我会去翻看一些游戏设计的书籍,因为我喜欢游戏,而且我告诉自己,将来或许有一天,我自己也能设计出游戏,尽管那是一个遥远的梦,但我不会放弃。重拾信心的我,回到家之后,继续拼命的学习。
    我曾做过一些小网站,把HTML和Dreamweaver练习了无数遍。而ASP,我几乎把整本书的重要知识都看了四五遍。我在做网站时,每遇到不懂的地方,都会在百度查找知识,那时,百度还没有如今的知道、百科,找知识真是大海捞针。很多时候网上都没有办法解决,我只好又在网上下载了很多大网站,翻看别人的代码,慢慢领悟。
    那个时期,我收集了很多的电子书籍,整理了很多的知识点,也做了两三个小网站。很可惜,如今这些东西都不幸丢失了。

    学习ASP时期,我认识到了自己的一个错误,即不会CSS,我的所有网页都是依靠Dreamweaver的表格去完成的。
    表格是很简单的,和WORD上面做表格一样,需要什么插入表格,修改行和列的大小位置就能调整网页的布局,需要什么直接复制即可,而智能的Dreamweaver会自动生成相关的HTML代码,这真是太好太简单了。更何况,那时的百度、新浪、网易、腾讯这些大门户网站,也还在使用table表格来实现网页布局。
    但随着时间的推移,我发现了表格的很多缺陷,特别是,生成网页简单,可修改起来,特别难,而且万能的Dreamweaver老是会在这种时候出现意外,将网页弄得乱七八糟,最终的结果就是,改起来比做起来难,改比新做的时间还要长,更何况任何网页做好之后,随时都会修改。
    这个时期,新的技术开始兴起,即如今的DIV+CSS,这种新技术一改之前的缺点。虽然设计的时候比较麻烦,但后期管理和修改网站非常简单。
    虽说新技术是非常好的,但真正开始学的时候才发现,比想象中复杂几十倍。打个比喻,以前是已经装好的箱子就等着送上车运走,而今箱子没了,要自己去创造箱子,然后包装。
    CSS是非常灵活的新东西,很多地方更是无法理解。以前,文字居中,只需要在标签内加一个 align="center"即可,如今,非要在标签内设置出id或者类,然后在CSS中使用css语句去实现;关键是,这还不定能够成功。
    再如,以前的table只需要设置一个宽度,再加一个居中(<table align="center" width="1024px"></table>)即可让整个网页内容保持在正中间。而今,使用div+css,想要居中那可真是非常难;首先,div本身是没有宽度的,永远与客户区等宽,必须设定其宽度。
   
    HTML中:<div id="top">.....这里放内容.....</div>
    CSS中:#top { width:1024px; }

    另一方法是用CSS类:

    HTML中:<div class="c1">.....这里放内容.....</div>
    CSS中:.c1 { width:1024px; }

    好,CSS必须放到HTML中,而或CSS文件中,然后在HTML中关联CSS文件。
    这么做之后,div就有了宽度,1024个像素;然而并非如此,这只是一个理想值,搞不好当内容过长的时候,遇到特殊情况,比如英文的时候,内容可能会被挡住不换行,而或干脆撑出1024的限制。这些问题也就不再提了,总之问题多多,不同的浏览器又不同。
   
    接着,我需要将DIV居中啊,一般的网站,内容都是在正中间,不是么。以前,表格的话好办啊,直接拖就能居中,直接软件上点一下居中即可。
    居中的实质前面已经提到过,align="center"即可,嗯,刚开始学CSS的时候我也是这么想的。可惜,CSS中没有水平居中...什么?没有,没有那怎么能居中?不可能没有吧,没有那怎么行?别人是怎么做到的?
    好,这个问题我查找了很多地方,总算明白了,的确是没有水平居中这一项。好吧,那我用以前的方法?不好,既然有新方法为什么不用?更何况,网上很多人都说以前的表格如何如何的不地道。
    好吧,别人是怎么做到的呢?CSS是如何做到水平居中的呢?
    首先,必须要给DIV设定宽度,这是必须的,然后呢?然后就是,设定其margin:auto。margin?这是什么东东,以前从未听说过,好吧,学习后知道了,这是边框,而且是对外边框,而且还分了 上、下、左、右;好吧,意思很简单,就是说DIV距离外层的上下左右的空白距离。
    OK,我将DIV设定成了1024px的宽度,再让它和四周的边框设定成自动!!注意,是四周!这个四周必须是客户区,也就是说,这个DIV的最外层必须是<body>标签,否则一切又失败了。
    好长时间我无法理解,为什么CSS没有弄出一个水平居中的功能来;为什么设定成边距自动,他吗的就可以成了自动居中,这有什么关联么?再者说,边距自动,一般应该是0啊,也或者是具体的某个值啊,他凭什么就规定,两边都自动的话,DIV就能自动居中。
    好吧,我认了,没法理解这些发明家的想法,我真的认了,最终只好死记硬背了。
   
    像上面这种无法理解的东西,实在是太多,那是很痛苦的,就像一个人,相信自己是无辜的,你非要说是他干的;就像太阳是从东边升起的,你非要告诉他是西边升起来的。实在不合逻辑...
    整个学习过程是枯燥无味的,还要忍受各种各样的问题。
   
    学了CSS之后,我又发现了新问题。ASP只是一个后台脚本,只能管理后台的数据,负责数据连接和显示(哦,这一点也是以后慢慢领悟的,说白了ASP就是这么个功能而已)。
    所谓的问题就是,很多人都会在网页上放一个时间显示:比如:当前时间:2014.04.08 星期二,而且时间还能自动变化;网页上还有很多菜单,鼠标放上去会显示出更多的内容;再比如,网页上会跳出很多的广告窗口;有的窗口还会分居网页的左右两边,网页向下滚动,它也跟着动。
    好吧,新的东西又出来了,这是怎么实现的?
    从书中我找到了答案,这是新的语言:javascript,前端脚本,这种脚本也可以像CSS一样包含到HTML中。
    好吧,有新东西就要学,可这东西,居然比ASP还复杂。可以想象,我花了无数的心思在上面。
    还有一个最重要的东西没有提及,那便是数据库。我开始学的时候,是SQL2000。这对当初的我来说又是一个新东西,又花了无数心思去学。
    另外,在那时我便学会了如何创建网站,注册域名,申请空间,维护网站,这些都是后话了。

    无论曾经经历了什么,那两年后的成果是,无论是HTML、CSS、ASP、SQL都懂一些,但都不全懂,都只是知其然不知其所以然。很多时候,我需要去翻书看,需要一边写代码一边复制粘贴以前的代码慢慢修改。现在看来,那时的自己只是最初级的入门,很肤浅。
    比如,我能实现用户的注册和登录,而且可以做出验证码功能,但我不知道验证码是怎么来的,原理是什么,这个功能直接用的别人的。又比如,网页上加入一个时间显示,我也不知道如何编写,抄了别人的,自己修改;导航一类的菜单也是如此。
    唯一值得庆幸的是,那两年,我学会了如何自学,又如何在那个没有“百科”没有“知道”这些先进东西的时候找资料。
    在网站制作上,我经历了三次自我学习革命,这只是第一次。

在此,小总结一下我看网站设计(这两年的终级领悟):
    HTML:其实就是负责显示网页,显示了文字、图片来源、超链接、线条、框等等;表格时代,还负责了后来CSS负责的功能。
    CSS:负责排版布局,即如何显示:显示的位置、大小、颜色;比如:文字有位置、字体、大小、颜色;图片有位置、大小、边框;DIV等也有位置、宽高、边框、边距;鼠标有光标...
    JS:javascript,负责要求并控制浏览器修改HTML和CSS,使网页上的内容发生变化;比如跳出一个对话框、显示菜单内容、隐藏文字;最新的AJAX技术更要求浏览器实时提取后台数据,局部修改显示的内容;比如说,QQ空间的说说日志等动态,点击刷新就能看到最新动态,而不需要刷新整个页面。
    ASP、C#、JAVA、PHP等:负责连接数据库,实现查询、插入、删除、修改数据库中的数据;实质是在要求读数据时,向数据库软件发送SQL查询命令,读取数据后向客户端生成带数据的HTML、XML等等;在存储数据时,将客户端收到的数据,用SQL命令存放进数据库。
    SQL:数据库语言,负责命令数据库软件执行并如何执行"查询、插入、删除、修改数据"。
psb-3.jpg
psb-5.jpg
psb-4.jpg

点评

我很赞同!: 5.0
我很赞同!: 5
太赞的文章了 !!!!  发表于 2015-8-24 11:11

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
拈花小仙 + 5 + 5 + 3 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-8-23 17:07:54 | 显示全部楼层
这不只是简单的回忆,更体现了我在自学的过程中,解决各种问题的方法;更可以说,这是一篇可以指引人前进的日志,特别是对那些初学编程的人尤为有用)
    在工作两年后的09年,我辞职回到了家中,之后的一年都在家养鸭子。
    刚开始的大半年,我每天上午钓鱼,下午打游戏,晚上看电影,偶尔写写东西,而或练练网页设计。

    在这段悠闲的日子里,我每天都在整理着思绪,考虑着将来,最终,我还是下定了决心走编程的路线。
    在走这条路之前,我告诉自己,这是一条不归路,非常艰辛的路。如今想来,当时自己很天真,根本没有想到过,这条路有多么长,更没有想到过,四五年后的今天,还在拼命学习。我时常问自己,如果当初知道有这么难,自己还会走这条路吗?

    开始新的学习之前,我想到了自己前两年在学习“网页设计”和“ASP”上的失败。我总结了一下不足之处,一是因为学习方法不太好,二是因为学习得太肤浅,自己在编程上还是个门外汉、初学者,谈不上是“程序员”。
    这个问题并没有困扰我太久, “我只要找到了本质,一切问题就会迎刃而解”,当时灵光一现,就有了这样的想法。
    之后,我又决定放弃继续学HTML和ASP,因为HTML和ASP最多算得上是高级技术,却谈不上是核心的东西。

    有了决定,那一切就好办了。然而事实并非如此,我应该从哪开始学呢? 最严重的问题又来了,我没法进大学,周围也并没有人能给我合理的建议。
    这个问题,我困住了。查找了很多资料,我总结出了几点:
    1、大学里学的是C语言、C++;
    2、高手都说“汇编”好,不会“汇编”都是垃圾程序员;
    3、清华大学的网络课程。
    有了以上几点,我决定,先学C语言和C++。
    我查找并下载了很多C语言和C++的书籍,却不知道哪一本最好。最终,我以“最简单、最基础”为原则,花了大量精力排列出了几本书,然后又花了大量时间,选出了最好一本:谭浩强的《C程序设计》。这可以说是我在编程上,真正意义上的启蒙书籍。
    有了好的书,那自然要用心的学。为了不再重蹈覆辙,像ASP那样东学一点西补一点,我严格要求自己:“学好一个知识点再继续下一个知识点”。

    我自创了一个学习方法,即:每学一章,做一张网页,并做好每一章每一节的作业;
    1、每章简单的看一遍,然后用心看每一小节;
    2、以一章为一个单位、一张网页,分小节将主要知识点存放到相应网页上。遇到难点时,网页上要加注明;遇到疑点时,网页上要说清自己的新理解;遇到书上拗口的语句时,网页上记录的是自己的新诠释。
    3、每完成一个知识点,用心做一个实例(即作业),试验所学是否正确,是否有理解不当之处;实例的代码和结果同样放进对应章节的示例网页上。
    4、完成一个章节后,看一遍制作出的知识网页和示例网页。
    5、复习时,不用再看书而是看知识网页和示例网页;好处有以下几点:1、看书太长太累,没必要再看;2、网页全是经过自己过滤后的知识点,一看就明白,且集中学习,简单好记;3、看知识点或许单调难理解记忆,转眼看示例时,一下就能回联想到之前的试验,印象更深刻。

    在学习C语言的过程中,我是轻松快乐的,每天呆在山上,无忧无虑,还有群鸭子相伴。最有趣的一件事是,自己在半夜总是睡会儿又醒来,醒了无事就学习,看书看着看着又睡着了,中途醒来又继续。
    不到一个月,C语言基础已经学完,而且每个知识点都很仔细。在这过程中,唯一在“指针”的理解上,遇到了些困难。
   (关于谭浩强的《C程序设计》一书,褒贬不一。在我看来,国内来讲此书已经很好,基础简单。当然,书中难免在很多细节上有所不足,这一点可以通过看其他书籍弥补,我也是这么走过来的。推荐2本国外的书:C primer plus、The C programming language)。
     

评分

参与人数 2荣誉 +35 鱼币 +35 贡献 +14 收起 理由
拈花小仙 + 5 + 5 + 4 感谢楼主无私奉献!
黑龍 + 30 + 30 + 10 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-23 17:10:00 | 显示全部楼层
本帖最后由 阴影中的曙光 于 2015-8-23 17:16 编辑

(经验之谈:计算机书籍,推荐看国外的,尤其是学计算机语言的书籍,国内的看不得,害人不浅。)
    2009-11-09,在经历了二十几天C语言的学习之后,趁热打铁开始学习C++,且随后只用了短短十几天便掌握了基础知识并做出了实例。这么高效神速,得益于我自创的学习方法。不过,事情往往并非如此简单....
   
    在C语言学习上的成功,让我将学习C语言的方法照搬到了C++的学习上。第一件事依然是选择书籍:我使用了当时相对简单基础的清华大学网络教程中的《C++语言程序设计》。如前所说,接下来花了十几天学习C++。
   
    无论是学习C语言还是C++,都是在VC6.0上面完成的实例作业,也是这时,开始熟悉微软的这一开发软件。
   
    在完成C++之后,我又紧接着开始学习“汇编”,学的书籍有:80x86汇编语言程序设计教程、汇编语言、汇编经典入门、清华大学网络教程中的《汇编语言程序设计》。
    为了学好汇编,我又学习了计算机原理等等理论知识。
    汇编是最低级最本质的计算机语言,等同于机器指令。也正是因为学了汇编,才让我明白了很多计算机的实质。也是从这时起,我找到了自己一直想要弄明白的程序本质。
    很可惜,在学习汇编一个多月后,家中有事,最终在12月底结束了学习。


C语言是开发“操作系统、核心驱动”的利器,C++是开发专业软件、大型游戏的利器。
psb-2.jpg
psb-3.jpg

评分

参与人数 2荣誉 +38 鱼币 +38 贡献 +15 收起 理由
拈花小仙 + 8 + 8 + 5 感谢楼主无私奉献!
黑龍 + 30 + 30 + 10 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-23 17:17:54 | 显示全部楼层
(汇编是低级语言,但却是计算机的本源,最核心的语言。一个不懂汇编语言的程序员,只是三流的程序员。)
    计算机语言种类成千上万,优秀的也不胜枚举,没有人能够全会。初学者不知道选择哪一门语言学习,容易在此犯难。这么多的语言,到底哪种语言是最好的?这个问题没有答案,每一种语言都有它存在的道理。不同的语言在不同的领域占据着不同的地位,比如“C语言”多用于“操作系统”核心级编程,C++多用于专业软件、大型游戏的开发,JAVA主要用在“手机、相机、电视、导航仪”等设备上面。

    正如上面所说,在学习计算机语言之初,我也遇到了难以抉择的问题。最终,我选择学习了C语言、C++、汇编。之后有考虑过继续学习JAVA,因为JAVA有80%和C++相似,一次性学习可能更好,不过最终放弃了,决心专注于C++。

    时间回到10年5月之初,此时家中的事情已经处理完毕,而我也有全新的开始,在镇上开了一个小店,卖电脑和配件,当然也在修电脑,刚开始感觉一切都好。
    在闲时,除了打打游戏之外,我也在继续学习。由于之前的汇编没有学完,自然又继续学习。我尝试了在DOS下执行简单的汇编指令,比如显示字符串、子程序的编写等等。
    汇编是简单而又复杂的,在高级语言中,普通的一个加法运算,一句代码的事情(a+b),到了汇编这里,一切都变得非常困难。这是因为,在高级语言中,我们只管写代码,编译器自然会负责转换成机器指令,本质和细节上的东西,用不着我们去考虑。然而汇编有所不同,编写者必须懂得计算机的本质,特别是CPU的内部结构,懂得整个CPU的计算过程。编写者要写清楚所有的细节,包括数据进入CPU的哪个地方,先将某某数据装到何处,再加另一数据装到何处,之后执行何种指令(加减乘除或是其他),执行完毕之后还要负责将数据送回计算机内存,存到哪也要考虑好,之后还要考虑,怎么把数据显示到显示器上面去,也就是用中断指令将数据装进显存一类。
    总之,高级语言只是一句代码的事情,到了汇编那,就是成百行的代码,而且这些代码是非常难以理解的,一不小心就会出错。
    我凭着自己的毅力和耐心学习着,对汇编并没有多么恐惧,相反,这东西解释了一切的本质,让我大彻大悟。

    因为追求“核心本质”的原故,我喜欢上了“汇编”。我有幸看到了一本关于“操作系统”的书籍《自己动手写操作系统》,按照上面的指示,花了一个月时间,一步一步做了一个简单的“操作系统”引导,至此,操作系统的本质对我来说也不再神秘。

    学习是枯燥的,但对那时的我来说是欢快的,每天都在吸收着新知识。

评分

参与人数 1荣誉 +7 鱼币 +7 贡献 +5 收起 理由
拈花小仙 + 7 + 7 + 5 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-23 17:18:25 | 显示全部楼层
(努力学习是对的,但必须找对方向,稍有不慎,就可能走进了某个深渊;这并不可怕,可怕的是自己依然浑然不知。)
    10年1月初,我遇到了编程学习以来最艰难的问题。
    这时,有太多的事情要处理,但我依然在抽空学习。刚学完C语言和C++的理论知识,基础还不够牢靠,随时都有可能出现问题。我面临着两难的境地,我是继续深入学习C++?还是开始学习做软件?
    最终,我决定,先试着做软件。
    无论是C语言,还是C++,两门计算机语言的书籍里,都只是教如何在DOS内编写简单的程序,却没有提到过如何做软件,做真正意义上像WORD、QQ、千千静听(如今的百度音乐)这样的软件。
    既然原来的书籍上没有,自然有其他书籍上面有。在百度上搜索了无数次,又经过无数次的过滤之后,我得到了想要的答案:
   在不同的操作环境下,不同的计算机语言都有不同的开发工具,不同的开发方法。
    对我而言,需要的是能够马上开始学习做软件。我既然会C语言和C++,而且主流操作系统是WINDOWS,那自然而然的,我把目标放到了开发工具VC上面。
    那时的VC还是6.0版本,网上有人提出这个工具有太多缺陷,对此,我没有怎么理会。作为初学者,没有必须去学更多的工具,先将基础打好才是王道。
    这时,我接触到了微软的WIN32。刚开始,WIN32在我看来,就是32位的WINDOWS系统下面的编程。因为是第一次接触这个领域,在那时,我的很多想法都与现实有很大的出入。我原以为,做程序的话,一切的事情都是由程序员说了算,该由程序员负责。
    比如,读写文件,这应该是由程序编写的程序去控制;C语言和C++中都有自己的文件操作函数。哦,天啊,那时的自己并没有发现自己出现了很严重的错误(好吧,以后再提这一点)。   
    也许是因为C语言和C++学得太好,有先入为主的概念,心中所想,自然是C语言和C++是王道,操作系统算个鸟,靠边站。哦,我一心想的是如何抛开操作系统去开发软件。(天啊,这是我第一个深渊)。
    正如上面所说,新接触到的WIN32,让我有些百思不得其解。
    WIN32编程要求使用C语言来编写,好吧,我会C语言,那就是用吧,可惜不是C++啊。
    当时的参考书籍是《WINDOWS程序设计》,这本书我可是花了好大的功夫才找到。原因不为别的,还是老问题,我没有进大学,没有老师教,一切靠自己。
    在学习做程序之初,我又像往常一样,在百度上查找别人的经验。那时我很迷茫,不知道下一步应该学什么。最终是在某个人的一篇文章内,找到了些许答案;又在某个小角落,发现了有人推荐这本书。一路辗转,好不容易才确定学WIN32。

    刚开始学WIN32,我靠的是死记硬背,而且这个过程真是度日如年,头疼欲裂。
    原因有几点:
    1、WIN32下面,又有了新的头文件,比如window.h;
    2、WIN32里面有太多不认识的函数和宏定义,就连入口函数也不是main,这真是难以理解;
    3、学来学去,都不知道讲了些什么,比如消息映射为何物?为什么一个程序的准备工作有那么长?而且代码复杂,微软在搞什么;
    4、窗口是怎么来的?为何非要用微软定义的窗口?不可以直接自定义么?自定义为什么还要在微软窗口的基础上修改才行;
    5、窗口句柄又是什么玩意儿?负责显示个文字、图片的GDI又是个什么玩意儿?为什么显示个文字、画条线、画个框都搞得十分复杂;
    6、消息响应还真是麻烦,还要记这种事件那种事件;
    7、各种各样的控件,为什么非得用微软的控件?
    8、dll又是什么东东,更多的东西又是什么东东?

    总之,无数的问题随之而来,这可比学一门计算机语言还要复杂无数倍。

评分

参与人数 1荣誉 +8 鱼币 +8 贡献 +5 收起 理由
拈花小仙 + 8 + 8 + 5 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-23 17:19:31 | 显示全部楼层
(失败之后,第一件事情是找失败的原因,第二件事情是重新来过。)
    在长期纠结于WIN32的复杂难懂之后,怀疑自己C语言和C++没有学好。的确,我学得太快了。在10年6、7月的时候,我开始重新学习C++,这一次选的是钱能的《c++程序设计教程》(又一次失败),重点是学习了面向对象思想,C++的类。
    在学习上,我狠下功夫,决不偷懒,坚决和自己过不去。学完C++之后,我又重新学习了HTML、CSS、JS和ASP,我打算做一个学习网站,将所学收集到一起。
    什么?HTML以前不是已经学过了么?怎么又开始学了呢。
    很不幸的,我曾经说过,在网页设计和ASP上面,我是失败的。这一次的学习,主要针对的是CSS2.0和JS,我决定将CSS个清清楚楚明明白白。至于JS,那时的我一心想做软件,认为没有必要再继续学。
    最终,由于一些事情,又加上自己在ASP、JS上面的不足,我并没有做完心中所想的学习网站。
    之后,我开始学习MFC。开始之初,我认识中的MFC,是一种类WIN32 API的开发方式,是用C++做和WIN32一样的开发。后来,我渐渐的明白了,MFC是对WIN32 API的封装。
    第一次,第一次我对C++有了全新的认识,意识到了C++与C语言的不同,C++注重的是类(在C++上,这是第一次小提高)。
    当时选中的MFC相关的书籍有:参考工具《深入浅出MFC》、《全中文-MFC类库详解》等等。注意,我选到的第一本书是《深入浅出MFC》,这本书本身没有什么,问题是,这本书讲的内容非常高深。
    第一次接触MFC就碰了钉子,我有些气馁。不过继续学习是必须的,我又在网上找了些资料,最后锁定了一个在线的示例教程。我按照示例所讲,一步一步慢慢的练习。
    WIN32上还没有完全弄明白,MFC又开始学习,自己又迫切想要做出东西,可想而知,当时的自己内心无比焦急。最终的学习效果并不太满意。
    用C++做程序是非常之难的,这一点从WIN32和MFC上我有了深刻体会。以前,很多人说C++最难,可那时的我对C++评价是:简单容易好用。这或许是因为我没有学过其他更高级的语言吧,比如VB、C#、JAVA。
    我不知道别的开发工具会是什么样,但我知道VB的确要比C++简单,两相对比,的确C++的MFC非常麻烦。 VB能够快速做出一个窗口,C++可能要花一天的时间,在这样的小功能上如此,其他方面可见会更难。

    既然自己选择要走专业的程序员之路,遇到困难不可能就退缩,更何况,C++在很大程序上优于其他的语言,我没有必要改学其他的东西,先把WIN32和MFC学好才是正确的。
    带着这样的想法,我做了无数次的尝试。
    像CString  CBrush CArray CDC CDialog等等,不会就练,继续学,死记硬背也要搞定。

    在MFC上遇到了难题,在C++上同样也遇到了难题。两次学习C++也并没有完全吃透它,在运算符重载上、在标准库的使用上、在数组、在动态数组上,都还存在无数多的问题。
      

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
拈花小仙 + 5 + 5 + 3 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-23 17:20:23 | 显示全部楼层
(也许有的人觉得,能做出软件的人很了不起,其实没什么,无非站在了“微软”、“谷歌”这些巨人的身上;即便是QQ、360浏览器、各种大游戏,也是如此。中国的现状是追求利益,没有自己的核心技术,做出来的东西都是在组装着别人的东西。)
    我在开始学习编程之初,完全是出于自己的爱好,从来不曾想过自己能做到有多好,为此,我从来不曾想走捷径。
    在学习WIN32和MFC之初,我没能找到好的资料,当时唯一能参考的是微软的MSDN。很多大学生可能是从VB、C#入手学的软件开发,这相对简单一些,因为MSDN中,这些资料都有中文版的。然而,C和C++中,只有英文版。对于一个没有上大学,英文水平低下的我来说,看当时的MSDN无疑是种折磨。在那时,还没有如今的翻译软件,当时的“金山”翻译软件也不太友好,不如自己直接看来得方便。更何况,翻译软件只能翻译好常见的词汇,对于满是专业词汇的计算机文档,根本没有用处。
    一路行来,所遇的困难重重。
    10年12月开始,我迷上了“编译原理”,这是非常核心的技术,可以说,是所有高级语言之所以能够高级的根本。无论多么强大的计算机语言,在最终,都必须编译或解释成为机器指令,而这个过程,就是编译,这个过程的原理,就是编译原理。
    “编译原理”是非常高深的一门学问,在我看来更像是一种超难的“文字游戏“,而”编译器“便是这个游戏的最终场地。
    所有的计算机高级语言,经由”编译器”最终转换成为机器指令,也就是我们常见的可执行文件,在微软WINDOWS系统中,以exe、cmd、dll等方式存在。
   ”编译原理“内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。
    在11年的很长一段时间里,我都在一边学习”编译原理“,一边尝试着开发”编译器“,后来的2012年试过,2013年又尝试过,至今,我还想尝试,只因为这是最为核心的一种技术,弄懂之后,我可以进入绝顶高手之列!!
    11年的下半年,我还学习了3DMAX;这是因为我一心想要做游戏设计的原故,不过最终因为要学更核心的3D编程技术而停下来了。

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +4 收起 理由
拈花小仙 + 5 + 5 + 4 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-23 17:21:25 | 显示全部楼层
(可以这么说,在计算机软件行业,我只佩服以下几种人:各种计算机语言的发明创造者、编译器的开发者、系统核心开发者、新技术的发明者、黑客,这些人才是真正的终极高手。)
    2011年10月份,在经历编译原理学习和尝试后,我再次进行了C++的巩固学习。
    这一次的书籍是:《C++ PRIMER》 和 《C++程序设计语言_特别版》,不学不知道,一学吓一跳。
    哦,这一次非常意外的发现,自己曾经所学的C++是多么的可笑,自己居然只学会了C++的小半知识。什么是容器?什么是泛型?如梦惊醒,我突然发现,自己一直以来都犯了一个天大的错误,C++并非想象中那么简单。
    重新学习了C++后,我开始学习计算机图形学,以及DirectX,这是微软公司的多媒体(游戏)开发库,可以说超过半数游戏的核心都是这个。在此,我认识到了微软的强大,不可动摇。
    我最选学的是DX9,后来又改学了DX11。
2011年10月到2012年6月,我将大量时间用到了学习3D开发上;在这个过程中,对C++和WIN32、MFC也越来越熟悉。
    游戏开发一般使用的是WIN32作为主框架开发,用C语言十分不便,我不得不开始寻找更好的办法。最终,微软的另一套毫不起眼的开发库WTL进入了我的视线。
    2012年9月,因为各种原因,我来到了外地。之后,我进入了一个小软件公司。因为工作所需,不得不再次学习HTML、CSS、JS,之后花了一个月时间学了C#,且深入学了一下SQL。
    我在寻找着能够帮助自己突破自己的东西,以前无数次的软件开发都是失败的,我感觉自己缺少着什么必要的东西。
    正是这样的情形下,我开始学起软件工程,UML建模,之后,我深感自己问题所在便是没有一个好的方法去控制开发流程,没法用合理的方法去规划和管理开发。
    后来的半年多,我一边努力工作一边努力学习,知识增长得很快,感觉自己有所突破,掌握到了重要的东西。
    2013年,因为很多原因,离开了之前的公司,进了另一个公司,在这里,没有什么好与不好,我只是想找一个适合自己继续学习的场地。
    为了扫除在网页设计、ASP上面的失败(在这时对我来说ASP已经太过简单了,没有曾经的那种疑惑不解),我学习了传说中很强大的JAVA。
    哦,多亏了之前学习的C#,再加上这次的JAVA,这让我大彻大悟,真正意义上领悟了”面向对象“思想。随后,我买了最新的C++11 PRIMER,对C++进行了全新的学习。至此,我对C++才算得上是真正的有了正确的认识。
    之后,我开始尝试自己开发B/S模式的管理系统。我对界面的要求很高,这使得我不得不返回去解决界面的问题。首先,界面是需要好的平面设计,其次,需要有非常好的动态效果。相应的,我想到了PS、JS。我下载了两本JS的书籍,然后慢慢细看。
    越看越心惊,发现以前自己不重视JS是多么的错误。为此,我深入学习JS,并开发出了自己的一个非常强大好用的NebJS开发库。
    PS也在2013年底开始重新认识学习,这一次的PS学习也异常的成功,可以说,学了好几次PS,这是最终极的一次。
   
   如今,我正在学习画画....

                                                                                                                                                                    _______2014年4月9日

评分

参与人数 1荣誉 +7 鱼币 +7 贡献 +5 收起 理由
拈花小仙 + 7 + 7 + 5 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-23 18:45:34 | 显示全部楼层
支持楼主,原来所有人的学习经历都差不多,都要经历学习找不到资源,缺少交流,深有感触~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-23 21:51:13 | 显示全部楼层
支持楼主  0.0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-24 10:27:14 | 显示全部楼层
拈花小仙 发表于 2015-8-23 18:45
支持楼主,原来所有人的学习经历都差不多,都要经历学习找不到资源,缺少交流,深有感触~

然而秒沉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-24 11:47:40 | 显示全部楼层
顶起,我是大学毕业的,学了一些基础课程,但是仍然遇到楼主文章中主人公的问题,真是头痛欲裂。:cry:cry
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-24 14:00:25 | 显示全部楼层
兰陵啸天 发表于 2015-8-24 11:47
顶起,我是大学毕业的,学了一些基础课程,但是仍然遇到楼主文章中主人公的问题,真是头痛欲裂。

我也觉得这是挺有代表性的,他现在很成功,要相信自己也会成功
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-24 15:11:42 | 显示全部楼层
给我的感觉瞬间崩溃啊,我现在等于才初步学习了C语言,能给说说方向性意见吗,让我少走点弯路
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-24 17:47:29 | 显示全部楼层
恩~ 看完楼主的文字,我也有同感,计算机行业要学的东西很多,很多东西也不是一遍过的,需要长时间的打磨,用十年磨一剑,毫不夸张!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-25 08:07:29 | 显示全部楼层
看看啊挺好的啊学习一下子啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-25 09:24:14 | 显示全部楼层
励志,加油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-25 09:52:54 | 显示全部楼层
q450652415 发表于 2015-8-24 17:47
恩~ 看完楼主的文字,我也有同感,计算机行业要学的东西很多,很多东西也不是一遍过的,需要长时间的打磨, ...

学计算机知识要反复学,认真学,甚至是基础的东西,学过以后,慢慢用,过段时间又学习一遍,都会有不同的体会和感觉。我是99年学的谭浩强的C,前几天买了本2015版的C,我发现谭老师的书比以前第一版的C要详细好多好多,要通俗好多,以前看汉诺塔问题,头痛欲裂,现在貌似一下恍然大悟。呵呵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-25 09:53:58 | 显示全部楼层
兰陵啸天 发表于 2015-8-25 09:52
学计算机知识要反复学,认真学,甚至是基础的东西,学过以后,慢慢用,过段时间又学习一遍,都会有不同的 ...

很羡慕现在学习C语言入门的同学,我们当时学第一版的那本书,真的是晦涩难懂,现在的书编的比以前好N倍。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-8-25 12:28:26 | 显示全部楼层
谢谢楼主
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 09:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表