松江に出戻り5度目の冬(Advent Calendar)

no extension

(本ページは「山陰 Advent Calendar 2022」9日目の記事です)

はじめましての方ははじめまして。 Spiegel と申します。 簡単なプロフィールはこちら

長いこと広島市に住んでいたのですが4年前(1998年末)に生まれ故郷の松江市に 撤退 おっと転進しまして,以後は「死の行軍」で本当に死にそうになることもなく,かといって歓楽街で夜遊びすることもなく,比較的のんびり暮らしています。 (体調面の不安もあり)帰郷直後は IT 業界への復帰を諦めていたのですが,幸運にも拾ってくださった地元企業がありまして,こちらにも帰ってまいりました。

今回参加する Advent Calendar は「せっかくだから、ゆるっと記事を書いてみませんか?」ということなので,アドバイス通り,ゆる~く行きたいと思います。 とはいえ,特に後半の話は以前から書きたかった内容ですので「年寄りの冷や水」という感じで眺めていただければと思います。


プログラミング言語にも「母国語」と言えるものがあります。 たとえば「数学ガール」シリーズやデザパタ本などでおなじみ結城浩さんの「連ツイ」にも以下のような記述があります。

プログラミング言語との付き合い方というのはいろいろあってですね。自分の母国語という言語はある。それから現在学んでいる最中の言語というのもある。そして、仕事用の言語やら、他の人とのコミュニケーション用言語というのもある。そのあたりは、自然言語とちょっと似ている。

ITな業界で仕事をしているひとというのは、だいたいそういう感じでプログラミング言語とつきあっていると思っている。たった一つしかプログラミング言語ができないという人は少なくて、二つくらいは読み書きできる。三つ四つくらいはなんとなく読むのはできる。五つ六つくらいは何のソースか言える。

私の場合は出自が組込みソフトウェア・エンジニアなのでアセンブラと C 言語が「母国語」と言えるものでしたが,2015年頃から趣味で Go 言語を習い始めまして,近年は Go が「母国語」になってきています。

物凄く簡単に言うと,昔は

package main

import "fmt"

func main() {
    fmt.Println("hello, world")
}

を C で書いたらどうなるかというのを脳内でほぼ無意識に「翻訳」してましたが,今は逆に K&R の

#include <stdio.h>

main()
{
    printf(hello, world\n);
}

を Go で書くとどうなるか,という感じでしょうか。

仕事で様々なプログラミング言語を渡り歩いて来ましたが「母国語」が変わるほどのインパクトは初めての経験で,今も楽しく Go で遊んでいます。 願わくば,もう少し仕事に繋げられるといいのですが。

閑話休題 (それはさておき)

2020年のパンデミック宣言以後なかなか収まる気配のない COVID-2019 ですが,おかげさまというか何というか,いわゆる「リモートワーク」が普通になりつつありオンライン・イベントもたくさん開催されるようになったのは,田舎に引っ込んだ身としてはありがたい機会でした。

特に『プログラミング言語Go』や『Go言語による分散サービス』の翻訳者でもある柴田芳樹さん主催のオンライン読書会は勉強になっています。

その柴田芳樹さんのブログ記事で興味深いものがありまして。

この記事で示されている図

ソフトウェアエンジニアの成長カーブ(2):柴田 芳樹 (Yoshiki Shibata):SSブログ

にはなかなか考えさせられるものがあります。

この図が示すのは,会社から与えられている仕事に慣れて自律1 的に「学ぶ」ことを止めてしまうと,手持ちのスキルは(時代の流れで)先細りし,さらに学習習慣が失われることにより新たな技術・スキルを得る機会を逸してしまうため,全体としてスキルレベルが低下してしまう,というものです。

特に日本企業は従業員の「今」のスキルレベルに合わせて「できそうな仕事」を見繕って割り振る傾向があり,所属部署から与えられる仕事をこなすことに満足しているとあっという間にスキルが先細りしてしまう,というような話を読書会でもしていました。

