比较开心的发完帖子(第一次发帖),过了一段时间,满怀希望的进入论坛,看见赞成变为-1,不明所以的进去仔细看回复,看到tinyfool 说要写出具体问题之后确实觉得自己的作为确实有些唐突。看到清醒疯子说要看完本论坛的全部帖子就能少走点弯路,当时确实想在短时间内看完论坛里全部的帖子然后很牛逼的回复说老子看完了,后来发现这个工程有点浩大,短时间内是看不完了,在看帖子的时候发现不少有意思的帖子,我会看完论坛全部帖子之后再发帖子了。
下面说下我学习的过程,因为正在学习中,所以没有那种具体的技术上的问题,这也是我发这种没有内容只有标题的帖子的原因之一。
大学毕业之际,急着被学校推出去,和学校合作的一家公司实习,接着就是留在那家公司(监理公司)了,想学编程也并不是毕业之后才有的打算,不过由于自控能力不是很强,很多时候都是有一个开头之后就难以继续了,因为朋友说过没基础最好不要去培训班,加之培训费用不低,也就没去,自己在网上找着编程的视频教学慢慢看,因为市面上java培训比较多,所以看的是java培训视频,但是java最多看到数组之后就没在看下去了,前段时间找了一套数量不是很多的C视频,慢慢看,没看几集又断了。
这段时间的学习状态一直都是这样,每次重整旗鼓的学了一点开头之后就会由于各种原因而停下来,一段世间之后又会觉得自己不应该这样,有开始学。貌似一直在死循环,一直跳不出去。
这就是我发这样一个帖子的主要问题。
下面扯扯淡,其实我和tinyfool 有过一面之缘,那一次,tinyfool 在台上指点江山、挥斥方遒,我在台下顶礼膜拜。
然后就没有然后了。
Look,虽然我觉得伸手要本身就是个缺陷,但是给差评也太过了。
说一个简单的就是自己去摸索,自己去思考,不要去伸手要,也不要人云亦云。非科班不是什么缺陷,就怕你不知道自己需要付出。其实市场上的差距主要还是能力差异,而不是科不科班的。本人非科班也过得很好啊……
不过我一般不会告诉你我从小学就开始学习编程,初三就开始看编译原理之类的。所以我的结论是,哎,别跟人比,按照自己的实际情况去计划,然后行动。过好你自己的生活就好了,别老盯着钱看。(注意,重点是老,不是钱。)
我绝大多数知识是自学的,既然是自学说明是出于兴趣的。
有了兴趣后,接下来就是时间的问题。
=================我是分割线:阶段陈列===================
学习时全局动作:写示例代码,不懂提问,做笔记,收藏好文章
=================我是分割线:关于弯路===================
自学肯定会遇到问题,并且没有人快速帮你解决,这个时候的确很费时间,搞得人蛋疼。
向大神提问,自己钻研bug,网上找各种解决方法,总之就是花时间了。
往往别人的学习方法,对自己根本不适用,自己根本体会不到该方法的好。
没有人可以快速的写出很牛的东西,或者快速学完很复杂的东西。
我倒是觉得一万小时定理很好,开始也不要想太多什么学习方法,如何不走弯路。
按照流程来学,基础语法到实际应用,慢慢的就有了自己的体系。
祝楼主成功,早日编出自己想要的产品d[^ - ^]b
我自学的初期,也是非常多的疑惑,能不能找到诀窍,或者怎么才能和该专业的人一样牛,会不会学到了错误的知识,还有很多问题我都思考过,我现在想想当初的思考是多余的,但这是每一个初学者对未知事物的正常心理。
================我是分割线:一个逆向学习的例子========================
假设你将要做一个摇奖的网站
你首先会在网上各种搜索,找到一份比较满意的代码(http://d8ji.com/dotaroll/ 查看源文件有压缩包可下载)
你已经获取了这个压缩包,解压后你会发现audio,css,images,js四个目录,这种目录分法按照文件格式,建立目录便于文件管理,这种分法适合静态页面,audio目录放音频文件,css目录放样式文件,images放图片文件,js放前端脚步文件。
你还看到了一个index.html,马上搜索index.html是什么,然后知道了他是首页,整个文件体系了解清楚,接下来通过代码编辑器(推荐sublime text)打开各种代码文件,一行一行的解读。
打开index.html,总共32行,都了解后你肯定对html熟悉了一些,再回过头来系统的学习html肯定快多了。
说明:上面只是一个小例子,如果你是打算学web方向编程的话,可以研究一下这个压缩包。
我也是非科班出身。之前还觉得担心,后来发现其实很多人都是非科班出身的,也就坦然了。只要自己喜欢编程,都能学好的。就像写小说不一定非要文学专业出身。
有个牛人带一带最好,否则自己摸索一定会走弯路。推荐把离散数学和数据结构翻烂它,入门之前看,入门之后看,有了一定的经验再看,每次都会有收获的。找准一门语言一个IDE玩烂它,你就修行有成了。
具体一点的话,我觉得学习任何一项新专业技能(不仅仅是编程),都应该:
这其实就是一个普遍适用的自学模式,而且对一个IT人来说,这种自学的过程伴随整个职业生涯,甚至一生。因为除了IT业本身知识更新非常快之外,你还需要随时准备成为各行各业的专家,如果你掌握了迅速自学掌握新知识的能力,你会因此收获很多乐趣,否则你不但很难成为一名合格的程序员,而且即使侥幸地入门了,你也会发现这个行业是如此让人痛苦。
你看,果然被我说中了,学习是不可以蜻蜓点水的,Java看到数组,然后去看C,然后估计还没到指针就懈怠了,回头上网膜拜别人说些自己不明所以的词汇,然后哀叹自己这样猴年马月才能学会啊? 然后我猜Java你肯定连JDK都没下载吧,C连hello world都没编译? 编程有点像一门手艺,或者说艺术吧,比如画画和谱曲/演奏什么的? 你说你能仅仅看看youtube,逛逛画展就成画家和演奏家不成? 你需要大量和刻苦的练习,当然听别人演奏和看画展也是必须的,而且还需要选定一个方向,不能今天画山水,明天搞油画,上午钢琴下午萨克斯。
被人戳中了. 这样也好. 在学校跟着老师混 在公司跟着老大混 然后自己当老大. 差不多就这样. 其实还有一个选择, 选自己适合的 喜欢的. 编程也可以当成业余爱好, 就像有人喜欢养花 钓鱼啊什么的 . 玩得好一点就当票友. 别太强求. 别迷信这玩意最高富帅.其实是黑洞.
弯路是肯定要走的 别人的路你未必能走好
我觉得有时候是需要时间的 其实我在做系统集成之前是个剪辑合成师,其实是搞影视的。 当年上高中的时候,一股脑想做文艺青年,所以选择这条路走,青春期瞎折腾。自己成绩还不错,尤其是数理这块,英语烂,烂到基本属于糟糕了,严重偏科,然后高二开始就成绩下滑。大学本科就没考上。 大专时期也不好好上课,跟碎月成星差不多在学校里面做小生意,给人装电脑啊,卖烟卖吃的,也在外面接点网站的活,其实就是那种地区性小论坛什么的,也没技术可言,半静态界面去改字而已。 然后大专毕业后就北漂去了,在那边学了点影视方面的课程,就开始干起来了,运气还不错,通过一个圈内好友就入了行了,在家工作室上班,其实工作室不大,但是接的活挺好,不方便透露名字,做广告,也弄一些唱片公司的活,反正就是企宣之类的,也拍演唱会现场,也折腾电视剧,广告,数字电影,反正相关的什么都干。有两老师,技术很好,对应IT圈子就应该属于冯大辉那个级别的,玩过SGI,就是伴随着行业出现然后成长起来一批牛人,这二年,VeryCD那些个盗版的视频教程,类似AK那种把视频行业的门槛降的非常低,下点盗版的素材,随便一搞就出活了,可很少有人学明白了。还有一拨盗版党拼了命下软件装插件升版本。曾经我也是这样的一个人,这种收集狂热真是无知。我这个老师用ps cs1还是2的版本,相对于同时期起码低3个版本的样子,我曾经在08年的时候还见过用ps6的。但凡是用老版本的人已经彻底明白这个东西就是个工具,创造的内容不是工具能提供给你的。我的两个老师一个是用pc(win+linux),另外一个是MAC,整个公司2台PC工作站,当时应该是买了6台MACPRO,当时的版本应该类似535那个时期的。所以我接触MAC也比较的早,有很好的环境。干了一年多的时候,我已经可以给电视剧剪辑打下手,做些粗剪,其中也恶补了很多电影,和北电的课,在那个时期以巨大的吸收能力去吸收。其中每天看2部电影差不多的。突然有一天我意识到自己并不会有很好的发展,因为自己思维模式还是一个偏理性的,误认为创作热情就是创作能力。其实按照那个时期出来和朋友单干,也能活下去。但是后来选择回了老家,还有个原因是后来合作的小伙伴也选择了离开。 回来之后呢,就休息,冥思苦想,毕竟没賺钱在家啃老也不是办法,后来在小城市里面找了个电脑公司,就是笔记本售后,有时候呢也有些服务器和网络设备要调,这下又跟碎月成星通学有交集了。因为只是想缓冲下,切换下自己的生活模式,从脑力劳动变成了基本体力劳动,晚上回家也在看各种网站想想以后的出路,大致干了4,5个月,到了过年,在这期间认识了省会这边一个工程师。过完年就过来面试了,转做系统集成工程师。面试题目,说句心里话,真是做的烂,还手机BAIDU了。那时候连ISO七层模型都记不全,都还给大专老师了,大致服务器的问题对了些,网络题做的差些。 就这么也入职了,后来得知,其实是介绍我来的那小子要跳槽,把我介绍过来补了他的空缺而已。 做什么产品呢,思科的服务器,我操,思科还有服务器,我是第一次听说。大致花了一个星期熟悉了产品线,其实每个周六,周日都会来公司自己在公司拿DEMO设备装装,很快就能上手了,而且做的还不错。后来也能搞搞EMC这些存储,和VMware。现在勉强还好,同时也意识到了一些问题,第一是技术还是很一般,知道的比别人多点也是看白皮书知道的,这个问题是很好笑,你也知道安徽和江苏还有北上广这些地方的技术差距有多大。我就算在这边做的很好,距离那些真的牛人还是很远,尤其是我最近开始翻看一些老外的blog,才发现技术细节上很多东西都是我以前不知道的,而且北上广的很多工程师都是出没在官方论坛,用户组里面的,可能他们早就掌握了。信息不对称导致技术越落后的地方越落后。当然同样也有牛人,厂家落地的工程师,中科大,中科院的老师们,就算是做物理研究的,代码和服务器技术一样很牛逼。
扯了这么多,其实我还是个广义上的失败者,或者说普通人。没有赚的钱,反正也饿不死。运气还不错,两份工作可能薪资都不算高,但是提供的平台不错,开了眼界。
要说的是什么呢,首先得认识自己,了解自己,我现在为什么经常逛这个论坛,因为我又想转行了,因为我觉得继续干我这份工作,在集成公司肯定没戏,一个不以技术为导向的公司,技术价值太TM渺小了,除非我往上调,去总代去厂家,那也只不过加薪水,干的活还是差不多的,想在这行“不作恶”是太难了。而我这家公司也有软硬件开发,没细了解,行业软硬件,嵌入式开发,.net wince,可能现在换到java和安卓了,也TM落后的很,但是估计带团队的头是有技术底蕴的,但是一个半垄断的行业,创新干什么啊。今天看到那个0.1和0.01东莞加工厂的帖子就这个体会。所以我想换个行业,做开发好了,尤其是做移动互联网开发方面的,面向普通消费者,这样被迫作恶的机会就少一些。虽然我又陆陆续续学写代码的尝试,都以失败告终,但是这次不一样了,因为是要拿来给自己换个生活所需的工作,不能乱开玩笑了。 而我觉得学代码没什么难处,和我调刀片存储一个样,不也是可以很快学会的嘛。看白皮书好了。 动手干。 上面我走了很多弯路,现在看来未必是弯路。可能需要一个所谓的开窍的时间,那个点不好说,我觉得我在前年的时候突然想明白很多事情,这个就是时间的积累,没办法了。 之所以我学这些东西学的快的还有一个理由就是我玩电脑也很多年了,上网我都感觉有15 16年左右了。最近几个podcast都数落那些自己接触电脑编程的历史,我发现基本大家都一致,上初中时候有386还是什么机器,实达之类的,ucdos,wps95,玩过红警,玩具兵,什么计算机兴趣班学过qbasic,什么irc聊天室,xici胡同,到后来FLASH风行的时候什么闪吧,还是叫什么。 以前是资讯不多,有用的不多,现在是资讯太多,干扰你的东西太多,有用的还是不多,或者说比覆盖了。
少看没用的东西,做个有信仰的码农吧。苦逼的孩子。 最后补充一句,我那个老师玩linux做合成,节点通道什么的倍清楚,但是之前他是部队里面一个文职干部,而且是学画画的。所以你可以放心,文科没什么学不了代码,编程语言也是门语言。做这些小APP还没到你要自己写一个算法优化的地步。 最后编辑修改下 我给自己定了一个时间 差不多准备半年就可以开始写程序,然后一年要是真的有像样拿的出手的程序,我就去找家做OC开发的公司。做一个牛逼的专家需要10000小时啊,做个能干活的技术工程师也得1000小时,你想省是省不了的。
有一个黑客这样教我学习之道:
1.学习之前首先你要具体化你的目标,比如做一个网站.
2.那就开始吧, 你可能想着先做注册这块吧. 那就去查相关的东西,去学习,不管你自己搞或是copy别人或是来点旁门左道.先搞出来.
3.继续做其他的你能想到的. 先做完,应该小有成就感了 很丑怎么办,想办法改漂亮一点, 请别人吃饭让人帮忙也算数.
4.基本上到这里, 大多数你已经半懂不懂的了. 接下来你可以选择系统性从头学习或者玩一个更有挑战的.
以上, 我当时被冲击了下也认为很有道理. 顺手补充我个人的: 三天内你还没时间动手,就拉倒吧. 三周内还一头雾水,就拉倒吧. 三个月还毛都没做出来,就拉倒吧...原因很简单:看起来你并不是真的想学,就TM只是说说聊以自慰而已.