`
cyj1988jyc
  • 浏览: 20050 次
  • 性别: Icon_minigender_1
  • 来自: 荆州
最近访客 更多访客>>
社区版块
存档分类
最新评论

我们到底该怎么学技术?如何成为一个优秀的技术人员?

阅读更多
看了不要迷失在技术的海洋中,深表同意。在后来的评论中大家也表达了自己的看法。让我觉得很有意思的是,大家的观点惊人地一致——几乎没有反对的声音。

不过从经验上来看,意见太统一也不一定是一件好事。我有时也会小人之心地想,表示赞同的朋友们是真与LoveCherry的想法一致,还是仅仅因为自己以前对待技术随波逐流不堪所累,现在把这篇文章作为救命稻草看待,追求自身的心理平衡呢?LoveCherry写这篇文章,是基于他对于技术和思想的深度。如果我们没有达到这样的程度,是否会误解他的意思,得到的仅仅是一种心理安慰,却失去了更多东西呢?

我们到底该如何学习技术?或者说,如何成为一个优秀的技术人员?

扎实的基础
如果要成为一个优秀的技术人员——我并没有说是“开发人员”,比如也包括“测试人员”吧——一定需要扎实的基础。什么叫做扎实的基础呢?其实就是我们大学所学的课程——离散数学、算法与数据结构、操作系统、计算机体系结构、网络、编译原理等等。现在它们经常被视为“没有用”,但是我认为这些都是一个优秀技术人员成长和前进的基础。不知道大家有没有过这样的感觉:某天早上一醒来,发现对于最近接触的事物有了新一层的认识,似乎什么都不会了,却好像什么都理解了——就像张无忌练太极剑,不求剑招,只求剑意。我曾经有过两次这样的感觉,真可谓豁然开朗。其实我想,这就是所谓的“突破瓶颈”。而引起“量变到质变”的关键,可能就是您忽视的那些课程,那些一进大学就被“灌输”的知识。

在面试时我经常听到这样的话:“我的理论和基础不行,但是我让我写代码是没有问题的。”这样看来,基础真的没有用吗?我并不这样认为,因为……

如果您不了算法和数据结构,又如何从.NET Framework(甚至包括Power Collections,在这里我强烈推荐这个组件)琳琅满目的数据结构中做出最适合目前需求的选择呢?
如果您不了解操作系统,又如何能深入Windows系统,写好.NET Framework程序,或者在postmortem环境中做调试呢?
如果您不了解计算机体系结构,又如何能在Multi-CPU(Multi-Core)时代写出真正高效的应用程序呢?
如果……
因为我们不光要写代码,而且要写好的代码,因此我们必须强调基础。很多时候技术人员之间能力的高低,很可能就会取决于这写基础。有朋友告诉我,这些计算机科学的基础的意义不仅仅在于知识本身,它们还能够让人的思维更符合计算机科学的发展和变革——这可能说的有点远大,但是我基本上同意这个看法。如果说得简单一些,它们让您的思维方式更适合这个行业——试想,如果您知道了计算机/程序/框架/系统是怎么想的,他们还能够为难你吗?

举一个例子,微软有着大量高素质的技术人员,他们是微软惊人生产力的源泉。因此微软能够在Vista和Office开发完成之后将大量牛人派去作Windows Live产品研发。在我们很多技术人员看来,Vista是操作系统,Windows Live是Web,两者大相径庭。但是微软就是能够有大量的技术人员作此类迁移。再举一个例子,当年Google挖角Microsoft许多技术人员,难道他们跳槽去Google继续作微软产品的研发吗?正是因为那些技术人员有着扎实的基础能力,因此就能够在各种类型的技术之间游刃有余,即使它们“表面”上看来差距有多大。

表面?这两个字放在这里是什么意思?因为这就是我想说的就是……

技术之间的关系
其实《不》一文的中心思想,就是不要随波逐流,不要迷失在技术的汪洋之中。我很同意,但是我也想补充一点我的看法。

在《不》文的评论中,我看到了一段话,其主要意思就是:“如果一个技术不会用到,就不要去学它。当要用的时候再去学”。首先表明我的观点:我不同意。这里我想举一个例子:

我是今年1月份加入目前的公司的,公司的技术团队当时使用.NET Framework 1.1进行应用开发。是时由于业务的原因需要开发一个平台以及其他一些应用,我在时在技术部门内部强烈建议将新系统使用.NET Framework 2.0 + 3.0的方式进行构建。我的理由是:“使用.NET Framework 2.0构建新平台在基础设施上不会增加任何成本,但是在功能和性能上都会有提高。而.NET Framework 3.0,尤其是WCF,是微软提供的新组件,也即将成为微软平台上通信的标准。”领导同意了我的建议,并希望我带领新的团队进行新平台的开发。过程中的细节就不一一道来了,现在回头看来过程虽有波折,但是倒也收到了较好的效果。我们经常会发现有技术人员会抱怨技术发展地太快,但是就拿我之前的例子来说,在2007年还在使用2001年出现的东西,却忽视2004年就已经成熟的技术,这究竟是技术发展的太快,还是我们没有根本没有去跟进技术呢?

我想答案很明显是后者,这其实就是“如果一个技术不会用到,就不要去学它。当要用的时候再去学”。我们不会(或者很难)因为不断钻研老技术而领会新技术,掌握新技术是需要我们主动去追求的。如果一个人不追求,他就难以发展。如果人人不追求,那么整个技术团队就难以发展。不过我认为,其实只要怀着“把项目做的更好”的想法,追求新的技术和实践(例如重构、TDD)是自然而然的事情。

不论您是普通开发人员、技术经理抑或是架构师,我想您都不能止步不前。有人说,领导不愿意使用新技术,我们没有办法——那么设法说服他们。如果他们不能给出让您满意的理由,如果您觉得他们妨碍了您的发展,那么可以选择离开。我想有追求的您一定不会在找工作的问题上遇到太多麻烦。:)

似乎话题有些偏了,我们回到正体。新技术那么多,我们到底该怎么学呢?我这里想说的就是,新技术并非洪水猛兽。在一定程度上,我们完全可以驾驭它们。

我们来想一下,新技术是怎么来的?新技术并不是某些公司的牛人们拍脑袋出来的,新技术也是发展过来的。发展需要时间,发展是一个过程。例如C# 3.0由2.0发展而来,CLR 2由CLR 1发展而来。根据我的经验,如果一个技术人员能够较好地掌握.NET Framework 1.1,他几乎能够轻而易举地过渡到.NET Framework 2.0。他之需要了解一下新特性,找一些资料比较一下前后两者的改变即可。我们并没有创造技术,我们只是在跟进。为什么总有人能够在技术出现不久就写出大量文章或书籍来进行推广呢?这就是值得我们思考的地方。

举个例子,如果要从.NET 2.0升级到3.5(我不懂VB,用VB的朋友抱歉了),其实您只需要了解……

ListView控件:一个控件而已。
集成了ASP.NET AJAX:不是新东西了。
Linq To XML:一套新的语法用于解析和构建XML。
Linq To Object:枚举,只是枚举。
Linq To Sql:可以视作简单的一套ORM,动态生成SQL语句。
Lambda Expression:即使没有接触过LISP(很幸运,我大学课程中有Functional Programming这门课:)),我想如果您了解编译原理的话,对此也应该不陌生了。
……
真的不多。其实我觉得,跟进每个人各自领域的技术并非不可能的事情。我一再提到这么一句话:一个优秀的技术人员,他的知识架构应该成倒T字形,有着扎实的底盘,并且成为某个领域的专家。

我们究竟该如何学习基础呢?
扎实。我认为,这是关键。

您有扎实的基础吗?这是成为优秀技术人员知识储备。
您对于每项掌握的知识或技能都学的扎实吗?这是您前进过程中的助手。
您有扎实的学习目标和计划吗?这是您在技术汪洋中的指南针。
我的文章写完了。

我很理想,我也在努力。:)
分享到:
评论

相关推荐

    如何成为一个优秀的软件实施人员PPT教案.pptx

    成为一名优秀的软件实施人员,需要有长期的学习和实践过程。通过在不同阶段积累经验,不断提升技术能力和服务意识,同时培养项目管理、人际沟通和创新思维,才能在职业生涯中不断进步,最终可能成长为项目经理或解决...

    如何成为优秀的软件开发人员

    总结,成为一名优秀的软件开发人员不仅需要扎实的技术基础,还要有持续学习的决心,良好的沟通和管理能力,以及对个人魅力的培养。面对不断变化的行业环境,持续的职业发展和自我提升是保持竞争力的关键。在追求卓越...

    Python核心技术与实战 02-JupyterNotebook为什么是现代Python的必学技术?.pdf

    ### Python核心技术与实战 02-JupyterNotebook为什么是现代Python的必学技术? #### Jupyter Notebook:现代Python学习与工作的必备工具 随着Python成为近年来最受欢迎的编程语言之一,其在数据分析、机器学习领域...

    专业技术人员创新能力培养提高.pptx

    创新能力是专业技术人员在面对不断变化的科技和社会环境时,能够提出新思想、新技术、新方法并将其转化为实际成果的能力。它涵盖了从创新构思的产生到将其商业化运作的整个过程。在当今全球化和技术快速发展的时代,...

    精品资料(2021-2022年收藏)内蒙专技继续教育学习计划专业技术人员工匠精神读本考试答案97分.docx

    职业道德要求专业技术人员具备高度的责任感,以用户至上为原则,注重产品的每一个细节,力求打造精品。同时,个人修养也体现在情绪管理上,例如通过自我暗示法、语言节制法等方法来控制和调节情绪,保持良好的心态...

    我学的技术不流行了怎么办?

    如何应对所学技术不再流行的问题,成为了许多技术人员需要思考的问题。 #### 1. 技术的本质与共通性 首先,我们需要理解技术的本质和共通性。尽管不同的编程语言和技术框架有着各自的特点,但它们解决的问题本质上...

    【思考】你是一个合格的技术人员么?

    根据描述,一个合格的技术人员需要掌握西门子PLC的多种编程语言,比如FBD(功能块图)、LAD(梯形图)、STL(指令列表)和SCL(结构化控制语言)。这些技能要求技术人员对数字电子技术、电气设计、微机原理、汇编...

    谈技术人员发展方向及嵌入式学习

    技术人员的发展方向多样,可以从技术专家、销售、技术管理或技术支持等多个角度进行选择。本文主要讨论的是继续深化技术领域,特别是嵌入式领域的学习和发展。 在技术领域,做技术工作具有稳定性,但想要获得高收入...

    一位技术管理人员的20年工作经历和感悟

    本文是一位技术管理人员分享的20年工作经验和感悟,主要讲述了他在技术启蒙阶段所接受的严谨教育和实践经验,特别是在无线电设备结构设计领域的学习过程。这位管理人员在70年代进入宿迁无线电厂,得益于一批因政治...

    如何成为一个优秀的程序员

    如何成为一个优秀的程序员:深入解析与实践指南 在IT行业,成为一名优秀的程序员是众多技术追求者梦寐以求的目标。在《如何成为一个优秀的程序员》一文中,作者罗伯特·L·里德(Robert L. Read)列出了多达一百条...

    技术人员如何快速具备产品能力体系?.pptx

    技术人员在产品开发中不仅要考虑技术实现,更要寻找合适的技术应用场景,使技术成为产品竞争优势的一部分。 为了快速具备产品能力体系,车马建议采取以下方法: 1. 阅读专业书籍,如《首席产品官1——从新手到行家...

    面对疫情,工程技术人员需要做些什么?.docx

    对于工程技术人员而言,这也是一个反思自身职业道路和发展方向的好时机。 2. **适应变化的能力**:疫情教会了我们如何在不确定的环境中生存和发展。未来无论遇到什么挑战,这种适应变化的能力都将是一笔宝贵的财富...

    广东省(hrssgz ca163)专业技术人员继续教育挂机软件辅助作业版

    总的来说,《广东省专业技术人员继续教育挂机软件辅助作业版》是一个旨在提高学习效率、简化在线学习流程的实用工具。它将繁琐的在线学习过程自动化,让用户可以在忙碌的工作生活中更高效地完成继续教育任务。然而,...

    T7广东省专业技术人员继续教育网辅助 v1.2.zip

    T7广东省专业技术人员继续教育网辅助,本软件为共享软件,免费试用3小时,试用期间可以自动处理各种弹出框、回答问题、自动跳转到下一课程和自动做一个课程作业等。 T7广东省专业技术人员继续教育网辅助功能说明: ...

    如何成为一个技术牛人

    ### 如何成为一个技术牛人 在当今社会,随着信息技术的快速发展,成为一名技术牛人成为了许多IT行业从业者乃至刚毕业大学生的梦想。本文将基于标题“如何成为一个技术牛人”及其描述内容,详细介绍成为一名技术牛人...

    如何做一名合格的技术人员.doc

    总之,成为一名合格的技术人员,不仅要求扎实的专业知识和实践经验,更需要有积极的态度、优秀的团队合作精神和持续的学习动力。通过提升个人素质、强化技术管理、关心员工需求,才能在复杂的煤矿行业中胜任职务,...

    PHP技术从入门到精通八段锦扫描版

    PHP技术从入门到精通八段锦扫描版 PHP 技术作为一种重要的信息技术,发展非常迅猛,社会对PHP 技术人才的需求量是巨大的。如何能够 快速有效地学习PHP 技术?这个问题一直让PHP 从业...能够缩短成为技术高手的过程。

    总结的经验给技术人员的忠告

    在技术和职业发展的道路上,一些关键点常常被忽视,而这些往往是决定一个人能否成功的关键因素。以下是对技术人员的一些重要忠告: 首先,扎实的基础至关重要。在技术领域,基础就像大厦的地基,没有稳固的基础,...

    汽车维修技术人员的必备知识PPT教案学习.pptx

    首先,它可以提升技术人员的知识素质和哲学素养,为成为顶尖人才奠定基础。其次,哲学有助于培养良好的职业道德,指导技术人员如何做人,形成正确的方法论。再者,技术哲学提供了反思技术活动和方法的框架,使技术...

Global site tag (gtag.js) - Google Analytics