随着互联网时代的飞速发展,越来越多的人投身于软件开发行业,大家都称他们为程序员,或者码农。
  这些程序员的水平也是参差不齐的,有些人从比较好的学校毕业,水平却一般般;也有些人从一般搬的学校毕业,但是水平很高,因为他们付出了比其他人更多的努力;也有些人,不管是好学校还是差学校,毕业了都跑去培训班培训了,出来的也是良莠不齐的。
  今天这篇文章,我们不从这些客观因素上去分析,就如题,同样是程序员,为什么别人比你更优秀?我结合自己的一些经历和经验,以及从身边优秀的人身上学 到的经验,从主观上去总结几点,与所有人共勉。

  1. 不要吝啬投资自己
  和朋友一起搓一顿大概人均几十或者百把块钱,基本上我们都很随意,根本不会觉得这很贵或者很浪费。但是每当我们去买书或者去买一些优质的视频教程的时候,很多人会觉得很贵,甚至不太愿意出这个钱。

  的确,技术书籍都很贵,动不动就50-100的,我想说的是什么呢?永远不要吝啬给自己投资,我研究生读的是通信专业,在学校自学的Java,我看过网上很多的免费视频教程,免费的教程有两个特点:一是入门的,二是质量不高的。但是要想真的提升自己,这些入门的教程是不够的,网上有些收费的教程确实不错,我读书那会儿也买过好几个项目视频跟着认认真真学 ,收获颇丰。
  而且现在也是知识付费时代了,入门资料一大堆,真正能提升自己Level的东西,哪怕花点钱,给自己投资

  永远是稳赚的生意。不要在乎那点钱。你和别人的差距,往往真的就是这一两百、两三百块钱给拉开的。因为知识创造的价值要比这几百块钱来的更猛。

  2. 站在巨人的肩膀上
  我们平时在开发的时候,会遇到一些功能上的东西要实现,当然咯,如果开发经验丰富,基本知道用什么技术去实现,但是对于开发经验不足的朋友来说,首先不要想着自己去造轮子,除非是非常冷门的一些技术,否则绝大多数现在互联网上都有了较多的解决方案,我们可以用来参考改进。软件开发,说的诙谐一点,就是 copy+改。因为工作不是学 ,它是有deadline的。

  还有一点,我们开发一般都会有很多类库,同一个功能可能有多个类库都可以实现。就像移动、联通和电信都可以满足你通信的需求一样,但是你选择哪一个,就看你自身的需要了。我们在实现某个功能的时候也是,如果能够选择一个很好的开源类库,那么必将是事半功倍,不管是从效率和稳定性上来说,都比我们自己实现要好得多。所以我们要站在巨人的肩膀上。

  3. 了解数据结构和算法
  就像武侠小说里说的那样,招式只是形式,要练神功,必须懂心法。数据结构和算法就是所谓的心法。我不是说要去掌握所有的数据结构和算法的原理以及实现,这也不太现实,但是那些基本的、经典的我们需要去掌握,甚至可以自己实现。这是内功。

  现在好多面试也会问这些东西,特别是针对于应届生,不管你是本科还是硕士,基本上数据结构和算法的东西是必问的,如果你还不知道什么是二叉树、什么是快速排序,如果你还不知道什么是时间复杂度的话,那么确实要给自己充充电了。

  4. 用熟练一款开发工具
  我在学校的时候,一直在用 Eclipse 这个编辑器来写代码,基本的操作我也都会了,但是有一点就是 Eclipse 有点卡,而且动不动就卡,一言不合就卡。不过用 惯了,就懒得换了。

  工作了后,我同事在用 IDEA,我也用了,两个一对比也是天壤之别,我就不说开发效率了,无疑是提升了好几倍,最起码不卡顿。我就说说使用心情,那也绝对是比 Eclipse 爽的。但是 IDEA 我没有那么的熟练,也在继续使用中。

  所以选择一款好的开发工具很重要,不仅提升开发效率,最重要地,是你的心情好了,心情一好,干什么都来劲。

  5. 写代码要规范
  也许我一开始自学编程的时候,就跟着一些视频教程的缘故,受到那些大牛的影响,所以一开始我写代码就比较规范。我特别看不惯下面这种代码:

  redisUtil.setInfo(s_user,0,-1);
  }
  这几行代码没有任何意义,我就是举个例子而已。如果是我写,我会写成下面这样:

  if(null != sUser && 0 == sUser.getNum()){
  redisUtil.setInfo(sUser, 0, -1);
  }
  不管是空格上,还是命名规范上,甚至是空指针异常上,这些都是举个小例子,我们写代码一定要规范,这也是一个人有没有一个良好的 惯和态度的体现。最起码,可能你同事也会看你代码,请善待同事,程序员何苦难为程序员。

  6. 不停地给自己充电
  我们不能一直啃老本,干软件这一行,技术更新非常快,今年上半年学的技术,估计下半年就有了新的版本,我们要一直不停地给自己充电,不停地学 。哪怕是不停的总结自身不足,也比停滞不前要好,最起码自己没闲着。

  我们还要有一定的忧患意识,公司每年都会输入新的年轻血液,有初学者,也有牛逼人物,我们不要让雇主逼着自己去学 ,自己要有主动充电意识,这样才不会被周围的人给超越,才不会给后来者给超越。但是这都不是最根本的原因和出发点,最根本地,还是为了提升自己的能力。

  7. 计划、坚持与执行力
  我一直认为,一个优秀的人都应该是好的时间管理者,不管我们现在的能力如何,如果我们能合理的安排时间,分清主次,步步为营地去执行,坚持下来,我们肯定能收获很多,而且进步很快。

  坏 惯养成很简单,好 惯养成很难,但是不管哪个,养成之后,都是蝴蝶效应。是良性循环还是恶性循环,就看自己了。

  8. 放低自己的姿态
  是在分享还是在吹逼,这点我们一下子就能辨别出来,我也有所谓的朋友经常在我面前吹牛逼,可能这是一个人的本性,每次跟我聊天都要海吹一波,我只能苦笑一番。这是做人的一种方式。

  我是同济大学硕士毕业,可能相比于大部分人来说,我这个背景还算可以了,但是我一直为人低调,真心待人,从来不会因为你是大专或者一个不起眼的学校毕业的,我就在你面前吹牛逼,说一些大话,站在高处俯视你。我觉得人与人之间靠的是真诚,我真诚待人,别人肯定也会真诚待我。而不是我让别人觉得我有多牛逼,那样换来的也不是真正的友谊。

  任何人都是从0开始往上爬的,你的背景好,可能快一点,别人差点,可能就会慢点,但是这不能说明别人就不够努力,我很佩服那些先天条件差,但是却非常努力的想要提升自己的人,我特别愿意给这些人帮助。我的粉丝当中,有很多很多还在学校读书的学生,也有很多大专生,这些粉丝在微信里跟我聊天,让我指点指点(当然,指点不敢当,我一般都是建议和分享),我都会耐心的把自己的想法结合他们的处境,给一个我觉得比较好的建议。别人来问我是看得起我,我能帮上忙的,基本上都义不容辞。

  所以,如果哪天,我们牛逼了发达了,一定不要趾高气昂。人,不能有太多的棱角。这个社会,还是要靠朋友的。善待周围的朋友,放低自己的姿态,是对别人的一种尊重,同时,也是自己修养的体现。它也是决定一个人能否成功,能走多远的关键因素之一。

