guntamania

プログラミングできない民

[2019-01-04 Fri]

2019年になった。 2018年に始めたわけだから、なんだかんだ1年続いたことになる。 アクセスは相変わらずほとんどないが、 まあ、継続はできたわけだし、うまくいったということで、自己肯定感を上げて行こう。

与太話で、 「全くのプログラミング初心者にプログラミングを教える場合、どうすればい いか」 という話題が持ち上がった。 例えば友人なんかが 「プログラミングっつーものが流行ってて、簡単に儲けられるらしいやん。 ちょっと教えろや」 なんて言ってきた場合の話である。

まず、おそらくプログラマで一致する意見は 「(ぐぐればいくらでも情報が集まる時代のに、 聞いてくる時点でお前の学習意欲はたかだかしれている。 そんなお前にプログラミングは向いていないし、 まかり間違ってITエンジニアなんかになったら、 ブラックSES企業で鬱になるのが関の山なんだから、やめておけ。 まあ、万一俺が無職になってやることなくなったら、 有料で教えてやるから) またこんどな。」 ぐらいの感じだろうと思う。

それでも仮にその人がおそろしい金持ちか命の恩人かなんかで、 教えなければならない状況になったら、 どういうふうに教えていくのが正解か。

そういった人に

#include <stdio.h>
int main() {
  printf("hello world\n")
}

と打たせるのは明らかに間違っている。 これは多分彼らのやりたいことではない。 真っ黒なコンソール画面にいくら複雑なロジックを組んだとしても、 おそらく彼らの興味は惹けないだろう。

かといって、 教材のようなゴテゴテに初心者向けに組んだ ロボット教材のような環境は、幼稚すぎるんだろう。

多分彼らはWebとかAIとかIoTとかゲームとか、そういったことをやりたいのだ。 コンソールだと、自分たちの知っているGUIは出てこないし、 プログラミング教材は高度な最先端ビジネスにつながる未来が想像しづらい。

僕ならばJavascriptをいじらせておいて、お茶を濁すのではないだろうか.. 特に開発環境やIDEを必要とせず、GUIも簡単に表示できる。 複雑な設定も必要としないので、 おうちに帰っても簡単に復習することもできる。 また、現場でももちろん使われているし、 ビジネスにもつながる様子を想像できる。

Javascriptは実のところ、結構難しい言語だ。 構造化するとすぐに人間の理解を超えてしまうので、 Alt-JSがすぐに必要になってくるだろう。 それでも入門むけにナイーブな実装をしていくには、 割と適しているのでないかと思う。

こうしてみっちり導入できたとして、今後どうなっていくのだろうか。

プログラミングができる人間とできない人間の間には 大きな「壁」が立ちはだかっているらしい。

お前は絶望的にプログラミングに向いてないから諦めて刺身にタンポポ乗せる仕事でもやってろ | note

大学4年間と大学院2年間プログラミングやったやつでもできないし、 会社で毎日8時間を数週間プログラミングについやしてもできないやつはできないし、 そもそも人類というのはプログラミングできない可能性がある。

ただ、この「プログラミングできない」というのは 一体どの程度を指すんだろうか。 できるプログラマだと「ああ、ポインタって理解に時間かかるよね」 とか、 「再帰ってコツいるよね」 とか思うかもしれない。 ただ衝撃的なことに、彼らは非常に簡単なFizzBuzz問題ですら 解けない可能性があるとのことだ。

Why Can’t Programmers.. Program? | Coding Horror

驚くべきことにコンピュータサイエンスの修士号や博士号をもつ応募者でさえ、 大部分は基本的なプログラミング問題を解くことができない。

簡単すぎるからといって、 採用面接からFizzBuzz問題を取り除くのは良くないだろうと思う。 私の経験上、シンプルなプログラミングの問題すら解けない面接者は 非常に多いのだ。

僕も転職活動中に、ホワイトボード上にコーディングする問題が 出されたことがあった。 さすがにFizzBuzz問題のように簡単なものではなく、 データ構造やアルゴリズムの基本問題であった。 実際解けない応募者は多かったとのことだ。

このプログラミングの「壁」は乗り越えられる壁なんだろうか。 それともプログラミング能力は先天的にそなわるものなのだろうか。

その答えはわからない。

しかし願わくば、気弱そうな職業プログラマに 「ねえねえ知ってるなら教えてよ!」 の連続で終始するプログラマにならないでほしい。

プログラミングは常に好奇心と探究心によって向上する 知的活動の具現化なのだから。

退職した

[2019-01-09 Wed]

本日が最終出勤日だった。

散々ここのブログでも愚痴ったかもしれないが、 あとから振り返ると、結構恵まれていたかもしれないとも思う。

ただ、自分のスキルの向上を加速させ、 目指しているキャリアを手に入れるためには仕方なかった選択だとも思った。

まあ、今後どうなるかはわからないが、 この選択が正解だったと思えるよう、今後のキャリアを頑張っていこうと思う。

Androidキャッチアップ中

[2019-01-14 Mon]

ってなわけで、引き続きAndroidのキャッチアップをしなくてはいけない。 前から思うけど、普通に作るぶんには新しいAPIとか、 パーミッションの変更とかを追っていけばいいんだけど、 設計面のキャッチアップは結構難しい。 とりあえず動くものだけを作っていくとなかなか追いつかないからだ。

浦島太郎の僕には以下が結構参考になりそうだ。

2019年1月におけるAndroid開発状況

androixかあ。こいつを今後使っていくことになるんだろうか。 たしかにSupport Libraryが乱立状態だったからなあ。