独学で学ぶ

プログラミングはどこまでできればいい?アプリ作るまでが到達点

記事内に広告が含まれています。

「プログラミングは、どこまでできればいいのか?」気になっている人も多いと思います。

プログラミングの到達点
  • レベル1:if文・for文・case文などの構文が一通り書けること
  • レベル2:オブジェクト指向が理解できる(後回しでもよし)
  • レベル3:プログラミングだけでなくSQLが書けること
  • レベル4:プログラムのバグが直せること
  • レベル5:1つのプログラミング言語でWebアプリが完成すること

最終的なゴールは、レベル5の「アプリを作ること」ではあるのですが、そこまでを分解するとレベル1~4まであります。

すでに学び始めている人であれば、独学の人も、スクールに通ってる人も、自分はどこの部分を学習しているのか?を意識してみてください!

プログラミングスキル的には、レベル5までできて、ようやく「基礎が身に着いた」と言えます。

プログラミングはどこまでできればいい?アプリを1本作るまで

冒頭で挙げた「レベル5」までできれば(アプリが1本作れれば)、今後も調べながら解決できるレベルが身に付いているようになるかと。

もうここまでで、いっぱいだ!

むしろ、そこまで行けるかすら不安

と思うかもですが。3~6か月粘り強くやれば、大丈夫です。

レベル5までたどり着くのに独学で6か月~1年、スクールだと最短で3か月

プログラミングの基礎を身に付けるのにかかる時間

独学でやる場合、「レベル5:Webアプリが完成すること」までたどり着くのに、いちばん早くて6か月、1年かかるのも普通

スクールを選べば学習時間を短くできる

そんなに時間かかるのは、ちょっとなぁ。少しでも時間を短く!

と思ったなら、プログラミングスクールに通うことも検討。

例えば、テックアカデミーCodeCampが有名です。

AIで有名なPythonが学べるAidemyなどのスクールに通えば、3~4か月でプログラミングを覚えることもすることも可能です。

【関連記事】バックエンドエンジニアになるには?スクールのおすすめと3~6か月後に転職するための具体的な方法を解説

一通りコーディングができた後は、社会人として当たり前の能力が重要に

そして、独学orスクールで「基礎が身に付いた」(Webアプリが完成した)として、その先の実際の業務で求められるスキルの話も少しすると。

社会人が未経験でエンジニアになる場合の自己PRできるスキルは3つ」でも書いてある、コミュニケーション能力や、スケジュール管理能力といった、そつなく仕事をこなすスキルのほうが大切になってきます。

このことは、頭の片隅に置いておくとして、まずはプログラミングの基礎、レベル1から身に着けるところからですね!

【レベル1】if文・for文・case文などの構文が一通り書けること

プログラミングは、まずは構文です。

そりゃそうだ

と思うかもですが少なくとも、Java・Python・Rubyのどれを選んでも、使われるような文法は必要です。

覚えておきたい文法

  • 【if文】プログラムの条件分岐(もしAだったら、Bする)
  • 【switch(case)文】if文よりピンポイント。イメージは月曜日、火曜日、・・・ごとの処理(Pythonは、存在しないのでif文で代用)
  • 【for文】繰り返し処理。決められた回数分、処理をくりかえす
  • 【while文】繰り返し処理。ファイルの読み込みとかでよく見る
  • 【小数点の計算】業務システムで、金額やグラム数の丸め誤差を出すと大問題。四捨五入の書き方とか、変数の型(int, long,Double,BigDecimal)の精度を理解するべき
  • 【時間の計算】ミリ秒やマイクロ秒の扱い。小数点と同じく正確に扱う必要あり

これらの構文は使わないと忘れてしまう部分もあるけど。

調べたら書ける状態にしておきたいです。

※筆者は、小数点や時間の計算(JavaであればBigDecimal)は、いつもググりながら書いてます。エラー(とくに四捨五入や無限小数など)や、計算ミスが出ないようにテストも入念に行い「安全第一」で作業するのが大切。

時間はかかるけど腰をすえて。1度書いただけでも全然違う

・・・ただ、初めての人からすれば難易度は高く。つまづく人や、時間かかる人も多いので。

先が長い。いつになったら次に行けるんだ!