新手Java在华为的几点建议?的更多相关文章

  1. 这是一名Java学者关于学习方向的建议

    无可厚非,编程是一门艺术.但是辉煌的背后必须是一段辛苦的奋斗过程,而过程的引导方向就是最重要的一环.Java语言可谓是引领了编程的潮流,你会是怎样去学的呢? 这是一名Java学者的学习方向的建议 注: ...

  2. 新手向:Vue 2.0 的建议学习顺序

    新手向:Vue 2.0 的建议学习顺序 尤雨溪   1 年前 注:2.0 已经有中文文档 .如果对自己英文有信心,也可以直接阅读英文文档.此指南仅供参考,请根据自身实际情况灵活调整.欢迎转载,请注明出 ...

  3. 在JAVA中记录日志的十个小建议

    JAVA日志管理既是一门科学,又是一门艺术.科学的部分是指了解写日志的工具以及其API,而选择日志的格式,消息的格式,日志记录的内容,哪种消息对应于哪一种日志级别,则完全是基于经验.从过去的实践证明, ...

  4. Java代码编写的30条建议

    1) 类名首字母应该大写.字段.方法以及对象(句柄)的首字母应小写.对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母.例如: ThisIsAClassName thisIsM ...

  5. 管理Java垃圾回收的五个建议

    [编者按]本文作者是Niv Steingarten,是Takipi 的联合创始人,热衷于编写优雅简洁的代码.作者通过对垃圾收集器的介绍和梳理,在管理垃圾回收方面提出了五个建议,降低收集器开销,帮助大家 ...

  6. Java安全编码:糟糕的在线建议和令人困惑的APIs

    对于程序员和软件开发人员来说,网络论坛提供了一个交流知识和寻找具体编码难题答案的好地方.遗憾的是,他们并不总是准确信息的来源. 弗吉尼亚理工大学的一组研究人员分析了数百篇关于Stack Overflo ...

  7. 给Java程序员的几条建议

    对于Java程序猿学习的建议 这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是LZ你是如何学习Java的,能不能给点建议? 今天LZ是打算来点干货,因此咱们就不说一些学 ...

  8. 关于java性能优化细节方面的建议

    在Javva程序中,性能问题的大部分原因并不在于Java语言,而是程序本身,养成一个良好的编码习惯非常重要,能够显著地提升程序性能.下面来聊聊该方面的建议: 1.尽量在合适的场合使用单例: 所谓单例, ...

  9. Java 8 Optional 良心指南,建议收藏

    想学习,永远都不晚,尤其是针对 Java 8 里面的好东西,Optional 就是其中之一,该类提供了一种用于表示可选值而非空引用的类级别解决方案.作为一名 Java 程序员,我真的是烦透了 Null ...

