编程之路 - 写给打算进入IT行业的新人们
IT=挨踢,这是IT人的自嘲,进入IT行业是有四五年了,也算得上是一个“老人”了吧,见了不少新人,面试了不少新人,也带了一些新人,多多少少还是有点发言权的。
关于书本
新人们常常会说我看了多少多少的书,看过某某人写的书,仿佛书看了就会做了。其实不然,很多新人在面试的时候夸夸其谈,说啥啥都知道一点,到真正做的时候,啥都不会。归根到底是没有经验,技术这玩意儿经验非常重要,很多东西如果不是你碰到了,你从书上一辈子都找不到答案。
我看书的习惯一般都是先把整个书翻翻,了解一下书的基本内容,然后在实际项目中遇到相应的问题再去翻书,当然这是因为我对技术已经有一定的了解,不需要通读整本书。初学者应该找一些适合自己的书,通读一遍,其中的例子要认真做,一定要自己去写代码,而不是Copy。我以前在学做网页的时候,别人都用Dreamweaver去做,只有我打开源代码编辑器学习HTML源代码的编写。
做完书的例子只能说明你会削木头了,但会削木头离会做柜子还有很远的路要走。还记得达·芬奇画鸡蛋的故事么?不停地重复肯定是枯燥的,所以你需要自己尝试去做一些实际的东西,比如做一个个人主页、一个留言本、一个通信地址本......在这些实际的东西中去实现你的创意,去实现你在书本上所学习的例子,并且将这些例子加入你的思想。
永远不要认为书本能给你带来多少东西,虽然它们很有用,但它们只是一个Key,一个引你入门的Key。我买的技术书中,最多的是VB.Net,但这却是我最烂的一门技术。而我用得比较好的Delphi、Sql Server、Photoshop、CoreDRAW、CSS、HTML、Javascript、Xslt、Xml,我几乎没有买书,但因为实际的项目需要,或者是我个人的兴趣爱好。
当然,我并不是反对你去买书,去读书,我只是想告诉你,你需要有一种平和的心态。但你要记住,书本只是一个Key。
关于基础
现在很多新人们都是好高骛远,目空一切,基础的东西不想做,难一点的东西又做不了,真的很令人头疼。其实技术人员,尤其是中国技术人员,你要懂的东西太多太多了。我们拿Web程序员举例吧,HTML、Javascript、CSS、Photoshop切图,这些都是很基础的东西,但很多人就是不愿意去学,认为这些东西太低级,甚至有些老程序员也不擅长这些。但我要告诉你,在Web开发中,这些都很重要,尤其是CSS和HTML、Javascript,如果你不是做一个OA之类办公的Web系统的话,这些在网站用得太多太多了,是一些Web应用的基础。
虽然我们现在涌现一大批如ASP.Net的优秀开发环境,可以让你完全不懂HTML也能开发出一套“网站”来,但正如其它程序化的东西一些,它会限制你的灵感与思维,它们都很霸道,所以才会有开源的兴起。我以前甚至不愿意用ASP.Net内置的GridView,我宁愿自己去构造Table,这觉得这样我更便于控制。
很多新人们喜欢拿新兴的技术说事,比如说AJAX,但实质他根本就不懂AJAX实现的原理,连多线程的原理都不懂,怎么能明白AJAX呢?有些做了一年多ASP.Net的人,居然还不知道.Net Framework框架的本质是什么,不知道ASP.Net是如何实现的,也不知道客户端和服务器端是如何交互的。
在这里,我建议做Web开发的新人们,HTML、Javascript,CSS是实现一些Web功能的基础,一定要打好基础,当你会你记事本编辑这些代码的时候,恭喜你,你过关了。
关于语言的选择
语言之争都是大公司战斗的结果,套用一句管理上的话来说,把合适的的技术用在合适的地方。我们没有必要跟风去不停地换新的语言,每种语言都有它的优劣,但在一般的项目中,很难看得出来。如果我们做一个只需要新闻发布功能的小公司网站,你说是Java和.Net好,还是Asp和PHP好呢?在很多时候,Java与.Net、Asp与PHP是难分高下的,他们之间的差异或许是你一辈子也不需要用到,我们范得着把自己拉入某一些阵营吗?
当技术达到一定的水平之后,语言只不过是锦上添花了,武侠小说常无招胜有招就是这个道理。你现在让我换成Java或者是PHP,我很快就可以做项目,因为我掌握的不是语言,而是对技术深层次的理解,现在Java阵营也好,.Net阵营也好,不管你说它们之间有多少差别,但他们的本质始终没有变,掌握这些本质,换一种语言就好比换一辆车,只需要一个熟悉的过程和一个磨合期而已。
最后,我建议新手们选择一种在你实质工作中需要的语言,坦坦实实地学好,不要中途“变节”,这样的成本太高了。.Net也好,Java也罢,只是一辆车而已,学好开本田就会驾丰田。
关于学习态度
学习嘛,在学习的过程中自然会遇到一些问题,遇到问题自然会想到求助。古人有云:礼下于人,必有所求,言下之意是有求于人,必要礼下于人。可是现在有些人不仅不礼下于人,反而还趾高气扬,仿佛谁欠着他似的。我们老家有句俗话叫拜师学艺要吃二十四碗鼻涕,可见在学习过程中要受到多少的委屈。
吃得苦中苦,方为人上人,做技术尤是如此。我以前在学ASP的时候,同寝室有一哥们是学VB的,因为ASP也是用VBScript做为默认脚本,所以有很多问题请教他,他当是也是给了我不少的嘲笑,像“这些简单的问题都还要问”之类的话我倒是听了不少。但到后我们一起学Delphi的时候,我就已经超过他了。
新人们碰到问题的时候,第一个想法就是想找人解决,当你去帮他解决的时候,他却去做其它事了,好像这个问题是需要你来解决的,下次出现同样的问题他还得找你。遇到问题最好的办法是先排查问题,然后到互联网上查找问题的原因,这样你才不会忘记,不要忽略了互联网这个最好的老师。我以前在学ASP的时候,为了一个插入数据的问题,查了一个星期,但这个问题我永远也忘记不了,再也不会范同样的错误。
高手们一般都比较忙,虽然我不是高手,但我还是不原意在我写代码正酣的时候,有人打断我的思路。先把问题记下来,趁机会问问高手,不要让他为你解决问题,你要的是一种解决问题的思路。公司常常有新人问我,这个地方出问题了,怎么办?我便问他,你上网查了吗?不是我不愿意帮他,而是授人鱼不如授人以渔,我直接告诉他怎么做,那不是在帮他,那是我在害他,我只能是告诉他排错的方法,解决问题的思路,否则他永远也不知道这个问题是怎么解决的,没有人会珍惜轻易得到的东西的。
最后,我想给踏入这行的新人们一个忠告,编程没有捷径可言,如果一定要找出一个捷径,那只有六个字——多看、多问、多写
X-Force 插叙:
回想想起来,以前起码有10个以上的人来信问过我怎么能最快学好编程,而且书店也有很多那种《n天精通XXX》的书籍,貌似还相当受欢迎,可见大多数人对于学习技术还是相当急躁的。
要知道学习一门编程技术,是需要很长时间的,其中需要你去不断练习不断尝试,并在错误中总结经验教训,以及在项目开发中通过与别人相互沟通互相学习来历练自己,你才能算得上是真正学会,而且还不是精通。即使再聪明的人,都需要经历这个阶段,这是一个持续的无限长久的过程。如果你还真想自己可以在很短的时间内精通一门技术,那么我建议你参考一下下面这个《21天让你精通C++》的图解教程!
所以,如果你打算混技术的,你最需要的并不是你的基础,也不是你的聪明,也不是什么好的书籍或教材,而是你的心态!心浮气躁是学习技术的最最最最最最大忌,不要奢望着怎样一步登天,即使真有这方法,也轮不到你来领悟。打从心底里说服自己,从基础慢慢学起吧。
/ 关注 “异次元软件世界” 微信公众号,获取最新软件推送 /

