有技术方向自然就有非技术方向,不过这里只讨论技术方向,谈谈我的理解。
不同的技术方向没有高低之分,不管哪个领域要达到顶尖都很难。朝什么方向发展主要跟个人的兴趣有关。
前端工程师
这是很大的一类,几乎所有的软件公司都需要前端工程师。喜欢做前端的人,一般都有一定的审美水平,甚至有点艺术天赋。喜欢直观,不喜欢复杂逻辑。一般不想深入业务,理解不了系统分析师所思考的问题。很多人(大部分)可以自己开发架设一个网站,前端后端都做,(一些人)从而以为自己有全面的能力,什么都可以做,这只是一种错觉。
后端工程师
也是很大的一类,就叫后端工程师吧。这类人对UI兴趣不大,一段时间只对一项技术或一个领域感兴趣,甚至是永远专注于一个领域。如ETL、报表、工作流、数据库、搜索、大数据等。如果不断拓宽知识面,有可能成为架构师。如果专注于一个技术领域,有可能成为这个领域的专家。基础是否扎实决定了能走多远。
系统分析师
系统分析师是一个技术方向,因为系统分析师首先要有相当深厚的技术功力,对技术有全局的理解。同时,业务理解能力、梳理能力很强。要把错综复杂的业务需求转化成软件系统,业务建模能力极为重要,优秀的系统分析师就有这个能力。做前端的,或者没做过复杂业务系统的,可能对业务建模没有概念,或者认识不深。要做复杂的业务系统,系统分析师必不可少。系统分析师比较适合担任项目经理的角色。优秀的系统分析师可能也是一个合格的技术架构师。
(技术)架构师
这里说的架构师是指能力水平,而不是架构师的职位。很多职位叫架构师并不是合格的架构师,尤其是小公司的。要求基础十分扎实,知识比较全面,学习能力很强,对技术有很深的的理解。并不要求懂多少具体的技术,而是对技术有全局的理解,需要哪样都可以拿起来。架构师看的东西,可能一般人难以理解。可能前几天看并行计算,这两天看数据挖掘,可能过两天看神经网络,再过两天看数理统计。
架构师负责整个系统技术上的把控,要求从可行方案中找出更好的方案,而不仅仅是找出一个可行的方案。工程师需要务实的品质,架构师尤其需要。基于实际情况考虑解决方案,而不是个人喜好。有些架构师只关注纯洁术,在处理大数据、高并发等技术问题上很有经验,结合复杂业务进行设计的能力稍弱,这就需要系统分析师的配合。业务分析、建模能力很强的的架构师十分难得。
算法工程师
很多公司并不需要算法工程师,但在有的公司算法工程师至关重要。在有些领域,最核心的技术就是算法。不同领域都会需要算法工程师,但其中应用的知识可能是通用的。比如贝叶斯方法可以用在推荐系统中,也可能用在图像识别软件中;蒙特卡洛方法可以用在某个金融软件,对未来利率变化进行模拟,也可能用在计算机棋类软件中。
能做算法工程师,数学和算法都要有深厚的基础。同时,学习能力也很重要,最好能看懂学术论文,了解最新的成果。如果从书本摘个算法就能解决问题,就不需要算法工程师了。一个推荐系统,命中率0.9跟0.8可能就有本质的区别。最好的算法工程师都是有学术研究背景的。半路出家做算法工程师是不太可能的。
安全工程师
有些公司不需要安全工程师。必备的知识和能力包括,密码学原理,网络原理,协议分析,公钥体系,以及包括防火墙,入侵检测系统,操作系统,Web前端安全等等。
和算法工程师一样,也是一个很专业的领域。人的精力有限,我不太相信一个架构师同时也是一个优秀的安全工程师 ,或算法工程师。
其他
DBA 虽然随着nosql的兴起,关系型数据库的使用有下降的趋势,但nosql并不能取代关系数据库。在很多领域,事务性必须绝对保证,不容妥协。传统的DBA仍必不可少。
操作系统底层 做设备驱动程序、嵌入式系统、实时系统、虚拟化、当然还有操作系统本身,都需要深入操作系统底层。
...
分享到:
相关推荐
最后,软件测试人员有三个主要的发展方向:技术路线、管理路线和职业转换。技术路线侧重于成为高级测试工程师,精通各种测试工具和技术;管理路线涉及团队管理和项目管理;而职业转换则可能转向项目管理或开发工作,...
5. 社会需求:大型机构中信息技术人员的比例通常在2%-2.5%,并且随着信息技术预算的逐年增长,对信息技术人才的需求也在不断上升。 6. 与其他方向的区别:信息技术方向在知识取向上与计算机科学的其他方向有所不同...
对于软件测试人员,他们的职业发展路径多样且丰富,以下将详细探讨几个主要的发展方向: 1. 技术路线: - 初级测试工程师:这是大多数测试人员的起点,主要负责执行测试用例,发现并记录软件缺陷。在这一阶段,...
集成电路工程技术人员的职业发展趋势将会朝着智能化、自动化和数字化方向发展。随着技术的不断发展和应用,集成电路工程技术人员需要具备更多的技能和知识,以适应行业的发展需求。 九、职业发展建议 集成电路工程...
《2010未来5年软件研究方向》的文件中,涵盖了多...同时,鼓励国内外科研人员积极参与,共同推动计算机软件新技术的进步。通过这些深入研究,可以预见未来软件将在性能、效率、用户体验和安全性等方面取得显著的提升。
"计算机软件技术基础(第三版)习题答案.pdf" 本资源为计算机软件技术基础第三版习题答案,涵盖了计算机科学和技术的基础知识,涉及信息与数据、计算机系统、软件技术、数据结构、算法设计等方面。下面是对资源中的...
软件技术(Java方向)人才培养方案 以下是根据给定的文件信息生成的相关知识点: I. 软件技术(Java方向)人才培养方案概述 * 专业名称:软件技术(Java方向) * 招生对象:普通高级中学毕业生、中等职业学校毕业生或...
其次,云计算和分布式计算是现代软件技术的核心组成部分。通过云服务,如Amazon Web Services (AWS)、Microsoft Azure和Google Cloud Platform,开发者可以构建可扩展、高可用的应用程序,同时降低了运维成本。...
JDBC技术可以帮助开发人员在开发软件的过程中获得最新的数据,从而提高开发的准确性。随着JDBC技术的进步,它还能够管理数据库,并实现不同程序之间的统一接口,提升数据库的准确性。 动态更新技术是Java技术发展的...
预计未来,随着互联网技术的进一步扩展,软件技术的需求量将继续增长,这将推动软件开发人员提升自身技术水平。 在移动互联网背景下,软件开发技术的应用主要体现在网络化、智能化等方面。网络化指的是软件开发技术...
【标准版软件技术转让合同】 本合同涉及到的是一个软件技术转让的法律协议,适用于中国公司与中国工厂(甲方)与外国公司(乙方)之间的合作。合同的主要内容包括乙方向甲方提供制造特定软件产品的专有技术、相关...
高职软件技术论文2篇-软件技术论文-计算机论文 本文探讨了高职软件技术专业在“十二五”期间的机遇和挑战,并对软件技术专业的发展前景进行了分析。文章首先提出了“智慧”战略对高职院校软件技术专业的影响,强调...
总的来说,12021级软件技术(.NET软件开发方向)专业旨在培养出能够适应市场需要,具备全面专业技能和良好职业素养的.NET软件开发人员,为信息技术行业输送高质量的技术人才。学生不仅要在理论上有所建树,还要在实践...
学校采用工学结合的教学模式,强调“教学做一体”,并引入企业高级技术人员参与教学,确保学生能接触到实际的软件项目开发经验。 **专业俊才与竞赛成就** 信息工程学院的软件技术专业培养了众多创新人才和技能精英...
而Andrew Planet Viewer v02.14.07正是一款专为天线测试与分析设计的专业软件,它能够帮助工程师和研究人员更加直观地理解和解析天线的性能特征。 该软件的核心功能在于其数据转换能力。它可以处理两种主要的数据...
软件人才的级别划分是评估个人技术水平和职业发展的重要参考,从门外汉到顶级专家,每一步都代表着不同的技能掌握和经验积累。以下是根据标题、描述和部分内容详细解析的各个级别: 1. 门外汉型:这类人群往往缺乏...
2. **明确职业发展方向**:软件开发人员需要尽早确定自己的专业发展方向,并制定可实施的计划。无论是专注于技术成为专家,还是走向管理岗位,都需要有明确的目标,以便做出正确的决策和努力。 3. **技术与人品并重...
《软件公司技术中心人员管理制度》是一份详细规定技术团队组织架构、职责分配和技术管理流程的文档。这份管理制度旨在规范技术中心的运作,确保产品研发和项目的高效执行,提升公司的竞争力。 第一章总则强调了技术...
人们运用信息安全技术,提高信息可信度,在社会各个领域的发展中,计算机软件技术已然成为不可缺少的重要组成部分,而信息安全技术的融入,促使社会各个领域向着多元化的方向发展。 3. 计算机软件技术在大数据中的...