java程序员面试的问题

java程序员面试的问题,第1张

程序员的五部曲:

第一、理解问题

解决问题的首要前提是客观准确地理解问题,这样我们才能抓住问题的本质,对症下药。

客观

为什么强调客观呢?在生活中,这样的情境很常见。

我们可以很客观地去评价他人,甚至是给他人给出合理的意见,但是同样的一件事情,放到我们自己身上,我们可能就会觉得束手无策。

通常情况下,我们对于自己的评价是带走自我保护心理的。

自己遇到问题,我们会下意识地弱化问题,或者情绪化地来理解问题,造成问题的失真。

魔镜的故事就是一个最典型的例子。

准确

当我们对自身的问题评价做不到客观的时候,我们往往也不会准确理解问题。

还有,准确的定义是找到问题的关键所在。这个怎么做呢?

我们仿照时间管理的方式。

首先对自己所要解决问题的过程做一个较为详细的记录。

坚持记录几天之后,我们需要将所有的记录结果进行汇总,分析,找出漏洞最大的地方。

那么这个洞也就是所谓的关键,我们也就可以找到解决问题的突破口。

举个例子,笔者前段时间开始用手机软件记录自己的时间花销,记录几天之后,就会发现,自己时间浪费最为严重的是娱乐。

知道了时间浪费的黑洞,那么接下来就该思考时间黑洞产生的原因了。

时间浪费的主要原因是两个

第一,目标流失

当我在网上查资料,或者用手机写作的时候,总会进入其他的浏览页面,等到自己发觉的时候,时间已经过去大半。

这个我称之为目标流失。也就是我们在网页浏览的时候已经忘记了自己最初的目的,比如说你本来想找一本书籍的txt版本,但是后来你发现自己浏览了一下午的娱乐新闻。

第二,多任务处理

这个问题我是经常遇到。比如说,我在进行日更的时候,有新同学发微信,说查一下宿舍的分配情况。

我当时的反应是火急火燎地去其刷微信,信息查询完毕之后,和分配在同一宿舍的同学聊了一下午。

最要命的是,等到你刷完屏的时候,你有很大可能会忘掉你在更这件事。

或者说你还记得,但你的精力已经消耗的差不多了,你会告诉自己,等会再更,然后你有很大的概率会断更。

找到时间黑洞形成的原因,那么就可以寻求解决措施了。

第二、计划

为自己的病症设置一个完整的疗程,根据问题出现的原因,制定每一步要采取的手段。

第三、拆解

这一步是和计划联系在一起的,只不过它的要求更加细化。

它需要我们将计划的每一步都拆解成可以执行的步骤,感兴趣的读者可以参考笔者的另外一篇文章《如何让遥不可及的梦想变得触手可及?》

第四、卡壳

可以说,我们每个人都有改变的想法,也确实有很多人尝试去做了,为什么还有那么多的放弃者。

因为在执行计划的时候,出现的变数让我们卡壳了。卡壳再正常不活了,那为什么会放弃?

答案是自我负罪感。

当我们卡壳的时候,我们大多数人会产生一种负罪感,就是觉得自己定计划的时候,详尽完备,而且自己已经坚持了这么长时间,会陷入一种自我怀疑,也就是负罪感。

解决的办法是立即采取行动,而不是描述问题本身,这也是我们解决所有问题的一个心态。

我们不要紧盯着问题本身,你理解问题的过程就是在采取行动,相反,你逢人就说,我遇到什么问题,我有多痛苦,没有任何意义。

第五、练习

其实这个步骤是对前面几步的一个综合。

这五部曲是一个闭环,是需要反复进行的,因为问题会不断出现。

回头看过去的生活,我们的历程何尝不是这样?不断遇到新问题,不断解决问题,然后获得新的体验。

想看更多文章

欢迎关注大鱼号小妖影视

从初入职场菜鸟到职场大咖,很多程序员在努力充实自己,有时候我们需要对自己进行一次能力定位,了解自己的优势和没有掌握的技术。芯学苑列出几点作为初入职场的新手评估自己,明了前进学习的方向。

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程序员面试的问题全部的内容,包括:java程序员面试的问题、求程序员面试题、程序员是怎样解决问题的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9774579.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存