【完全初心者向け】プログラミングの勉強を始める際のガイドライン
URLコピー
okuda
URLコピー
「プログラミングって何から始めるの?」
「勉強方法は?」
「必要な物ってなに?」
プログラミングを始めるにあたり、様々な疑問が出てくるかと思います。実際、私自身もプログラミングを始めた当初はこんな感じでした。
- 本当にできるようになるのか不安…
- 必要なものってパソコンだけなの?
- 言語って何から始めればいいの?
- 勉強方法はどうすればいいの?
- プロゲートの使い方は?
- テキストエディタって何?
とにかく、頭の中は毎日「???」で埋め尽くされてました。
おそらく今、この記事を見てくれているあなた自身も同じ気持ちなのではと思います。
だからこそ、私自身の経験も踏まえてプログラミング初心者が道に迷わないガイドラインがあれば、学習するのがもっと楽になるのではと考えました!
【この記事の目標地点】
- プログラミング学習のプランを立てられる
- 学習に必要なツールがわかる
- 一連の作業の流れがわかり、実行できる
それではさっそく、記事に入りましょう!
目次
【実は…】プログラミングに対する誤解
1つ質問なんですが、あなた自身はプログラミングに対してどういうイメージがありますか?
きっとこういうイメージありますよね。
「理系じゃないとできない?」
「英語ができないといけない?」
しかし、そんなことは一切ありません!
文系出身でもエンジニアとして活躍している人は大勢います。
セキュリティなどの分野では、高度な知識が必要になってきますが、Web系と言われる言語であれば、文系の人でもプログラミングを学ぶことができます。
英語も中高で習う英語ができれば問題ありません。
ただし、プログラミングは英語で組み立てていくので、英語を見るのも嫌な人だと苦しいかと思います…。
プログラミングの世界でも技術はどんどんと新しくなっていて、どんな人でも簡単に楽しんでプログラムを作れるようにと開発された言語もあります。
そういう点では、プログラミングの壁は昔よりも低く、薄くなってきています。
ただ、日本ではまだまだ遅れている部分もあるので、最新の情報を知りたいと思ったときに英語の文献しかないなどの問題はあります。さらに、できたばかりの新しい言語は、日本語の文献がほぼないので英語で読み取ることが必要になってきます。
プログラミングで仕事を普通にこなせるくらいまで上達したその先に、英語の学習などを考える必要性はありますが、もっと先の話なので、一旦は頭の片隅に置いておいてください。
プログラミングとは一体なんなのか?
「そもそもプログラミングってなに?」と思っている方もいるかもしれません。
プログラミングとは、ある条件下で命令を下すシステムを作ることです。
例えるなら、会社でいう上司です。部下に指示を与えて、部下が働くといった仕組みを作ることです。
会社というのは、様々な部署や役職の人がそれぞれの働きをして回っています。いわばプログラムを組むというのは、1つの会社を作るのと同じです。
プログラマーの働き方
プログラマーとしての働き方も実に様々です。ここではその代表例をお伝えします。
大きくわけて、プログラマーの働き方には5つの種類があります。
- Web系エンジニア
- オープン系エンジニア
- インフラ系エンジニア
- ネットワーク系エンジニア
- SE系エンジニア
この5つです。
では、1つずつ解説していきますね。
Web系エンジニア
Web系エンジニアとは、WebページやLP(ランディングページ)の制作、Webページの操作性の向上などがメイン業務となる働き方です。
一般的に、フロントエンドエンジニアと言われる人はここに分類されます。
Web系エンジニアの特徴としては、案件の数が多いということです。そのため、初心者でも仕事にたどり着きやすく、また稼ぎやすいジャンルでもあります。
近年注目を浴びているフリーランスエンジニアはここに入ります。パソコン1つあればできる仕事でもあるので、多種多様な働き方にマッチした職種とも言えます。
オープン系エンジニア
オープン系エンジニアとは、アプリの開発やその中のシステムの構築などアプリ開発に関わる一連の業務が仕事となります。
近年では、Web系のプログラムでアプリも作れるようになってきたので、Web系とオープン系の境目はなくなってきているようにも思えます。
それは、プログラミング言語も進化していて、今までできなかったことができるようになってきているからです。
また、誰でも簡単にプログラムを作れるように開発された言語などの影響もあり、学びやすい環境が整ってきたというのもあります。
インフラ系エンジニア
インフラ系エンジニアは、会社で扱っている顧客データなどの運用・管理・保守といったことがメイン業務です。
顧客情報を扱う仕事になってくるため、小さなミスが大きな損失につながるケースもあります。データ管理などは、セキュリティの問題もあり、難しいプログラムが組み込まれています。
世の人がイメージする「THE理系エンジニア」は、まさしくここに当てはまります。
ネットワーク系エンジニア
ネットワーク系エンジニアは、インフラ系よりもさらに「THE理系エンジニア」色が強い職種です。
基本的にネットワークシステムの構築やセキュリティ管理がメインであるため、かなりお堅い職業でもあります。
映画などでよく見かける「ハッカー」と言われる人たちと戦っているのがこの仕事をしている人たちです。
会社のセキュリティだけでなく、銀行のセキュリティ、遊園地の乗り物のセキュリティなどもあり、致命的なミスが大規模な損失や人の命に関わる仕事です。
エンジニアの中でも、最もお堅い仕事であり、知識と経験が必要とされる分野です。そういう意味では、エンジニアの頂点とも言えます。
SE系エンジニア
SEとは「システムエンジニア」のことです。
SEは、クライアントの要望に沿ってシステムを設計する業務なので、プログラミングの知識が必要となってきます。
その他にも、セールスエンジニアといったシステムの導入を進めたり、システムのアフター管理をしたり、ITコンサルタントといった職種もあります。
IT化がますます進んでいく中で、ITコンサルタントなどの需要は高まってきます。
そういう意味では、将来的には花形的な職種になると思われます。
プログラミングを学ぶメリットとは?
プログラミングを学ぶメリットは、なんといっても将来性に優れている点です。
海外では学校のカリキュラムに組み込まれており、近年日本でも小学校のカリキュラム に組み込まれてきています。
920人の親御さんの調査においても、習わせてみたい習い事で14.6%と注目を浴びていることがわかるかと思います。
(引用元:https://coeteco.jp/articles/10600)
ますます若い世代でのプログラミング学習は盛んになっていくことからも、その必要性はおわかりいただけるかと思います。
〜参考記事〜
・コエテコ by GMO
2020年、プログラミング教育が小学校で必修化!内容・現状を徹底解説
・文部科学省
小学校プログラミング教育の手引
世界中で、若い世代でのプログラミング学習が盛んになってきた背景からも、今では子どもに習わせたい習い事にパソコンやプログラミングが入ってきているのも事実です。特に富裕層でその傾向は強くあります。
なぜプログラミングが富裕層の間でも子どもに学ばせたいのかにはある理由があります。
それは数学的思考でもある「論理的思考」が身につくからです。
論理思考がどういうものかというと、「なぜ?どうして?どうやって?」という考え方と物事を構造化してみる力です。
基本的な考え方の上に応用をのせて、はじめて複雑なプログラミングはできあがります。また、変数や関数も使うことから数学的なセンスは必要でしょう。
それに、世の中で成功している人は必ずと言っていいほど、この「論理的思考」を身につけている人たちです。そのことをわかっている富裕層だからこそ、子どもにプログラミングを教えたいと思うわけです。
時代の流れにもマッチしていて、かつ、論理的思考が身につくとあれば尚更でしょう。
プログラマーになるためのガイドライン
「プログラミングをやるぞ!!」と意気込みはあるものの、「なにから始めればいいの…」って感じませんか?
私自身はこの悩みがありました。
プログラミングに関しては、「プログラミング」という言葉を知っているくらいで、その中身やどこにどう使われているかなんてまったくわかりませんでした。
そういった経験もあるので、完全初心者に向けて、プログラミングを始めたばかりの人が道に迷わないように私なりのガイドラインを作ってみました!
ぜひ参考にしてください。
①プログラミング学習の環境を整える
プログラミングを学ぶ上で最初にやるべきことは、プログラミングを学習できる環境を作ることです。
とはいっても、プログラミング学習で必要なものはパソコン1台です。
パソコンは種類がたくさんありますが、プログラミング学習をするのであればMacBook Pro(13インチ)をおすすめします。
MacBook Proには、エントリーモデルもありますが、買うのであればエントリーモデルではなく上位モデルのほうが良いです。
また、13インチと16インチがありますが、16インチは本格的な動画や画像編集に向いているので、大きい画面で見やすくしたい場合を除けば13インチで十分です。
MacBook Proの商品ページはこちらから
新しいMacBook Proのモデルを選ぶ。
ちなみに「MacBook Airじゃだめなの?」と声が聞こえてきそうですが、私自身もMacBook Airを使っており、問題なくプログラミングはできています。
補足しておくと、ProとAirの違いは、Proの下位モデルとしてあるのがAirです。Airはバッテリー持ちが1番長く、カラーバリエーションが多いという特徴がありますが、Proと大きく値段が変わるわけではないので、買うのであればやはりProの方をおすすめします。
加えて、なぜMacなのかというと、エンジニアで使われているのがMacが主流だからです。
そのため、Mac向けに書かれた文献や記事が多くあるので、純粋にMacを使っているほうが便利というわけです。
もちろん、Windowsでもプログラミングはできます。
②言語を決める&プランを練る
パソコンを買ってからするのは、プログラミングの言語選びとプランを練ることです。
多くの人が見落としがちですが、実はこれ、すごく大切なことなんです。
プログラミングは、働き方のセクションでも説明した通り、世の中の様々な場所で使われています。そして、プログラミング言語も職種によって沢山あります。
そのため、自分がどういう方向に進んでいきたいかを明確に決めておかないと、「勉強する必要のない言語まで勉強をしてしまった…」なんていう無駄な時間を過ごしてしまうことがあります。
例えるなら、アメリカで仕事をしたいのに韓国語を勉強するようなものです。
また、プログラミングを学び始めるとわかるのですが、1つの言語だけでも学べば学ぶほど深みにハマって抜け出せなくなります。それほど、プログラミングとは奥が深く、深掘りしてもしても底には辿りつきません。
英語を学ぶにしても、「中学程度の英語がわかるレベル」「日常生活レベルで話せるレベル」「ビジネスでも通用するレベル」などいろんなレベルが存在しますよね。
自分にとって必要なレベルはどこなのかを決めておかないと、いつまでも次のステップにいくことができません。
なので、
- 自分がどういう方向で仕事をしたいのか
- そのためにどの言語をどの順番で学んでいくのか
- その学ぶ言語をどのレベルまで底上げするのか
この3点は必ず押さえておきましょう!
「言語を学ぶ上で最初から1つに絞って、それを極めるのはどうなのか?」と疑問に感じる人もいるかもしれません。
私自身の答えは「No」です。
なぜかというと、1つの言語をとってしても、その周りに関連する言語があるからです。その言語の周辺にある言語の基礎知識も必然的に必要になってきます。
例えば、プログラミングの中でもJavaScriptという言語があります。
主にWebページにスライドショーなどの動きをつけることができる言語ですが、動きをつける上でHTMLとCSSの言語知識が必要になってきます。この時に、JavaScriptだけできても、HTMLとCSSを使えることができないとWebページの動きは完成しません。
そのため、1つ深く学んで極める言語を作るのはいいですが、その周辺にある関連言語の基礎知識は最低限学んでおきましょう。
③基礎学習
いよいよこの段階からプログラミング学習がスタートします!
プログラミング初心者がまずするべきなのは、基礎知識を学ぶことです。(当たり前ですが笑)
ただ気をつけてほしいのが、「丸暗記はしない」ということです。覚えるには覚えないといけないのですが、少しニュアンスが違います。
プログラミングは学校のテストではありません。基礎知識の応用を作っていくものです。
コードを覚えることも重要ですが、「その言語がどういう仕組みで動いているのか?」「なぜここではこのコードが必要なのか?」といった「なぜ?」の理解を深めていくことが大切です。
単に「A=B」という式を覚えるのではなく、なんでそれが「A=B」になるのかを考えながら理解して、覚えていくということです。
この論理思考がプログラミングでは非常に重要になります。
なぜかというと、本当の現場では真っ白のキャンバスに対して、プログラムを0から作っていきます。この時に、逆算して何が必要なのかを洗い出して、プログラムを組むことになるので、「なぜ?」の理解がないと、いざ本番で何をしたらいいのかがわからなくなります。
最初は慣れなくて難しいと感じるかもしてませんが、慣れてくると嘘のようにすんなりとできるようになります。プログラミングの練習は自転車の練習をするのと同じです。
一度身についた論理思考は、プログラミングだけでなく、いろいろなビジネスシーンで力を発揮してくれるので、将来へのモチベーションを高めて乗り切りましょう!
④サンプルをつくる
エンジニアとして仕事をとるためにも、クライアントに対して「私はこういうHPをつくることができます」といった実績を示す必要があります。
そのため、初心者はまず自分にはどれくらいのスキルがあるのかを見せるために、サンプルを作っていく必要があります。
このサンプルというのは、練習段階で作ったWebページなどで大丈夫です。
初心者の学習サイクルとしては「基礎の勉強⇄サンプル作り」のループです。学んだ基礎をサンプルとして作ることで、知識を消化していきます。
このサンプルは、フリーランスやエンジニア就職どちらでも必要になってきます。
エンジニア転職を考えた時でも「未経験OK!」という文言はよく目にしますが、雇う側からすれば「その本気度はどのくらいなのか?」「就職後も挫折せずに続けられるか?」といった疑問が生じます。
サンプルがあることであなた自身の本気度も示せますし、その段階での実力も示せるので、むしろサンプルを作ってから転職活動をしたほうがすんなりと転職できるかもしれません。
⑤案件をこなす
サンプルの製作が終われば実践に入っていきます。
未経験から始めた場合は、この実践がひとつの登竜門です。
実際の現場では、個人の勉強とは違い、金銭のやり取りや納期、クライアントの要望が生じます。
身近な友人に、プログラミングが必要とされている案件(HP制作など)があれば、その依頼に答えたりするのがいいでしょう。
基本的にフリーランスであれば、Web上での仕事の案件を確保できるクラウドソーシングを使います。
代表的なものは以下の通りです。
・ココナラ
個人のスキルを売買できるクラウドソーシングです。プログラミング初心者が最初に案件を取るのにオススメのサイトです!
https://coconala.com/
・クラウドワークス
大手のクラウドソーシングサイトで、日本最大級の規模を誇ります。
https://crowdworks.jp/
・ランサーズ
こちらも大手のクラウドソーシングサイトです。
https://www.lancers.jp/
実践に勝るものはないので、まずは簡単な案件からこなしていき、ステップアップしていくのがベターです。
フリーランス であれば自分で案件を探さないといけませんが、その点、会社に就職すると案件には困らなくなるので、気が楽かもしれませんね。
プログラミング代表例から学ぶ言語を見つける
さて、自分がどういった言語を学ばないといけないのかがプログラミング初心者にはまだまだ理解しえない部分でもあるかもしれません。
そのため、作りたいものにそって言語を選んでいくのが得策でしょう。
Web制作
Webサイトを作る上で必要な言語は以下の通りです。
HTML / CSS
Webサイトの骨組みを作り、文字などの装飾をする言語です。
正確にはプログラミング言語ではありませんが、Web制作には必ず必要になるものです。
JavaScript / jQuery
JavaScriptは、Webサイトに動きをつけるための言語です。
使用用途はそれだけにはおさまりませんが、Webではスライドショーやボタンをクリックした時のエフェクトなどに使われます。
jQueryは、JavaScriptを使いやすく簡単にしたものです。
Javascriptを簡単に使えるようにしたプログラムがjQueryです。
PHP
PHPとは、Web開発でよく使用され、ブラウザとサーバーの間でやり取りをするための言語です。
PHPを使いこなすことで、お問い合わせフォームやECサイトの開発などもできるようになります。
Ruby / Ruby On Rails
Webアプリケーションを作ることのできる言語です。
Rubyでは、Ruby On RailsというWebアプリケーションのフレームワークを使うことで開発がより簡単になっています。
Webサイトや業務システムを効率良く開発できることと、非常に学びやすい特性をもっています。
アプリ開発
アプリ開発で使われる言語は以下の通りです。
Java
アプリケーションの開発で一番使われている言語です。
とても優れた言語ではありますが、その反面初心者向きではありません。
Kotlin
Androidアプリ開発で使われる言語です。
Swift
Appleが開発した、iOSとMacOSに対応したアプリケーションを開発する言語です。
従来のiOSの開発は「Objective-C」でしたが、Apple社がSwiftへの移行を推奨しています。
C#
マイクロソフト社が開発した言語で、「C++」と「Java」のいいとこ取りをした言語です。
Windows向けのアプリケーションの開発に向いています。
AIやシステムなどの機械学習
AIやシステムなどの機械学習で使われる言語は以下の通りです。
Python
わかりやすい文法が特徴的で、とても広く使われている言語です。
プログラミング初心者も学びやすく、文献なども多くあります。
R言語
データ解析・統計プログラミングとして開発された言語です。
元々は研究分野で使われていた言語でもあるため、データ分析や統計解析に関しては他の言語よりもズバ抜けて優秀です。
プログラミング初心者におすすめの言語
プログラミング初心者が勉強を始める上で、おすすめしたい言語はズバリ「Web系言語」です。
なぜかというと、初心者でも理解しやすく、かつ案件が多く、フリーランスでも稼ぎやすいからです。
代表的な言語は以下の通りです。
- HTML / CSS
- JavaScript / jQuery
- PHP
- Ruby / Ruby On Rails
この4つを学んでおくことで、Web系での幅広い仕事をこなすことができます。
そこに+αで、WordPressなどの知識があればなお良きでしょう。
Web系の言語はそれぞれの言語間で関わりがあるので、学ぶ順番は以下の順番がいいです。
- HTML / CSS
- JavaScript / jQuery
- PHP
- Ruby / Ruby On Rails
Web系の言語の基本は「HTML / CSS」から始まります。
この言語でWebページの骨組みと装飾をするので、この2つが完了した時点で、LP(ランディングページ)や簡単なHPの作成はできるようになります。
「HTML / CSSがわかれば、JavaScriptがわかる」といったように、それぞれに関わりがあるので、段階を追うことで言語の理解もスムーズになります。
プログラミングの勉強方法
学ぶ言語は決まったけれども、そこからどうやってそれらの言語を学んでいくのかが問題になってきます。
勉強の仕方は大きくわけて、
- 独学
- スクール
- 留学
この3つがあります。
特に留学では、英語とプログラミングを両方同時に学ぶシステムになるので、ハードではありますが、近年人気も出てきている勉強方法です。
独学【手軽】
1番気楽に始められるのがこの独学でもあります。
自分のペースで進められるというのも大きな魅力です。
メリット・デメリット
独学での勉強方法のメリットは気楽に始められて、自分のペースで進められるというポイントではないでしょうか。
また、コスト面でも非常に安く済みます。
しかしその反面、つまづいたときに教えてくれる人がいないので、すべて自分で問題を解決しなければいけないのがデメリットであり、大きな挫折ポイントでもあります。
代表的なサービス
・プロゲート
https://prog-8.com/
プログラミングをする上で必要なテキストエディタといわれる、プログラミングを入力していくツール等がなくてもプログラミングを学習することができるのが特徴です。
講義はスライド形式で自分で読み進めて学習をしていくスタイルです。
また、コードの入力ミスなども教えてくれるのがポイントです。
・ドットインストール
https://dotinstall.com/
動画を見て学習を進めていくのが特徴的です。
また、ドットインストールでは実践形式で学習をしていくのが非常にいい点です。
どちらも月額1,000円程度でオンランイン学習ができるのがいいところです。
私自身はどちらも使って学んでいました。
両方使ったとしても月2,000円なので、そこまで気にはならないですし、双方に学びやすい特徴があるので、いいとこ取りできました。
ちなみに、以下の記事でProgateの特徴から使い方、ドットインストールとの詳しい違いなどを解説しています。ぜひ参考にしてみてください。
【完全初心者向け】Progate(プロゲート)の使い方を徹底解説!
スクール【てっとり早く】
プログラミングの知識を手っ取り早く短期間で身につけたいならスクールに通うのがおすすめです。
メリット・デメリット
何よりスクールのメリットは、プログラミングのプロから直接学ぶことができることです。
つまり、必要なポイントを効率的に学ぶことができるのと、わからないポイントを講師に聞けるのが強みです。
その反面として、初期費用や月額費用などのスクールに通う費用が高くつきます。ものにはよりますが、20〜30万はかかります。
代表的なサービス
・CodeCamp
https://codecamp.jp/
オンラインでマンツーマンでプログラミングが学べるサービスです。
・TechAcademy
https://techacademy.jp/
講師が、メンターと質疑応答に答えてくれる講師の2段階構成になっているのが特徴的なスクール。
短期間集中など、コースが豊富なところも特徴的です。
・TECH::CAMP
https://tech-camp.in/
TECH::CAMP(テックキャンプ)の特徴はなんといっても、「月額学び放題」というところ。
通常のスクールではコースごとに料金が発生しますが、TECH::CAMPではそれがありません。
そのため、途中で方向性が変わった時なども軌道修正しやすいです。
留学【最先端を学ぶ】
近年、人気が高まってきているのがエンジニア留学です。
プログラミングの世界では、残念ながらここ日本は遅れている状況です。
そのため、最先端のことを学ぼうと思うと、どうしても海外になってしまいます。そして、文献や資料なども海外のほうが優秀なものが豊富です。
あなた自身がどのレベルまでプログラミングをするかで変わりますが、技術力を上げていこうと考えるなら、留学はおすすめです。
メリット・デメリット
留学のメリットは、プログラミングと英語学習だけに集中できることです。
最初こそ負荷がかかりますが、留学を終えた時には世界で働けるスキルが身につきます。
プログラミング案件を探すのにも、海外のサイトを使えるようになるので、純粋に案件の数は日本よりも何十倍も多いです。
その反面で、同時にわからないことを同時並行で2つもするので、非常に挫折しやすいです。生活環境も大きく変わることになるので、その国での習慣に合わなければ地獄になります。
それに留学費用もかなりかかるので、お金の面で不安要素も大きいです。基本的にプログラミングスクールが日本で学ぶよりも高額なケースが多いです。
代表的なサービス
・Kredo
https://kredo.jp/
豊富なコースがあり、目的に沿って留学することができる。
・NexSeed
https://seed-tech-school.com/
セブ島でのエンジニア留学。
日本人とフィリピン人のエンジニアアシスタントがいるので、日本語と英語のどちらでも学習できる。
実際に初心者からプログラミング学習をやってみて感じた5つの重要な考え
これからプログラミングを学習しようという人からすると、「本当にできるのだろうか?」と不安が強くのしかかってくるかもしれません。
そこで、私自身がプログラミング学習をして感じたことをまとめてみたので、勉強をする上での参考にしてください!
①学習する上でのプランを決めておく
プログラミングは非常に奥が深いです。
学べば学ぶほど深く穴を掘ることができるので、1つの言語だけでも勉強することはつきません。
もし、複数の言語を学びたいのであれば、それぞれをどのくらいまでのレベルにしてから、次の言語を勉強するのかなどのプラン作成が非常に重要です。
②5分でもいいからとにかく毎日やる
毎日プログラミングに触れることで、頭の中でもプログラミングに慣れてきて、学習がスムーズになっていきます。
最初のうちはわからないことだらけで、続けることが苦痛に感じるかもしれませんが、最初こそ継続的に取り組む必要があります。
毎日5分だけでもいいのでプログラミングに触れることを意識しましょう。
③とにかく実践にトライする
プロゲートやドットインストールで基礎を学ぶことはできますが、実際に手を動かして、初めて理解できます。
しかしながら、それだけでは絶対にプログラミングができるようになりません。
基礎学習が終わればすぐにでも、模写コーディングの実践をして、スキルとして身につけていきましょう。
④エラーに対する考え方で挫折を防げる
模写コーディングをしていると、入力したコードに対してうまく動かないことが沢山あります。
実際問題、このエラーはとてもイライラするポイントでもありますが、それは自分の知識がまだまだ足りていない証拠でもあります。
スペルミスなどのエラーもありますが、エラーが起きた時は「なぜ?なに?どうして?」と論理思考を働かせ、細分化し、1つずつ試していくことになります。
つまりは、エラーを制するには基礎知識が必須なので、プログラミングにおいては「エラーを制するものはプログラミングを制する」と言っても過言ではありません。
エラーが起きたポイントは、基礎知識を改めて学び直す機会と考えておくといいでしょう。
⑤8割の完成度で考える
本当のクライアントでの依頼で8割で完成はダメですが、プログラミング初心者が実際の案件をこなすまでは8割の完成度でOKと考えたほうがいいです。
初心者にありがちなのが、完璧主義になるすぎることです。
プログラミングには正解がありませんので、目的のものが作れればOKですし、初心者の段階で事細かにやるとモチベーションの低下にもつながります。
完成度は8割くらいで合格点にして、純粋にスキルの上達を楽しむほうがプログラミング学習には必要です。
初心者の段階で模写コーディングを8割もできたなら、それは普通にすごいことです。
また、何よりも模写コーディングの回数を増やして、自分に足りてないものは何かを明確化させていくことも大事です。
プログラミング初心者に役立つ情報まとめ
プログラミングをする上で解決したい問題に対する情報や、最新の情報を手に入れることは非常に重要です。
プログラミング初心者にとって役に立つ情報元をまとめてみました。
おすすめの本
プログラミング初心者が最初に学んでほしいことは、OSとプログラミングの関係性などの構造の理解です。
というのも、プログラミング学習で「今、何をしているのか?」「どうすればもっと効率的にかけるか?」「これがこの先でどうなるのか?」を理解して学習するとしないのでは雲泥の差があります。
そのため本の紹介ではそういった部分に特化したものをご紹介します。
Webとプログラミングのきほんのきほん
技術の関わり合いや、それぞれの役割などを理解できる1冊です。
いうならば、Webの中にある地図を教えてくれる本です。
プログラミングはWebの中で沢山の言語が関わり合って成り立っているので、Webの仕組み等に詳しくないのであれば目を通しておきたい本です。
プログラミング入門講座
プログラミングをいかに効率良く学ぶ方法を教えてくれる1冊です。
タイトルから誤解されやすいですが、この1冊でプログラミングのすべてを学べる訳ではありません。
プログラミングの学び方がわかっていると、スタートから間違った方向にいくことはないので、「これであってるのか不安」という方はチェックしておきましょう。
世界が変わるプログラム入門
プログラムを作成する時の考え方を細かく学ぶことができる、エンジニアの頭の使い方を教えてくれる1冊です。
プログラミングを通して学ぶことができる「論理思考」に焦点を当てている本で、また他とは違ったプログラミングの見方を教えてくれます。
数学的な考え方に慣れていないのであれば、頭の中にフレームワークをつくる意味でも読んでおきたい1冊です。
役立つサイト
プログラミング学習で最もつまづくポイントでもあるのが「解決策がわからない」です。特に独学であれば、自分自身で解決策を見つけるしかありません。
そんな時に役立つ、Q&Aを探すことができるサイトをご紹介します。また、最新情報も見ることができる情報サイトもあるので合わせてご紹介します。
teratail(テラテイル)
teratail(テラテイル)は、ITエンジニアに特化したQ&Aサイトです。
問題に対する回答率も非常に高いので、解決策が見つからない時はここで質問してみるといいです。
過去のQ&Aも見ることができるので、ここで解決策を探すこともできます。
Qiita(キータ)
Qiita(キータ)は、プログラマーに特化した情報共有サービスです。
自分の興味のある言語に対して、その言語の最新情報を入手することもできます。
様々な言語に対する情報があるので、常日頃から目を通しておくとプログラミングのおもしろさを感じるかもしれません。
stackoverflow(スタックオーバーフロー)
英語版:https://stackoverflow.com/
日本語版:https://ja.stackoverflow.com/
stackoverflow(スタックオーバーフロー)は、世界で最もメジャーなプログラミングに関するQ&Aサイトです。
ただし、英語版において世界で最もメジャーなので、英語が使えないとそもそも読めません。
本家の英語版と比べるとやはり活動的ではなくなりますが、日本語サイトも十分に使えます。
GitHub(ギットハブ)
GitHub(ギットハブ)は、自分の書いたコードを世界中に公開できるサービスです。
世界中の人が作ったコードも見ることができるので、ある程度の基礎が身につけばそのコードが何をしているのかもわかります。
他の人が作ったものを見る機会になるので、他の人がどういったコードを書いているのかなどチェックすると新しい刺激をもらえます。
つまづいたときの対処法
学んだ言語が難しかったり、思っていたもの違ったということは多々あります。
そういう時は、変に気落ちせずに気分転換することをおすすめします。
スクールに通う
独学であれば、どうしてもわからないポイントに当たって、そこで挫折してしまう人が多いです。
そういった場合であれば、根気強くQ&Aサイトで解決策を探すか、自分で解決策を模索するしかありませんが、第3の道としてスクールに通うのも1つの手です。
プロから直接教えてもらえるので、確かにお金はかかってしまいます。
しかし、その分効率良く学ぶことができるので、エンジニアとしての仕事にたどり着くまでも早くなります。
投資的な考えになりますが、早く稼げるようにしてしまって、初期投資分(スクール代)を回収してしまうほうがいい場合もあります。
特にWeb系言語であれば案件も多いので、比較的ハードルは低いかもしれません。
学ぶ言語を変える
今学んでいる言語がわからないのであれば、学んでいる言語を変えることも1つです。
プログラミングでは、1つの言語で独立しているのではなくて、それぞれの言語が関わりを持っています。
そのため、1つの言語の中でも、他の言語の知識が必要になる場合もあります。
特に他の言語の知識だと感じるのであれば、その言語から学んでみるほうが、後々効率的になる場合もあります。
最後に
プログラミングの学習は、最初から実際の案件をこなすまでが非常に難しいポイントでもあります。
特に独学であれば頼れる人がいないので、1人で道を切り開くしかありません。
今回紹介した方法は、私自身がプログラミング学習を通して実際に感じたことをベースに組み立てました。
「あの時にあれを知っていたらもっとやりやすかった」という所感も存分に含めました。
この記事が皆さんのプログラミング学習に役立つものだと嬉しいです。
一緒にプログラミングを学んでいきましょう!!
URLコピー
okuda
URLコピー