只做正确的事
对于软件这一行的人,我们有个很大的挑战,就是如何能够用正确方法的做事情。什么是正确的方法,这依赖于你在做什么和做给谁。而究竟所谓 “正确的方法”里都包括了什么内容,这并不是重点,重点是你是否能坚持按照这种方式做事。初级程序员在这个问题是通常不能做到坚持,而资历较深的程序员却 能始终坚持原则。 也许会有一个“非常紧急”的项目,或者这个项目很特殊,不能按常规过程开发。这只是个假象。 好的程序员知道即使在任何情况和环境下都要坚持做正确的事情。 如果说按正确的方式开发将导致不能按时完成任务,那么,他们就会知道,这个项目是不能按时完工的。 不要妥协,工程质量是你作为一个优秀程序员的唯一终极证明。 确保你所有的代码都是在正确的方法下100%正确的写出的。要按一个优秀的程序员的标准来要求自己。
甘愿受苦
听起来很傻,但却是真的,优秀的程序员都乐于承担工作上给他们带来的痛苦。 你说出一个伟大的程序员,我都能告诉你,在他或她的职业生涯里,各个阶段,都曾有花好几天时间去解决一个问题的经历。 优秀的程序员品味着困难给他们带来的挑战,这让他们日以继夜,他们明白,问题必须要解决掉。
不太优秀的程序员就不一样了,他们在刚刚碰到有麻烦的迹象时就先想到要寻求帮助。 在问题面前,他们习惯于去寻求帮助,而不是自己去努力解决这个问题。 他们最喜欢的一句话是:“帮我看看这个问题”。 伟大的程序员的第一反应是我要自己解决这个问题。解决问题是种技能,是优秀的程序员非常看重的一种技能。
好的程序员是通过痛苦的磨练才成为伟大的程序员的。 痛苦的磨练是说当你对这个问题实在无能为力时才去请求外援。 求助就意味着认输, 所有尽量减少这种处境的发生。 甘愿受苦。和问题做不懈的斗争。这就是你要学会的。
注意: 我并不是说你不能寻求他人的帮助。我说的是,你首先要尝试自己去完成任务,如果你不能完成,再寻求帮助。 不要在自己没有努力过前就轻易的求助。你经常会发现,当你知道了解决方法后,你才认识到,你用自己的力量本也能解决这个问题的。
学无止境
如果有人敢声称他不需要再学任何新的知识,我是绝对不愿意和他共事的。 在有些行业,你也许很多年不学新的东西也能干的很好,但软件技术革新的如此之快,你不能不时刻关注。 你的老板是由于你有某些技能才花钱雇你的,如果你的技能已经落伍、过期了,那你也就没有价值了。 想成为一名伟大的程序员,你首先要承认你不是无所不知,你必须每天都要努力的寻找、学习新的知识。
在你现在的公司里或组织里寻找能让你学习、让你钦佩的人。在复杂的问题上征求他们的意见,看看他们是怎么思考的。 向他们介绍你的解决思路,请他们给予批评指点。 如果在你的周围你不能找出一个能作为你的导师的人,这要么是你还没有认真的寻找,要么是你留在了一个不该留的公司里。 如果你在现在的工作上不能学习进步,那是到了你该换个工作的时候了。
分享知识
有一些程序员认为,他们的唯一价值所在就是他们所拥有的知识,于是,分享出他们的知识就会让他们的价值降低。 这是大错特错了。让你有价值的不是你的知识,而是如何运用你的知识给公司创造价值。 难道还会有比分享知识给他人更能给公司创造价值的方法吗?
我曾经面试过一家公司,知识不共享、相互保密、相互提防的理念在这家公司里根深蒂固。 在这样的环境里,员工之间形成了一种恶性竞争的关系,这直接导致了勾心斗角和诬陷中伤的产生。 我可不想在这样的公司里工作。如果每个人都对自己知道的事情讳莫如深,那你什么都学不到。
伟大的程序员希望他人也能知道自己所掌握的知识。他们并不担心会因此而失去优势,因为他们相信大家都会这样做。 伟大的程序员乐意看到他们的同伴成长、成功。 一个公司,它应该被一群喜欢知识共享的人组成,就像人们在运动场上,让团队的每个对员都强大起来,整个团队才会强大。
伸出援助之手
伟大的程序员从来不会说“这不关我的事”。他们总是愿意伸出援助之手。他们经常在做自己的工作之余,去帮助那些编程新手。 如果有件任务必须按时完成,而又没有其他人能胜任,伟大的程序员会主动承担起这项任务。 他们从来不嘲笑来请求帮助的人,即使问题是那么的小、那么无意义、无价值。 伟大的程序员重视他们的团队,愿意为团队做任何的事情。 不管是要去写1,000行的代码,还是去编辑一个图片,伟大的程序员都会立即站出来帮助完成。
十年磨一剑
伟大的程序员不是天生的,是后天炼成的。他们是本文上面提到的那些因素造就的,加上还要通过努力的工作。 如果你是刚刚意识到这些,那还不晚,你仍然有充分的时间来成为一个伟大的程序员。耐心是关键。伟大的程序员不是在旦夕之间就可以成就的。有些人可能要花上 数年,有些人则需要十几年。 没有人为你写血泪史。 好的公司当发现你有成为伟大程序员的潜质时,会帮助你,为你提供舞台。而你会通过你的努力工作、让你的团队进步来证明自己。要坚定,要自律,通往伟大程序 员的道路会很长。
学会学习
现在是一个信息爆炸的时代,也是一个竞争压力非常大的时代。为了不被时代抛弃,就必须要提升自己的核心竞争能力。为了让自己过得更好,我们会不断地学习知识,以提升自己的知识和能力,从而在社会竞争中取得更好的优势。但是学习也并不意味着我们一定要去接触新的知识,去不断的听新课,看新书。在这里并不是说听新课和看新书是错误的,而是我们在学习的时候,应该有规划的去看书、去听课,去接触新的知识
我自己是一名从事了10年的老程序员,辞职目前在做讲师,整理了一份现在把架构师必须具备的一些技术总结出来一套思维导图和录制了一些相关视频,分享给大家,供大家参考。
需要相关资料可以私信我(架构)就能获取
1. 高性能架构
1.1. 分布式架构思维
1.2. Zookeeper分布式环境指挥官
1.3. Nginx高并发分流进阶实战
1.4. ActiveMq消息中间件
1.5. RabbitMq消息中间件
1.6. Kafka百万级吞实战
1.7. Memcached进阶实战
1.8. Redis高性能缓存数据库
1.9. MongoDB进阶实战
1.10. 高性能缓存开发实战
1.11. Mysql高性能存储实战
1.12. FastDFS分布式文件存储实战
1.13. 高并发场景分布式解决方案实战
2. 微服务架构
2.1. 服务的前世今生
2.2. 基于分布式思想下的RPC解决方案
2.3. Dubbo应用及源码解读
2.4. SpringBoot
2.5. SpringCloud应用及源码解读
2.6. Docker虚拟化技术
3. 开源框架
3.1. spring5概述
3.2. Spring5 Framework体系结构
3.3. Spring5环境搭建
3.4. IOC源码解析
3.5. AOP源码解析
3.6. Spring MVC
3.7. Mybatis
4. 架构师基础
4.1. JVM性能调优
4.2. Java程序性能优化
4.3. Tomcat
4.4. 并发编程进阶
4.5. Mysql
4.6. 高性能Netty框架
4.7. Linux基础与进阶
5. 团队协作开发
5.1. Git
5.2. Maven
5.3. Jenkins
5.4. Sonar
6. B2C商城项目
6.1. 系统设计
6.2. 用户管理子系统
6.3. 商品管理子系统
6.4. 搜索子系统
6.5. 订单子系统
6.6. 支付系统
6.7. 分布式调度系统
6.8. 后台系统
如果你现在在JAVA这条路上挣扎,也想在IT行业拿高薪,可以参加我们免费的公开课试听学习 干货满满的,选择最适合自己的课程学习,技术大牛亲授,课程内容有:Java工程化、高性能及分布式、高性能、深入浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点。如果你想拿高薪的,想学习的,想就业前景好的,想跟别人竞争能取得优势的,想进阿里面试但担心面试不过的,你都可以来,q群号为:810589193