`

给技术人员的忠告

阅读更多
给技术人员的忠告


10年内,我面试过的技术人员,至少在1000人之上。因此,根据我的面试体会,想给技术人员提一些忠告。

首先,面试被刷下来的人员,最多的,是因为基础功差,基本概念、基本原理不清楚。我在面试中考的基础题目,大部分都是大学学校里教的课程,比如数据结构、基本算法、语言基础,没有多少人清楚的。很多人在大学里面基本上就是玩,这些基本知识根本就没学会,并且很多人非常固执的认为,这些知识都过时了,做项目也根本用不到。很多工作5、6年,甚至7、8年的技术人员,连C语言中memcpy和memmove之间的区别都搞不清楚,甚至有人根本就没听说还有memmove 这个函数,真让人苦笑不得。至于HashMap,集合、链表就更是一塌糊涂。因此,我给的第一个忠告:务必把基础知识、基本概念都弄明白,要一清二楚,这是做任何项目、任何产品的基础,在项目和产品开发中都会大量应用。如果你不懂这些基础知识,就能在你的团队中进行开发,那只能说,你们团队开发的东西太烂了。

其次,面向对象的概念和思想,务必要深入理解,加强实践。其实面向对象只有三个基本概念,对象之间也只有四种关系,因此学起来不难,真正难的是,深入理解,透析其中的真正内涵,在软件开发实战中活学活用。面向对象这么点概念,统领软件开发这么多年,至今还是主导地位,其它的方法,只能是作为他的补充而已。因此,我们有什么理由不把面向对象好好学学呢?很多Java程序员认为,Java是面向对象的语言,我只要用Java来开发程序,我就掌握了面向对象了。这是极其幼稚的想法,你离面向对象还十万八千里呢!

第三点,目前公司里你所从事的项目开发或者产品开发,只不过是给你一个机会,让你能接触到相关的技术点,但它不是你应该掌握的全部。举个例子来说:你加入XX开发团队后,发现这个项目组采用了Spring框架来配置后台的数据库连接池。你以前从来没有接触过Spring,通过这个项目,你就学会了怎么用Spring配置数据库连接池。很多人也就是这个状态,项目上用到1个技术点,自己就学到1个技术点,不会通过这个机会,学到更多的技术点。因此,下个项目如果用Spring配置别的东西,他就不会了。正确的思路是:项目和项目在业务上差别可能很大,但技术上通常差别很小。一个项目给了你接触到相关技术的机会,你应该抓住这个机会,把相关的技术领域都学会。因此,在这个例子中,你应该深入学习Spring,看看它的原理是怎么回事,他还有哪些强大的功能,有些可以引入到你现在的项目中,解决项目组中别人没有解决的问题,还有些这个项目还用不到,你也应该涉猎学习。

第四点,什么时间学习? 很多人多说,现在项目时间太紧,等这个项目做完后,没这么紧张,时间比较轻松的时候再学吧。结果这个项目做完后,下一个项目接着就来了,于是一直也没时间学习,自己的技术水平也一直在原地踏步。请大家放弃这种想法。软件开发职业生涯,一直就要在这种时间紧、任务重的环境下度过,这就是我们的生存环境。因此,我们必须在这种环境下学会学习和提高。就在每个项目过程中,围绕与本项目相关的技术,展开学习,多思考,多查阅资料,在项目中学以致用,不断实践和总结,这样才能做完一个项目后,自己就能在技术水平上提升一大块。

第五点,先求精,后求广。人的精力是有限的,不可能自己每个方面都懂,都是专家。在大型软件开发过程中,什么都懂、什么都不精的人,是没有任何价值的。因此,技术人员应该先静下心来,将一个技术领域内的知识深入理解,融会贯通,达到精纯的地步,然后才可以去学另一个技术。先使自己成为专家,对软件技术形成深刻的理解,到达相应层次后,再向广度发展。

第六点,学会沟通。大多数的技术人员,要么是内心,不爱与人沟通,要么是过于自信,不屑与人沟通,听不进别人的不同意见。这些都是导致自己水平无法提高的重要原因之一。从智力上讲,大家的智商都差不多,因此不可能你比别人聪明多少,别人也不会比你笨多少。因此,积极和别人沟通,交换想法和思路,学会倾听他人意见和建议,可以开阔自己的思路,丰富自己的知识,在很多时候可以让自己少走很多弯路。

第七点,一定要有老师带你,尤其是突破你的现有层次。有比你水平高、经验更丰富的老师带你,可以让你迅速掌握很多软件实践的精髓,迅速提升你的能力。所谓名师出高徒,就是这个道理。很多人就靠自学,自己看书,或者从网上找资料,然后项目中实践应用,自己做设计、做架构、做需求,然后认为自己很行。这是非常危险的,我接触过很多这类的人,非常高傲,盲目自信,对自己有过高的评价和期望。这个做法的最致命问题在于,你自己理解的,很可能是片面的、甚至完全错误的,另外也没有人会指出你的错误,告诉你真正正确的答案是什么。尤其是从程序员到软件设计师的过程,层次的提升,必须有比你高至少一个数量级的高人来指点你,这样才有可能。


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics