ししちにじゅうはち 4x7=28

よんたったー https://twitter.com/keita44_f4

○○ってプログラミング言語をできるってどこから言えるんですか?

と聞かれてうまく答えれなかったので、もう少し考えてまとめようとしてみた。

とっさに答えた内容

プログラミング言語なんて星の数ほどあるので、何ができたら「できる」かの答えはバラバラ。 とはいえ、プログラミング言語に依らない地の力みたいなのはあると思う。 例えば、

などが挙げられる。 これらが強ければ、プログラミング言語の差は文法の差ではと最初は思った。

とはいえ、これでは「○○プログラミング言語できます!」と任意のプログラミング言語で言えてしまう。 ので、お風呂に入りながらもう少し考えてみた。 すると、次の2つの段階が自分が思う「できる」ラインかなと思った。

1. 効率よくループ処理が書ける

簡単にいうと、「forループ書けます!」 ただ、これには次の2つの意味を含んでいる。

  1. 言語仕様(文法・意味論)を理解している
  2. 効率よい書き方を理解している

1は当然のこと。 先に挙げた地の力を、プログラミング言語で正しく表現できるかどうか。

2の「効率よい」というのは、そのプログラミング言語の特性を理解しているか。 ループを書くにしても、言語によって全く違う考え方と実装方法が出てくる。 キーワードをあげると、イテレータ、内包表記、末尾再起呼び出し、などなど。

その言語の特徴を理解して効率よく書ける、が1つのポイントかなと思った。

2. 小さなプロダクトを1から作れる

これはより強い「できる」だと思う。 プログラミング言語の文法・意味論の知識だけでは、仕事やOSS活動をするには足りないと思った。

実際のプログラミング環境はどんどん便利になっている。 ありがたいことに、グラフを描くのにドットを打つ必要はない。 代わりに便利なライブラリやツールを使いこなす必要がある。

例えば以下のような知識。

  • 公式ドキュメントの読み方
  • IDEの設定
  • SDKの知識
  • パッケージマネージャの使い方
  • Githubの使い方

などなどだ。

Rubyを例に上げると、Web系の業務ではRuby on Railsなところがほとんどだろう。 すると、エディタでのRubocopやRufoの設定、Railsの知識、gemやnpmやyarnの使い方、さらにはHTML/CSSの知識まで必要になる。

このような力は何かを考え、「小さなプロダクトを1から作れる」と表現した。

思い出すままに書いていく5

社内で飲酒運転をした人が出た。 そこで「私は飲酒運転をしません!」という書類にサインをする回覧板がまわってきた。 これにサインするだけで、飲酒運転が根絶させられるらしい。

すごい!

社内で製品不良が起こった。 そこで「私は製品不良を起こしません!」という書類にサインする回覧板がまわってきた。 これにサインするだけで、不良品がなくなるらしい。

すごい!!

退職しました

例の画像をここに貼る

どこを

東海地方では有名な大企業D社を退職しました。 実に9年も勤めていたようです*1

経緯

* 入社前

東北大学情報科学研究科の大堀研究室にて、プログラミング言語の研究をしていました*2。 自分の研究は、関数型プログラミング言語のSML#コンパイラの内部機構とIDEの支援機能の連携でした*3。 他にも、コンパイラの中間表現をいじったり、授業やゼミでラムダ計算や論理学や並列計算や画像処理や、あれこれやっていたなぁとぼんやり思い出します*4

学ぶのが好きで大学や大学院の授業は真面目に受けていました。 また、ゼミでは先生や先輩から知識から普段の生活まで様々なことを学ばせてもらいました。 ただ、当時はこの知識の貴重さへの認識が薄かったと思います。 しかし実務をして役立った知識はとても多く、その価値の重さを再認識しています。

* 新人研修時代

大企業らしく、半年以上の長い研修期間がありました。 ここで知り合い未だ付き合いがある友人もおり、ありがたいことです。 ただ、この友人の多くがすでに退職済みなのも愉快な話です。

研修の内容は、ビジネスマナーから始まり*5、社内の幅広い技術講義*6や、工場へ数ヶ月間配属される研修*7もありました。 その時のことは、みずぴーさんに誘われて工場実習日記に書きました。 この同人誌を書いていて具合が悪くなったのも、いい思い出です。

booth.pm

* 職場への配属後

人事部と面談をし「ぜひともソフトウェアの知識を活かせるところへ」と配属を希望しました。 配属先は材料系の部署でした。 配属直後にOJT担当者から「電子回路のプロが来ると期待していたよ」と言われました。 人生、何が起こるのか何もわかりませんね。

配属先では、熱機器の構造設計から始まり、紆余曲折を経て、最終的にはセンサーデータの表示・処理機器の開発をやっていました。 この機器の開発にあたっては、回路設計、基板設計、構造設計や組み立て、ソフトウェア(ICとのやりとりから表示まで)とすべてを担当していました。 使っていた技術は簡易ですが、Design Spark PCBでアナログ/デジタル回路、C/C++、Qt、データ処理にPythonなどです。

