◆ New Entries

プログラミング中級者にありがちなこと。

中級者病(読み:ちゅうきゅうしゃびょう)とは、プログラミングなどを学ぶ際に、とくに中級者が陥りやすい精神疾患のことである。

初級者から中級者へ昇格する時期は、ほぼどんなソースコードでも読める程度にプログラミング言語に精通し、また偉いプログラマーの提唱したデザインパターンも一通り理解したくらいである。

すると、プログラミング言語の持つあらゆる機能と、偉いプログラマーの提唱するあらゆる技術を使わねばならないという思い込みが発生する。そしてHello Worldにまで崇高なオブジェクト指向や壮大なデザインパターンを適用しようとしだすのである。

その結果、* 大量のクラス
* 迷路のような変数渡し
* 底なしに深いネスト
などといった凄いものが生まれる。

また、条件分岐に三項演算子を乱用するなどの症状も多く見受けられる。

最終的には第三者にとって読みにくい保守性の悪いスパゲッティコードが生成されることになる。

職業プログラマーにおいて中級者病の症状が発症すると、仕様書の作成や単体テストなどの工程を省き、「○○日で完成させた」などと工期の短さを自慢するようになる。 また、そのような手抜きを前提とした見積書を作り、ライバル他社のお硬い見積書に対して「あそこの会社ボッタクリっすねぇw」などと営業しだす事が多い。

中級者病は教育環境に依存すると言われており、とくに教育した人間が悪いと好発しやすいと言われている。
金融系などのCOBOLの世界では、新入社員教育の一環として中級者病を防ぐ目的で「保守性」と「堅牢性」を第一に叩き込まれると言われる。
https://twitter.com/ProgrammingMono/status/441496520039211008


 
10 :
:2014/03/06(木) 18:03:13.08 ID:KKo365CH0
全部初心者ですよねこれ
中級者は言語やライブラリの機能を試したくて無茶をやる


12 :
:2014/03/06(木) 18:04:02.75 ID:8UrL3Zno0
テーブルのカラム名で1時間悩む

14 :
:2014/03/06(木) 18:05:10.51 ID:oiSo4iXp0
変数名が短い

17 :
:2014/03/06(木) 18:06:19.51 ID:+O22o3B/0
エクセル方眼紙を周りにも強制する。

24 :
:2014/03/06(木) 18:10:41.14 ID:Urpu6WT70
これは自称上級者の症状だな

26 :
:2014/03/06(木) 18:12:25.74 ID:mdCuGIhT0
見た目がキモい

33 :
:2014/03/06(木) 18:14:22.90 ID:8Yc1kPDV0
デスクトップをカスタマイズ
アニメの壁紙


35 :
:2014/03/06(木) 18:15:34.80 ID:n9HdtUOB0
そもそもほとんどのソースは再利用されないし
ソースの綺麗さは査定にも反映されないし
コメント書いても給料は変わらん

清書に金だすところもないから
資本主義的には正解


42 :
:2014/03/06(木) 18:19:27.42 ID:8Yc1kPDV0
ネトウヨを卒業したくらいの時期

45 :
:2014/03/06(木) 18:21:03.89 ID:q9FByHUc0
担当者が辞めたらメンテナンス不可能になるようなコードを書く

49 :
:2014/03/06(木) 18:22:32.49 ID:zM2D/53Q0
コードが長い方がすごいと思っていて俺頑張った自慢をする
読みづらく保守性が無い短いコードを書いてコード短い自慢をする


55 :
:2014/03/06(木) 18:24:55.30 ID:jCqLBHa90
ネスト地獄は経験あるわ
設計段階での一番スマートな解決方法はなんなんだよ


60 :
:2014/03/06(木) 18:29:12.53 ID:wMlGzJ3i0
>>55
ネスト地獄はクラスとか関数で回避できるだろ
コード検査ツール使ったら、循環複雑度が高いものは怒られるぞ


