IT=挨踢,这是IT人的自嘲,进入IT行业是有四五年了,也算得上是一个“老人”了吧,见了不少新人,面试了不少新人,也带了一些新人,多多少少还是有点发言权的。

关于书本

新人们经常会说我看了多少多少的书,看过某某人写的书,仿佛书看了就会做了。然后列出来一系列书单《一个合格的前端project师必看的书籍》、数据结构算法书籍推荐、《linux
学习之路(学linux必看)
》、《java
7 入门书籍
》。事实上不然,非常多新人在面试的时候夸夸其谈,说啥啥都知道一点,到真正做的时候,啥都不会。归根究竟是没有经验,技术这玩意儿经验非常重要,非常多东西假设不是你碰到了,你从书上一辈子都找不到答案。

我看书的习惯一般都是先把整个书翻翻,了解一下书的基本内容,然后在实际项目中遇到对应的问题再去翻书,当然这是由于我对技术已经有一定的了解,不须要通读整本书。刚開始学习的人应该找一些适合自己的书,通读一遍,当中的样例要认真做,一定要自己去写代码,而不是Copy。我曾经在学做网页的时候,别人都用Ddreamweaver去做,仅仅有我打开源码编辑器学习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是怎样实现的,也不知道client和server端是怎样交互的。 在这里,我建议做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的时候,为了一个插入数据的问题,查了一个星期,但这个问题我永远也忘记不了,再也不会范相同的错误。 高手们一般都比較忙,尽管我不是高手,但我还是不原意在我写代码正酣的时候,有人打断我的思路。先把问题记下来,趁机会问问高手,不要让他为你解决这个问题,你要的是一种解决这个问题的思路。

公司经常有新人问我,这个地方出问题了,怎么办?我便问他,你上网查了吗?不是我不愿意帮他,而是授人鱼不如授人以渔,我直接告诉他怎么做,那不是在帮他,那是我在害他,我仅仅能是告诉他排错的方法,解决这个问题的思路,否则他永远也不知道这个问题是怎么解决的,没有人会珍惜轻易得到的东西的。

最后,我想给踏入这行的新人们一个忠告,编程没有捷径可言,假设一定要找出一个捷径,那仅仅有六个字——多看、多问、多写

最最最最后,跳出程序猿仅仅是编码的误区。曾经的两篇旧文:一个程序猿怎样高速赚到一百万?中国特色程序猿的「钱途」

写给新入IT的新人们的更多相关文章

  1. 如何寻找设计灵感?写给刚入行的设计师(转自UI中国)

    如何寻找设计灵感?写给刚入行的设计师 如何寻找设计灵感? 这一次的文章,我想和大家聊聊年轻的设计师在没有那么多经验的情况下如何寻找设计师灵感.(希望这篇文章也能帮助感同身受的你) 每个设计师对设计都有 ...

  2. cocos2d-x 源代码分析 : EventDispatcher、EventListener、Event 源代码分析 (新触摸机制,新的NotificationCenter机制)

    源代码版本号来自3.x,转载请注明 cocos2d-x 源代码分析总文件夹 http://blog.csdn.net/u011225840/article/details/31743129 1.继承结 ...

  3. 新博客,新开始-从Chrome浏览器奔溃说起

    新博客,新开始 今天是2015-04-09,昨天新开的博客,今天在这写上一段,算是立个标记,好留以后拿来回溯吧. 不知道是谁跟我说的,坚持写博客是个好习惯,也能帮助自己总结经验,提高技术.也许大概可能 ...

  4. Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1Python 3_x 新特性1python3.4新特性1python3.5新特性1值得关注的新特性1Pyth

    Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1 Python 3_x 新特性1 python3.4新特性1 python3.5新特性1 值得关注的新特性1 ...

  5. 11g新特性与12c新特性

    1. 11g新特性概图 管理新特性> 开发新特性> 2. 12c 新特性概图

  6. 已有使用Key登陆机器,创建新账号并使用新Key登陆

    背景信息:CentOS6.9机器,目前是使用Key进行登陆的,现在需要创建一个新账号并使用新生成的Key进行登陆使用 使用连接Linux工具:XShell 1.在当前机器中创建一个新用户: # use ...

  7. java:合并两个排序的整数数组A和B变成一个新的数组。新数组也要有序。

    合并两个排序的整数数组A和B变成一个新的数组.新数组也要有序. 样例 1: 输入: A=[1], B=[1] 输出:[1,1] 样例解释: 返回合并后的数组. 样例 2: 输入: A=[1,2,3,4 ...

  8. window.open新打开窗口与新开标签页

    最近在使用window.open时忽略了一个细节问题:window.open新打开一个窗口,但是有时却是新打开一个窗口有时打开一个新标签页.虽然对一般的需求来说,这个两种情况都无所谓,但是对于那种有强 ...

  9. 优秀前端工程师必备: 我要一个新窗口: js开新窗的2种姿势

    1.<a href="https://www.cnblogs.com/" title="博客园">当前页面打开博客园</a> js代码等 ...

随机推荐

  1. poj 1125 Stockbroker Grapevine(最短路 简单 floyd)

    题目:http://poj.org/problem?id=1125 题意:给出一个社交网络,每个人有几个别人可以传播谣言,传播谣言需要时间.问要使得谣言传播的最快,应该从那个人开始传播谣言以及使得所有 ...

  2. 以CTE表达式实现MSSQL的字符串分割函数

    ALTER     FUNCTION [dbo].[Split] (@sep varchar(2), @s varchar(512))RETURNS tableASRETURN (    WITH P ...

  3. Idea无法DEBUG的问题

    最近对web工程进行debug,突然发现无法进入断点了,原来以为是maven的问题,后来发现是tomcat环境变量导致的. 使用tomcat时经常碰到内存不足的情况,我们会对catalina.bat类 ...

  4. git参考书籍

    Pro GIt 简体中文版 http://iissnan.com/progit/

  5. [C#/.NET]Entity Framework(EF) Code First 多对多关系的实体增,删,改,查操作全程详细示例

    本文我们来学习一下在Entity Framework中使用Context删除多对多关系的实体是如何来实现的.我们将以一个具体的控制台小实例来了解和学习整个实现Entity Framework 多对多关 ...

  6. Button的四种Click响应方法

    Button用得挺多的,在这整理了下它的事件处理方法,发现实现方法还不少,我比较喜欢第二种,你呢,最常用哪一种? 实现一: Button bt_Demo = (Button)findViewById( ...

  7. uboot环境变量与内核MTD分区关系

    uboot 与系统内核中MTD分区的关系: 分区只是内核的概念,就是说A-B地址放内核,C-D地址放文件系统,(也就是规定哪个地址区间放内核或者文件系统)等等. 1:在内核MTD中可以定义分区A~B, ...

  8. 使用appium做安卓手机web自动化测试 真机demo

    一:appium相关环境搭建过程略. 二:连接真机: 1.手机(andriod 4.2.2)连接电脑,打开USB调试模式. 2.运行cmd 输入 adb devices -l 查看UDID,如图: 3 ...

  9. Ajax异步请求-简单模版

    <script type="text/javascript"> window.onload = function () { document.getElementByI ...

  10. IE兼容性问题解决方案2--css样式兼容标签

    在页面中加入下面的标签: <meta http-equiv = "x-UA-compatible" content="IE=edge,chrome=1"& ...