怎么成为一个优秀的程序员,而不是一个优秀的码农?

啥是优秀程序员?

记者和很多网民说熊猫烧香作者是高手

公司里你出什么bug他都能告诉你原因用什么软件有问题他都能回答你的你就觉得是高手

有人说徒手做产品的全栈才是高手

各语言的作者都是高手

有不写代码,扔出一个restful论文的

还有人说高德纳是神,他如果是神,那他那些代码一定是在考验我们,嗯

。。。。

上面这些的确都算是高手,我琢磨着前两年被开掉的moto公司员工里肯定也有做功能机的高手和写廉价板驱动的高手

你想自己选自己的方向还是被人忽悠方向?

我的想法是自己都尝试玩玩,然后做自己喜欢的方向。当然,程序员的生态金字塔是上面做工具、基础设施给下面人用来给普通人编程序,所以你选方向可以参考一下这个金字塔模型

方向定下,然后就是做事了,一大误区就是 【追求最好的东西】,于是非得弄清楚:

  • php是最好的语言吗?
  • OpenGL比directx差吗?
  • 程序员要先学数学吗?
  • 最好的c语言书是谭浩强写的吗?
  • 放屁要先脱裤子吗?
  • linux发行版那么多该选哪个?
  • 某大牛说IDE不如编辑器
  • 听说黑客都是用记事本写程序的
  • C#是升调记号应该读csharp而java不应念 [加wa(轻声)]
  • 。。。

如果你是一个*nix世界的玩家的话,你应该知道有一个jargon来上面的毛病,叫yak-shaving,我以前提过几次yak-shaving,但是很多人看不懂,它的字面意思是Any seemingly pointless activity which is actually necessary to solve a problem which solves a problem which, several levels of recursion later, solves the real problem you‘re working on.

但一般都引申其意使用它,我这里举例一下:

你本来要打开软件写一个helloworld,软件提示你升级,你点了升级,提示你xx库不够新,然后你更新xx库,提示你要升级yy驱动,然后你升级yy驱动,系统告诉你要编译这个驱动,你必须下载s.f版本的编译器和库,你更新编译器,系统说s.f版本编译器必须在e.n系统上运行,然后你就升级系统了,几个小时过去,你发现系统升级导致了几个软件损坏,然后你更新那些软件,去找解决问题的方法,不知不觉到了半夜,你累成了狗,却发现问题还有一大堆,而helloworld也没写成。。。。

这些问题我都遇到过,我的建议是挑一本大牛说的书就是了,看会了其他也会了。当然,如果你不幸不认识大牛(都上知乎了只要会搜索这种事情不可能发生),或者单纯好奇——就像我当年那样的话,那就每种都试试,不过有的答案你自己知道就好,像是编辑器emacs比vim更好,写程序ide比编辑器更好这种话,你是不应该乱说出来的。

对了,像是不同范式的编程语言、不同的开发环境是应该尝试体验一下的,不过这种建议书上都写了,我这里说显得有些废话了。

所以说,不能被无关的东西弄偏了目标,要专注,坚持。

等你学深了一门语言,就算是学另一们其他范式的语言也不会太难,你学会了opengl,dx也就看看就能写了。

你看看武侠小说里,段誉就是一个傻逼,仗着有时发出有时发不出的脉冲波和绕圈圈就能快跑直线的bug技就加上一门佛学能独步武林最终迎娶了白富美,出任了CEO,走向了人生巅峰,乔峰永远是一招降龙十八掌,更夸张。而慕容复文武双才,基本精通天下武学,每天读书4时辰练功4时辰,论用功谁能和他比啊。。。可到了30多岁还是一事无成,pk连段誉这种新手都搞不过,最后被人抢了老婆,就是因为方向不对,而且太不专注了。

所以求多不如求专,深度到了,再花20[[[[[%]]]]]的时间去扩展一下广度即可。

以上东西你都做好了,要花个2年时间的样子,对于学生来说,如果你有一个好的学校背景,人生可以就此扬帆起步了

但这不是终点,俗话说人靠衣装,美靠包装。包装是门学问,这里的包装不是让你西装领带亮皮鞋黑丝套裙白衬衫整一个营销狗hr的造型,是说专业技能上的包装。

为什么这是最重要的部分呢?因为别人一般不和你说这么多,尤其是懂得包装的人,更不会传你这些不传之秘啦。。。。。

包装自己的第一步是提高实力

没有实力的包装那是空中楼阁,只能靠每天日常搞外包的忽悠架构大数据云计算过活,明眼人也能看出来,所以纯属作秀,没有意义。

