后端程序员应该深入学习后端开发,还是系统学习人工智能?有什么好建议吗?

lvningwei


我做后端开发多年,目前也在做人工智能方面的研究,所以我来回答一下这个问题。

为了描述后端和人工智能之间的关系,我先来说说后端开发的那些事,然后一步一步描述。

后端服务简单的说就做两件事情,一件事情是接收请求,另一件事情是生成回应。但是这看似简单的步骤背后却隐藏着众多的处理过程,一个简单的处理过程可以大概分成以下几个步骤:

1.提取用户提交的数据并判断用户的请求意图。

2.对用户提交的数据进行验证,通常后端做的验证属于业务验证。

3.匹配对应的业务处理模块并进行具体的业务处理,这个步骤可能需要一系列的操作。

4.生产处理结果并封装。

5.把结果推送到客户端。

通常后端的服务会采用MVC结构,这个结构的好处太多了,但是在我看来最重要的好处就是便于合作。通常还需要一系列的操作以便于提高业务处理能力,比如创建业务组件池、数据库连接池、外部资源池等等,容器化管理最大的好处就是可以根据业务需要随时申请资源而不需要关心资源的开辟和回收等令人头疼的问题。

容器管理的最大好处就像那句好莱坞的经典台词一样:Don't Call me,I'll Call you!我把这句话理解为:我会在你需要的时候出现。我第一次看到这个比喻大概是在10多年前一个来自中国台湾的作家(林信良)在描述Spring时所说。

其实这句话多少就有点可以动态扩展的意思了,所以我在做了一段时间后端开发之后,我的研究重点就放在了动态软件体系结构上了。我做动态软件体系结构是从了解OSGI开始的,当时的Eclipse就是基于OSGI结构的。研究一段时间之后,我把OSGI应用在了我当时带的一个ERP项目中,这个系统的用户是一个国内大型连锁销售企业。在经过了3年多的研发之后,系统按计划顺利通过了专家组的验收,专家组对系统给予了较高的评价。其实,现在回过头来看,动态软件体系结构在某种程度上来说也具备了一定的智能(动态扩展)。

做后端开发做到一定程度一定会往智能化方向发展,因为系统越来越庞大,接入的功能越来越多。单纯的通过接口已经越来越难满足业务需求了,而类似于OSGI所代表的模块化管理在目前看来已经是后端开发的趋势和常态选择了。

伴随着大数据的发展,后端开发已经逐渐迁移到云端平台进行了,此时的后端开发不仅要面对简单的业务逻辑,更要面对海量的数据处理任务,此时机器学习等内容就进入了后端开发人员的视野中了。而机器学习正是打开人工智能领域的一把钥匙,很多后端开发人员正是通过机器学习进入了人工智能领域。

所以,按照我的历史经验来看,后端开发人员未来不可避免的要学习人工智能相关内容。人工智能涉及到的内容非常多,我在之前的文章中有过详细的描述,这里就不再累述了。总之,要想系统的学习人工智能,最好要依托项目来进行,这样才能更容易做出成果。

我目前的主要研究方向是大数据和人工智能,我会陆续在头条上写一些相关的科普文章,感兴趣的朋友可以关注我的头条号,相信一定会有所收获。

如果有人工智能方面的问题,可以咨询我。

谢谢!