と焦るかもしれないけど、1回でも書いたことがある/ないでは、ちがいは大きいです。じっくりと取り組んでください。

【関連記事】プログラミングが続かない。勉強がつらい場合に考えたいこと

はじめの基礎の部分だからこそ、しっかりと。ここを乗り越えれば、楽しくなってきます!

【レベル2】オブジェクト指向が理解できる(後回しでもよし)

お次は、オブジェクト指向です。

クラスの概念、継承、インターフェースあたりは理解しておきたいところ。

クラスと継承、インターフェースの概念がオブジェクト指向

  • 【クラス】概念そのもの。「自動車」クラスみたいな感じ
  • 【継承】Javaだとextendsがキーワード。「学校」クラスを継承して、「私立学校」クラスと「公立学校」クラスを実装するイメージ。
  • 【インターフェース】Javaだとimplementsがキーワード。「自動車」クラスには、エンジン・アクセル・ブレーキ・ハンドルの4つは必ずあるので、4つ分の処理は必ず実装する感じ。

※こう書いてるけど、筆者自身も完ぺきに理解はできていません 汗。

大事だけど時間をかけすぎるのもよくない

ただ、実際の業務では、あまり意識せずとも書けてしまったり。

他の人のソースのコピペでなんとかなる部分もある(継承やインターフェースなら、全プログラムで共通で使うクラスで規約化されているるパターンが多い)ので。

時間をかけすぎるのはよくないです。

後回しでもなんとかなるので(実際に口にしたら怒られるからダメだけど)、さらっと下記の記事には、目を通しつつ。

Javaであればextendsを見たら、extendsされてるクラスのソースを読んで。

あぁ全機能で使う●●機能が実装されているんだなぁ

みたいになれば、ひとまずよし。

※現役エンジニアの方が読むと「オブジェクト指向が後回しなんてとんでもない!」と、思うかもしれませんが。

開発メンバー全員が使う共通クラスを作るような立ち位置になったときは、継承やインターフェースを知らないと実装できないけど、その仕事を任される頃には、調べて解決する実力が身についているはず。

ということを考えると、「優先順位は高いようで低い(最悪、後からでもなんとかなる)」と筆者は考えます。

【レベル3】プログラミングだけでなくSQLが書けること

レベル3は、Java・Python・Rubyのバックエンドの言語から、少し変わって、SQLのお話。

SQLで何をするかと言えば、データの入れ物の役割をする、データベースの操作ができることです。

データの操作は必須

例えば、ネットショップで

  • 会員情報(ログインID、パスワード)
  • 商品の在庫や価格
  • 購入履歴(買った商品はつねに履歴として残る)

みたいなのは、データベースで、文字通り「データ」として管理。

ユーザーが入力した情報をもとに、データベースの検索や、登録、更新、削除を行えるようになる(Aさんが買い物したら購入履歴を登録し、商品の在庫をマイナスする)ことは、必須です。

SQLでデータを操作するので構文を覚える

データベースの操作(データの登録・更新・削除・抽出)をするためには、SQLというものを使います。

SQLで使う構文
  • insert文(登録)
  • update文(更新)
  • delete文(削除)
  • select文(データの選択。一番むつかしい)
    ※where(条件のしぼり込み), left join(テーブル同士を結合), union(複数のselectを結合), group by(集計), having(集計後のフィルタ), order by(並び替え)は、使いこなす
  • create(テーブル作成)・drop(テーブル削除)

実際の業務では、select文が100行以上(マジです)になったりすることもあるけど(「意味わかんない」ってなりながら、がんばって読み解くもんです)。

ひとまずは、上に挙げた5つが、10~20行程度でもいいので書けるようになってれば、よしです。

【レべル4】プログラムのバグが直せること

次にやるべきことは、バグが直せることです。

バグは、プログラムを実行したときに、予想していないエラーとなること。

なんとかプログラムを書いて終わりでない

さて、JavaなりPythonなりで、プログラムを書いて。

「オブジェクト指向も、業務で必要になってくるんだなぁ」とぼんやりと理解。

数十行のSQLが書けて、ほしいデータを取ってきたり。

画面で入力した内容をデータベースに登録・更新ができるようになったとします。

一通り完成したように見えて、終わりでないのが、プログラミングです。

