‘壹’ 如何成为一个优秀程序员
从初入职场菜鸟到职场大咖,很多程序员在努力充实自己,有时候我们需要对自己进行一次能力定位,了解自己的优势和没有掌握的技术。芯学苑列出几点作为初入职场的新手评估自己,明了前进学习的方向。
1、技术能力(解决问题的能力)
这是非常重要的事;过硬的技术能让你得到面试机会,并在工作中游刃有余。当公司招聘一个java开发人员时,是会优先考虑能力因素的。在实际的项目开发中,一个程序员的技术能力等于其解决问题的能力。
如果拿一个尺度来衡量这个能力的话,一个程序员的能力可以用能完成任务的数量和难度来衡量。一个程序员能基本无误的完成项目中的一个功能算是合格,但在此之前,他对项目的生产力为负,为他布置的任务,中间环节的沟通,修补bug的时间其实要多于自己直接完成该功能的时间的。能较好完成一个完整模块的程序员才算是较好的程序员,也是项目中的主要开发者。能独立完成整个项目才是优秀的程序员。
2、专业基础(知识的积累)
一个程序员的知识积累很大程度上决定了其解决问题的能力。知道如何编写代码是基本的技能,但是知道Java编程语言的原理,知道代码背后的算法将使你从人群中脱颖而出。
3、主流编程工具
今天,事实是,你不能成为一个样样都懂的人(杂而不精)。你必须选择你要掌握的工具。有时这是由工作的环境决定的,但是按照下面说的去做也是一个很好的选择:
构建工具:Maven或Gradle。
SCM:Git(不是GitHub。大不相同)。
构建自动化:Jenkins。
IDE:Netbeans或Eclipse——不仅用于编写代码,而且还从IDE中重构和调试代码。我遇到了很多没有如何从他们最喜欢的IDE调试的开发人员。
Bug跟踪:Bugzilla或Jira。
4、JSF的知识
应用程序服务器
所有Java开发人员应该知道如何在Apache Tomcat中部署。
当Glassfish开发停止时,下一个最好的事情是J Boss Wild Fly。
5、沟通的能力
沟通是我们做好一切事情的关键。我们必须与我们周围的环境保持互动,无论是在我们的私人还是职业生活中。一个良好的程序员知道如何在各种团体面表达自己。也许对你来说显而易见的东西在他人的角度来看并非如此。
从大的尺度(比如一个人的工作生涯)来看,一个程序员知识积累的多少只决定于其自学能力和他对编程本身的兴趣。
在一个分工明确的项目中,程序员需要理解产品,和领导沟通理解自己的任务,和同事们沟通以正确的方式进行合作。无论哪一个方面沟通出了问题都不是小事情,同时,程序员还需要正确的传达设计的实现难度,以及让别人正确的理解自己设计模块的接口。在不写文档时,正确的口头沟通非常重要,需要写文档时,良好的编辑能力也算做是沟通能力的一部分。
6、自学能力
这是一个非常重要的技能,在你自己的空闲时间学习新的技能。不要等待公司为你提供培训。你需要自己去学习新技术,提升自己在相关领域的水平。从Java后端开发到架构模式,总是有一些新事物值得学习。经常阅读博客和论坛,尝试加入本地聚会小组。你学到的东西可以帮助你的事业。知识刷新频率极快让人无法追赶的这个时代,难免会有超出自己知识范围的时候,此时你的自学能力决定了你能多快的完成任务。
7、良好的团队合作精神
无论是部分编程还是大型项目,所有开发人员都是作为团队的一部分在协同工作。你需要致力于团队的目的,或帮助新的团队成员克服障碍。不要存在这种“我只要做好我的本职工作,下班就直接回家”的态度。成为团队的一部分,帮助周围的同事,对自己的能力也是不小的提升。
就像拿破仑说的不想当元帅的士兵不是好士兵,追求参与一个大型软件系统的开发,是每个程序员的梦想。在此之前,应该学习更多的专业知识,达到优秀程序师的标准。最后希望各位程序员阅读本文后能够得到一些裨益,在这条路上走得更好。
‘贰’ 如何做一个优秀的程序员
如果你是一个热衷于技术的Java程序员,那么下面的10个要点可以让你在众多Java开发人员中脱颖而出。
1.拥有扎实的基础和深刻理解OO原则
对于Java程序员,深刻理解ObjectOrientedProgramming(面向对象编程)这一概念是必须的。没有OOPS的坚实基础,就领会不了像Java这些面向对象编程语言的美。光学习OO原则的定义用处不大,关键是要学会如何应用这些原则用一种OO的方式去设计解决方案。因此,我们应该对对象建模、继承、多态、设计模式有一个很好的认识。
2.掌握核心API
如果你不知道语言结构和核心API,那么即使你在理论知识上再怎么彪悍也是独木难成林。在Java中,我们最好能对核心API,如java.lang.*、I/O、异常、集合、泛型、线程、JDBC等有很强的实战经验。要是涉及到Web应用的开发,无论你使用的是对Servlet有多大关系的框架,JSP都是必须的。
3.不断编码
陆游曾说过,“纸上得来终觉浅,绝知此事要躬行”。从理论上想出一个解决方案很简单,但是真到了实施的时候,才会意识到问题有多难。此时,你才会明白编码过程中存在的语言限制,从而设计出最好的实践方案。因此,请勿中断编码。
4.订阅社区论坛
我们并非踽踽独行者。很多人都和我们一样在研究着相同的技术。只是对某个框架概念做验证是不难的,但是当你将这些概念应用到实际的项目中时,那么各种各样的问题,各种在官方文档上找不到解决方法的难题就会接踵而来。学习新技术首先要做的是订阅相关的技术社区论坛。无论你遇到的是什么问题,总会有人比你先碰到过,而且搞不好已经找到了解决方法。Ps,还可以解答别人提出来的问题,而且这感觉不要太爽哦。
5.追博客并附上自己的评论
正如我前一点所说的,我们并不孤单。成千上万来自世界各地的技术爱好者将他们的技术见解发表在博客上。在博客上我们可以找到很多相同技术的不同观点。有人会觉得这是一个强大的技术功能,而有的人可能会觉得这是一个愚蠢的框架,仁者见仁智者见智。所以对于同一种技术你会在博客中听到两种不同的声音。看到好的博客可以写点自己的看法回复在评论上。
6.阅读开源框架的源代码
好的开发人员总是知道如何使用框架。但是如果你想成为一个优秀的开发人员,那么你需要研究各种成功和流行的框架源代码,去了解它的内部工作机制和最佳实践形式。这是一种高效的使用框架的方法。
7.了解相关技术的发展趋势
在开源环境中,软件开发技术总是在不断发展变化。现在所谓的新框架,可能到时候会过时。当前框架上解决不了的问题,可能在新框架上就不再是问题。所以要时刻注意着新事物的诞生和旧事物的消亡。
8.手头准备好常用的代码片段/实用程序
有时候我们可能需要一遍又一遍地复制粘贴/编写相同的代码片段/配置。所以,保存一些配置片段如log4.properties、jdbc配置,以及实用程序如StringUtils、ReflectionUtils、DBUtils大有好处。这些东西本身可能并不能让你与众不同,但是你想想看,要是你的合作开发人员希望你帮他从对象集合中获取属性值的列表,而你只需要用ReflectionUtil就可以在几分钟内解决,是不是一下子脱颖而出了呢。
9.了解不同的开发方法
熟悉不同的开发方法,例如Agile、SCRUM、XP、Waterfall等等。现在,选择哪种开发方法是由客户说了算的。有的客户偏好Agile,而有的则更喜欢Waterfall模型。所以对各种方法都能有所涉猎绝对让人刮目相看。
10.将自己对技术的看法记录到文档/博客上
在我们每天的工作中,我们或许会学到新的东西,新的做事方法、实践形式和架构理念。可以将这些想法记录到文档或者博客中,分享给大家。因为你现在解决问题的方法可能正是世界上另一个角落另一个开发人员“寻寻觅觅上下求索”的难题,你的分享将完全不亚于一场久旱的甘霖。
‘叁’ 做一名优秀的程序员需要什么条件
(1).要喜欢上写程序,如果没有喜欢上,那就要学会去培养。程序员需要整天趴在电脑前,经常没日没夜的,非常辛苦,而且工作来不得半点虚假,少写一个标点符号都不行。喜欢的人,日子过得非常开心,每写一行代码,都会有新的成就,尤其当自己的作品被广泛应用的时候,那种自豪感油然而起。不喜欢的人,坐在电脑前极端无聊,被进度压得喘不过气来,天天为找bug改bug生气。个人深有体会!这个“喜欢”就要大家在学习的过程中去体会。
(1).程序员应该是有感情的,程序员的程序最终是由用户来评价的,而不是老师,或者我们的BOSS。设计程序时,要讲究贴心,境界:我们也是Composer!
(2).程序员应该讲究团队协作,分配给团队的大项目,不是一人之力能够应付的,请尊重别人的代码,以及设计,彼此需要全心全力配合
(3).有坚韧不拔的精神,我们编的不是程,是寂寞。爱上程序设计,靠编程潜移默化性格,大多数成功的程序员都是相信自己的人,所以,多多鼓励自己一定是最好的。
一、优秀程序员的标准
1. 能够准确地评估你的工作。
2. 第一时间提交有质量的工作成果。
3. 建立快速的反馈循环。
4. 确保代码的准确性与后续跟进的协调性。
二、态度生活方面
1.踏实的工作态度;认真负责,少犯错误。
2.充满热情,努力工作;有团队合作精神,能善于和别人相处。
3.有预见性,预先感测未知因素预估风险或后果。
‘肆’ 怎样能成为顶级的程序员
我是程序员。实习过两家公司,说说我的观察。
第一家公司有个技术总监,每次跟他聊天总是只感觉我差一点儿就能超过他的那个样子,人很和蔼,总是会说‘我也要学一下’,然而恐怖之处在于无论和他聊什么他都有那种‘哦,这个我了解过一些,我们可以交流一下,共同学习’。无论什么。
他很会照顾我,由于我不是科班出身的,他和我交流尽量不用术语,比如依赖倒置,他和我讲的时候告诉我原理以及如何实现,并不会特意提这个名词。
我和他聊过一些东西,从应用层到ASCII码,从前端到GC,无所不知。而且他总是特别谦虚。
最后我走的时候说实话是很不舍得的。他拉着我说了很多,告诉我以后应该怎么做,要多了解整个项目架构,不能只是做自己的工作。要学会帮助其他同事,解决他们的问题。要稳住自己。
我离开之后才发现,那家公司是多么好。
第二家公司是个大公司。
我的lead,七零后。他周末在家还在学习,晚上会补作业到12点。我见过他写lazyload,也见过他给iOS讲性能优化。当然,还有非常高超的领导力。
他们写的代码并没有上面说的特别优雅,我见过的,而且要说代码的好看程度,比我写得规范漂亮的应该也不多。他们有一个共同特点是很繁琐,非常的繁琐。我一度很不喜欢这种代码,觉得很丑,而且很复杂。我问过以后终于发现和他们的差距,那叫做代码的健壮性。
之后我再看他们写的代码,无论什么情况都能扛得住,并能给出正确的错误处理。而我的代码,简短,有力,漂亮,满是奇技淫巧,然而就是不耐操。
我的经历所认识到的优秀程序员就是这样:博学,谦虚,积极向上,良师益友,还有代码十分健壮。
‘伍’ 怎么样才能成为一个优秀的程序员
程序员离不开产品的开发,开发产品经常需要和产品经理沟通、和客户沟通了解客户的需求,了解用户的体验,了解产品的细节。在沟通中能戒骄戒躁,耐心聆听合理提出自己的建议,有些程序员往往喜欢把产品经理或者客户当成自己同等专业水平的群体来沟通,那是万万不行的。
‘陆’ 如何成为一个牛逼的程序员
如果要想成为一个厉害的程序员,涉及到的方面比较多。
首先要了解计算机的组成原理、结构体系,还要熟练掌握多种编程语言,以及常见的算法。
还需要熟悉各种软件知识:网络、图形图像、数据结构、编译原理等
同时熟悉相关的专业知识,这个得看所在行业了。如在电力行业的软件需要对电力调度、保护设备等了如指掌。
这些,需要投入大量的时间进行学习。需要毅力才可以实现,不是说说就行的。
‘柒’ 怎么才能成为一个优秀的程序员
1、迷恋技术,保持对代码的热情
兴趣是最好的老师,如果不是最初对编程充满兴趣,应该很少有人会选择程序员这个行业,但同时程序员是一个有点乏味枯燥的工作。如果你不迷恋技术,对代码充满热情,那你只能做一个平淡的程序员。
2、在实践中成长,磨砺技术
程序员是一个在实践中成长的职业。你看再多书,听再多的视频课,自以为学到很多东西,但正在接触项目的时候,就两手发软,头脑空白了。最好的提方法,是正在参与到项目中去,最好是能参与从设计到开发到测试到维护一整套的整套流程。
3、加班虽苦但也是提高的过程
虎虎在之前的文章中说过:毕业之后的前三年最为重要,要认认真真钻研技术,积累经验,至少能在某一方面成为技术达人。程序员加班是很正常的事情,要加班工作,加班学习,同时在这段时间要注意多总结,注意工作方法,合理安排时间,提高工作效率。你现在的付出是为了以后的成功!
4、不怕失败,学会寻找成就感
新程序员由于技术水平、经验的欠缺,写出的程序bug多,执行效率低,可能被同事嘲笑(我发现这还是普遍现象),然后被上司责怪,内心充满有挫折感。要学会自我减压,相信挫折与失败只是暂时的,发奋图强。在工作中要学会寻找成就感,哪怕你只是完成一个小功能,优化了一段代码,都是你辛勤付出的结果,是你能力提高的体现。
5、要学会写文档
不要以为程序员只要负责写代码,如果是那样,你永远不能有上升的空间了。因为不管是走技术路线,还是管理路线,都离不开文档,方案文档,技术文档,产品介绍文档,管理文档等等,是你了解开发流程,产品运营的必由之路。
6、学会复制粘贴
现在的开发资料已经非常的充实,遇到难以解决的问题不要过分纠结,为难自己,请打开搜索引擎搜索一下。毕竟,你做的是工作,不是在学校做研究。
7、细节决定成败
不少程序员都有这样的习惯,好不容易思考出解决问题的方法,迫不及待的把代码写出来,功能也实现了,立马提交代码完事。殊不知你的代码中还有不少细节需要完善,大到内存泄露、资源释放、代码是否高效,小到注释是否规范,都是你必须关注的问题。且不谈这些细节问题对你做出来的项目的影响,就是对你编程习惯的影响也是深远的。