随机推荐

  1. CDN的智能调度,链路优化的详细解答

    您的用户在请求资源的过程中,可能受到网络.地域.带宽等影响,无法保证请求一定是按照最优访问路径进行传递,猫云 CDN 通过对全网链路进行实时监控,结合自研的 GSLB 调度体系和智能路由技术,从以下几 ...

  2. 【模板】gcd和exgcd

    1. gcd: int gcd(int a,int b) { return !b?a:gcd(b,a%b); } exgcd: int exgcd(int a,int b,int& x,int ...

  3. python 使用队列实现线程同步

    #通过queue的方式进行线程间同步,Queue在底层通过实现了dqueue(双生队列,在字节码时实现了线程安全)实现了线程安全 from queue import Queue import time ...

  4. Spring Cloud Ribbon客户端负载均衡(四)

    序言 Ribbon 是一个客户端负载均衡器(Nginx 为服务端负载均衡),它赋予了应用一些支配 HTTP 与 TCP 行为的能力,可以得知,这里的客户端负载均衡也是进程内负载均衡的一种.它在 Spr ...

  5. MySQL for OPS 05:日志管理

    写在前面的话 日志是作为用户排查服务问题的重要依据,在 MySQL 中日志可以分为几类,各自产生着不同的作用.如 error log / bin log / slow log 等.很多时候优化数据库的 ...

  6. LeetCode 1291. Sequential Digits

    题目 class Solution { public: int ans[10005]; vector<int> sequentialDigits(int low, int high) { ...

  7. 我是如何一步步编码完成万仓网ERP系统的(一)系统架构

    https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/ ...

  8. python高级语法1

    1.解压序列赋值给多个变量 p = (4, 5, 6) x, y , z = p # x = 4, y = 5, z = 6 若可迭代对象超过变量个数,会抛出ValueError 用处:可以解压赋值任 ...

  9. 信号量(Posix)

    Posix信号量分为有名信号量和无名信号量 1. Posix有名信号量 有名信号量既可以用于线程间的同步也可以用于进程间的同步 sem都是创建在/dev/shm目录下,名字格式sem.xxx,只需要指 ...

  10. selenium鼠标操作 包含右击和浮层菜单的选择

    感谢http://www.cnblogs.com/tobecrazy/p/3969390.html  博友的分享 最近在学习selenium的一些鼠标的相关操作 自己在百度的相关操作代码 /** * ...