プログラミング学習

プログラミング初学者がコピペエンジニアから卒業する方法

コピペエンジニア

プログラミング学習を始めたての頃は、既に出来上がったソースコードをとにかくコピペをしながらとにかくプログラミングに慣れていくという方法があります。

もちろん、最初のうちはそのような学習方法でも構いませんが、ある程度プログラミング言語の文法やWebアプリケーションフレームワークの知識が身についてきたなと感じてきたら、学習方法を徐々に変えていくことを意識した方が良いでしょう。

そこで、今回は初学者向けにコピペエンジニアから脱出する方法について解説していきたいと思います。

ソースコード一行一行の意味を読み解く

英語学習でまず単語や熟語・文法の基礎固めを行うように、プログラミングを習得するためにも、まず知識をひたすらインプットする必要があります。

そのため、最初のうちはソースコードを読んでも意味が全くわからないと思いますが、知識が増えてくると徐々に各ソースコードがどういう役割をしているのかを把握していかなければなりません。

  • このルーティングの記述は、どのコントローラのアクションを呼び出しているのか?
  • この変数の中身は何を表しているのか?
  • このメソッドの役割は?

実際の現場では、エンジニア同士のやり取りの中でソースコードをレビューしてもらったり、可読性(読みやすいコードを心がけること)を向上できるかといった議論を重ねる場面が多々出てきます。

そうした場面でソースコードの意味を理解できていないと、仕事内容を理解できていないということになります。

つまり、最終的には自分自身で記述したソースコードの中で意味のわからない内容をなくしていくことが必要なのです。

自分でロジックを組み立て設計する習慣をつける。

いきなり複雑なソースコードを読み解くと消化不良に陥ってしまうので、まずはプログラミング言語で簡単なプログラムを設計してみることをオススメします。

有名なのは、じゃんけんプログラムやFizzBizzプログラムといったものがありますね。

例えば、プログラムの組み立て方としては以下のように順序立てて頭を整理していきましょう。

  1. 全体の仕様を把握する。
  2. それぞれの流れや動作を分解してみる。
  3. プログラムに必要なメソッドを調べてみる。
  4. プログラムを書いてみる。

このロジックをじゃんけんメソッドに具体的に当てはめていくと、

スポンサーリンク
  1. じゃんけんとはグー・チョキ・パーでやり取りして、勝ち・負け・あいこの3パターンがある。(2人の場合を想定)
  2. もし相手がグーで、自分がパーならば、「勝ち」という結果を返すといったように1つずつ動作を分解してみる。
  3. 上記の動作だとif文と、それそれのメソッドを定義したものをまとめると出来そう。
  4. 実際に書いてみる。

といった感じですね。

上記の力を身につけることができれば、自分でプログラムを書くという習慣を身につける事ができます。

また、アプリケーション開発では、JavaやRuby・PHPといったオブジェクト志向と呼ばれるプログラミング言語を基に開発を行うことが大半で、これらの言語を使いこなせることが前提となります。

そのため、まずは自分で論理を構築していきながらソースコードを記述するという練習を習慣づけていきましょう。

ポートフォリオを作成してアウトプット重視の学習へ

プログラミング言語をある程度使いこなせるようになってきたら、Webアプリケーション開発でポートフォリオを作成してみると良いでしょう。

簡単な実装機能としては、CRUD機能がありますね。

CRUDとはCreate(生成)・Read(読み取り)・Update(更新)・Delete(削除)の略称でどのWebアプリケーションにおいても最低限備えている機能です。

これらを作成するためには、プログラミング言語の知識だけでなく、MVCモデルといったWebフレームワークの概念やデータベースの知識が必要となります。

MVC

ただ、CRUD機能はWebアプリケーション開発の実装の中でも最も基本的な考え方です。

これらをマスターすることでモデルからデータを取得したり、Webページを開くためにはどのようにルーティングとコントローラを記述すれば良いのかといったアプリケーション開発の基礎が身につけることができます。

コピペエンジニアの卒業は駆け出しエンジニアへ

エンジニアの仕事では、わからない事が当たる前のように出てくるので、常に仮説検証を繰り返す事が試される業務でもあります。

現場においてもサイト上に載っているソースコードをコピペする場面はありますが、当然内容を理解した上で使用する事が求められます。

上記で挙げたようなアウトプット主体の学習は、コピペエンジニアから駆け出しエンジニアへと進む第一歩となるでしょう。

ぜひご参考に!