如本文“对您有用”,欢迎随意打赏异次元,让我们坚持创作!
赞赏一杯咖啡
真的很怕自己在思考的时候有人来问问题,太打乱思路了,但是不回答人家又不好,网络这个东西,为什么就不用起来呢,
哎,我也正是一个正在苦苦挣扎着的变成菜鸟!你说的对,脚踏实地最重要~
当初小学六年级的时候开始琢磨HTML,后来从修改别人的ASP程序开始自己的代码生涯,也从未看过什么书,和后来因为设计兴趣学PS一样。虽然现在也称不上什么技术高超,但是起码积累了这么多年的经验,碰到了N多问题,自己学到了有用的东西。
这些东西不是会用哪个软件,会哪个语言,而是能完美解决遇到的诸如做海报做一个博客做一个网站的需求。
明白内心对这些个东西的热情和爱,为此放弃了青春期的网游篮球什么的东西。同时也着实狠狠地加强了自己的学习能力。
面对现在每个人都争着买书学PS设计一些不如WORD好看的海报,学DW却搞不出一个什么像样网站,学语言却永远只会解那些个破题,不懂得他们的真正意义和价值。强烈赞同LZ…
突然想起最近很喜欢某个人的签名:你又不是残废有手有脚有网络有度娘有谷歌,不要每天跟我说不知道不懂不明白怎么办帮帮忙然后就甩给我做。自己去搜!因为你甩给我我也只不过帮你去搜搜。成年人了,自己学着点。
写的蛮实在的,新人们应该看看
谢谢。。。我感到现在有点心浮气躁。。。要冷静下来
我现在想学html,可惜不知道从哪里入手
写的不错啊 关键是自己要打心底里喜欢 你才会真正的想去学
我最近也在学C++可是好难呀越到后面越难什么复制构造函数呀赋值构造函数呀搞的我头晕死了看了1个多小时还是不理解这句话的意思还有什么转换类呀看的………..(太多了)都要我把他们啃完—–杯具呀!
我也相信基础的才是最实用的。
真是枯燥了^_^|||
不理解是正常的,如果理解了说明你智商比一般人要高不少,复制构造函数这类语法点,如果你不知道他们在实际编程中的用途和价值的话,是不太好理解的,我当初学c++也是稀里糊涂,后来java做了半年多,回头再看看C++,就比较清楚了。自学的新手都会有这种问题吧,不知道学的东西有什么用,所以理解起来也有困难
不错,简单易读
那个,菜鸟想问一句用英文的IDE还是用中文的比较好一些呢?我的英文不是很差~
英文的。
老实说,我以前觉得,如果一个东西既有英文的又有中文的,如果你用英文就是装X,后来证明我错了,
当你学习的深入,你需要更加深入,更加时效的知识,通常他们都是英文的,最新的各种资料都是英文的,技术上的文章多数是英文的,尽管有中文的IDE,绝大多数IDE都是英文的。
我个人觉得,汉语在编程领域的描述能力真的很垃圾,汉语讲究意会,比较抽象,而英语更像是一种密码,含义很清晰精准,我不是说中文不如英文,当你英文差不多可以看懂一般技术书籍的时候,拿一本原本和中译本,差别还是挺明显的
说汉语在编程领域描述能力垃圾这种说法就像当时你认为用英文是装X一样,只不过在技术领域,缺少既精通技术又能把英语翻译为自己的本土语言的人,所以大家才会觉得很多技术书籍翻译得很烂,所以才会推荐大家尽量还是看原版的书籍
说的好。。。。
呵呵,来异次元的有独立网站的不多啊
我觉得跟IT行业没有关系,不同行业都需要你沉下心去仔细学习的。
想赚大钱,那就不要打工了,去做些非法勾当。
打工的话,工资也摆在那里,所以要给自己设置些其他目标
恩,谢谢了。我想我会踏踏实实来学习的。
建议楼主少写点这些东西,有精力和文笔不妨去写日记或出书。
嗯嗯,我想起了当初我连!=都不知道是什么的时候,到现在。。。。感觉也没学到什么哈哈
学习就是乐趣,哈哈~~~
i gonna learn about these features, i will experience the unexpected in my university! 中文字的说。
谢谢指导。。。真的就是这样,只有过来人才能总结出来!心浮气躁是学习技术的最大忌讳。。。
话说那本21天学会c++的书,我也买了,确实不错,只是我看了1年多,会了C++后,我后来做的net也很容易入门,然后是as,js等等,现在是标准的前端.可惜如今的社会,技术是没什么钱途的.
机缘巧合的闯进这个网站,有幸看到经验指导,很受用。
留学生,正在学java,表示既喜欢又觉得难….
很好的文章,谢谢X哥
写得真是不错哦
各位正在潜水的同学请注意,有 150 位无聊人士 在异次元附近海域出没!
看到这句话,就出来冒个泡吧!
写得真不错!!正在纠结中。。。这网站好棒!!!
异次元好样的,隔段时间总要来你这转转,看有什么新东东没。
谢谢了。
当参考吧,很多东西都得自己去摸索
我要好好学。。。受用了。。。。
感觉这东西是新手可以学会的吗?我的知识停留在初中,但我确实对这门技术有兴趣…
感觉这东西是新手可以学会的吗?我的知识停留在初中,但我确实对这门技术有兴趣…要入手,我应该先去学什么?请个师傅指导下,拜托了…
学编程的,来看看,顺便看看自己的头像正确了没有。
写的很不错对于我们这些初入者很有帮助
受教了 给心浮气躁的我当头一棒 次棒 打的好 打的妙
网站很给力 看了几天了 太优秀了!
有道理啊。
不错 ,支持。
基础很重要,现正看Thking in Java 和 os 呢,很难。。。而且感觉不是一遍就能学会的。。。
学这个要看什么书? 学长:请告诉我
我就想知道,怎么能深入了解这个行业,技术,我想问下,我过两天就开始学了,需要看什么书吗?
加我QQ 97515361
谢前辈指点
写的不错呢 我都正在学习呢 java html c++ 3个都不是很懂 需然html比较懂少少 但还是不够熟练地运用!java和c++更不用说!我的心态就如楼主所说的烦躁和急进的心态一样!楼主所说的所有东西 我通通都符合 悲哀了
本来就是,虽然我刚入行一年,才21岁,但是好多人问我,你怎么学的怎么学的,没看到我晚上4点睡觉的情景,为了一个数据库连接字符串,非要把ado.net类库,反编译了,看看,是怎么执行的.
非常的精辟,做什么事情都有一个过程,一步登天那是相当困难的。
呵呵,我好多朋友说我基础差,我却刚想去学做项目,看了此文,觉得,还是憋着,努力搞我的基础吧
我很迷茫啊…哎你们都是不错的。
,学习了,基础很重要!!!
撸过~
这只是一家之辞,每个人都有自己的学习习惯,只要你喜欢这个,钻研这个,对这个有兴趣,那就能学好
你值得拥有
学习JAVA中的新人路过
噗……被插图戳中笑点……
想看看怎么样
我想问的是,出去就业从事IT行业,学历对工作环境和待遇的影响程度会不会很大。真心求解
时间过得真快,我只能说,遇见这篇文章有点晚,IT,我似乎不能继续下去了,毕业后更浮躁了
文章很好 ,但是学们专业要有一个好的方法,老师天天叫我们写代码,有时候写得头都大了,好难受,但是没有办法,只有写,求方法………..
安于寂寞应是最佳的心态吧
赞同楼主 现实却是是这样的 我也有 同感
请问右手手指有缺陷对学习IT编程有影响不。
很多地方都在误导年轻人,唉,按照你这个方式得走很多弯路,嘿嘿…哥以写了10年代码的资格告诉你,这里面真的很多在误导人.
比如说:
1. .Net也好,Java也罢,只是一辆车而已,学好开本田就会驾丰田。 车只有几个操作,编程语言却有很多细节,不是你精通一门语言就能精通另外一门语言的, 只能说你学习另外一门语言会快些. 而且转换语言的时候,你会很抗拒新语言的细节, 也许你永远都无法适用新语言,因为你是个杯子,里面装满了水,再也容纳不下其它的水了. 我搞了4年PB,6年 C++, 若公司让我搞C#,我宁愿跳槽.
2. 如果你打算混技术的,你最需要的并不是你的基础,也不是你的聪明,也不是什么好的书籍或教材,而是你的心态!
这说得就更加不对了, 基础,聪明,学习资料,心态,机遇,意志力, 没有谁重要谁不重要,都很重要,缺一不可.
我个人认为最好的路线如下:
第一阶段:
根据自己的兴趣爱好和基础, 找一个方向(JAVA,C#,C++……), 买经典书籍,下海量视频,漫漫长夜,别人在吃喝嫖赌的时候,你必须寒窗苦读. 搞一台电脑,把你看的想得代码敲进去编译运行.
第二阶段:
当看书写代码有一定的信心后, 找一份干这个的工作, 把学到的都应用到工作中, 边学边干, 能赚钱还能学习,何乐不为!!!
第三阶段:
总结工作学习中的问题, 并开始深入学习, 编译原理,软件工程,面向对象……写个小软件像是盖茅屋, 真正要盖高楼大厦,必须懂得细节,工程学和管理学.
第四阶段:
哥们我也没有跨入这个境界…
初学者,能不能给个引导方向,从哪些开始入门?谢谢能指导!
我觉得与博主原意没有什么冲突的地方。
曾几次看到这篇文章,都未能拜读。只能说是我的遗憾吧。今天读完后,感觉受益匪浅。
最近在关注编程类的知识,属于初学者,呼呼,看到这样的软文,有点信心致使自己努力
我们有java学习小组,希望可以一起学习进步,Java框架平台研发 378 437 335