在某个领域(编译器、虚拟机、开发架构、前端。。。)成为专家(专家的定义嘛,,我的理解是能在简历里写精通)后,包装的实力就算具备了。

包装的第二步是定位

提到美国会有一大堆人跳出来说是人类的希望民主的大救星,提到google就是最纯的技术公司不作恶、软件业的翘楚开发界的标杆、心美人美白莲花。。。哪怕你列举google卖假药、恶意打压yelp、挟持web标准等等等等这些事,他们也会说百度更差(咦这不5角钱常用的语句吗怎么被民主进步人士盗取了?。。。),可我根本没提到百度好吗。。。

这全是包装造成的,所以包装的巨大威力,以此可窥之。

google是搜索引擎,百度难道也说自己是搜索引擎?不,百度说自己是最懂中文的搜索引擎。。。哈哈哈,你别笑,这的确很管用,就像google说自己不作恶是好女孩一样。

程序员的包装定位,无非稀缺和独特这两点。物以稀为贵,稀缺就是要做到不可替代,这很好理解,比如你知道世界第一高峰是珠穆朗玛峰,如果没看过禅师精选集你很难知道第二高峰是乔戈里峰,但文青特别偏好乞力马扎罗山,不爬不跟你结婚,为啥?独特性嘛。。。我不跟你比高,我和你比文化底蕴,于是就赢了。

由于你有实力,所以你应该尽量把自己的实力包装成稀缺属性,你是专家嘛。。然后你实力多,应该把独特的实力包装出来,避免和他人共同曝光,以免被人压在身下。

我说一个我朋友包装自己的故事,他进公司接手了一个项目,已经是被隔壁组开发了3,4个月的一个软件,其实这软件2个月也能做好的,但是隔壁人忙而且也不上心,不熟悉这个技术,加上又不是自己的老板,所以做事拖沓了那么久才做好。他接手后一刻没闲,晚上带回家也做,做到半夜,10天做成,然后整个公司的人都知道他的名字了,他也就立稳脚跟了。

这个包装的主题是,技术实力强,开发速度快。

包装的第三步是推广

推广就是让人知道你做得好,强化你的个人品牌,可以用博客、知乎、mailing-list、github等,通过写文章、参加线下聚会演讲、回答问题、帮助他人等方法。这个用好了是门学问,用不好就是装逼,不展开了。。。

记住不要匿名,匿名你基本啥也得不到

有人明明技术实力强,但是由于没有包装好,或被埋没了才能,或被贴上了各种不应该有的标签,或被人偏见看待。比如 赵劼 的c#和 vczh 的微软标签

有人明明实力一般,但是善于鼓动小白,包装得好,所以有一批忠实粉丝,这种人我都不太敢说名字了,呵呵。。

所以优秀的程序员应该善用包装啊

时间: 2024-08-26 06:20:48

怎么成为一个优秀的程序员,而不是一个优秀的码农?的相关文章

程序员,做艺术家不做码农

前几天和一个朋友聊天时说:我有强迫症,每次看到不符合自己审美的代码时,总想重构一下.朋友的观点与大多数人相仿,程序只要满足要求,运行正确就可以. 在现实的工作中一样,每当看到一段优美且高效的代码,我总是喜欢多看几遍,满心的享受.但是我们产品中的太多代码让我这个代码洁癖"患者"看了非常的烦躁: 1. 随便一个源文件都是上百行的函数,有些甚至超过500行(含空行和注释). 2. 大量没有必要的临时变量定义. 3. 习惯性的把所有变量声明定义放到函数前面,一些大函数甚至超过20行都是函数局部

【知乎】怎么成为一个优秀的程序员,而不是一个优秀的码农?

怎么成为一个优秀的程序员,而不是一个优秀的码农? 9 条评论 分享 默认排序按时间排序 98 个回答 3844赞同反对,不会显示你的姓名 萧井陌 微信公众号:炼瓜研究所 技术社区 - 3844 人赞同 优秀的程序员会告诉你打根基的重要性,会劝你在厚积薄发前要隐忍. 优秀的码农会告诉你学啥底层.啥啥啥一拖就好了,学了python还要啥自行车啊,数据结构排序函数二分搜索这不都内置了吗?工作中永远用不到,学算法有啥用啊?成为高手有很多种方法汇编是个屁啊? +++基础的分割线+++ 列举几个我认为比较重

一个优秀的程序员应该具备哪些素质?