色々と入力するとエラーになると思うよ

「作ったプログラムに欠陥なんてない。完璧さ♪」なんてことは、1発目ではまずありえません。

「色々と入力するとエラーになる」前提で、1つ1つ修正をしていきます。

例えば、金額を入力する画面があったとして、「a円」と入力したり(数値に文字を入れたり)。

あとは、数量を入力するところで、「1,000,000,000」みたいな、バカでかい数を入れてみたり。

もし、エラーになったら、1つ1つ直します。全部です。

そして、業務では、「テスト項目表」なるものを作って、OKになるまでテストが続きます

「他の人が作ったプログラムと一緒に動かしたときに、お互いがケンカしてエラーになる」なんて、あるあるです。

繰り返しますが、 「色々と入力するとエラーになる」前提で、1つ1つ修正をしていきます。

【レベル5】1つのプログラミング言語でWebアプリが完成すること

さて、色々と入力をして、ある程度バグもなくなれば。

そこで、ようやくWebで動作するアプリの完成です。

あとは、追加機能を実装してみたり。画面のデザインにこだわってみたり。

ただ、「よし!完成だ!」と思うのでなく、学び続けることを忘れないでください。

【関連記事】転職してエンジニアになるにはプログラミングを学び続けながら活動するべき

最後に:ある程度プログラムが書けたら、その先は別のスキルが大切

「プログラミングがどこまでできればいいのか」のおさらいです。

プログラミングの到達点
  • レベル1:if文・for文・case文などの構文が一通り書けること
  • レベル2:オブジェクト指向が理解できる(後回しでもよし)
  • レベル3:プログラミングだけでなくSQLが書けること
  • レベル4:プログラムのバグが直せること
  • レベル5:1つのプログラミング言語でWebアプリが完成すること

ここまでで、3~6か月程度が、期間の目安。バックエンドの言語の基礎を身に付けます。

※独学なら6~12か月。スクールなら早くて3か月

【バックエンドエンジニアになるためのスクール】バックエンドエンジニアになるには?スクールのおすすめと3~6か月後に転職するための具体的な方法を解説

わりと苦労すると思いますが、これでようやくスタートライン。基礎を学んだことになります。

転職するにあたって、重要なことを最後に言います。

まだまだ業務レベルには、達していないことのほうが多いです。プログラミングは自己PRにしないでください。(聞かれたら、学んだことを答えればいい)

アピールするべきは下の3つです。

自己PRできるスキル
  • コミュニケーション能力
  • スケジュール管理能力
  • 自己解決力【最重要】

上記3つのスキルをアピールしつつ、そもそもの動機・熱意で、ゴリ押すのが基本。

ここまでできれば、企業側も興味を持ち始めるし。

あとはエージェントに細かい文章を添削してもらいつつ活動をすれば、内定の可能性も高まります。

学び始めたばかりだとつらいし、「もういいや」となることもあると思います。ただ、ここさえ乗り越えればプログラミングは楽しくなるし、エンジニアとしての熱意も出てくるので。

あきらめずに、踏ん張ってくださいね!

【次の記事】未経験転職の自己PRにプログラミングスキルは使える?3つのポイントをアピール

【次の記事】プログラミングが続かない。勉強がつらい場合に考えたいこと

当サイト推奨のオンラインプログラミングスクール

当サイトで推奨する、プログラミングスクール3社を紹介します。

転職保証コースがあるスクールも多いですが、料金が高いので。「転職活動は自分でするよ」という前提で、テックアカデミーとCodeCamp。

次にAIエンジニアを目指せるAidemy(転職保証あり)の順としています。

Tech Academy(テックアカデミー)

フロント・バックエンド両方の言語に対応。
わからない点はSlackで気軽に質問可能。
料金を考えてもコスパNo.1のスクール。
無料体験後なら全コース1万円引きになる。

CodeCamp(コードキャンプ)

フロント・バックエンド両方の言語に対応。
7~23時のスキマ時間にオンライン学習可能。
説明会参加後に全コース1万円引きになる。

Aidemy(アイデミー)

人気急上昇中のPython特化型スクール。
200~300時間程度オンラインで学習。
8日以内の返金保証付き。無料講座もあり。
※教育訓練給付制度を使い正社員転職で70%還元

コメント