組める人間と読み解く人間の差

おはようございます。
Hiro_Matsunoです。
今回書きたいことはプログラムを組める人と読み解ける人は違うってことです。

プログラムが組めるとは

プログラムが組めるとはプログラム言語が使っているアーキテクトを理解出来それ通りに組むではいけません。
プログラムが組めるとはプログラム言語を理解し更にその先へ進化させお手本いらずにしっかりと動くロジックを書けることをいいます。
答え通りにかけても意味がありません。
そこからどうやってお客様の要求事項に合わせていくかがプログラムが組めるか組めないかの差なんです。
要は本来のプログラム言語の通りに組むだけではなくアレンジできる人が実際のプログラムの組める人だということになります。
実際にそうなる人はなかなかいません。
なぜならお手本が全てと思ってしまってる人が大半だからです。
そこから以下にアレンジし仕様どおりに近づけれるかを試せる人のことだと思います。
そうならなければならない理由はお客様の求めることをしっかりと理解した上でそのシステムを作り上げるために必要な技術だからです。
これができなければお客様のクレームに上がってきます。
俺はこう組みたいじゃないんです。
しっかりとプログラムの仕様とお客様の要求をすり合わせてシステムを作り上げられる人のこといいます。

プログラムが読める人とは

プログラムの読める人はプログラム言語を読むことが出来る人でプログラムを勉強中などの人を言います。
実際に言えばプログラム言語はわかるけど実際には組めない人のことをいいます。
実際に言えばロジックはわかるけどプログラムを書いたことがない人のことをいいます。
アーキテクチャはわかっているんですが実際にプログラムを書いてもらうとわかるのですがどこにライブラリがあるのかとか実際の参照元のプログラムが存在しているのかがわかっていません。
どこを見ているのかと言うとプログラム本体ばかりを見て全体を見ていないんです。
これではプログラムなんてかけますと言えますでしょうか。
そうではないと断言しておきましょう。
アーキテクトとはプログラムは組めなくても設計ができる人のことをいいます。
むかしのインフラエンジニア時代の私がまさしくこのアーキテクトだったとも言えます。

なぜこの差が生まれるのか

なぜこの差が生まれるのかと言うと本一冊読んでもプログラム言語の全体像なんてものは見えてこないからです。
本一冊写経をしアレンジして自分なりのプログラムを書いてみない限りは組めたとは言えないんです。
正直Pythonをマスターしたときには完璧にアレンジできるまでガリガリとプログラムを書いたものです。
読んだだけでは理解できているとは言えないんです。
読んでプログラムを理解しアレンジしプログラミングする能力がある人とその前で脱落する人といるということになります。
諦めては意味がないってことです。
C#も実は理解はできていたのは以前Javaを組んだことがあったからなんです。
Javaはいろんなコンピュータで動くようにロジック構造しています。
C#も同じ構造的なプログラムだったからです。
同じような言語がある場合はかんたんに理解が出来るようになります。
PHPとTypeScriptだったりPHPとC++だったりすることもあり得るってことになります。
なぜPHPはベースになり得たかと言うと元々の言語がC++またはC派生だったことに起因するんです。
最近のJavaScriptは本来の書き方から実際のクラスも書ける言語に派生しました。
その時組めなかったことがあったんですが原因はLaravelを理解できていなかったことに起因します。
LaravelとはPHP7/8系から派生したライブラリーで非常に現在のJavaScriptの書き方に似ています。
Laravelを理解できればEcmaScriptやTypeScriptも理解できるわけです。
いろんな派生することがわかってくるとすんなりプログラミングが出来るようになってくるわけです。
これができないのは何故というと一つの言語に吐出すぎているからとも言えます。
あとは読んだだけYoutube見ただけの人に行っておくとこれでは理解できたとはいいません。
実際にプログラミングをしなければ何も理解できないんです。
要は書いて覚えろってことです。
これができなければできないところで止まるだけのことです。

私も実際突然ワークショップで生徒で行ったのによく仲間に巻き込まれメンターしたことが何回かあります。
実際に言えることは書ける人とかけない人の差は実際にプログラミングをしまくっている人仮想でなくただ読んだだけの人かということです。
私もよく海外文献も読んだりしますけど英語は理解できてます。
書くのはできないのでDeepl翻訳の力を借りることが多いです。
なぜなら英語はここ最近書いていないからかけないんです。
これとよく似ていると思いませんか。
5ヶ国語理解できますと言いながら喋れない人も多いし英語すら話せない人も多いことも理解できますよね。
プログラミング=話すということなんです。
ここの理解ができていないと行けないと思いますね。
最近の大学生がよく陥るのは一回ロジック書いただけで覚えた気になってしまっているんです。
これではIT企業では1から学び直しになります。
IT企業はフレッシュな即戦力がほしいわけですからしっかりとプログラミングできるようになってからインターンに行ってもらいたいと思っています。
そうじゃないとインターンシップのメンターはいつも困るだけの存在になってしまいます。
それが仕事というわけではなく自分の仕事も抱えながら教えてくれていることを忘れちゃいけません。
インターンシップのメンターには頭が上がりません。
なぜなら忙しいさなかに教えながら自分の仕事をするわけですからね。
それをハッカソンにも求めてはいけません。
なぜなら時間がない上一気にいろんな事を進めないといけないので全然余裕なんてものはありません。
学びの場ではなくハッカソンは実践の場と言えます。
このあたりも気をつけないとチームリーダーに怒られることあるので気をつけましょうね。
俺もよく怒鳴りつけてました。

Hiro_Matsunoでした。

また。

ここから先は

0字

これは私の今までのハッカソン・エンジニアリングワークなどで得た知見等を書いていくものになります。 特に苦労しそうなことを書いていこうと思い…

この記事が気に入ったらサポートをしてみませんか?