56 :
:2014/03/06(木) 18:25:31.81 ID:T0WfV3Hx0
>ほぼどんなソースコードでも読める程度にプログラミング言語に精通し、また偉いプログラマーの
提唱したデザインパターンも一通り理解したくらいである。

これ上級者だろ


59 :
:2014/03/06(木) 18:27:05.26 ID:W00A49m80
綺麗なコードを書くためのスローガン

昔「ダメなコードは捨てて最初から書き直せ」
今「リファクタリングを繰り返せ」

そのココロは案外変わってない


63 :
:2014/03/06(木) 18:32:44.84 ID:n9HdtUOB0
ってか何でソース全部見るような業務体型にしとるん?
不効率だろ

やりとりする関数やらAPIだけ決めて
後は他人の仕事に口出しせんようにしないと
時間いくらあっても足りないだろ


65 :
:2014/03/06(木) 18:33:55.20 ID:vHO5UkFo0
○○パターンを無駄に多用したがる

67 :
:2014/03/06(木) 18:39:54.11 ID:Urpu6WT70
・デザインパターンを使おうとしている
・オブジェクト指向を信奉している

この2条件のうちどちらかを満たせば
わけの分からない糞コードを量産するようになる

道具や概念に支配されて手段と目的が逆転してるからまともなものを作れる見込みが無い


69 :
:2014/03/06(木) 18:42:31.54 ID:fuXAo3JI0
以前の出向先に、まさしくこのタイプそのものなのが居たよ
仕様書書いてないのに複雑なネスト構造でイテレーター使いまくり
グレップかけても変数名まで同じにされてて、訳わからんスパゲティ


71 :
:2014/03/06(木) 18:43:25.69 ID:WUQ2CDba0
中級者は蛇足が多い
上級者のコードには無駄がない

中級者は知識が中途半端だからどれが無駄だかわからない


74 :
:2014/03/06(木) 18:44:44.68 ID:gqM4tUig0
ソースがドキュメントじゃあかんの?
どうせメンテしないだろお前ら


81 :
:2014/03/06(木) 18:50:50.12 ID:3c7iBcCg0
>>74
海外だとソースから自動でドキュメント起こすのがデフォ

IT土方の多い日本では、未だに相変わらず、手でシコシコ書いてとこが圧倒的多数


79 :
:2014/03/06(木) 18:48:19.19 ID:4rR+W3Ws0
見積書を書かせると激安
なぜか自分の人件費しか書いていない


96 :
:2014/03/06(木) 19:07:04.57 ID:V20jcUod0
オブジェクト指向はいいが、メンバ変数が手続き型のグローバル変数並に
常に気にしていないとメンバメソッドがまともに動かない。


102 :
:2014/03/06(木) 19:13:51.53 ID:gjeUn/mh0
グローバル変数を毛嫌いする

103 :
:2014/03/06(木) 19:15:44.17 ID:3S7Jj/sP0
>>102
そのくせグローバル変数ばりに複雑なメンバ変数を持つクラスを作る


104 :
:2014/03/06(木) 19:16:32.06 ID:QGMPQYAc0
オブジェクト指向って悪なの?
初心者だけどオブジェクト指向だるいからずっと避けてる
オブジェクト指向でプログラミングしてないからソース晒したら叩かれると思ってた


105 :
:2014/03/06(木) 19:17:22.21 ID:KqHcOw2C0
中二病のようなもんだなw

116 :
:2014/03/06(木) 19:32:10.59 ID:+6WTaW+L0
おれ初級者だから無問題

124 :
:2014/03/06(木) 19:44:16.88 ID:oOPDHDV90
最近趣味で始めてプログラム板に質問しに行ったら糞荒れてた 揚げ足としの応酬で酷すぎ
やっぱプログラムをやり続けるとあーなっちゃうのか 仕事にだけはしたくないなこれ


131 :
:2014/03/06(木) 20:17:15.72 ID:PDUKSS7n0
ずっと一人で必要な物を必要な技術だけ検索して作ってたから、
専門用語使われるとわけわからん
後で検索するとああ、あれのことかってわかるんだけど


