3构造之法
如何评价软件工程师的水平,除了工作经验之外,还有哪些更好的方法来衡量他们的能力和价值。同时,也提到了技能的反面、TSP对个人的要求以及软件工程师的思维误区。虽然新手和高级工程师在公司里的行为看起来差不多,但高级工程师之所以能获得更高的薪水,是因为他们具备更多的技能和经验,能够更好地解决问题和创造价值。因此,除了工作年头之外,软件工程师还应该不断提升自己的技能和能力,以更好地衡量自己的价值和能力。
3.1个人能力的衡量与发展
软件工程将相关的技术和过程统一到一个体系中,称为“软件开发流程”。软件开发流程不仅包括团队流程,还包括个人开发流程。在团队流程中,每个角色(如开发、测试、项目管理等)考虑问题的出发点是不同的,需要解决不同意见的冲突。软件工程师的成长包括积累软件开发相关的知识、提升技术技能、积累问题领域的知识和经验、理解通用的软件设计思想和软件工程思想、提升职业技能和实际成果。衡量软件开发的工作量和质量可以采用PSP等方法,考虑项目/任务的大小和花费的时间等因素。
3.2软件匚程师的思维误区
主要讲述了软件开发中的一些常见问题和误区。首先,它强调了了解软件特性的重要性,否则可能导致开发过程中的困难。其次,它提到了软件模块间的复杂依赖关系,以及由此产生的维护和修复问题。然后,文章提到了两种对依赖关系的极端态度:一种是“分析麻痹”,即过于关注细节和依赖关系,导致无法开始;另一种是过于积极,想立即修复所有问题,而不是根据现有条件找到一个“足够好”的方案。最后,文章还提到了过早优化的问题,即过早关注优化软件性能,而忽略了其他重要任务。总之,这篇内容提醒我们在软件开发中要避免走极端,要根据实际情况找到合适的解决方案。
3.3软件工程师的职业发展
主要探讨了软件工程师的职业心态和职业发展。首先,介绍了软件工程师的五种职业态度,包括临时寄托或工作、工作、职业、投身的事业和理想的呼唤。然后,通过一个金融风险研究专家的例子,说明了认真对待职业的态度能够发现证明个人能力的方式。接着,探讨了全栈工程师和单人乐队的关系,强调了专和精的重要性。最后,介绍了软件工程师的职业资格考试和职业成长路径,包括国家认证、公司认证和行业认证等。
软件工程师在中国职业发展的不同路径。首先介绍了国家认证的计算机等级考试和全国计算机技术与软件专业技术资格考试,这些考试具有国家认证的权威性和通用性。但也有局限性,如考试形式单一,无法考量团队合作能力,且考题内容相对滞后于工业界的发展。
此外,许多公司也提供了针对自己产品的职业认证项目,如微软的MCP认证和甲骨文的OCP认证。获得这些认证的工程师可以更容易地获得相应的工作机会。 国内也有机构和学校探索各种能力和认证考试服务,例如中国计算机学会计算机职业资格认证考试和浙江大学计算机学院开发的计算机程序设计能力考试。
最后,文章还介绍了软件工程师的成长路径,包括知识领域和能力阶段,以及工程师的职业成长级别。迈克康奈尔把工程师分为8个级别,每个级别的晋升都需要在各方面达到一定的要求。例如,要达到12级,工程师必须在三个知识领域达到“带头人”水平,并完成相关的学习和工作任务。
总的来说,软件工程师的职业发展在中国有多种路径,包括国家认证、公司认证、机构和学校的认证考试等。而个人的职业成长则需要不断学习和提升自己的知识和能力,以达到更高的职业发展水平。
3.4技能的反面
作者在小时候玩魔方时,通过摸索和口诀,掌握了还原魔方的技能。但随着时间的推移,作者没有再玩魔方,技能逐渐生疏。后来,在一个实习生的桌上再次看到魔方时,作者发现虽然能够还原一面,但离开口诀就无法完成整个魔方。这让作者开始思考什么是真正的技能,以及技能的反面是什么。 作者引用了比尔·巴克斯顿的观点,认为技能的反面是“解决问题”。对于IT专业的大学生来说,如果只是机械地使用工具,而不能解决实际问题,那么这并不是真正的技能。真正的技能需要通过不断的练习和实践,将低层次的问题自动化,从而有更多的时间和精力去解决更高层次的问题。 因此,要提高技能,需要不断地练习和实践,将低层次的问题自动化,从而更好地解决高层次的问题。