或许我没见过世面,但是这却是我看过对“怎么成为一个优秀的程序员,而不是一个优秀的码农?”最精彩的回答【全部复制粘贴】

其实我的心一直因为现在的工作【餐饮服务】而动摇,忽而想学网站,忽而c语言根基,忽而c#忽而java Android方向,然而当读到这个问答时,我坚定我所喜欢的iOS,不管结局如何(一辈子餐饮服务,一辈子底层,一辈子没法从事软件行业)

优秀的程序员会告诉你打根基的重要性,会劝你在厚积薄发前要隐忍。

优秀的码农会告诉你学啥底层、啥啥啥一拖就好了,学了python还要啥自行车啊,数据结构排序函数二分搜索这不都内置了吗?工作中永远用不到,学算法有啥用啊?成为高手有很多种方法汇编是个屁啊?

+++基础的分割线+++

列举几个我认为比较重要的根基并附入门书

编程语言,《程序设计语言-实践之路》《concepts of programming languages》

计算机通用知识,《csapp》

算法、数据结构,《算法导论》

程序设计、结构,没有书推荐

软件工程,这个词大家理解不同,我以为,《人月》《代码大全》《the pragmatic programmer》《sicp》、讲测试讲重构的都是软件工程,其实上面设计模式也是软件工程,哈哈

这些书,初时读来感觉全无作用,而且要读多次才能体会其中意味,所以叫它根基也是十分合适,你根基越深才能爬得越高嘛。

+++方向的分割线+++

啥是优秀程序员?

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

公司里你出什么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 的微软标签

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

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

+++结尾的分割线+++

上面说了那么多,但是坚持做来需要不少推动力,有人能考上清华,但是也能在大学堕落,有人能取得成绩,但是也会固步自封。。

要想优秀,得有巨大的推动力,你为啥想成为优秀的程序员?你的推动力是什么?

好比,我们说,嫖娼是有巨大道德压力、金钱压力和风险的事情,为啥知乎上那么多嫖客乐此不疲并努力给自己洗脑合理化这件事呢?因为在他们的眼中嫖娼是最有趣的事情、是不吃饭不睡觉也不能不做的事情、是不做就活着没劲的事,有了这种死也要死在床上的精神,还怕什么呢?

这就是推动力

作者:萧井陌
链接:http://www.zhihu.com/question/22032651/answer/30474626
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

致敬!
感谢!
最后还是想说出自己的心酸,我只是想找一份软件开发工作,不要求什么高薪,咋就那么难呢?难道不善于表达的人真的很难发展吗?
好吧,不抱怨了,还是继续学习隐忍和集中思想吧~