他にも物理サーバーが1つ手に入ったので*8、Wekanでカンバン、GitBucketでGitレポジトリ、Jenkinsでビルド・テストCIを建てて運用していました。

振り返ると我ながら幅広くやっていたと思います。 1つ機器を作るための一通りの知識を得られたのは貴重な経験でした。 ただ、言い換えれば孤軍奮闘苦節の日々でした。

働いて良かったところ

やはり大企業だけあって、給与体系はよかったと思います。 大学院卒で初任給は22万くらいでした。 そこから、昇給が毎年にあり、ボーナスもしっかり出ていました。 5年ほどで年収500万円は超え、より残業する同期の中には年収600万円以上の人もいたと思います。 さらに福利厚生もよく、持株会、選択式補助金、会社で斡旋の保険や貯蓄、と可処分所得をプラスする要素が多くありました。

仕事で使える予算の規模も大きかったです。 ハードウェア中心の大企業であるため、設備前提の金銭感覚だったと思います。 新人でも、年数百万円くらいなら簡単に申請が通りました。 また、部下がトライすることを肯定してくれる文化もありました。 おかげで、幅広い技術にトライできたと思います。

また、尊敬できる上司もいました。 特に過去に会社が苦しい時期を経験した世代に強い人が多いと感じました。 昔話も長いですが、たしかな技術力がある人があちこちに隠れ住んでいました。

退職理由

大きいのは職務内容の不一致です。 要望に対して真逆の職場に新人を配属をする人事部には不信感しかありません。 また、後半は先述のソフトウェアを4人ほどのチームで書いていました。 しかしそこでの開発が自分には合いませんでした。 例えば、チームメンバーはコードをフォルダコピーでやりとりしており、Gitを宣伝しても導入する雰囲気にはなりませんでした*9。 結局、1人Git開発をしており、共同開発者からもらったフォルダコピーをDiffに落とし込んだりしていました。

ハードウェア中心の企業だったため、ITへの投資が軽視されていたのも気になりました。 入社当初のPCはCeleronとメモリ2GBと、人権がありませんでした*10。 なんとか開発に使う理由で人権あるマシンを買うことができましたが、そのために何枚もの事務書類に加え、上司と上司の上司と上司の上司の上司の判子を…、と大変でした。 社内ではソフトウェア開発は仕様書を他社へ投げるのが基本で、ソフトウェア開発できる人も少なかったです。 開発の限界から上司に人員増員要請を何度も投げましたが、最後まで人は増えませんでした。

また、職場ガチャに負けた自分の職場には、足を引っ張るおじさんが多々いたのも、日々の精神が削られ嫌でした。 例えばトラブルが発生したとき、部下を守るべき上司が真っ先に「俺は悪くない」なんて言っちゃうような人がいました。 最近は社長が「変わろう」と声を上げているようですが、末端は何も変化ありませんでした*11

またせっかく企業が大きく多様な組織があるのに、組織を越えた協力がしずらいと感じました。 他組織に相談に行くと、「余計なことをするな」「大変だねこれは、協力はしない」「厄介事を持ってくるな」という疎外感がありました。

社内ルールも厳しく古典的で、多数いる社員の誰もが悪いことをしないように、との雰囲気を感じました。 例えば、社内機密を宛先間違えしたからと、メールアドレスの自動入力機能が削除されたこともありました。 ミスを技術でなく制限で解決する方法に納得いかず抗議メールを送りました。 しかし、「上が承認したことなので」の一言で聞く耳持たずでした。 こういった脳死考えな人物が事務管理にいて、自分に迷惑がかかるのが嫌でした。

こういった日々精神が削られることが多く、ここで定年までの約40年間を過ごすのは身体が持たないと感じました。

今後について

初めての退職なので、正直言って何もわかりません*12。 半年くらいはハローワーク通いをやってみようと思っています。 行きたい旅行先も溜まっているしね。

大学院卒で素材はいいけど育ちが特殊な人材と認識しています。 初めての基板設計やプログラミング言語にも、必要ならばあれこれトライしてきました。 こんな人材ですが、興味がある企業があれば嬉しいです。 特に、家事や好きなことをしたいため、時短勤務や週4や週3の勤務に強く興味があります。

また、ここには書けないような愉快な話もあるので、興味ある方はご飯に行ったりよんたさんバーでもしましょう。

干し芋

なんの関係もありませんが、こちらに魔法のリンクを貼っておきます。

www.amazon.jp

*1:実際は休職したためもう少し短い

*2:当時を思い出すと、自分の活動を研究というのはおこがましい気がする

*3:今はLSPなど標準化も進みよい時代になった

*4:他にもCPUアーキテクチャ電磁気学や宗教など多数の教科書が手元に残っており、大学の授業の多様性の素晴らしさを改めて思い起こされる

*5:圧迫授業なんてのもありました

*6:マイコンプログラミングから流体力学ま、さらには工具を持って機器をばらして組み立てたりもした

*7:人によっては夜勤もあった

*8:社内VPSもあったが、隣の組織が余らせていたのをもらうのに成功した

*9:自分以外はハードウェア設計の専門家が延長でコードを書いていたため、コード書きは主ではなかったという理由がある

