程序员的价值绝对不在于技术本身,而在于做出好用且好看程序的能力,这是一个开放性的话题,每一个人都是菜鸟过来的,希望每一个做技术的小伙伴都能尽快成为高手。

什么是菜鸟程序员、什么是程序高手,我想他们之间区别体现的最直接的一点那就是工资。可能从事同一个岗位、花了同样的时间,但是最后得到的薪酬却天壤之别。

1、代码的展现,网络的应用

展现题目:一个很小的功能,比如说一个当鼠标移动到一个标题下,在下面显示其可选菜单。

“菜鸟”程序员的代码是什么样子,自己想一下。“菜鸟”程序员的代码往往会会写的比较冗余,而且这些代码不是从书上找来的就是从网上找来的还有可能就是自己会这一部分代码(仅存记忆的提取,真正的原理似懂非懂,好像雾里看花)。

“大神”的代码会写成什么哪?“大神”程序员的代码,当你看的第一眼:简洁;第二眼:真“N”。用最少的代码,把这个程序写的非常精辟了,体现的自己的思维思路。

为什么会出现这样的现象?

同样一个小的功能,放在不同的手里就产生不同的结果。这个难道不值得我们去探究原因吗?

真正的原因是:“菜鸟”程序员没有将自己的思维融入代码,代码是程序员思维智慧的结晶。当我们拿到这一个小功能的时候,我们首先一看,这方面的知识自己准备不足,于是就上网找去了。

2、基础扎实

技术知识决定一个人能做的技术的层次。基础的知识有计算机组成原理、计算机操作系统、网络原理、数据库原理、计算机图形学、编译原理、数据结构、离散数学、人工智能等等很高深的理论知识。

在这些基础知识之上,就是软件开发语言、类库、框架,面向过程、面向对象、面向服务等编程思想,架构思想等等。

这些知识不一定会影响你现在的工作,但一定会影响到你的格局,那格局肯定也会影响到你自身的发展。我碰到过有些理论很差的人,但技术在公司内也是有些影响力的,因此,他们对技术原理就很不屑,甚至为自己不懂太多理论而擅长实战而沾沾自喜。

3、善用工具

工具能解决的事情就用工具去解决,好的工具能节约大把的时间用在更有意义的事情上。

工具的范畴很广,比如linux的各种命令、比如团队内部的各种系统、比如顺手的应用、甚至包括上下班骑的自行车。只要能节约时间、提高效率,那就值得一试。

在这里我列举几个大幅度提升了我的效率的东西:

  • 双屏显示器

  • 顺手的键盘

  • google(不是baidu!不是bing!)

  • mac

  • mac上的应用:idea、alfread、omnifocus、甚至synergy和istats menus之类跟开发本身关系不大的应用。

我更倾向于把“使用工具”作为一种生活态度:是否希望让自己的生活专注于有意义的事情。如果你认同这个观点,那么想一想投入和回报比例,还是很可观的。

4、社交并建立联系

无所事事的时候不要将你宝贵的时间浪费在办公隔间里,也不要装古代小姐自以为矜持不和团队以外的人说话。如果还有其他实习生,也可以去找他们聊聊。在工作之余也应该建立自己的社会关系,建立自己的关系网。了解他们喜欢做什么,在哪里毕的业,以及正在搞什么项目。其中也会有一些刚从学校出来的开发菜鸟,他们非常愿意和你在吃饭的时候谈天说地,回答你提出的问题。你永远也不会知道,这些关系的价值有多大,将来能派上什么用场。总之,现在你要做的就是,交些朋友,特别是如果你到了一个新的地方。

5、丰富的想像力

不要拘泥于固定的思维方式,遇到问题的时候要多想几种解决问题的方案,试试别人从没想过的方法。丰富的想像力是建立在丰富的知识的基础上,除计算机以外,多涉猎其他的学科,比如天文、物理、数学等等。开阔的思维对程序员来说很重要。

6、只看技术水平并不够

对于技术水平高但在领导力和交际能力方面都缺乏经验的人,不能直说“在我们这里你达不到高级程序员的标准”,这话太刺耳了。但对于他在团队中能承担的责任来说,我们可以暂时评订为中级,等他把另一方面或者两方面都提高了之后,我们再把他提升为高级。

很多公司只根据技术水平来做判断,但这样对于我们这种小型的而且非常依赖合作模式工作的公司来说行不通。其实我非常担心那些只衡量技术能力的公司是认可“孤独的天才开发者”这样的危险想法的,觉得一个人技术水平高,就想当然的认为领导力和交际能力也很好。

在大公司中每个人都只负责一小部分工作,我非常乐于见到他们分享对于“高级程序员”的定义,那应该会在技术和非技术的方面都更加全面,让我们工作得效率更高,尤其是在需要与客户打交道的团队里。

7、成为高级需要多久?

“高级程序员”是不是就意味着“若干年的经验”?事实上我并没有看到过哪个人不用五年就可以成为高级程序员的。要在很短的时间内就把一些特质发展得非常好来在某一方面达到高级水平其实是非常困难、甚至不可能的,更别说在多个方面全部成为高级了。

而且“五年经验”并不一定要意味着“五年的软件开发经验”。如果一个人已经在领导力和(或)交际能力上满足了条件,那他只需要提升技术能力,就已经可以发挥高级程序员的作用了。