这是我看过最精彩的回答相关推荐

  1. 手机看动漫,精彩玩转指尖

    对于喜欢看动漫的朋友来说,手机里怎么少得了看动漫软件呢!那么问题来了,用手机手机看动漫用什么软件好?不要着急,听小编细细给你介绍几款手机动漫软件. 1.<布卡漫画> 如果要问现在最受欢迎的 ...

  2. 最近看的一些精彩动漫

    银河铁道物语-被 天上天下(含OVA 大剑CLAYMORE 驱魔少年 死神 海贼王 火影忍者 蜂蜜与四叶草(1 7月新番 樱花通信 向日葵 小鸡快跑 料理鼠王 我的太太是高中 艾尔文与花栗鼠 幽游白书 ...

  3. Linux 一句精彩的回答【转】

    Linux一句话精彩问答 发表时间:2008-9-9 11:30:51  发布人:Rabbisoft  点击次数:1334     编者按:鉴于目前中国Linux的发展现状,90%以上的问题都可以用一 ...

  4. 为什么学编程都建议不要用拼音命名?看知乎大佬的回答!秒懂

    为什么学编程都建议不要用拼音命名?今天笔者逛了逛知乎,发现了知乎的大佬是这样回答的! 规范命名是为了统一标准,降低程序理解难度,提升程序可维护性,提高团队协作效率. 使用拼音命名可不可以?当然可以.但 ...

  5. 年薪30万的程序员为啥找不到女朋友?这是我见过最精彩的回答!

    首先要澄清,并不是说程序员找不到女朋友,只是很大一部分程序员找女朋友有些困难,而且,程序员工资也不是所有工作中最高的,比程序员赚得多的有的是. 部分程序员找女朋友有困难,主要原因是程序员的工作往往比较 ...

  6. 计算机科学精彩帖子收集

    linux源码 LXR 源自"the Linux Cross Referencer",中间的"X"形象地代表了"Cross".与 Sourc ...

  7. 2010 模板下载 罗斯文_俄罗斯人过年必看电影 | 新年枞树 @鱼子酱字幕组

    ❤  Ваша жизнь, наши спектакли 鱼子酱,好剧常在 大家好,好久不见啦~小鱼们近期因为工作.学习等问题,暂时停止更新(知道大家等得太着急啦).但是,小鱼们也想早点恢复更新,和 ...

  8. 今天见 | 洞见数据库前沿趋势 DTCC 2020阿里云9大看点早知道

    简介:12月21日-12月23日,阿里云数据库在DTCC 2020等你~ 12月21日-12月23日,由国内知名IT技术社区主办的数据库技术交流盛会--DTCC 2020(第十一届中国数据库技术大会) ...

  9. 从信息检索顶会CIKM'20看搜索、推荐与计算广告新进展

    文 | 谷育龙Eric 源 | 搜索推荐广告排序艺术 我是谷育龙Eric,研究方向有深度学习.搜索推荐,喜欢为大家分享深度学习在搜索推荐广告排序应用的文章.CIKM作为信息检索.数据挖掘等领域的国际一 ...

最新文章

  1. linux修改权限重启恢复,Linux错误执行:chmod 777 .*或chown -R * 的补救方法
  2. GeoAnalyticsServer在Linux下集群部署手册
  3. 在当前PJ项目pj_nath模块加入mysql的一些问题
  4. 遇到MapStruct后,再也不手写PO,DTO,VO对象之间的转换了
  5. Linux 多线程开发-线程的属性-分离detached和连接joinable
  6. Python_共轭梯度法与最速下降法之间的比较
  7. Tennis Game CodeForces - 496D(唯一分解定理,费马大定理)
  8. java 泛型 `<E extends Enum<E>>`
  9. windows服务器新建管理员用户_用户和组管理
  10. 丰田汽车顶级供应商 Denso 疑遭勒索攻击,被威胁泄露商业机密
  11. 判断输入几位数的正则_判断是几位数,并逆向输出此数的程序算法和说明
  12. 【蓝桥杯】双非本科?大一大二不敢参加?这篇蓝桥全解析帮你打消疑虑轻松获奖【内附蓝桥资源和学习路线】
  13. 《Python+Kivy(App开发)从入门到实践》自学笔记:简单UX部件——ToggleButton切换按钮
  14. 巨量引擎平台广告审核规则
  15. MySQL常用系统名字
  16. 卖掉房子去做理财可取吗?
  17. SMETA认证辅导,SMATA验厂审核现场会查验哪些文件
  18. 【NO.3】图形渲染,光照,抗锯齿简介,透明渲染排序简介
  19. 广州立成电商再次荣获“天猫四星级服务商”称号
  20. 2015年VR领域获得巨额投资的公司(附最全名单)

热门文章

  1. 静态链表(代码、分析、汇编)
  2. 易语言 java支持_开源Java客户端可以连接易语言服务器
  3. 279. 完全平方数 golang 动态规划
  4. 判断一段文件是UTF-8编码还是GB2312的编码方式
  5. linux 消息队列机制
  6. 编写声卡驱动(框架)
  7. 103. 二叉树的锯齿形层次遍历
  8. Java高级面试题!java编程思想怎么学
  9. MongoDB数据分布不均的解决方案
  10. 程序从高版本降到2.0,数据集报错 TypedTableBase