*10:2017年頃?まで、新規購入はこのスペックだった

*11:社長の「変わろう」という声に対して、部屋を装飾したり、応援歌を作ったり、という冗談みたいなことがされていた

*12:働きたくないでござる

思い出すままに書いていく4

上司がしょっちゅう仕事をひっくり返す人だった。 その上司に指示された部下がサービス残業をするのが横行していた。

すると、勤怠時間の記録がおかしくなってくる。 ひっくり返された日は、部下が午前3時まで会社にいる。 部下の勤務時間が8時間、勤務外時間が6時間とかになってしまう。

ここまで明らかだと、上司もさすがにこれはまずいと気づく。 上司と事務員で会議をしたり、部下を呼び出して叱りつけたりする。 「こんなあからさまなことするな」「残業時間のマネージメントができていない」と。

結局、その部下は後々こう言っていた。 「マネージャーの仕事ってなんだろうね」 「もうめんどいから、毎日1時間ずつ勤務外時間つけている」

何も解決していなかった。

思い出すままに書いていく3

会社の労働組合といえば春闘である。 僕の所属する労働組合も、春闘のシーズンは活動が活発になった。 なんたって組合員の生きるための給与がかかっている。

ある日、春闘の内容の説明会があった。 組合員全員が集会室に集められた。 この集まった様を写真に撮り、これもまた会社への要求に添付するらしかった。 しかし、組合活動は仕事ではない。 そのため、この説明会は昼休みを使って行われていた。

労働組合の代表者が資料を使って説明していく。 大体の内容は資料を読めばわかる話で、つまらなかった。

ただ、それ以上に参加者がひどかった。 みんなが集まってはいるものの、代表者の話を聞いてない。 それどころか、皆の雑談でガヤガヤとしていた。 まるで小学生が集まった体育館だった。

ここで真剣に聞いても、給与がすぐに上がったり下がったりはしない。 どうせ、春闘もただの茶番だという雰囲気が強かった。 組合側だって、会社に無茶な要求はしない。 会社だって、社員の待遇を良くしないと社外に示しがつかない。 結局、組合活動よりも会社の状況と景況によって決まってしまう。

ここにいる誰もが他人事なんだなと思った。 この年のボーナスは上がった。

思い出すままに書いていく2

それなりに大きな会社だったので労働組合があった。 サービス残業をする組織メンバーについて、労働組合に相談にいったこともあった。

労働組合の部屋は小さな1室だった。 そこには、雰囲気がよく人当たりがよい組合の男性と、庶務をしている女性がいた。 辛さを話すと、組合の男性は僕の辛さを心配してくれた。 僕の組織は残業時間が多かったり、有休取得状況が悪く、気になっていたそうだ。 最後まで話を聞くと、彼はこう言ってくれた。

「忙しくても違法なことはしてはいけない。これからは夕方以降の見回りを増やして残っている人に声をかけるようにするよ」

しかし相談の後にも先にも、労働組合の人が見回りに来たのを見たことはなかった。 その後、彼は組合で出世をし、僕の職場の担当から外れた。

思い出すままに書いてく

最近、いろいろ書類をあれこれしている。 すると、前の職場のことを、ふと思い出し夜寝れなくなる。 記憶と気持ちの整理のために、思い出したことをつらつら書いていこうと思う。

何が起きていたのか

僕が所属していた組織では、残業する時間を月始めに計画し申請する方式だった。 しかし、上司の指示が荒く業務効率が悪かったため、たいていの人が残業時間が足りなくなる。 そこで、多くの人が休憩時間と記録しながら業務する、サービス残業が横行していた。

何が嫌だったのか

サービス残業をしている人には、年の近い先輩もいた。 すると、同じ残業時間を申請しているのに、結果に差がでる人が出ていた。 サービス残業込みのパフォーマンスを支持する上司に腹がたった。 また、法律を守っていないことも腹がたった。 やっている本人たちは好きで仕事をしていたり、仕方ないと諦めている人もいた。 知らないところでしわ寄せが来ていることを認識していないのに腹がたった。

何をしたのか

僕は怒りのままに、人事部へ密告した。 「我が組織ではサービス残業が横行しています」と。

何がその後に起きたのか

その後、人事部は調査に訪れた。 組織中でも勤務記録が怪しい何人かが呼び出され、人事部と面談が行われたそうだ。 しかし、ほとんどはサービス残業の証拠がなかったり、休憩していた理由を出す人までいた。 のちに彼らは「俺は証拠を残すようなヘマはしない」と武勇伝のように語っていた。

結局、人事部から注意を受けた者はいたものの、誰も何も変わらなかった。

何をすればよかったのか

証拠が足りなかった。 後に、組織メンバー全員の勤務記録が書かれたExcel台帳が共有フォルダにあるのを見つけた。 これを見つけてから動けば良かったと思う。

なおこの台帳は、勤務管理の電子システムから、手でコピペして作られているらしい。 また、管理職たちが台帳を見ながら、休憩時間の付け方が怪しくないか議論する会議が開かれているらしい。

怖い話だ。