ITの実態

詳細設計なんて不要!Javaは写経してれば書けるって本当?!

未経験SEの壁

「未経験でもSEになれる!」なんて噓つき!!

未経験SEとして新卒で入社して1年、いまだにコーティングが苦手だなと感じているあなた、SEとしてコーディングをすらすら行いたいけど、正直どうやって上達すればいいかよくわかんないですよね…
経験者との間にウォールローゼの壁のごとく高く堅牢な壁が存在すると悩んでいるかもしれません…
ですが、ここからたった2つのことを意識するだけで、飛躍的にプログラミング技術を成長させることができます!

それは…

詳細設計のレベルを上げること!
写経なんてしないこと!

これを実践した私と同じく未経験の友人は、1年目ではとても苦手だったJavaのコーディングについて、2年目では他の同期社員に対して教える立場になるくらい上達し、しかもJava Silverという資格に合格したんです!

プログラミングの上達について


そもそもなぜコーディングが苦手なのでしょうか。大きく分けて2パターンあると思います。

前提となる知識不足
処理のイメージがつかない

知識不足の場合

①について、これは勉強するしかありません。
(最近ですと勉強しなくてもChat-GPTやCopilotなどに聞けば知識面は補えるかもしれません。)

本当に苦手なんですという方は、まず「基本情報技術者試験」という試験からやってみるのがよいと思います。
こちらは特定の言語に依存しないので、ベースとなる処理の知識を身に付けることができてオススメです!
下の記事にその勉強法などを載せていますので、ぜひ読んでみてください。

処理のイメージがつかない場合

こちらについて、この記事では詳しく解説していきます!
私がメインで使う言語なので、Javaについての話が多いですが、他の言語でも応用が利くやり方ですので、ぜひ参考にしてください!

詳細設計のレベルを上げる


詳細設計(内部設計)は、「コーディングを円滑に行うための設計書」です。「円滑に」というのがポイントですね。
そのため、多くのエンジニアは、

詳細設計なんて要らない
設計書を書くより実装優先

のようなことを言いますし、実際私の周りにもそういう人は多いです。

コーディングに時間かかるから設計さっさと終わらせたいんだよね…

こんなことを一度は思ったこともあるんじゃないでしょうか。
ですが!

コーディングに苦手意識があるあなたには、詳細設計をすっ飛ばすやり方は

ぜっっったいオススメしません!!

コーディングで書かれているものは、コンピュータのための言語です。
Javaにしろ、Pythonにしろ、Rubyにしろ、見た目は英語(に似た言葉)ですのでなんとなく読めてしまうのですが、やっぱり人間が読むにはわかりにくいんですよね…

その「わかりにくい言語」を人間が読んで簡単に理解できるようにしたのが、詳細設計書です。(もちろん日本語ですしね)
ですから、まず「あなたが簡単に読めるもの」をあなた自身が作れないと、それをコンピュータ用に翻訳するのなんて難しいに決まってますよね。

イメージとしては、高校生の漢文に近いと思います。
文章の漢字はなんとなくわかるけど、いきなり漢文は読めないですよね。
まず漢字に読む順番を振り、フリガナや送り仮名を付け、古文から日本語に訳し… といったステップが必要です。
途中のステップを省いていきなり日本語に訳すのは難しいですよね?

コーディングと詳細設計も同じです。何なら、コーディングという作業でやろうとしていることは、「日本語から漢文を作る」というような作業ですので、途中の工程をすっ飛ばすなんて無茶ぶりすぎます。

ですから、慣れるまで・苦手意識があるうちは丁寧に詳細設計書を作りましょう!
丁寧に詳細設計を行うことで、まず日本語でどういう処理をしたいのかが伝えられるようになってきます。

ここでif文使って、判定用にString型のaを入れて条件分岐して…

と考えるより、

ここで食べ物の種類がサラダなら1番目に食べる、主食なら2番目に食べる、おやつなら食べない

と書かれている方が、何をしたいか明確ですよね!
こんな単純ではないかもしれませんが、詳細設計書が作れるだけで、大きく成長できます!

「写経」しない


コーディングできないやつはまず一人で「写経」しろ!

よく、こんな言葉を聞きますよね…?実際に私も入社時に言われました。

・写経ってなに?
コードをひたすら書き写すこと。
お手本の実装を見ながら、とにかくそれを真似る・もしくは丸コピする。

はっきり言いますが、
「写経」でコーディングが上達するような人は、そもそもSEとしてのセンスのかたまりです。
どんな方法でも苦労せずにコーディングができるようになります。

「写経」の良いところは正解があることです。正解をほぼ書き写すだけですので、手早く行うには良いでしょう。
しかし、残念ながら学習や成長面では、一切効果がありません。
処理のイメージがわかないのに、正解だけ丸写ししても、コーディングは上達しないですよね。

これは、英作文ができない人に、ひたすら英語の長文を書き写させているのと同じです。
英作文をするには、単語の知識・構文の仕組みの理解が必要ですよね。その知識や仕組みを教わらずに、正解の文章だけ覚えても、何の役にも立ちません。

そのため、「写経」ではなく、実際に自分で考えて手を動かすことをとにかく行いましょう。
もし、正解があったとしても、その処理を見ずに一度自分で考えてみるんです。
わかんない部分は先輩に聞くもよし、GoogleやChat-GPTなどに聞くもよしです。
※生成AIに聞くときには、コードを貼り付けて「間違っている箇所を教えて」や「ここのメソッドでbooleanを返す方法を教えて」のように、何か具体的に聞くようにするといいですね!
そうやって、自分の頭で考えたものは忘れにくいですから、着実に成長につながっていきます。

まとめ


この記事のまとめは以下です!

コーディングの上達のために

①知識が圧倒的に足りない…!
→まずは最低限知識をつける
or AIなどを上手く使う!

②処理のイメージがわかない…!
→詳細設計を充実させよう!
「写経」じゃなく自分の頭で考えて実装する習慣をつけよう!

コーディングという作業は、なかなかハードルが高いのは事実です。初心者SE・文系SEにとって途方もなく高く思える壁です。
ですが、その壁を超えた先にはきっと素晴らしい景色が広がっていますし、コーディングができたときの快感は、SEをやっている中で何事にも代えがたいです!

ぜひ諦めずに頑張っていきましょう!
最後まで読んでいただきありがとうございます!