发布于2016年12月09日浏览:3961次
如今的经济状况太槽糕了,很多人都在找工作。与此同时,许多科技公司非常渴望招到**IT人,这活儿报酬极高还有很多福利。我相信有目的地学习一年也许能让你学会胜任这些工作的技能。为什么没有更多的人这样做呢?供需关系不应该自动调整这种不平衡吗?
成为**的IT人过程不可能一蹴而就
我们不可能期待去种一些树,然后一夜间收获有着2000年树龄的红杉树,无论其需求有多大。
人格特点
一个人首先得是自学者来学习编程。仅仅是超过你能写出可用的小程序这个基本水平,你也需要很多年在实践中学习一切必要的技能。从没有人仅通过上课和读书就成为了一个卓越的IT人。这通常需要无数小时的编程实践。并且和普遍流行的观点相反,计算机专业不是教你编程的,而是传授理论的。
作为IT人,你必须得有几乎无尽的毅力来不断继续尝试调错、修复和开发。坚持做到这些的人是需要具备特殊本领的,尤其是当你看起来没有取得任何进步的时候。这是非常需要具备的一项人格特点,而没有这种层次的毅力,足以使大多数没有毅力的人远离程序员这一职业。
你需要精通数学和善于解决问题。编程是解决各种各样的问题的。
你需要有出色的短时记忆(和长时记忆)能力,这样你才能在大脑中像变戏法一样同时处理它们,而且你还要记得一个月前你写了什么。
你需要对事物间如何相互关联的以及如何设计优良的架构有着深刻的了解。如果我在这个地方改动了一点,在其他地方可能会产生什么样的破坏呢?
你需要对细节进行高度关注。“接近”这一词在编程中并不适用。在哪儿忘了一个分号?程序无法通过编译!错拼了一个函数名?你的程序可能在做和你期望中完全不同的事。
不具备以上这些特点,足以淘汰多数人。
Subject Matter学科特点
你需要对数据结构和类的概念有很深入的理解,并且知道何时以及如何使用它们。你需要熟知一些已经开发出来的函数库,这样才不至于去重复造轮子。你需要知道大量的基础(和高级)的算法,同样才不会去重复造轮子。
通常你需要知道工作中的硬件的极限,这样你才可以做类似于恰当管理内存并且避免耗尽内存的事情,又或者合理利用内存来消除处理器内浪费的数据传输耗时从而加快处理过程。
到这里你可以写程序了。好极了!但是你知道什么是包的结构,TCP/IP、HTML、CSS、用户接口设计,或者数据库吗?程序不是孤立地运行的。有大量的知识你需要知道,而且它们还在不断变化!除非是你的主要关注领域,否则你不可能真正精通它。
工作/生活环境
你需要有大块不被打断的时间,这样你才不至于在编程(和学习编程)时注意力分散。很多人的工作(和家庭)环境很难提供这一点。电话又响了?好的,你又得花15分钟来重拾你的思路了。
你经常不得不在忙忙碌碌中对一些权衡利弊做出决定。当然,你可以写个程序来处理每件事情,但是一个人又会有多久才将“0”作为输入呢*?除此之外,我们跟不上计划,更重要的是立马使得程序启动并且正确运行。(这个问题旨在说明为每件事写程序意义不大,因为事情重复出现的概率很小。)
基于这些,你认为是下一种热门的编程语言也会过时并且5年之后没人会用它。现在你正在使用下一门很酷的语言,而它很有可能5年之后并不会被用到。你不得不时常关注这些事。
**IT人貌似不太可能随随便便去找工作
找IT人容易,找**IT人不容易。蹩脚的IT人可能一直在找工作。而**的IT人,如果公司意识到他们是**的,就该做所有能做的去留着他们,所以他们可能找工作的情况就少多了。而且一旦他们出来找工作,他们就会很挑剔他们想要工作的地方,而这点也可以解释为何一些公司声称“没有什么好程序员了-我们能招到的都是蹩足的。”
记得有个地方说过,一个**的IT人的价值是一般IT人的好几倍,而蹩足的IT人实际上还有副作用。对于一般的和蹩足的IT人来说要成为**IT人真的很难(就算不是不可能)——而且对于一般的初创企业来说,作为本该专注于快速开发推出产品的他们显然不值得这份投资。