- 浏览: 1164493 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (224)
- Web UI (11)
- Dynamic Language (7)
- Framework (9)
- Note & Try (17)
- JavaScript (38)
- Ant/Gant/Maven (2)
- Database (5)
- Software Engineering (13)
- Career (29)
- Team Management (5)
- Performance (12)
- Algorithm (17)
- News & Commets (23)
- System Design (17)
- OO Design (8)
- API Design (3)
- Programming Paradigms (8)
- Asynchronous Programming (5)
- Architecture (6)
最新评论
-
a2320064997:
请问博主,排序的动图是怎么做出来的?
排序算法一览(二):归并类排序、分布类排序和混合类排序 -
你的微笑我得阳光:
试试验证码
reCAPTCHA项目 -
mack:
一般采用json
对象转换的问题 -
fly_hyp:
我也做了一个中文编程软件,叫趣智思成
一些中文编程语言 -
facingSun:
受教了
前端解耦的一个最简单示例
我的一位同事,他带他读小学的孩子去学钢琴,通过关系找了一位有点名气的退休的老教师,学费不菲。他说其实他并不知道为什么要学,但是看到那么多孩子都在学钢琴,他想,他的孩子不能落后。一个月之后,他去问钢琴老师,对孩子的学习有什么建议没有。钢琴老师用尽了委婉的表达,最后说:
“对于你的孩子在学音乐方面,我最大的建议,就是你的孩子最好别学音乐”。
这位同事最初听了有些恼怒,但是转念一想,老师未尝不是负责任的。通常这样的老师,赚钱之心,都会忽悠家长,或者好话歹说,很少有说“不”的。但是真话就是这么犀利。
这位同事说:“我们平时并不容易听到真话,真话来临的时候,心里还真是‘咯噔’一下”。
世界就是这么残酷,老天给了不同的人不同的能力和智慧,世界上许许多多不同的事都需要不同的才学和特质,试着去寻找适合自己的方向,这无关乎你有多努力。这是一个简单的道理,语言可以说得冠冕堂皇,可是事实就是这一个:
“如果你没有这方面的天赋,你最好别干这事”。
放到程序员身上,亦然。
哪些人不适合做程序员?
“我不懂网络、不会操作系统、没听说过Java……”,没关系,这些具体的技术都可以学。
“我记忆力差,数据库认证考试不及格……”,没关系,记忆力差的人只能记住深刻的、精华的东西,而且自己的想法会更多;至于认证考试……其实我们都知道那种考试有多么浪费生命。
“我30岁才开始写代码,同事说的我都没听说过……”,还是没关系,你知道的太少而已,少工作,多上网,了解更多的行业信息;积累你的经历,总结你的故事,你就能知道得更多。
“我没听过什么是软件……”,好吧,我承认,这是唯一一个例外的,你是从别的世纪穿越过来的人吗?
不是这些,那么,到底那些人不适合做程序员?
下面这些话,是我眼中程序员必备的衡量标准,遗憾的是,这些都很难通过勤奋来弥补。现在,聪明的你,不妨参考一下自己,也许现在想明白什么才是适合自己的事情,比到三十年以后再后悔起来,要有意义得多。尤其当你发现其中某一条,触及你心中的痛处了,那么,你真的要好好想想了。
如果你的思维缺乏条理性、逻辑性,那么,你绝对不要尝试去做程序员。
我不知道还有什么比这条特质更能体现对程序员的要求了。有的人理性思维不强大,但是感情细胞异常丰富,也许你能成为艺术家、诗人,但是程序员,一个缺乏逻辑的程序员,你能期望他干什么?
这一条是我唯一不想做任何解释的。 :)
如果你对事物没有思考的习惯和耐心,那么,你别去做程序员。
首先,不妨阅读一下这篇文章(链接),里面提出了N个身边的现象,每个现象都伴随着几个问题,小小地思考一下。
其次,如果你没有耐心阅读它的话,思考一个我从中随便摘出来的一个问题:
我本来想给出另一个例子的,但是上面这个例子在这里更合适,我就保留了下来。
好,现在从你的思考回到本文中来。
如果你阅读了上面文章的链接,并且考虑了其中的某几个问题,至少说明你是有阅读和思考耐心的。
如果你没有阅读链接里的文章,但是思考了上面引用的问题,那么,这方面,你也还好。
如果你直接跳过它,阅读到此了,是你太忙了吧?太不经意了吧?还是……尽管你不愿意承认,其实是没有思考的耐心和习惯呢?
还有一个活生生的例子,以前有位同事和我抱怨,每天都要做一件事情,就是把报表数据录入excel中去,然后每周会给领导提供一次数据报告。但是每天录入数据的工作很枯燥,就是从网页上把一项项数据拷贝出来,粘贴到excel中,每天都要花十分钟的时间,每次虽然时间不长,但是日日如此,很枯燥。就这样,他在抱怨中做这个工作做了有半年之久。
看到这里,你想到了什么?
是的,为什么不做一个“懒惰”的程序员,为什么不写一个脚本之类的小程序去做这件事呢?
本质上,这依然是那个不愿意思考的问题,我没法评论其他行业对于思考的要求,但是程序员所解决的问题,都是不一样的,有的可以借鉴,有的可以模仿,但是你不能完完整整地抄袭整个问题解决的办法,总有很多问题需要用你的脑子去解决。
最后,看看这篇文章和其中的视频,关于码农和程序员,我想,之后你会有一点想法的。
如果你对新技术不感兴趣,那么,你还是不要去做程序员。
有的人会对新技术有一种排斥感,觉得“我学好C语言、操作系统和网络这些基础科目,把基础打扎实就够了,不需要接触那么多新技术”,并且往往认定新事物未必有什么新花样,万变不离其宗,没有什么的学习价值。
我认识的人中,抱着这样看法的人其实有很多,有些人甚至已经写了十几年代码。但是软件行业是更新换代速度极其频繁的行业,“万变不离其宗”是有其中道理的,但是“没有学习价值”只是逃避新事物的托辞罢了。
这样的情形有这么一种典型现象,觉得没有必要学习多种编程语言,因为“深入地掌握一两种语言就够了,语言都是相通的”。
很明显,这样说的人没有看到那些“不通”的地方,那些足以改变你视角和思维方式的地方。
再了解了解你心目中成功的程序员,我想这些人中,尚在做技术的程序员,无论到了哪一个层次,几乎都关注着互联网和开源社区。
如果你耐不住寂寞,那么,你可能不应该去做程序员。
你不需要非得在半夜里编码,你不需要非得穿奇异的衣服、做Geek的事情,你甚至不需要很辛苦地工作,但是,如果你“只想和大家一起讨论、一起研究”,而不愿意自己学习、自己写代码的话,你还是别做程序员了。
程序员不是一个孤独的工作,沟通能力是几乎每一个行业必备的技能,但是,你会有很多很多的时间自己学习、思考问题,上网搜索,写代码、测试、部署……甚至包括等待程序响应,分析程序崩溃的原因。
程序员需要独立解决问题,程序员解决问题不是民主选举。世界上绝大部分优秀的系统的绝大部分,总是由很少的人设计出来的。
总想把困难的问题留给和大家一起解决的人,往往存在一种依赖感,以及一定程度的不自信,你说是不是?
如果你只想把问题解决,特别不愿意寻根究底、精益求精,你大概不适合做程序员。
没有比这篇文章更可以说明“寻根究底”这四个字了,但是这四个字其实和本文中提到的第一点本质是相同的,故不赘述。
有的人不愿意做测试,问他为什么,他说,“我喜欢创造一个东西,但是我讨厌去验证一个东西的正确性”。这样的人写不优秀的代码,因为他不会不断去追求高质量和更理想、更美的代码,更优秀的产品,他只适合做一个短期的项目,这样的项目很可能在不久后就变成一个烂摊子,当然,他可不愿意收拾烂摊子。
测试,无论是测试设计还是测试执行,很大程度上都是程序员工作的一部分。优秀的程序员总是能把程序写的容易测试,总是可以设计出好的测试方案。如果你讨厌测试,我希望你只是因为讨厌那些重复劳动——同时,停止抱怨,不如想个办法解决它吧。
许多Geek的心理有那么一点异于常人,如果你对于界面上几个像素的偏差都感到难以接受,如果你对维护自己的代码细致到格式、命名等方方面面的细节,说不定你就是那个能成为“极致”的程序员。
如果你接受了我的观点,发现自己就是个程序员的料,那么恭喜你,祝你成为令人尊敬的同行;如果你发现自己实在不适合做程序员,那么还是恭喜你,尽管抱怨和咒骂程序员的工作吧,事实上,那的确真不是什么好差事,而且,真相越早看到,就越不那么残酷,不是吗? :)
文章系本人原创,转载请注明出处和作者
评论
不过文中有超链到别的地方,我觉得大多数人读一篇文章还是不习惯再打开别的页面的
发表评论
-
谈谈足球青训、中国教育以及工程师培养
2013-12-13 08:22 3548我从98年世界杯就开始 ... -
工程师的生活
2013-08-17 12:09 3029我忽然很好奇,想知道其他软件工程师的生活是什么样的?人永远 ... -
自由地生活和工作
2013-07-27 01:17 2435这篇文章,算是理清和 ... -
自欺欺人的故事
2013-06-12 22:55 1630看到吴军博士的一条 ... -
有趣还是无趣?
2013-05-17 20:05 1505这是一篇扯淡,一篇ran ... -
行动、眼界和体验
2013-05-12 00:29 1558这是一堆杂乱的文字。可以认为它是我从去年二月份正式跳槽到北京 ... -
兴趣的力量
2013-02-01 12:27 1695一月底我就到家了,休 ... -
2012年回顾和2013年计划
2013-01-03 19:35 19942012年,我来到北京 ... -
多面手程序员
2012-12-29 22:49 3889先来看看这样的场景: “没有美工做的高保真页面,我怎 ... -
C++程序员和Java程序员的差异
2012-10-25 10:28 2993首先说明,这几年接 ... -
致那些自嘲码农的苦逼程序员
2012-09-19 00:46 6850好吧你可以说这是水文。 今天下午和经理聊了一些关于软件 ... -
多年前的一封邮件
2012-09-07 09:50 2002昨晚在整理邮件,翻阅到这样一封邮件,它来自我的老师郭军, ... -
我十年学习编程的历史
2012-08-14 00:41 3023我十年学习编程的历史 首先,我不是标题党。其次,我 ... -
西雅图印象
2012-07-30 14:21 1875西雅图印象 有机会得以去西雅图出差。我们这次 ... -
留给我回忆的那些PC游戏
2012-07-26 13:37 2153和大多数八零后的男孩 ... -
程序员学英语
2012-07-25 04:09 2122老实说,我对于英语的认识,从没有把它的重要性放到一个足够的高度 ... -
我为什么坚持写博客
2012-05-02 23:13 6658我是从06年开始真正写 ... -
思考、学习新技术的原则和方式
2012-04-28 13:24 2480先看下面这样的困惑: 最近了解了几个MVC的框架,其中有两个 ... -
那些糟糕的面试和那些屎问题
2012-04-15 11:27 11913不同的公司和人,有不同的面试策略,有的考察视野、有的深入细节、 ... -
谈谈对程序员的培养
2012-03-11 01:37 24340这篇文字是我好久以来的想法,有一些感悟,有一些激烈的言辞,我很 ...
相关推荐
那么,什么样的人适合成为程序员呢?程序员应具备哪些素质?同时,又有哪些禁忌需要避免呢? 首先,程序员需要耐得住寂寞。编程工作往往需要长时间集中精力,沉浸在代码的世界里,这需要一种静心专注的能力。静不下...
标题中的“程序员测试”指的是对潜在程序员的一种评估方式,通过特定的题目来判断个人是否具备从事编程工作的能力和潜力。描述中的“看看里面的题目”暗示这是一道编程挑战,旨在检验解决问题的逻辑思维和算法能力。...
[程序员小飞]别只做一个程序员_中国程序员的出路_程序员的副业
除此之外,做导师对于程序员自身也是一种提升,它能帮助你成为高阶工程师,并且是职业成长的一个重要方向。在指导他人的过程中,你会学到很多新的知识,学生也会将他们的知识和经验反馈给你,这无疑是一种双赢的体验...
非原创。 不具备执行力,不愿自学,做事没有激情等等
1、有人曾说,做程序员的人,都是疯子,做长了往往入戏太深,成天与代码打交道,话都很少说,所以评论程序员们都是以后连妞都泡不到的人,我听后,我可以这样说,泡妞好比一个方法,他人是学习方法,而程序员呢,是...
这份“程序员的酸甜苦辣”不仅仅是对职业的描述,更是对IT人生活状态的真实写照。 一、酸——编码之酸 程序员的酸,往往源自于编程过程中的挫败感。在编写代码时,他们可能会遇到各种难以解决的问题,如bug、逻辑...
如果你仅仅想得到一份高薪水的工作,而不想编程序,那么这份工作不适合你。 2. 学文的还是学理的? 程序员需要具备良好的逻辑思维和问题解决能力,无论你是学文的还是学理的。编程序需要浪漫,但是更需要逻辑和...
总的来说,选择一款适合自己的程序员专用字体,不仅可以减轻长时间编程带来的视觉压力,还能提高编程效率,是每个程序员都应该重视的问题。不断探索和尝试新的字体,找到最适合自己的那一款,将对编程工作大有裨益。
文件系统和操作系统知识也是程序员不可或缺的部分。教材会讲解文件操作、进程与线程、内存管理以及I/O模型。了解这些知识能帮助你在实际开发中更好地与操作系统交互,优化程序性能。 数据库是很多应用的基础,因此...
程序员记事本应运而生,它不仅仅是一个简单的文本存储工具,更是一个代码知识的宝库,一个团队协作的平台,甚至是一个程序员个人成长的见证者。 程序员记事本的设计初衷是为了帮助程序员解决工作中遇到的问题,记录...
通过读这个。你将懂得你是否应该做 个程序员或者说是你到底是不适合做程序员。
9. IT行业的相关知识:尽管从程序员转型为项目经理不需要直接编写代码,但仍然需要对当前IT行业技术趋势有基本了解,以便更好地理解技术团队的工作,并能和客户及干系人进行有效对话。 10. 适应性与学习能力:项目...
这本书不仅仅教你如何写出结构良好的代码,还包含了一系列优秀的编程实践,比如代码布局,使得代码不仅正确,而且清晰易读。虽然对于编程新手来说,书中的一些观念可能稍显高阶,但是掌握了书中大部分内容后再来阅读...
标题 "你是合格的程序员吗?—合格程序员应该具备的12种能力" 指向了一个讨论合格程序员所需技能的主题。在这个行业中,成为一个优秀的程序员不仅仅是掌握编程语言那么简单,还需要一系列综合能力。以下是对这些能力...
工作日志是程序员日常工作中不可或缺的一部分,它可以帮助程序员更好地管理自己的时间、提高工作效率、记录工作进度、总结工作经验等。本文档是一个程序员工作日志示例,旨在帮助程序员更好地管理自己的工作,提高...
程序员需要在职业生涯的早期阶段就开始探索适合自己的发展方向,并且不断地根据自身特点和市场变化做出调整。 此外,文档还提到了程序员在技术深度上的追求,即成为某个领域的专家或者在技术上有自己独到的见解,...
程序员简历模板10份--蓝色主题 各不相同 程序员简历模板10份--蓝色主题 各不相同 程序员简历模板10份--蓝色主题 各不相同 程序员简历模板10份--蓝色主题 各不相同 程序员简历模板10份--蓝色主题 各不相同 程序员简历...
《程序员级高级程序员级程序设计》是一门深入探讨高级编程技术的课程,旨在提升程序员的技能水平,使之能够更高效、更智能地进行软件开发。本课程覆盖了多个关键的知识点,包括但不限于算法优化、数据结构、并发编程...
10. 程序员目标:雷军认为,程序员目标不是追求高级程序员,而是热爱写程序,热爱电脑世界的美妙,并且是一个完美主义者。 11. 程序员之路:雷军认为,程序员之路是漫长的,需要热爱写程序,热爱电脑世界的美妙,...