この辺は私も耳が痛い部分があります。 お金をもらって技術とスキルを発揮するプロのエンジニアであれば,いくつになっても何処にいても,学ぶ姿勢と習慣を捨ててはいけないということでしょう。 でも,どうせなら楽しく学びたいものです。

僕たちは好きで学んでいる。
先生を待つ必要はない。授業を待つ必要はない。
本を探せばいい。本を読めばいい。
広く、深く、ずっと先まで勉強すればいい

ブックマーク

参考図書

photo
プログラミング言語Go
アラン・ドノバン (著), ブライアン・カーニハン (著), 柴田芳樹 (著)
丸善出版 2016-06-20 (Release 2021-07-13)
Kindle版
B099928SJD (ASIN)
評価     

Kindle 版出た! 一部内容が古びてしまったが,この本は Go 言語の教科書と言ってもいいだろう。感想はこちら

reviewed by Spiegel on 2021-05-22 (powered by PA-APIv5)

photo
初めてのGo言語 ―他言語プログラマーのためのイディオマティックGo実践ガイド
Jon Bodner (著), 武舎 広幸 (翻訳)
オライリージャパン 2022-09-26
単行本(ソフトカバー)
4814400047 (ASIN), 9784814400041 (EAN), 4814400047 (ISBN)
評価     

2021年に出た “Learning Go” の邦訳版。私は版元で PDF 版を購入。 Go 特有の語法(idiom)を切り口として Go の機能やパッケージを解説している。 Go 1.19 対応。

reviewed by Spiegel on 2022-10-11 (powered by PA-APIv5)

photo
実用 Go言語 ―システム開発の現場で知っておきたいアドバイス
渋川 よしき (著), 辻 大志郎 (著), 真野 隼記 (著)
オライリージャパン 2022-04-22
単行本(ソフトカバー)
4873119693 (ASIN), 9784873119694 (EAN), 4873119693 (ISBN)
評価     

版元のデジタル版を購入。 Go で躓きやすい点を解説していくのが最初の動機らしい。「◯◯するには」を調べる際にこの本を調べるといいかも。

reviewed by Spiegel on 2022-10-26 (powered by PA-APIv5)

photo
Go言語による並行処理
Katherine Cox-Buday (著), 山口 能迪 (翻訳)
オライリージャパン 2018-10-26
単行本(ソフトカバー)
4873118468 (ASIN), 9784873118468 (EAN), 4873118468 (ISBN)
評価     

Eブック版もある。感想はこちら。 Go 言語で並行処理を書くならこの本は必読書になるだろう。

reviewed by Spiegel on 2020-01-13 (powered by PA-APIv5)

photo
Go言語による分散サービス ―信頼性、拡張性、保守性の高いシステムの構築
Travis Jeffery (著), 柴田 芳樹 (翻訳)
オライリージャパン 2022-08-03
単行本(ソフトカバー)
4873119979 (ASIN), 9784873119977 (EAN), 4873119979 (ISBN)
評価     

版元でデジタル版を購入。読書会の課題図書。ハンズオンぽい構成でコードがたくさん書かれているのがよい。

reviewed by Spiegel on 2022-08-03 (powered by PA-APIv5)

photo
Goならわかるシステムプログラミング 第2版
渋川よしき (著), ごっちん (イラスト)
ラムダノート 2022-03-23
単行本(ソフトカバー)
4908686122 (ASIN), 9784908686122 (EAN), 4908686122 (ISBN)
評価     

第1版はとてもためになる内容だったので第2版も PDF 版で確保しておく。

reviewed by Spiegel on 2022-10-08 (powered by PA-APIv5)

photo
デベロッパーゴースーパーゴラン Tシャツ
Geek Go Super Golang Tees
ウェア&シューズ
B09C2XBC2F (ASIN)
評価     

ついカッとなってポチった。反省はしない

reviewed by Spiegel on 2022-04-10 (powered by PA-APIv5)


  1. そろそろ、人工知能の真実を話そう』によると「自律」というのは元々哲学用語で「自らが行動する際の基準と目的を明確を持ち、自ら規範を作り出すことができることをいう」のだそうです。 ↩︎