※ 引述《RAVANA (铁拳无情)》之铭言:
: 1.重要基础观念没建立好 似懂非懂 硬兜出来
: 2.拿一本书在那K得很开心(我不懂业界 我用举例 实际不一定这样)
: 3.重要技术却没下重点去学
: 4.会自学得通常一定是非本科 也没环境 没这种资讯朋友
: 以上就是我自学失败的血泪史 门外汉想入行 请真的去找间补习班好好学
: 不然自己在家闭门造车 就会变成我的失败血泪史
这 ID 有点眼熟,一看才发现我在这里回的第一篇文章就是回你的文章
也是在讲自学的事情,突然几分惆怅上心头又不知从何说起...
一个角度是,努力与天份的乘积必须足够
先谈努力的部份
自学写程式绝对是需要投注大量努力的事情
例如我当初在写 Java 的时候看到 thread,蚂蚁书的范例看过之后正茫茫懂懂的时后
我会用 google 疯狂的下关键字乱找相关的东西
- thread
- Java thread 用法
- Java thread api
- thread process (嗯,新的关键字跑出来了)
- 其他...
然后一直看吐出来什么文章,如果文章整篇看不懂就换下一篇,如果都看不懂但是冒出
某些很常出现的关键字,就先去找这些关键字。然后要看的资讯量就会开始爆炸
例如看到 thread,然后是 process,然后是 contex switching,然后是 interrupt...
或许不是所有关键字我都能完全了解,但至少会有个模糊的概念
我直到现在都还在每天干类似的事情,最近写 PHP 所以下的关键字会不一样
- PHP framework
- laravel vs sympony
- PHP 5.x change
- why PHP sucks
- PHP virtual machine
“可是我又不懂哪知道要看什么”
“就把不懂的东西全部找来看”
现在一个礼拜花在这类事情的时间比较少,大概十几二十小时
学生时代可以一天就爬个八小时..
一天两个小时全年无修,长期累积起来的投入时间非常可怕
我不知道这种程度的投入对其他人来说这是不是一种难以长期忍受的苦行
毕竟我花这么多时间的原因不是因为我比其他人愿意拼,而是我以此为乐
如果现在要我一天花一个小时算微积分我大概会哭...
然后是天份的部份
[quote article='#1DMLv9wr']
对我来说,知道如何把想要做的事情一路拆解成看起来好像能做到的小部份
才是“会写程式”跟“不会写程式”的差别
[/quote]
我原本认为,要能操纵随意组合的万能机器(程式),理解事物的构造是基本能力
所以碰到问题的时候,一路把问题往下解构成基本组成,解构成能够处理,或是能够被
提问的最小单位,这是基本动作
但是我发现这件事情意外的困难,很多人真的是做不到...
或是有些时候,看到一堆完全看不懂的东西,可能会隐约的觉得
“重点似乎在哪边”“看不懂,不过似乎是跟OOXX有关”
这种明明看不懂却还是好像理解了什么的...sense,会相当程度影响你看东西的效率
我相信这些能力能被训练,我就看过我认为没什么 sense 的人突然开窍
但是我完全不知道怎么让别人训练出这种东西
而且这件事情跟程式语法看的熟不熟一点关系都没有
有 sense 的人,自学的效果可能就比补习班还好,因为有能力抓出重点
而补习班通常只会教你“写程式”,事物的构造你还是得自己摸索
哀伤的是,初学者大概也不会知道自己到底是不是有 sense 的人...
另外一个方向是,必须大量阅读,大量阅读,要命的大量阅读
前面讲到的 google 蚁地狱只是一部分,另一个部份是,要跟踪资讯圈子的各种新讯息
身边的人不能塑造出这样的环境,那就靠网络
一个好的(而且不太技术性的)入门渠道是
- http://www.slashdot.org
- http://www.solidot.org
两个网站类似,一个英文一个简中
除此之外我还会用 RSS 订阅一大堆文章...
例如说,订阅一堆台湾软件相关名人的 blog,然后大概就能看到“业界最新动态”
不过这里的业界其实跟你在的业界可能又不一样...