134 :
:2014/03/06(木) 20:24:22.62 ID:iC6YMIdV0
かたくなに、かな漢字変換スタイルを崩さない

138 :
:2014/03/06(木) 20:31:20.51 ID:hPMHIU8G0
まともに理工系の勉強してないプログラマの中級者ヅラは草不可避

142 :
:2014/03/06(木) 20:37:07.60 ID:xT1SAAuD0
いちいち条件書くのめんどいならフットペダルとか使えばいいんじゃないの??

145 :
:2014/03/06(木) 20:39:02.53 ID:4lmeS5gU0
どうしても、設計→コーディングってのが出来ない
試行錯誤しながら少しずつ動くもの作って、最終的にはいい感じのプログラムにはなるんだけど
クラス図とかあれ何を表してるのかさっぱり理解できねーよ


152 :
:2014/03/06(木) 21:12:47.83 ID:zK6magrU0
独学初心者だけど一時期ハマって自分の必要とするアプリ作りまくってバグ取りして完成させて
3年ぐらい何も作らなかったらすっかり忘れててワロタ
自分の作った物なのにもう同じ物作れる気がしない


162 :
:2014/03/06(木) 22:21:53.63 ID:a46q93np0
脳内で仕様はパッと決められるけど、仕様書として書き出すのがめんどい
でもこれ作らないと引き継ぎで非常に困るんだよなぁ…


163 :
:2014/03/06(木) 22:24:41.48 ID:NF1BDxJk0
自社で2ヶ月ダラダラ自習してたら
大手ソシャゲに売られたけど
コピぺでなんとかしのいでるけど
もう無理だと思う


164 :
:2014/03/06(木) 22:26:09.77 ID:9CmKFqdL0
エクセルの式は、三項演算子の拡張版
これでなんでも書ける
三項演算子を否定するのは、Cのマクロ絡みで三項演算子に泣かされた古参(おっさん)だけ


176 :
:2014/03/06(木) 22:50:25.39 ID:vc7QqLhD0
>ほぼどんなソースコードでも読める程度にプログラミング言語に精通

実際には文法を完全にマスターしてても
業務知識がないと殆どのソースコードはちんぷんかんぷんなんだよな
官公庁のシステムとか日立やNTTデータのベテラン技術者以外はどんなスーパープログラマでも全く理解不能だからな


180 :
:2014/03/06(木) 23:01:44.79 ID:q9RegHmh0
>>176
だからコメント必要なんだよな
「コード読めばわかるっしょwww」とか言ってる奴は自称中級者の無能


183 :
:2014/03/06(木) 23:04:19.91 ID:NR9GRw8c0
中級者の言う可読性の高いコードって、大体冗長なだけで読みやすくもないコードで
保守の際に、簡潔に書いたコードなら1個の仕様変更に対して1箇所の修正で済むはずなのに
2箇所も3箇所も修正させられるようなコード


194 :
:2014/03/06(木) 23:19:47.75 ID:ezqh+u160
全てグローバル変数
テーブルは横長
引数渡しは絶対禁止
表の結合は禁止
1行72カラムまで
よし


201 :
:2014/03/06(木) 23:25:51.11 ID:NR9GRw8c0
出来のいいものを納期通りに納品すると、出来が良くて今後の保守は
スキルの低い奴でも余裕だからとすぐに仕事を切られる

出来の悪い物を納期遅れで納品すると、納品まで長く仕事を続けられる上に、
出来が悪くて他人が保守のしようがないからと
今後もお前が面倒見ろと言って、更に長く仕事が続けられる


216 :
:2014/03/06(木) 23:38:56.67 ID:NDc6iEwm0
中級者にありがちなことは

かなりのことが出来るようになって、かつ、この先もさらに奥深さがあること後見通せるようになって、最高にプログラミングが楽しくなる。

ソースは自称中級者の俺


