谢谢邀请!
作为一名从业多年的程序员,也出版过编程书籍,所以我来回答一下这个问题。
首先,编程语言与开发场景有较为密切的关系,如果程序员需要面对多种不同的开发场景,那么掌握多种不同的编程语言是有必要的,但是如果面对的开发环境比较单一,掌握多种语言也没有太多的实际价值,所以是否需要掌握多种编程语言,主要由岗位开发任务来决定的。
目前在大数据和云计算技术的推动下,程序员全栈化是一个比较明显的发展趋势,不仅要求后端程序员全栈化,前端程序员也在往全栈化方向发展。一方面原因是开发团队小型化趋势明显,这就要求程序员能够完成多个角色的开发任务,另一方面基于PaaS进行软件开发使得资源整合更加容易,这也进一步打破了传统前后端程序员的任务边界。
以大数据应用开发程序员为例,如果在Hadoop平台下进行开发,通常会选择Java语言,由于Hadoop本身就是采用Java语言开发的,所以在Hadoop平台采用Java语言还是比较方便的。如果使用Spark平台,那么最好学习一下Scala,这样在开发效率方面会得到一定程度的提升。另外,如果从事大数据分析工作,掌握Python也是有必要的。
对于Web程序员来说,通常既需要掌握一门后端开发语言(比如Java、Python、C#等),同时也需要熟练掌握前端开发语言,包括Html、CSS和JavaScript,另外还需要掌握Sql语言。
对于初学者来说,选择一门“全场景编程语言”是不错的选择,目前比较常见的全场景编程语言包括Java、Python和C#,另外可以重点关注一下JavaScript语言,虽然JavaScript主要的应用领域集中在前端,但是目前JavaScript的应用边界也在不断得到拓展。
最后,对于程序员来说,学习编程语言往往是开发任务驱动的,一边学习一边使用也是比较常见的事情。
我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言!