去日企当程序员是什么体验?

沉默王二

共 2945字,需浏览 6分钟

 · 2021-11-19

大家好,我是二哥呀!

微信上收到一条读者的私信,大致的情况是这样的:他接到了一家日企的 Offer,COBOL 方向的。他去网上查了一下,大部分都是劝退的。他很担心干了几年 COBOL,再转 Java 会因为没有项目经验,而找不到新的工作。。

考虑到应该还有个别读者有类似这样的疑惑:接到的 offer 不是很满意,也没有其他更好的选择,那这个 offer 是接还是不接呢?

我把自己的想法整理了一下,发到公众号上来,希望能给需要的读者一点点启发和帮助~

一、COBOL 的前世今生

讲真,这位读者有这样的疑惑确实是情理之中,我估计在座的各位有很多听都没有听过 COBOL。

COBOL 可以说是编程语言中的“上古卷轴”了,第一个正式版发布于1960年4月。COBOL 标准的制定者之一——格蕾丝·霍珀是一位女博士,历史上第一个计算机程序的“BUG”就是由她发现并记载下来的。

六十年下来,COBOL 程序已经形成庞大的规模,从社会保障卡信息存储和处理,到 ATM 机,COBOL 的身影无处不在。由于更新系统的成本实在太过高昂,再加上审批流程等非技术性原因,导致这些遗留系统一直没能更新换代。

我看了一下 2021 年最新的 TIOBE 编程语言排行榜,COBOL 竟然还能排在第 25 位,比我经常听到的 Lua、Rust、Kotlin、Scala、Erlang 还要靠前。。

我只能说,COBOL 实在是太无情了,60 多年还能榜上有名。。你叫其他小弟情何以堪?

二、COBOL 的前景和学习资源

干过银行相关的技术岗的话,应该对 COBOL 比较熟悉,甚至会觉得 COBOL 严重缺人。只要你肯去做,愿意全国各地跑一跑,哪怕是 0 经验,都会有公司要。

虽然随着时间的推移,COBOL 程序员会越来越少,但就目前来看,确实还是有工作机会的,并且在学历上也不会卡的非常严苛,薪资待遇还算是说得过去。

如果现阶段没有其他更好的 offer 选择,我认为 COBOL 不是不可以接受。

如果你想入门 COBOL 的话,推荐 W3Cschool 上面的 COBOL 教程,里面还有 COBOL 的面试题:

https://www.w3cschool.cn/cobol/

另外,GitHub 上这个 1.9k star 的开源教程也是非常值得推荐:

https://github.com/openmainframeproject/COBOL-programming-course

课程分为三个部分:

  • 第一部分:入门指南。第一章介绍了什么是 COBOL,第二章介绍了如何使用 VSCode 插件来编写 COBOL 代码,第三章介绍了其他的一些 VSCode 扩展插件

  • 第二部分:COBOL 学习。一共 9 个章节,分别讲解了 COBOL 语言的基础知识、数据分布、文件处理、程序结构、文件输出、条件表达式、算术表达式、数据类型和内在函数。

  • 第三部分:VSCode 替代方案和测试。这部分主要介绍了如何利用 IDz、LSE、TSO/ISPF 等替代方案来编写源代码以及测试。

三、COBOL VS Java

COBOL 属于小众编程语言,Java 属于主流编程语言。两者直接进行 battle,多少有些不太公平。

如果你有更好的 offer,并且还是 Java 岗,那就不用选择,无脑冲 Java 就对了;如果只有一个 offer,没得选,我觉得 COBOL 还是可以缓冲一下的。

现实中,总有很多不尽如人意的事情发生,那我们所能做的,就是欣然接受,然后以此为跳板,去追求更好的。光有理想没有实力肯定是无法落地的,与其空谈不如脚踏实地地干。

拿这位读者的情况来说吧。

我问他手头还有其他 offer 可选吗?他说目前只有这家日企的 COBOL 岗。那我又问他,还能继续投简历继续参加面试吗?

他说还能,如果其他的面不上我是不是可以选择这个?

我的理解是选择小众领域的岗位意味着没有 Java 岗那么卷。再加上日企比较追求极致的稳定,这个选择其实没那么想象中那么坏。日企虽然在技术上不热衷于追求前沿,但福利也是比较到位的,除了五险一金,甚至高温补贴这种也给的很大方。

另外,如果有机会去国外出差的话,差旅费是非常可观的。

再者说,8 小时谋生存,8 小时谋发展

选择了 COBOL 岗,并不意味着私下里没法学 Java 啊,像我的好朋友,macrozheng,GitHub 上 54k star 项目的作者,就是利用业余时间搞的 mall;还有江南一点雨,GitHub 上 22k star 项目的作者,也是利用的业余时间。

即便是那些看起来只是靠工作和你拉开差距的同事,或者只是靠课堂和你拉开差距的同学,如果你肯细致观察的话,保准他在私底下付出了很多你不曾看到的努力和汗水。

我之前在一家外企的时候,情况也是类似。新人嘛,一开始的工作免不了打杂,经常被安排的任务是写一写 ruby 小程序、搞一搞 SQL 语句、甚至撸一撸 shell 脚本,但是私底下,我一直在研究公司新兴的技术框架,不仅能在这个技术框架的基础上造一些小轮子,甚至还能扒一扒源码解决一些核心问题。

等到时机成熟后,直接就晋升为 Team Leader 成为团队的中坚力量了。

所以,完全不用担心从小众编程语言切换到主流编程语言后项目经验为 0 的问题,除非是你自己放弃了技术上的求索。

四、不要只局限于某一门编程语言

再次给大家强调一下,永远不要把自己局限于某一门编程语言之上,即便 Java 现在是顶流,也要尝试去拥抱其他的编程语言,尤其是要重视计算机基础的学习。

前几天,我在知乎上看到一条热榜,特斯拉这种玩火箭的公司竟然使用的 .net core 技术框架,而不是 Java/Go?

我的回答里引用了 Java 之父 Gosling 曾说过的一句话:“语言只是实现目标的工具,而不是目标本身。”

很多人误认为 .NET 只能在 Windows 上跑,但其实 .NET 也是一个跨平台应用程序开发框架,不仅支持 Windows,还支持 macOS 以及 Linux,并且微软前几年已经把它开源了。

对于我们程序员来说,不应该存在任何偏见,学这个的看不起学那个的,某厂看不起某厂的,应该针对自身的情况,做出最有利于自己的选择,因为每一种编程语言都有自己的应用领域,而每个人的能力又千差万别

对于我们国内的开发环境来说,Java 的势头的确很猛,我个人也是 Java 的重度使用者,但我私底下也在学习其他的编程语言,每种编程语言只要能发挥出它最大的优势,就是值得我们去学习和使用的。

人生如果没有更好的选择,就欣然接受,然后逆袭。。


没有什么使我停留——除了目的,纵然岸旁有玫瑰、有绿荫、有宁静的港湾,我是不系之舟

推荐阅读

浏览 81
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报