![eyecatch](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHfxw3RhC_t8WzrrU3vnDJX8f1idzQ5j0Nh-N1pgq8FVHljeOF-dGB8RKsuQhAQJU9G-VfcAXhpftH4KBAq5-zoktK9XqGsGgHQnr3aZkwLO_JjCSzFXuiDbO99iFXA0UvP6XduXbFye-F5BKLq6zKioBLIQ-ig-t1O9RTsQiH9I2Zb9PfFSWxp06d/s1600-rw/1652827476_0.jpg)
プログラミングレベルは?と聞かれると「人並み」と答える、ユゲタです。
この質問って、何て答えたら適切なのか、いまだに不明なので、最も無難で、誰にも何にも指摘されず、何とでも受け取ってもらえるこの答え方、人付き合いにおいて気に入っています。
ビジネスプログラマーという人と、何かしらの交流会で初めて会って話をする時に、何かと「オレのプログラミングスキル高いだぜ」アピールをして、周囲をドン引きさせてしまっている人がいます。
一方、「自分、まだまだ全然できないですよ」と謙遜を上回って、卑下しまくりの人もいます。
どちらも、話をするとなんとなく合わない感じなので、改めて、こうした自己評価についての価値観も重要なエンジニアスキルポイントであると考えても良いかもしれませんね。
ネットで見かけて気になった文章
某鳥のさえずる、SNSで次の様なツィートを見かけました。
社内の優秀なプログラマが書いたコードがきれいですごいのはなんとなく伝わるものの、
彼以外が理解できずにちょっとした修正も彼しかできなくなっている。
私を含め周りのレベルが低すぎることが問題なのでしょうか?
これは、某オンライン・プログラミング・スクールの講師をしている人が書き込んだ文章ですが、なんとなく違和感があったので、
この文章についての自分の思考をまとめてみたいと思いました。
優秀なコード
要約すると、「優秀なプログラマが書いたコードがきれいですごいけど、周囲のだれもリファクタリングできずに困っている。」という事だと思うのだが、
優秀なコードであれば、修正とかリファクタリングとかする必要があるのか?という疑問と矛盾っぽい優秀なコードに違和感を覚えた。
修正しなければいけないコードを優秀としてしまっていいのかという感情がどうしても拭えません。
そもそも、優秀なプログラマという定義は、どういう定義なんでしょう?
これを書いた人から見てレベルが高いのが、その人の優秀という定義なのか?という疑問がどうしても消えませんね。
そもそも、そのコードは優秀ではないのでは?と考えて改めてツィートを読んでみると、納得感が生まれましtあ。
7行テトリスは優秀なコード?
もう一つ考えられるのは、セブンコードトライにおけるゲームプログラミングです。
超短いテトリスプログラム
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhepdtCXYEJE0yEuYS9uOALRPUqBPcY-7zfbEMspdWTOY2Q8kSmtCPlGrAt9IMeq0oUZLg3qAnku2t6vdb8_3E44D-c1E0WMrkX6WEzF9nZw_0HGE5o2fgSO_mVVpzz56XcT1rb6UWAnNzuAu5rTqNdQeyMX3bgu8jcvEE3G6GJwtqBMTc7UuWR5JkC/s1600-rw/1636413081_0.jpg)
以前書いたブログで紹介した7行のjavascriptでテトリスゲームを実現している行意的なプログラムコードで、
こうしたコードは、なかなか修正できないでしょう。
優秀なコードって、このレベルのことを言っているのかもという事も考えられますが、
こんなコードを仕事で書いてきたプログラマーがメンバーの中にいたら、優秀どころか、めちゃくちゃめんどくさいプログラマーというレッテルを貼られてしまうでしょう。
綺麗なコード
次に気がついたのは、綺麗なコードを書くという点は、優秀なコードとはイコールでは無い場合が多いです。
売れっ子漫画家の仕事デスクの周辺がゴミ溜めの様になっているのって、容易に想像できると思いますが、上手に動くプログラムって、必ずしも綺麗に描かれている必要もないし、
むしろ、難読化を施されたJavascriptの方が最近では一般的でもありますよね。
もちろん、開発段階でのソースコードは、インデントから何かしらのコーディグルールに基づいている訳なので、コンパイル(難読化)する前のコードって、それはそれでなんでもありな状態とも言えますね。
そもそも、コーディングルールは、可読性を高める為のルールなので、それがしっかりとしていれば、修正ができないほどの読みづらいプログラムコードにはならないような気がするんですけどね・・・
結論
所詮他人が書いたコードなので、それの優劣を判断するのって、どーでもいい話なんですよ。
今回のツィートでは、どんなプログラムかを提示されていないので、レベル感もわからなければ、目的も内容もどのくらいの綺麗さかもわからない状態なので、なんとも言えないというのが正直な感想なんですが、
少なくても、それが正常に動作するプログラムで、難読化のような状態であれば、リコンパイルするかのように、動作を追っていくという作業はまたパズルゲームのようで面白いという風にも感じますね。
7行テトリスも分解してコードを追っていくと、それはそれで、勉強になる点や、自分がこれまで書いてきた書き方に革命が起きる事もあるので、そうした他人コードの読み解きも、
プログラミングスキルアップにおいて、重要な要素とも言えますね。
と言うことで、改めて、プログラミングコードは、どんなに難しく読みにくく書かれていてもそれを読み解くことで、何かしら自分にとっての学習につながるということが分かりました。
今日も、色々なwebサイトをみて、おもしろい効果を表現しているページで、いったいどんなプログラミングが施されているかを、内容調査する学習を進めたいと思います。
0 件のコメント:
コメントを投稿