×

Loading...

【精华】IT 入门攻略 (2) 能者不难

本文发表在 rolia.net 枫下论坛俺上一篇先说码工没有门槛,后来又说码工门槛高,有网友说,你这是自相矛盾。俺说,能者不难,难者不能,不矛盾。

适合做码工的人,不用上学,不用花多少功夫就能入门,入了门也是轻松自如。不适合做码工的人,即使上了学也不一定能做好,而且做起来还很累。很多人不适合做码工,所以码工有一个天然的门槛。

N年前在GO train上听到一对国移对话,觉得很是有趣,所以至今还记得。男国移说,做IT太累了,想改行。女国移问,改行做什么呢?男国移答,考虑做护士~~~

俺老婆从一穷二白,只花了两三个月时间,就能通过码工面试。她做码工这么多年了,从来没有听她喊过累,也从来没有见她学过什么新东西。即便如此,她自吹做的还不错,曾经还拿过单位的年度最佳码工奖~~~

有网友说,你这样说,那些辛辛苦苦学了N 年CS 的码工们只能掩面而下了~~~这一点,俺有不同想法。做码工的有两种,第一种是做应用软件,比如银行的网站,walmart 的库存系统;第二种是系统软件,比如 Windows 操作系统,Oracle 数据库,Java 编译器,等等。做应用软件的,CS 学的那些高精尖有用,但不必须。绝大多数做应用软件的,每天做的东西,其实很简单。而且做应用软件的人,数量上远远大于做系统软件的。

什么样的人适合做码工?这个问题,俺想了十几年。豆姐说,一个问题想了十几年,肯定是想糊涂了。也许豆姐说的对,俺这里写出来,算是抛砖引玉~~~

俺觉得,适合做码工的人,有三个本领。

第一是无中生有。做码工,要写程序,写程序往往要从一张白纸开始。大文豪马尔代夫说过:世界上最难的事就是一张白纸。面对一张白纸,你要是脑子一片空白,挤不出东西来,那么做码工就很累,因为码工一天到晚都要从无到有出东西。

码工的第二个本领是乱中求治。一个项目,有成百上千的文件(class),每个文件有十几个几十个函数,再加上几十个上百个外面市场上的程序包,还有无数个项目设计的文本,email,会议记录,等等等等~~~如果你碰到这种情况脑子就成了一片浆糊,那么做码工也会很累。

这个乱中求治的本领,俺觉得就是英文里的 annlytical skills。面对一片混乱,你要能看到框架,看到结构,看到层次,看到关键,而且要能自然而然地忽略细节。N 年前俺们的程序出错了,老板带俺去客户那里 debug。俺当时是一头雾水,但是老板没用多久就找到了问题。老板并不懂编程,但是他懂俺们程序的框架,知道哪里是关键,所以他不懂编程也能 debug。

码工的第三个本领是心中成像。码工无时无刻不要面对成千上万行代码,如果这些代码在你的心里是死的,那么做码工也可能会很累,因为你要靠这些代码吃饭,源源不断的代码,如果你心里不能自然成象,如果你需要时间精力去一句一句的理解,那么做码工肯定会很累。

这个第三点,可以说是码感。N 年前老板招了一个码工,据说是老板的一个朋友介绍的。这个同学人很憨厚,但是极端缺乏码感。俺们用的语言,有一个小异常。下面两个句子,含义极端不一样:

set x = 8

x = 8

第一句是给已有变量 x 赋值,第二句是生成一个新变量再赋值,原来的 x 不是被抹掉了就是被屏蔽了。这么简单的道理,这位老兄做了无数次还是犯错误。有码感的人,看了第二句会心痛,看了第一句却非常舒服。一点脑子都不用动。

能不能做码工,俺觉得跟智商无关,关键是适合不适合。你是否适合,最好的办法是去试一试。如果你适合,你即使高中毕业也能做一个好码工。而且会很轻松。而且挣钱还不少。更多精彩文章及讨论,请光临枫下论坛 rolia.net
Sign in and Reply
Modify
Report

Replies, comments and Discussions:

  • 工作学习 / 事业与工作 / 【精华】IT 入门攻略 (2) 能者不难
    • visualize the big picture是也.
    • 一般用不着三个本领。第一个,大多数人不需要从白纸开始,基本是照猫画虎,而且是从上下左右的段落里抄抄就好。能从白纸开始找到合适的东西抄出篇东西出来的,都算是高手了。第二个基本同意。第三个码感不重要,有pattern感就上档次了。要求简单所以才会这么多outsourcing。
      • 大部分码工都是管道工,已经有了一套管道系统了,新需求来了,说某间房里管道需要改造一下,码工的能力就体现在找出从哪里锯开管道,装进自己新设计的管道。分析能力才是最重要的,并不需要很深的知识水平。
      • 我觉得码感很重要。不是说没有就做不好码工,而是说没有就会很累。有了码感,很多事都是凭直觉本能,没有码感,什么事都要通过脑子,所以很累。
    • 您对 set x=8 和 x=8 的解释针对c, c++, c#, java, php, perl, python, ruby, javascript, vbscript...?. 在c这种先定义再使用的语言里, x=8就是给一个变量赋值. 您说来说去, 有些牵强啊
      • 红卫兵说的是他们用的某种语言
        • 革命小将们专用的语言/
          • 我的理解是: 红卫兵的 set x = 8 是 x = 8 / x = 8 是 int x = 8
            在很多语言里多个 int x = 8 编译都通不过。
    • 受教了,谢谢。看来俺不太适合码工啊,俺乱中求治的本领不行。忽略细节,看到框架,我最近才体会出来。
    • 写得不错 但 这不是废话么 天天干的事 有谁觉得难 觉得难的是混不下去 能混下去的自然觉得不难 哪行都一样
    • seriously, CS 并不是什么高精尖才有用,CS 学的是 fundamental,那是无论什么系统最基础的知识。没错,现在很多都是 black box,根本不需要懂算法;但是那些数据结构,算法的推导和思想模式,程序构架都是必要的。自学当然可以,只是现在越来越少人能看到那些东西的价值。