225 :
:2014/03/06(木) 23:49:35.61 ID:tVuC1X340
よせばいいのにフレームワークを使いたがる。
そんな大それた規模のアプリかっつうの。


228 :
:2014/03/06(木) 23:54:21.91 ID:ivYUsY8P0
汚いコードを極端に嫌い、かえって効率が下がる

231 :
:2014/03/06(木) 23:57:09.22 ID:tVuC1X340
疎結合がいいと言われて意味もなく抽象度上げて
とんでもなく見通し悪くてメンテ不可能なプログラム
そこにもここにもほらあそこにも


238 :
:2014/03/07(金) 00:01:08.22 ID:OqQNwFzK0
中途半端に中級者レベルのプログラマより初心者の方が職業プログラマとしては使えるかもな

242 :
:2014/03/07(金) 00:04:14.60 ID:YOp0VeuZ0
日本の伝統文化じゃないの?
官僚が作る法律のベースとなる文章も日本語かよ?ってレベルだし


253 :
:2014/03/07(金) 00:17:22.45 ID:kQceJOSb0
プログラミングというかSQLだけど
無駄に結合させたり副問合せしてると
読むの面倒だからやめてください


260 :
:2014/03/07(金) 00:47:41.93 ID:a4PuKbUN0
お前らなんでもいいけどさ、絶対他人が読むと思ってコーディングしろ
すげーシンプルになっていいコメントも書ける。
複雑なのはね、シンプルが積み重なった結果なんだよ
糞コードのせいじゃない、わかれ


264 :
:2014/03/07(金) 00:51:33.91 ID:vH4MOvCV0
プログラミングの練習問題で感動した問題は分割統治法円周率を求める課題だな

(0,0)から(1,1)の正方形の中で4分円があると想定して、
四角が円の内部にあるならその面積を足して
外部にあるなら面積を足さないで
円周上にのってしまったらその四角をさらに4等分する課題

これほどまで勉強してる感のある課題にめぐり合えたことはない


275 :
:2014/03/07(金) 01:33:14.66 ID:cqeKc72i0
コメントだのインデントだのでグダグダ言う奴で
仕事ができるやつなど見たことがない
俺は決して話題にもしないわ


282 :
:2014/03/07(金) 01:40:34.82 ID:cqeKc72i0
艦これでbotでも作るのか?
botとかのチートツールは、見たことも触ったこともない奴がほとんどだから
こんなところで聞いても無駄じゃねえの俺も興味ないから知らん


287 :
:2014/03/07(金) 01:48:59.44 ID:yF5S1zmx0
オブジェクト毎にコメントをかけマジで
お前にしかわからないプログラムを書くな
せめてこの仕様の部分だよって書いとけ

母音抜くのやめろ
子の子からアンスコとか自分ルールはやめろ


305 :
:2014/03/07(金) 02:39:07.00 ID:x1iH1aiO0
一流のプログラマは芸術家のようなもんだからな
その人じゃなきゃ出来ないし誰もまねできない領域にいる

例えば、洋ゲーなんかだとプログラマの技術がいかんなく
発揮してるからものすごいものが出来る

日本人は人のまねでテンプレ物しか作れなくなったのは悲しい


関連記事

コメント

名無しさん2014/03/08 (土) 02:32:59 ID:-
まぁそういうのはあるだろうね
オブジェクト指向に関しては
その機能を活用する方法を編み出すか理解するかしていないと
既存のプログラムの手法をただオブジェクト指向機能で書くだけになって
可笑しな物になりやすい
オブジェクト指向は使いこなすと強力だけど
その使いこなしが極めて難しいから理解していない場合は素直に従来どおりのやり方にした方がよい
あえていえばオブジェクト指向は合気道みたいなもの
※自動フィルタが有効なので、禁止ワードが入ってるコメントは投稿できません…
※その禁止ワードは何か?管理人にもわかりません。FC2に聞いてください。
お名前
テキスト

トラックバック

トラックバックURL: https://newskenm.blog.2nt.com/tb.php/14585-f349e653