首先,经过多年的发展,程序员的概念边界有了很大的拓展,程序员分为很多类型。不同类型的程序员对技术能力有不同的要求。对于从事应用场景开发的程序员来说,知识的广度更重要,可以快速适应不同场景下的开发任务。对于专注于技术平台研发的程序员来说,专业精度更重要。
当前的IT互联网行业正在经历从消费互联网到工业互联网的覆盖过程。程序开发任务以技术平台为分界线分为两类。一类任务是基于各种技术平台完成行业场景的应用,如基于云计算平台、大数据平台、人工智能平台完成的各种行业场景开发。这类开发任务的总数非常大,在工业互联网的推动下,未来大量工业企业需要基于技术平台完成创新。
另一类程序员专注于各种技术平台的研发,包括云计算平台、大数据平台、物联网平台、人工智能平台等。在工业互联网的推动下,技术平台不断细化,一些企业会在云平台的基础上做PaaS一些企业会基于大数据平台做行业大数据平台等等,这也需要大量的程序员。
通常我们把基于技术平台在行业内应用的程序员称为应用程序员,从事技术平台研发的程序员称为R&D程序员。两者的重点不同,开发方式和团队合作方式也不同。
应用程序员对知识的广度要求更高。毕竟在应用技术的过程中,需要考虑大量的技术细节。这些技术细节虽然不难,但涉及的技术比较复杂。与应用程序员相比,R&D程序员更注重平台的各种系统级功能,而系统级功能往往对性能要求较高,因此程序员需要对操作系统和算法有深入的了解,平台R&D的团队规模往往很大,每个程序员只需要关注一个点。