我们招聘的“秘密武器”很大程度上源于我们观察到的事实:对于具有领导力和交际能力的人来说,要再提升技术能力并不需要很多时间,反之则不然。我见过很多这样的人,从代码集训营中出来两三年后就已经成了非常好的高级程序员。

8、实践、实践、再实践

有很多原则和道理我们听过无数遍,但是从来没有去实践。如果不经过几十万行代码的锤炼。很难达到一个高度。外部环境的支撑很重要。但是,如果没有这样的机遇,就需要我们创造条件去寻找。高级程序员会不停的实践,总结,再实践。如果觉得有用,请看这本书。

另外还有一点可以通过自身的学习来获取一大进步。

分享给超过5万的程序员朋友下载,这次我把所有干货重新梳理精简,免费给大家 。

究竟有哪些干货呢?先给你们一个目录:

获取方式:

免费获取资料途径:共众平台 “程序员编程”。(你懂的)

程序员高手和菜鸟的区别是什么?相关推荐

  1. 讨论:程序员高手和菜鸟的区别是什么?

    原文出处:  道法自然(陈贞宝) 随着做软件的时间越来越长,我发现,做软件越来越难.难在哪?难在怎么做出一个好的软件.好的软件标准是什么?两个词,好用,好看!程序员的最大价值在于做出好用又好看的软件的 ...

  2. 一般程序员高手和菜鸟究竟差多少

    一般程序员高手和菜鸟究竟差多少?不要错过加薪,着做软件的时间越来越长,我发现,做软件越来越难.难在哪?难在怎么做出一个好的软件.好的软件标准是什么?两个词,好用,好看!程序员的最大价值在于做出好用又好 ...

  3. 如何成为程序员高手(转)

    怎样做才能成为程序员高手 关于程序员励志方面的文章,我们曾介绍过不少,在这,给大家推荐两篇,<程序员深思 八种级别八种人生>和<一定要理解程序员  程序员的坏习惯>,供参考. ...

  4. 程序员高手和程序员菜鸟的区别是什么?

    程序员的价值绝对不在于技术本身,而在于做出好用且好看程序的能力,这是一个开放性的话题,每一个人都是菜鸟过来的,老九君希望每一个做技术的小伙伴都能尽快成为高手. 1.命名 从程序代码的命名,我们就可以看 ...

  5. Java程序员之从菜鸟到职场高手的必看...

    J2SE之入门引导            Java基础系列之初识JAVA                                            Java基础系列之Java语法     ...

  6. +++程序员高手修炼之路

    正在做Andy Hunt和David Thomas的<程序员修炼之路>英文注释版(The Pragmatic Programmer)的最后审稿工作. 这本书虽然很早就读过一些,但现在再读, ...

  7. 西安华育java_成为Java程序员高手的8个条件

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 世界上并没有成为高手的捷径,但一些基本原则是可以遵循的.达内JavaEE培训导师,告诉你学习java有这样的素质才能成为高手! 1.扎实的基础 数据结构. ...

  8. 如何成为一个程序员高手

    程序员学习编程需要攻克的8个障碍 2015-06-17    分类:程序员人生.首页精华7人评论 分享到:更多8 本文由码农网 – 王国峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划 ...

  9. 那个「最牛删库跑路事件」的程序员,被判了....

    点击上方"菜鸟学Python",选择"星标"公众号 重磅干货,第一时间送达 来源:扩展迷EXTFANS 大家应该还记得,在今年 2 月份的时候,国内一则程序员删 ...

最新文章

  1. 【bug记录】android:Program type already present: android.support.v4.app.INotificationSideChannel
  2. 终极结束进程方法API
  3. 算法-两个排序数组的中位数
  4. c语言指针的应用实验报告6,C语言实验六实验报告——指针.doc
  5. PDF阅读器开发商福昕曝出数据泄露事件,涉及用户帐户密码
  6. 支气管炎的饮食要注意哪些
  7. CentOS7下使用vlmcsd搭建KMS服务器激活环境
  8. pH响应UV交联壳聚糖水凝胶/氨基葡聚糖基生物杂化水凝胶NMPA-CS壳聚糖水凝胶的制备
  9. python操作selenium
  10. VC浏览器的定制与扩展
  11. Windows 10 缺少 efi 分区无法启动的修复
  12. Java MD5加密工具
  13. 微软亚太研发集团2013招聘
  14. FDM打印机使用总结(二)
  15. 小米3刷android 6.0,小米3/4/Note适配Android6.0刷机包链接 注意事项及提取密匙
  16. 统计学习方法感知机(附简单模型代码)
  17. 美国警察冲进中国驻休斯敦领馆 铐走我副总领事
  18. AD19原理图页面大小等参数修改
  19. 【python教程入门学习】线性回归算法详解
  20. 如何选择一家好的led显示屏生产厂家?

热门文章

  1. linux学习第八周总结
  2. 免费小程序转码工具(小程序转码机器人)业务推广必备
  3. Mac下用docker安装阿波罗Apollo
  4. 智能电瓶车充电桩 ,电动车充电的安全利器
  5. android 异步编程,flutter异步编程-事件循环、Isolate、Stream(流)
  6. Android中的接口的使用举例
  7. 【转载】详解Android中接口回调、方法回调
  8. 推荐 :快速掌握spacy在python中进行自然语言处理(附代码链接)
  9. TimerFd使用心得
  10. hadoop tyarn冲突_hadoop集群启动yarn时出现的问题和解决方法