プログラミング初心者が最初にやるべきことは?独学で進める際の注意点
[最終更新日]2024/08/16
小学校で必修化されたこともあって、ここ数年で「プログラミング」という言葉を生活の中で聞く機会が増えてきました。
中高生のなりたい職業の上位に「プログラマー」や「システムエンジニア」がランクインするなど、プログラミングに関わる職種は非常に関心の高い分野となりつつあります。
ですが一方で、「これからプログラミングを勉強しようと考えているけど、何から手を付けたら良いか分からない」という人も多いのではないでしょうか?
目次
1)初心者がプログラミングの勉強でやってはいけないこと
プログラミングの勉強は、パソコンがあればどこでも行えます。
週末にコツコツと、学校や講座に通って短期集中など、ライフスタイルに合わせて勉強がしやすい分野と言えるでしょう。
ですが、学習の手段を間違えてしまうと途中で挫折してしまったり、学んだことが仕事で役に立たないといった「失敗のリスク」も多いのもプログラミングの特徴の一つです。
せっかく勉強するのであれば、効率よく勉強を進めていきたいものです。
プログラミングの初心者の人に「これだけは気を付けて欲しい」というポイントを4点お伝えします。
いきなりプログラミングを始めてしまう
「小学校でのプログラミング教育の必修化」のニュースなどでも誤解されている場合が多いのですが、プログラミングの勉強はいきなりプログラミングのコード記述から始まるわけではありません。
最初に、「プログラミングとは何か」を理解することが大切です。
プログラミングとは「プログラムを作る」ことです。
プログラムとは、コンピューターに作業の指示を出す手順書のようなものです。
つまり、コンピューターのことをある程度知っていなければ適切なプログラムを作れないということですね。
参考書を買ってそれに従ってプログラミングをしたところで、自分の作ったものがどういった仕組みで動いているのかが分からないままでは、あまり学んだことにはならないでしょう。教科書通りのことはできても応用が出来ないわけですから、知識として習得したことにはならないからです。
はじめてプログラミングを学ぶ際は、ITの基本知識などの土台についてしっかり記述されたテキストを利用するべきでしょう。そのうえでプログラミングの勉強に取り掛かる方が、圧倒的に理解の推進が速まります。
参考書を暗記しようとする
よく誤解されていることですが、プログラマーはプログラミング言語を完全に暗記して黙々とタイピングをしているわけではありません。
現場で働いているプロの人でも、Webサイトで検索しながら参考書片手にプログラミングを行っているなんてことも多々あります。
プログラミングの勉強で挫折する方々の中には、構文の隅から隅まで完璧に理解しようとしている人が多くみられます。
たしかに、構文を一字一句覚えて活用できれば完璧だと思います。しかし、使うプログラミング言語が変わればまた暗記をしなくてはなりません。
さらに、プログラミング言語のバージョンが上がれば今までの構文が変更になることも多々あります。これらを暗記し理解し続けることはプログラムの勉強の本質とは少し離れたものです。
プログラマーに必要なスキルは先に挙げたような単語や構文の暗記ではなく、「作業の流れを構築する力」です。
プログラミング学習においては、ひとまず「大体の挙動は理解した」程度で進んでしまって問題ありません。それらを反復して活用していくうちに少しずつ作法なども覚えていけます。
流行に乗ってしまう
プログラミング言語には非常に多くの種類があります。それぞれのプログラミング言語に得意な分野があり、目的に応じて使い分けられているのがIT業界の現状です。
多くの企業が採用しているプログラミング言語を題材に勉強をはじめれば勉強したことを活かして即戦力として活躍できるため一石二鳥です。
しかし、この考えは捨ててしまいましょう。最初に触れるプログラミング言語は、あくまでも勉強用と割り切ってしまうのが得策です。
なぜ一石二鳥のチャンスを捨ててしまうのか。それは「二兎を追う者は一兎をも得ず」となってしまうことの方が多いからです。
企業が多く採用しているプログラミング言語は、ITやシステム設計に関して高度な知識を必要とするものが多いため、プログラムの問題とITスキルの問題という2つの壁に直面してしまいます。
そのため、最初に触れる言語は比較的専門知識がなくても触りやすいPHPやPythonなど「スクリプト言語」と呼ばれる言語の中から選ぶことをお勧めします。
言われたことだけやって終わってしまう
プログラミングに限らず、何かを勉強するというときに共通していることですが、習ったことや見聞きしたことはその時点ではまだ「情報」に過ぎません。
その情報を自分で考えて使ってみた時にこそ「知識」として定着します。
独学で勉強を進める場合は、テキストどおりプログラミングの演習が終わった時にプログラミングを理解したと思いがちですが、一通り学んだあとは、自分で課題を設定してプログラミングを行い、学んだ知識を活用したアウトプットを必ず行いましょう。
このアウトプットのタイミングで、今まで漠然と点で理解していた内容が一気に関連づいていき一連の流れとして理解できる瞬間があります。
こうなってはじめて、プログラミングをスキルとして身に着けたと言えるのです。
プログラミングの勉強の目的はこの「なるほど!」と全体を理解する瞬間です。
今まで作ったものに小さな改良を加えるだけでも構いません。言われたことをやった後は、自分で考えて何かを形にしてみましょう。
2)要注意!私のプログラマー転職の失敗談
私のプログラミング初心者時期の失敗談:流行の言語から勉強して──
-
私がプログラミングの勉強に興味を持ったきっかけは、ITバブルの後で世間にSNSなどのサービスが出始めたタイミングです。
プログラムに興味を持った私は書店に走り参考書を買い漁りました。
業界でトレンドになっているものを学べば間違いないと考えていた若かりし日の私は、とりあえず流行っている言語を学ぼうとしました。
そしてチョイスしたのが「Java」というプログラミング言語です。しかしこの安直な選択が大失敗でした。プログラミングをするための環境設定が多岐にわたる。更にオブジェクト指向の知識などプログラミング以外に必要なスキルが多いなど、プログラムを作る前から受難の連続。
前提知識がないため「分からないところが分からない」「エラーが出るがどこを直せばいいか分からない」という八方ふさがりの状態になり挫折しました。
言語内で使うツールが多ければ多いほど、そのツールの知識も必要ですしトラブルのリスクも多くなります。最初に勉強する言語は、使うツールが少なく済む言語のほうが良いとその時に痛感しました。
結局、学校に入学してから最初に触れた言語はPHPというスクリプト言語でした。
PHPでプログラミングの基礎を理解した後でJavaの勉強を改めて行ったとき、以前の挫折が嘘のようにスラスラと理解することが出来ました。──「急がば回れ」とはよく言ったものだなと痛感したものです。
私の体験談:「とりあえず、プログラマーとして入社してしまえばなんとかなるだろう」と思ったけれど…。
-
私が希望した条件は、「実家から通えること」と「パソコンを使用した仕事」でした。
そしてその中の1社がプログラマー職として内定を出していただき、(プログラミングは初めてだけど、きっとなんとかなるだろう…)という想いから、その会社に就職することに決めました。
転職後の新しい職場で待ち受けていた状況は、酷なものでした。
実家からとても近く、通いやすかったのは良かったですが、とにかく上司が仕事を教えてくれない人だったのです。
プログラミングが初めての私にとっては、とても辛かったです。
どんな感じだったかと言うと、社内で使われているプログラミングについての本を1冊渡されて、
上司「1週間以内に覚えておいて、わからないことは忙しそうじゃない時に聞いてくれ」
と言われて、あとはほったらかしです。
私の体験談:入社した会社の仕事は、私のイメージしていた「プログラマー」と違っていた…。
-
プログラミングの仕事は以前から興味があり、独学で勉強をしておりました。
自分にとって興味がある上に報酬も比較的高く、将来性も見込めたからです。
それから、あるとき雑誌に投稿した自作ゲームが非常に評価されまして。
ネットでの評価も上々で、すぐに1,000ダウンロードからそれ以上になりました。
「──そうだ。ITプログラミングの仕事に就こう」
しかし転職してすぐ、
「もしかしたら、私が目指す方向とは違うのかもしれない」と思うようになりました。
どういうことかというと、最近はIoTなどの影響で開発業務にハードウェアも含むことになり、いわば「重厚長大型」の事業に変わりつつありました。
「重厚長大型」というのは、簡単に言うと重化学工業などの産業を指す言葉です。扱う製品が「重く」て「厚く」て「長く」て「大きい」から、こういうネーミングになっています。
IT事業と言えば、私にとって一番の魅力は「開発におけるフットワークの軽さ」でした。試験的な開発を繰り返し、トライ&エラーで品質を高めていく──そんなIT業界ならではの特徴が、今の会社から無くなりつつあったのです。
3)初心者がプログラミングの勉強で最初にやるべき5つのこと
目標を具体的に決めよう
「プログラミングの勉強をする」と一言で言っても、その分野は多岐にわたります。
例えるならば「アスリートになる!」と言って取り組む競技を組めていないくらい漠然とした目標設定になっています。
これではどんなに努力しても効率よくスキルを上げていくことはできません。
そこで、最初に目標を具体化することお勧めします。
「スマートフォンのアプリを開発してみたい」、「ゲームを開発してみたい」、「サーバーやネットワークなどのスキルを活かしてサービスを足元から支える技術者になりたい」など、学んだ技術で何をしたいか完成形をイメージすることで勉強すべき分野を明確にしていきましょう。
プログラミングはあくまでも「手段」でしかありません。
それを学んで何をしたいかが見えてくることでようやく向かうべき方向性が見えてくるのです。
そして、この目標設定にはもう1つの大事な役割があります。それは「挫折の防止」です。
漠然とした目標では勉強している中での成長を実感しにくいものです。
日々の成長を実感しながら着実にステップアップできるよう、具体的な目標設定をしましょう。
コンピューターについて理解しよう
皆さんが作成したプログラムはコンピューター上で実行されます。
コンピューターについて前提知識があると、プログラムを作成している中でトラブルが発生した際の原因究明や対策をすることが容易になります。
プログラマーとして就職することを考えても、必須の知識ですので最初に勉強しておくことをおすすめします。
コンピュータ・Web・OSの仕組みの学習におすすめの書籍
例えば、取得推奨を掲げている企業も多い「ITパスポート」の取得を目標に勉強するのも良いでしょう。
せっかく勉強するのですから、その成果を資格という形にすることで就職活動にも役立つのですから一石二鳥です。
ITパスポートの勉強をはじめて、コンピューターのことを大まかに理解してきたらプログラミングの勉強を開始します。
並行してITパスポートの試験勉強も行っていけば、プログラミングの力が付いたころにはITの知識も習得できることでしょう。
プログラミングだけでなく、ITの知識も有していることは就職活動においても大きなアドバンテージとなります。
アルゴリズムの勉強をしよう
アルゴリズムは、コーディングをスムーズに進めるうえで重要な概念です。
アルゴリズムを学ぶことで課題を構成する要素を分解でき、内容を整理した理解が可能となります。
一見複雑で解きにくいと思う問題でも、アルゴリズムの活用により解き方が見つかり、回答への道筋を示せます。
例えば、生まれた年を「はい」か「いいえ」だけで当てるゲームを考えてみましょう。
これまでの最高寿命が122歳 ※とすると、生まれた年は7回の質問で正解にたどり着けます。
1999年に生まれた人に質問しているのが以下の表です。なお「~年より前」「~より後」の質問は、その年を含まないものとします。
回数 | 質問 | 回答 | 回答後に絞られた範囲 |
---|---|---|---|
1 | 生まれた年は1960年より後ですか? | はい | 1961年以降 |
2 | 1984年より後ですか? | はい | 1985年以降 |
3 | 2001年より前ですか? | はい | 1985年~2000年 |
4 | 1992年より後ですか? | はい | 1993年~2000年 |
5 | 1997年より前ですか? | いいえ | 1997年~2000年 |
6 | 1999年より前ですか? | いいえ | 1999年~2000年 |
7 | あなたは1999年生まれですか? | はい | 1999年 |
これに対して1年ごとにたずねる方法は最大で120回以上もかかる可能性があり、非効率です。
アルゴリズムを知っているかどうかは、仕事の効率や成果に大きな影響を与えます。
※ 参考(最高寿命:122歳)
国立国会図書館「レファレンス事例詳細 ギネスブックで世界最高齢は何歳か。」
アルゴリズムの学習におすすめの書籍
環境構築は妥協しない
プログラミングの勉強をするにあたって、パソコンやインターネット環境などは必須です。
通学で学ぶ場合は自分で持っていなくても何とかなりますが、自分のパソコンがあるに越したことはありません。環境を整える際にお伝えしたいことは「あまり妥協しないほうがいい」ということです。
低スペックのPCでも、低速度の回線でもプログラミングは出来ます。ですが、プログラミングを行っている際に処理遅延やフリーズが発生した時のストレスは半端ではありません。
また、勉強が進んで高度なツールを導入していけば、必然的にパソコンなどのスペックも要求されます。
パソコンは決して安い買い物ではありませんから、最初にある程度のものを買っておくことをお勧めします。
また、最初に大きな投資をして引くに引けない状況を作ってしまうことで、自分自身を奮い立たせる効果も期待できるのでは!?──といった風に考えることもできるでしょう。
追い込まれて本気を出す人は、可能な範囲で大きく出てみるのもありかもしれません。
環境構築の学習におすすめの書籍
人に見せることを意識しよう
勉強していく中で、様々なプログラムが成果物として出来上がってきます。
スクリプト言語で勉強を始めた場合には、ちょっとしたWebコンテンツも出来上がっていることでしょう。
少しずつプログラムを理解してくれば、テキストなどに沿って作ったものに自分なりに手を加えてオリジナルのコンテンツを作ることも出来るはずです。
こういった成果物は、ぜひポートフォリオにして友人や家族などに見せてみましょう。インターネット上で勉強の進捗を更新するなどといった形でも良いかもしれません。
一人で黙々と勉強するということは時として目的を見失いやすいものです。
周りの人に自分の取り組みを知ってもらい、作ったものを触ってもらうことは非常に大きなモチベーションになります。「作ったら見せる」という小さな取り組みからはじめて、最終的には周りの人のリクエストに応えてコンテンツを作ってみるなんてことも非常に良い経験になります。
迷惑の掛からない範囲で、自分の勉強に周りを巻き込むこともモチベーション維持の秘訣です。
4)プログラミング初心者の人におすすめ転職エージェント
未経験者がプログラマーを目指す際には、上記に挙げた5つの項目を意識することも大切ですが、転職エージェントなどの「プロ」のアドバイスをもらうことも大変重要です。
ここでは、時にIT・Web業界、未経験者のサポートに強いエージェント6社の特徴をご紹介いたします。
ぜひ、転職活動の際の参考にしてみてください。
リクルートエージェント
転職が初めての方にとって嬉しいサポートが充実
リクルートエージェントは国内最大手の転職エージェントで、国内No.1の転職支援実績があるサービスです。
保有している求人は、「非公開求人」を含めると、2021年9月時点でおよそ32万件以上の求人を保有しており、プログラマー(ITエンジニア)の求人も4万件近くと、豊富に取り扱っています。
プログラミング経験のない人でも、プログラマー未経験の転職に精通した専任のアドバイザーがサポートしてくれるので安心です。
さらに、リクルートエージェントには、職務経歴書を自動で作成できる「職務経歴書エディタ」や無料の「面接力向上セミナー」など、転職活動を強力にバックアップしてくれるツール・サービスも充実しています。
リクルートエージェントの特徴
特徴 |
|
---|---|
サービス対応地域 | 全国 |
ITエンジニアの公開求人数 | 約9.2万件(2024年8月現在) |
とくに多いエンジニア職種 | プログラマー・Webエンジニア、社内SE、製品開発・ASP、組込み・制御エンジニア、ITコンサル |
マイナビIT AGENT
国内最大規模。ニッチな企業やベンチャー企業の紹介も可能
マイナビIT AGENTは、大手転職サイト「マイナビ」が運営するIT・Web業界特化のエージェントサービスです。
国内最大のエージェントだけに、保有する求人も大手・ベンチャー問わず豊富にあります。
さまざまなタイプの求職者に合ったサポートを展開しているため「業界未経験」であっても、安心してアドバイスが受けられます。
未経験だからこそ「自分に合った」企業で働きたい。
そんな人におすすめのサービスです。
マイナビIT AGENTの特徴
特徴 |
|
---|---|
サービス対応地域 | 全国 |
ITエンジニアの公開求人数 | 約1.9万件(2024年8月現在) |
とくに多いエンジニア職種 | アプリケーションエンジニア、インフラエンジニア、社内SE、SE・PG、PM・PL |
業界・職種ごとの専任サポートチームが「じっくり親身になって」支援してくれるのがマイナビエージェントの強み。サービス入会時に登録する情報で担当が決まりますので、経歴・希望条件は丁寧に記入しておきましょう。
はじめてのエンジニア
20代のエンジニア未経験向けエージェント
「はじめてのエンジニア」は、20歳~31歳の未経験からITエンジニアを目指す人を対象とした、転職エージェントです。
ITエンジニア向けの転職エージェントの多くは実務経験者を対象としていますが、「はじめてのエンジニア」ではITエンジニア未経験者をメインターゲットとしています。
未経験エンジニアの転職に特化した、実績豊富な専門コンサルタントが対応してくれます。
「はじめてのエンジニア」がとくに得意とする職種は、以下の4つです。
- Webエンジニア
- フロントエンドエンジニア
- インフラエンジニア
- テストエンジニア
これらIT系職種に興味を持っている人は、「はじめてのエンジニア」でいちどキャリアカウンセリングを受けてみるとよいでしょう。
「はじめてのエンジニア」の特徴
特徴 |
|
---|---|
サービス対応地域 | 東京・神奈川・埼玉・千葉・大阪・京都・奈良・兵庫・福岡・愛知 |
公開求人数 | 非公開 |
とくに多い職種 | Webエンジニア|フロントエンドエンジニア|インフラエンジニア|テストエンジニアなど |
キャリア相談を受けられるのも「はじめてのエンジニア」の強み。エンジニアへの適性やおすすめ職種についても、相談してみるとよいでしょう。
レバテックキャリア
業界経験者の内情を理解した丁寧なサポート
レバテックキャリアは、在籍するキャリアコンサルタントによる手厚いサポートに定評があり、「エンジニア経験者」にターゲットを絞り、サービスを展開しています。
業界の実情を踏まえたうえで、年収アップや待遇面の改善が見込めるよう、転職者一人ひとりの強み・アピールポイントを掘り起こす力に長けています。
また、レバテックキャリアのおよそ64.6%が書類選考を通過(※ 公式サイトより)しており、応募書類作成に対しても、高いサポート力があることがうかがえます。
業界経験者としての実情を加味した丁寧なサポートを求めるなら、レバテックキャリアがおすすめです。
レバテックキャリアの特徴
特徴 |
|
---|---|
サービス対応地域 | 全国 |
ITエンジニアの公開求人数 | 約2.5万件(2024年8月現在) |
とくに多いエンジニア職種 | プログラマー・SE全般、PL・PM、ITコンサルタント |
レバテックキャリアの担当エージェントは全員エンジニア経験者。「希望の企業に転職」96%、「転職後の年収アップ率」80%以上の高い実績を誇ります。
type転職エージェント
東京・神奈川・埼玉・千葉でプログラマー職を探したい人におすすめ
type転職エージェントは長年にわたり人材サービスを提供しており、その実績は転職支援実績の豊富さや企業との信頼関係の強さとなって表れています。
実際、type転職エージェントを活用して転職に成功した人の71%が年収アップを実現しているのです。
また、ひとりひとりの経歴と志向に合わせてのサポート・アドバイスが得意という評価が多く、とくにIT業界への転職支援を強みとしています。
東京・神奈川・千葉・埼玉で、転職によってIT・Web業界にジョブチェンジしたい人、「自分のこれからのキャリアについて相談したい」という人は、type転職エージェントのサービスがフィットしやすいでしょう。
type転職エージェントの特徴
特徴 |
|
---|---|
サービス対応地域 | 東京、神奈川、千葉、埼玉 |
ITエンジニアの公開求人数 | 約5,600件(2024年8月現在) |
とくに多い職種 | システムエンジニア(IT・通信・ソフトウェア)|Webエンジニア・クリエイター(Web・インターネット・ゲーム)など |
type転職エージェントはIT・Web関連の求人紹介に強みがあります。ただし、職種によって求人が少なくなることも。紹介求人が少ないと感じる場合はdoda・リクルートエージェントにも併せて登録しておくと安心でしょう。
doda ITエンジニア
キャリアアドバイザー・プロジェクト担当の両面からサポートを展開
「転職サイト」を検討する場合、ほとんどの人がdodaの名前を思い浮かべるのではないでしょうか。
そんなdodaの、IT業界に特化したサポートサービスが、こちらのdoda ITエンジニアです。
キャリアアドバイザーに加えて、企業の採用支援をする「プロジェクト担当」も用意しており、高いサポート力が強みとなっています。
「非公開求人」の紹介も多く、数ある求人の中から「未経験可」の求人に出会うチャンスもあるでしょう。
doda エンジニアITの特徴
doda ITエンジニアの特徴 |
|
---|---|
サービス対応地域 | 全国 |
ITエンジニアの公開求人数 | 約5.7万件(2024年8月現在) |
dodaのITエンジニア転職に特化した転職エージェント。幅広いエンジニア職種と地方求人の豊富さに強みがあります。
ワークポート
未経験分野のサポートに長けたコンシェルジュが多数在籍
業界未経験の不安を払しょくするためには、強いサポート力を持つエージェントを活用するのも、効率的な方法の一つでしょう。
ワークポートには、そんな未経験求職者のサポート実績の高い転職コンシェルジュが多数在籍しています。
ワークポートは、求職者自身が興味を持つ企業への応募を積極的に促す方針を取っているため、経歴や条件に関係なく、気に入った企業の選択肢を増やしていけるのです。
同サービスの活用メリットとして挙げられるのが、「転職決定率の高さ」です。
サービスを利用した人たちの評判・口コミからは「求人紹介から企業との交渉まで積極的に動いてくれた」「企業とのミスマッチを最小限に抑えようと働きかけてくれた」といった感想が目立ちます。
リクナビNEXT『GOOD AGENT RANKING ~2023年度上半期~』(2023年4月~2023年9月)にて、『転職決定人数部門 第1位』を受賞した経緯もあります。
「転職活動をエージェントから力強くプッシュしてほしい」というニーズのある人におすすめのエージェントです。
ワークポートの特徴
特徴 |
|
---|---|
サービス対応地域 | 全国 |
ITエンジニアの公開求人数 | 約2.5万件(2024年8月現在) |
とくに多い職種 | SE・PG、PL・PM、インフラエンジニア、社内SE |
ワークポートの積極的な提案を最大限活用するには、初回面談時に希望する職種・働き方をしっかり伝えることです。事前にキャリアの棚卸しをしておくとスムーズでしょう。
まとめ)激動のIT業界で生き抜くプログラマーになるために
IT業界の変化のスピードは、他の業界とは一線を画すペースを続けています。
今から10年前はまだスマートフォンが出始めた頃で、ガラケーを使っている人が大半だった時代でした。
そして、スマートフォンの高性能化やクラウド化に伴い、サービスで使用されれるプログラミング言語もまた様々変化していきています。
当然ながら、最初に勉強した技術がずっと有効に活用し続けられる保障はありません。
しかし、長年たっても変わらないものがあります。
それは、コンピュータの基本的な構造や、プログラムの「作り方」といったロジカルな思考方法です。
これらベースをしっかり把握しておけば、技術変遷に合わせて新しい技術を学ぶことは容易になります。
プログラミング習いたてのときは、技術の枝葉に囚われず、本質となる知識や思考方法をしっかりと身に着けるべきしょう。
そうした意識と活動が、「10年先を生きられるエンジニア」に繋がっていくのです。
この記事を読まれた方々が、プログラミング学習の良いスタートを切れることを、心より願っています。