最近每天会看很多实习生招聘的描述。技术类的岗位,前端一般要求掌握HTML、CSS和JS,常用的框架之一,比如Vue、React和Angular,然后最好还会webpack等工具。后端一般用Java,要求掌握Spring框架,还有Mybatis。大数据一般要求会SQL,Hadoop、Elasticsearch等。而机器学习,除了掌握原理,也要求掌握主流框架,比如TensorFlow、PyTorch等。
一般公司要求实习生掌握主流的语言,比如C\C++、Java、Python、PHP还有最近流行起来的Go等。作为公司的软件,需要有一个团队进行合作,选择学的人多的容易招人,招到的实习生来了不用怎么培训,做的工作也容易交接。当然,也有公司使用冷门的语言,比如Grammaly,使用Common Lisp开发的后端。但它也用别的语言,采用微服务的形式,把不同语言开发的产品结合起来。
主流公司都要使用主流的语言,那小众语言的存在价值是什么呢?这个世界是多样化的,程序语言也同样是各式各样的,满足不同群体的需要。比如Lisp是函数式编程语言、R用于统计、Erlang用于开发容错性高的产品、Scratch是图形化编程。而B4X是可以用一种Basic风格的语言做到跨平台原生软件的开发。
B4X是我最熟悉的编程工具是一款小众产品,圈子不大,但好在社区活跃,开发者也很勤奋。B4X使用的Basic语言非常容易学习,而且IDE功能很强大,安装也方便,入门容易,深入学习也不难。其实B4X只是把Basic语言进行转译,转译为Java、Objective-C这样的主流语言,可以使用这些语言的类库,可以说是站在了主流语言的肩膀之上的一款小众产品。
针对个人开发者或是小团队,其实B4X非常实用,开发高效,一种语言完成多个平台的开发。B4X的B4XSerializator库可以把不同平台的数据类型以二进制的形式存储,要用时可以转为平台的原生数据类型,类似于Protobuf。除了UI部分,其它Basic语言写的代码基本可以共享。
编程的主要目的是解决问题,使用哪种语言其实并不重要,重要的是找到合适的语言和工具。
如果你的目的是进入大公司,应该学习主流语言。如果,你想用编程开发小软件,解决自己工作的问题,或者做一个自由职业者,那选择什么语言是比较自由的。如何选择语言,可以看看这篇文章:我该学习哪门编程语言。