身边的朋友,一半以上都是程序员, 吃饭聊天的时候,总是离不开技术和项目,还有就是经常听到这样一个倾述:xx项目,学不到什么东西……
另一个类似的,稍微具体点的问题:什么都是封装好的, 就是ctrl +c 和 ctrl +v, 学不到啥东西,没啥意思……
有时候我就在想, 在项目中, 我们到底希望学到什么东西?一项新的技术? 一个新的架构?
如果只是想对某一项技术钻研得透彻一些, 我认为,在项目中恐怕帮不到你。特别是眼下中国众多的软件外包公司。
为什么这样说呢?
公司承接项目,利润自然是重中之重,没有什么比利润更重要的东西吧? 赚不来钱,谁给咱发工资?但是这利润,自然是跟成本直接挂钩的, 以最短的时间,完成并交付产品,才是盈利的基本保障。
一个专业的软件公司, 除了有自己的核心技术外, 还会有自己的框架,可重用的组件,甚至开发平台, 只有这样, 才能以最短的时间,完成并交付产品, 并且能保证产品的质量。才能在激烈竞争下存活。哪一个项目经理, 在项目选型的时候, 绝不会贸然去尝试新的技术。 一个公司,引进新的技术之前,必然会通过反复求证,评审才能拍板。
做为项目经理,在项目技术选型完毕后,对任何新技术,我是非常不感冒的,我也不愿意看到我的程序员,因为项目选定的某个第三方软件的一个小bug,而埋头去钻研另一个并没有采用的第三方技术,然后跳出来对我说:我们为什么不采用xxx呢?xxx能很好地解决我们现在的问题……(其实,谁会保证这个xxx不会引出新的问题?,天哪,保佑我不要碰到这样的通同事)
那么,这样一说,是不是意味着,在这样的项目,这样的公司,就学不到东西呢?
曾经有一段时间, 我有幸担任公司的面试官, 负责技术面试。 发现有一个普遍的现象,就是,越有来头的面试者(意思是他供职的公司名声大),掌握的知识面就越窄。每每遇到这样的情况,我就放下已经准备好的面试题, 直接就与之随便聊了起来, 也听到过很多抱怨, 无非就是自己所供职的公司,项目开发基本是基于内部平台或框架, 组件,业务流都是封装的, 能学习到的东西, 少之又少……
这是一个很普遍的想象, 我发誓我说的都是真实的。
谈到封装, jsp标签也是封装的, 难不成我们个个都是直接去写servlet不成? 我们的程序员,老是觉得,要自己机械地去使用封装好的组件,便是对自己的浪费,于是便有了情绪,于是便开始抱怨。
其实, 为何不换个角度去想一想呢?假设开发组件的人是你, 因为你的一个组件,就可以少编写成千上万行的代码,这样的感觉是不是很爽呢?
在开源的世界里, 你今天调用到的组件, 对你来说,都是公开的东西, 你有没有想过去弄清楚它的实现, 为你日后成为另一个组件的开发者积累经验呢?
对一些能带来巨大效益的东西,首先我们要怀着谦悲的心,尊敬它,欣赏它,你才能在它身上得到你想要的东西, 而不是一接触它就排斥它,鄙视它……这样一来,事情总是不能朝着好的方向去发展。
唉,老了老了,开始罗嗦了
分享到:
相关推荐
我们将在该项目中探索具备何种特征的人在此次海滩中幸存的几率更高,并通过改建机器学习模型和深度学习模型来预测乘客的生存率。Titanic项目的描述如下所示: 泰坦尼克号的沉没是历史上最声明远扬的航海事件 1912年...
如果实习单位对我们给予了积极的评价,这证明我们在实际工作中的表现优于学业成绩,也显示出我们的适应能力和快速学习能力。可以具体举例,比如成功完成的项目、提出的创新建议或是得到的表扬。 此外,可以提及个人...
学习Linux操作系统的概念和安装方法,理解Linux下的基本命令、管理配置和编辑器,包括VI编辑器,GCC编译器,GDB调试器和 Make 项目管理工具等知识。 第二阶段 精通linux下C语言 通过大量编程实例重点学习C语言的...
《C# 6.0学习笔记:从第一行C#代码到第一个项目设计》是由周家安编著的一本深入浅出的C#编程教程。这本书主要针对C#初学者和有一定基础的开发者,旨在帮助读者全面理解C# 6.0版本的新特性和编程技巧,并通过实际项目...
在本文中,我们将深入探讨《ConnectedQ-Multi-agent-Reinforcement-Learning》这一主题,它主要涉及M?n q学习和强化学习的概念。这个项目旨在解决一个特定的问题:如何在二维平面上为多个机器人规划路径,使得它们...
1. PyTorch:PyTorch是Facebook开源的深度学习框架,以其动态计算图和易于使用的API受到开发者喜爱。它在科研领域特别受欢迎,因为其灵活的特性便于快速原型设计。 2. Keras:Keras是一个高级神经网络API,可以运行...
信息系统项目管理师(Certified Information Systems Project Manager, CISP)是计算机行业中的一项高级认证,对于在IT行业工作的人来说,这个证书具有很高的价值。备考信息系统项目管理师需要充分的准备,以下是...
在这篇文章中,我们将探讨加入开源社区的利与弊,并提供一些实用的方法,以帮助有志于加入这一领域的技术爱好者。 **参与开源项目的好处** 开源项目为参与者提供了多方面的好处。首先,许多开源项目会为贡献者提供...
因此,我们需要好好地准备自己的项目经验,才能在面试中取得良好的效果。 首先,我们需要了解面试官的想法。他们并不是神,也不是什么都知道的,他们只是想了解你的项目经验,所以你不需要太过担心。在准备项目经验...
通过问答形式来介绍深度学习相关知识,其中包括数学基本知识,机器学习经典算法
总的来说,这个压缩包文件很可能包含了一个或多个人工智能或机器学习项目,使用 MATLAB 实现了多层神经网络的训练和应用,可能涵盖了从数据预处理到模型评估的整个流程。对于想要学习和理解深度学习以及多层神经网络...
政府和社会组织如何通过政策和项目来缩小这种差距,确保每个孩子都能接受到高质量的教育,可能是报告讨论的重点。 此外,报告还可能关注教师培训和发展,因为优秀的教师是提供优质教育的关键。如何提升教师的专业...
信息系统项目管理师 备考指南.doc 详细介绍 第一:搜集考试信息、购买相关教材等。 第二、信息系统项目管理师之...根据书本目录,详细记录从学习到考试时间的学习进度计划安排,各自根据自己的实际情况制定学习计划。
Unity是世界上最流行的游戏开发...理解这些文件夹的用途有助于更好地管理和维护Unity项目,确保在开发过程中数据的正确性和项目的可移植性。通过深入学习Unity的文件结构,开发者可以更高效地组织和优化他们的项目。
通过项目式学习,孩子们能够在实践中体验成功,从而提高学习兴趣。例如,全国青少年编程能力等级测评提供了一个平台,让孩子在玩中学,通过实际操作来拓宽视野,学习到物理、数学等多学科知识。 综上所述,选择何时...
下面我们将详细介绍 Java Web 项目开发流程中的各个步骤和技术要点。 一、用户需求调查 用户需求调查是 Java Web 项目开发的第一步。这一步的目的是了解用户的需求,确定项目的方向和目标。在这个阶段,需要确定谁...
知乎问答数据可视化源码+项目说明(如:全国一二线城市中你最不喜欢哪个城市?).zip知乎问答数据可视化源码+项目说明(如:全国一二线城市中你最不喜欢哪个城市?).zip知乎问答数据可视化源码+项目说明(如:全国...
在MATLAB中,系统重新配置通常涉及到程序设计和控制系统的动态调整。这可能包括网络、硬件设备、软件组件或算法的配置变化。例如,它可能是一个关于电力系统、通信系统或者信号处理系统的例子,其中系统参数可以在...
通过以上知识点,可以看出《不懂项目管理,还敢拼职场》这本书覆盖了项目管理的多个关键方面,强调了它在职场成功中的重要性,并提供了一系列实用的建议和工具。无论是职场新人还是有一定经验的工作者,理解和掌握...
在这个过程中,学员需要在规则下独立思考,学会在实际情况中确定优先级,识别影响项目成功的关键因素。 项目管理的基本概念,如PMBOK(项目管理知识体系指南)指出,项目是由一系列相互关联的任务组成的,这些任务...