俗话说“师父领进门,修行靠个人”,随着互联网的高速发展,越来越多的人选择了IT行业,加入到了程序员的行列.那么,对于一个刚入行的小白来讲,如何成为一个优秀的程序员呢?一个优秀的程序员需要哪些素质呢? 在学习C/C++或者想要学习C/C++可以加入我们的学习交流QQ群: 954607083,领取学习资料 扎实的技术 熟练开发工具 做为一名程序员至少熟练掌握两到三种开发工具的使用,这是程序员的立身之本,其中C/C++和JAVA是重点推荐的开发工具,C/C++以其高效率和高度的灵活性成为开发工具中的利

如何成为一个优秀的程序员(大部分写的都非常不错)——要勤快,不停的学习;争论是无意义的,不如把两种都学了,会更有收获。

在看这份FAQ之前,你必须先读完ESR的<如何成为一名黑客>(本文末尾附有中译版),该文所讲过的道理我不再重复.该文用很大的篇幅讲什么是黑客文化,虽然态度和信仰的确是成功的最关键因素,但是你肯定会想,做不做黑客跟我没关系,我只是想学个一技之长,找个好工作而已,对吧?那么肯定更希望获得一些具体的可操作的指导.     1.各种软件技术之间是怎样的关系? 我把软件技术分为三个层次:    问题域:计算机图形学.音视频编码.信息安全.模式识别.信息检索.自然语言分析.人工智能.科学计算等:     

谈谈一个优秀的程序员是如何炼成的

一个优秀的程序员是如何炼成的?他们关注什么?问一下自己这个问题会很有意思.这能让你好好思考一下软件开发的过程.拿它来问一下同事也不错,这能引起一些关于如何一起协作的很有意思的讨论.下面是我认为成为一名优秀的程序员所必需的5个技能. 问题分解 编程讲的是如何解决问题.但在你开始写代码之前,你需要清楚如何解决问题.一个好的程序员应该得拥有这样的技能,他能将问题分解成子问题,直到每个子问题都可以很轻松地进行解决.不过要找到一个解决问题的方式可不是件简单的事.好的程序员能够很好的对问题进行建模,这样写出

一个优秀的程序员需要擅长数学吗

来自DevStore 成为优秀的程序员,我需要擅长数学吗?相信很多年轻的程序员也问自己同样的问题.在浏览相关话题时,出现的答案模式被归结为以下三个主要类别: · 需要 · 不需要 · 看情况 貌似「需要」和「不需要」经常带有个人主观偏见,反而显得有点儿草率的反应综合征.为了成为一名优秀的程序员,一个人是否需要擅长数学的问题,可以从哲学和技术两个方面解答. 首先,我们必须尝试建立擅长数学的资格.一个人可以在既定数学原理或建模方程上,明白全局概念以适应情况,而另外一个人或许在数学的分析部分,比如长于

[转] 一个优秀的程序员应该如何提高工作效率?

转自:http://www.cnblogs.com/cherry0327/p/5395957.html 当我们评价一个程序员是否优秀时,要从多个方面进行评估. 专业技能.专业知识.创造力.经验,这些都是重要的因素.当然,还有他们的工作态度.工作效率和工作质量.如果程序员的工作是没有效率的,那就意味着他们所投入的时间和精力是没有效果的.在livecoding.tv最近发布的一篇博文中,他们总结了10个影响程序员工作效率的坏习惯.看完这篇文章后你会发现,里面所列举的坏习惯,总有一两个可以在自己的身上

如何才能造就一个优秀的程序员

一切就像刚刚发生过一样.那是在2000年,Pargas博士正在给我们上数据结构课,当他谈及某些数据结构的时候,他在墙上投影了一个SSH会话.在回答完某位同学提出的问题后,他随后总结了一句,“如果大家想成为一个真正的程序员,那么你需要从现在就开始学习使用vi文本编辑器”.我仍然记得他说这话的时候,脸上带着真挚的笑容,但是事后却证明他的说话是不甚正确的.不过,那个时候我还年轻,很容易受外界影响.所以,下课后我一回到宿舍,就迫不及待地开始学习如何使用vi编辑器了.这样一段时间之后,我突然发现我对vi真

你在成长为一个优秀的程序员吗

在软件开发过程中,你经历的每件事情都会潜移默化地影响着你.随着时间的流逝,年纪的增长,对于程序开发技术(相同/或者相关能力)以及自身的理解也会不断沉淀,这些最终也会帮助你达成目标——成为一名优秀的程序员.这里谈到的经历不仅限于程序员生涯里的里程碑,比如换工作.成为领导/经理或者自己创业.你所经历的每一份工作.每个项目(不论大小).与团队成员的每次交流.甚至你实现的每一个程序模块,都会让你变得比以前更优秀.更有活力.更有见地. 在日常的工作当中不放过任何一点可以学习的新知识,会让你成为更加出色的程