プログラミングスキルを習得して将来に活かしたい大学生へおくる、最大効率で楽しく勉強し続け、無敵のスキルを獲得し就活に自信を得る方法。

初めてプログラミングを学ぶ上で、必要なこと、絶対やってはいけないことなどを自らの経験を踏まえて書きます。

まずはこれから!初心者にオススメのプログラム言語をご紹介

こんにちは!情報系大学生のハセガワです!

 

今回は、

初めて勉強するにあたって

オススメのプログラミング言語

いくつかご紹介します!

 

f:id:hasetomo2038:20201113223227j:plain

 

まず大前提として、

プログラミング言語

開発内容や目的に合わせて変えるものであり、

 

「これひとつさえ覚えればなんでもできる!」

なんてことはありません

 

 

ただ、汎用性が高い言語も存在しますので、

今回はそれらに絞ってご紹介します!

 

f:id:hasetomo2038:20201107224513j:plain

 

Python

最近になって一番注目されているのがこのPythonです。

読み方は「パイソン」と読みます。

Iphoneはこの言語で作られており、

比較的わかりやすく作られています

 

また、いま流行りの「ディープラーニング」は

このPythonが主流です。

ディープラーニングとは、まぁ人工知能(AI)のことだと

思っていただければとりあえずは大丈夫です。

 

もっとも、人工知能を考えて作るような人は

プロしかいないですけどね笑

 

初心者にもとっつきやすく、

できることも多く、

これから確実に必要とされる

三拍子そろってとてもオススメな言語です!

 

ただ欠点を上げるとすれば、

処理速度が比較的遅いことがあります。

限られた電池、処理能力で

リアルタイムで計算を行うような

用途には向いていません。

f:id:hasetomo2038:20201202103337j:plain

Java

ゲーム制作からwebサイト、

はたまたサーバーまで

なんでもござれな言語です。

 

他の言語でできることは

大抵javaでもできます。

(マニアックすぎるのはNG)

 

また、javaの最大の特長として、

動作が環境に依存しないことがあります。

 

ソフトウェアのダウンロードに、

ウィンドウズと

マック向けに分かれているのを

見たことはありませんか?

 

実は、環境が違うとプログラムが動作しません。

ウィンドウズ向けに作られたゲームを

マックで動かすことはできないのです。

 

(マクドナルドではないですよ!)

 

そういった環境の違いを

java自身が吸収するので、

環境に左右されることなく

プログラムを動かすことができます!

 

ココ大事!

 

欠点としては、

開発環境を整えるまでに時間がかかるのと、

制約が多いので習得に時間がかかることです。

 

なんでもできることの汎用性から、

初めてプログラミングを勉強するのに

javaを選択する人は多くいますが、

 

僕の考えでは、javaは正直オススメしません…。

 

もちろん、

「一つでいろいろできるなら一番コスパいいじゃん!」

という考え方もありますが、

 

おそらく技術を習得するまえに

イヤになって投げ出してしまいます。

 

欠点のところで「制約の多さ」というのを

挙げましたが、

いくら熱意をもっていても

「これダメです」「書き方違います」etc. etc...

 

なんてことを延々とやらされたら

誰だってイヤになります。

 

 

もちろん、javaを採用している企業は多くありますし、

習得したらとても大きな力になります!

また、使用目的によっては難易度は急落するので、

自力で調べきれる人にとっては

初めてでも大丈夫だと思います!

f:id:hasetomo2038:20201202105006j:plain

 

C言語

いにしへから伝わる、由緒正しき伝家の宝刀…

それがこのC言語(シーげんご)です。

C言語にはC++C#など新種がいっぱいいますが、

今回はそれらをまとめてC言語ファミリーと

呼ぶことにします。

 

まず特徴として、

処理速度が圧倒的に早いことがあります。

その差はPythonjavaの数倍どころじゃありません。

 

クルマについてるコンピューターなど、

リアルタイムで処理が求められる現場では、

C言語が一番多く活用されています。

 

クルマのカメラで人を認識するのに

処理が遅れたらそのまま

大事故になりかねませんからね。

 

また、かなり昔から存在しているため、

ムダなものはそぎ落とし、いいものはそろっているなど、

プログラム言語として洗練されています。

 

そのため、比較的必要知識も少なく、

とっつかみやすいと言えます。

 

さらに、開発環境を整えるのは

どれよりも楽です。

 

欠点らしい欠点がないのも特長といえるでしょう。

 

細かいところを上げればいくつかはありますが、

ちゃんと勉強すれば気にならないレベルです。

 

f:id:hasetomo2038:20201107225313j:plain

 

と、いうわけで今回は

メジャーどころのプログラム言語三つの違いを

挙げさせていただきました。

 

これはあくまで僕個人の意見ですので、

他の方の意見なども参考にしつつ、

自分にとって最適な選択を考えてみてくださいね。

 

最初にも言ったように、

用途、目的によって最適は変わります。

(今日イチ大事なこと)

 

ここまで読んでくださりありがとうございます!

ステキなプログラミングライフを!

そもそもプログラムって??0からわかるプログラム解説

こんにちは!情報系大学生のハセガワです!

 

今回は初心者、未経験者向けに

プログラムとは何か

簡単に詳しく説明したいと思います!

 

難しい言葉、専門用語は一切使いません!

 

f:id:hasetomo2038:20201113223227j:plain

 

 

普段何気なく、プログラムとか

プログラミングとか言われてますが、

これ、そもそも何なのでしょうか?

 

作り方なんてわからないし、

そもそも何なのかわからない…

 

聞いたことはあるけれど、

存在がイマイチわからない…。

 

デジタル社会の現在でも、

割と知らない方はいらっしゃいます。

 

 

簡単に言いますと、

プログラムとは「命令文」です。

 

もっと簡単にいうと、

「これを順にやってほしい」リストです。

f:id:hasetomo2038:20201113224210j:plain

 

いまいちピンと来ませんね。

もうちょっと砕いてみましょう。

 

「カツオ、ちょっと手伝ってちょうだい」

「これに書いたから、よろしくね」

 

・いささか先生に預かり物を渡す

・父さんの会社に忘れ物を届ける

・肉屋でぶたひき肉を買う

 

はい。これはカツオに対する

プログラム文です。

 

まだちょっとピンと来ないかな?

それじゃあ最近流行りの鬼滅の刃の、

煉獄杏寿郎で例えてみます (!?)

 

f:id:hasetomo2038:20201113225512j:plain

 

「この列車は八両編成だ!」

「俺は後方五両を守る!」

「お前たちは前方三両を守れ!」

「竈少年たちは弱点を探せ!」

 

はい。これは

炭次郎たちに対する

プログラム文です。

 

プログラム文とは、

機械に命令を与えるための

文書なんですね。

 

その構造はかなり単純なもので、

①宣言

②命令

③判断

この三つしか存在しません。

 

さっきの煉獄の例に当てはめなおすと、

「この列車は八両編成だ!」←宣言

「俺は後方五両を守る!」←宣言

「お前たちは前方三両を守れ!」←命令

「竈少年たちは弱点を探せ!」←命令

 

となります。

(ちょっと違う気もするけど)

 

でも実際のとこたった三つだけで

複雑な処理をする

プログラムができるの?

と、思いますよね。

 

f:id:hasetomo2038:20201107224336j:plain

できやす。

 

 

簡単な処理でも、

それが何個も何個も重なると

結構いろいろなことができます。

 

そもそもパソコンくんは

「これは13です」

「あれは7です」

「これとあれと足してください」

くらい最低限のことしか理解してくれません。

 

「これはネコです」

「これは煉獄杏寿郎です」

と言っても理解してくれません。

 

だからパソコンくんに与える命令書も

めっちゃ簡単なものじゃないと

ダメなんですね。

 

f:id:hasetomo2038:20201107224851j:plain

 

今回のまとめ

①プログラムは機械に与える命令書

②一文一文はくっそ単純

③煉獄を推せ

 

この三つになります!

 

とりあえず、

「決められた方法で書かれた、

機械に命令を与えるための

くっそ単純な文章」

って認識で大丈夫です!

 

それではまた次の記事で!

グングン上達する!おすすめのプログラミング学習法!

こんにちわ!

情報系大学生のハセガワです!

 

 

今回は、

いかに楽しく、効率よく学習するのが大切か

を説明したいと思います!

 

f:id:hasetomo2038:20201107224336j:plain

 

一つ、質問をさせてください。

 

「なぜ、あなたはプログラミングを学びたいのか」

 

これを、答えることができますか?

 

目的が明確な方も、漠然としている方もいると思います。

それはそれで大丈夫です。

 

f:id:hasetomo2038:20210427183032j:plain

 

この質問の意図は、

あなたのプログラミングに対するモチベーションの高さ

を聞いているのです。

 

 

はっきりいってしまいますと、

プログラミング学習はモチベがないとやっていけません。

 

 

f:id:hasetomo2038:20201107224513j:plain

 

というのも、プログラミングスキルというのは、

いかにうまくコンピューターに命令を伝えれるか

というものですが、

 

 

コンピューターくんはかなりのクセもので、

なかなか言っていることを理解してくれません!

 

 

まだ、外国人と英語で会話する方が簡単かもしれません。

このへんの詳しい解説は以下のブログに詳しく書いているので、

時間があれば見てみてください!↓

 

hasetomo2038.hatenablog.com

 

 

 

大抵の人はただ必要そうだからという理由で漠然とプログラミング学習に手を伸ばし、

結果ついていけずに途中でやめる…

 

なんて、非常にもったいないことをしています。

 

 

これでは、時間も、お金も、知識も、

全て損になってしまいます。

 

 

そして、学習でつまづいてしまう人は、

楽しさを度外視している場合が多いです。

 

f:id:hasetomo2038:20201107224618j:plain

 

プログラミングは本当に楽しいものです。

自分の想定したとおりにコンピューターくんが仕事をしてくれた時は

感動を覚えます。

 

 

だけど、

どのプログラムも初めから全部

うまく動いたことなんて

一回もありません。

 

 

簡単な内容のものや、行数がかなり少ないものはもちろん例外ですが、

ある程度のサイズのものを作ろうとして、

一回もつまづかなかったことなんてありません。

 

 

どんなベテランでもプログラム文を

正しく理解するには

ある程度の時間がかかります。

 

f:id:hasetomo2038:20201107224730j:plain

 

プロでさえそうなのですから、

これからプログラミングを始める人がつまづかないワケがないのです。

それほど、人間とコンピューターの会話は難易度が高いのです。

 

 

では、プロと呼ばれる人たちが、そんな世界でプロになれたかといったら、

 

彼らは楽しんで学習し、

楽しんで上達したからです。

 

 

「楽しい!」と思えるポイントは人それぞれです。

自分でコンピューターを動かすこと自体に喜びを覚える人や、

元々数学の理論などが好きで、プログラムで再現することが好きな人もいます。

 

 

プログラミングに限った話ではありませんが、

 

やっぱりプログラミングが好きな人の方が

上達がはやいです!

 

f:id:hasetomo2038:20201107224851j:plain

 

そして、一口にプログラミング学習といっても、

方法はいろいろあります。

 

 

そのなかで、初めて学習する上で一番オススメの方法は、

 

ゲームを作ってみることです。

 

 

「えっ、そんな簡単に作れるものなの!?」

と思われるかもしれません。

 

割とすぐ作れます。

 

 

それに、ゲームの製作は目に見えて進捗がわかりやすく、

作っていて楽しいので、

モチベの維持がしやすいです。

 

 

しかし、初めての人が調べながらやるのに難易度が高いのは相変わらず…

結果作るうえで必要な前知識を得ることができず撃沈してしまいます。

 

 

f:id:hasetomo2038:20201107225018j:plain

 

と、いうのも、プログラム文を書く上で、

「ここは絶対にこれをいれなきゃダメだよー」

「これを使うにはこれを入れないとダメだよー」

という、

 

「おまじない」

 

が必要な場合が多くあります。

 

 

ある程度プログラミングを知っている人には「そんなの当たり前に書くよ!」

というものでも、初めての人はキチンと理解していないと、

いざ動かそうとしても、コンピューターくんは…

「ダメです」「ダメです」「ここダメです」「なんですかコレ」...(永遠に続く)

 

 

こうなると、プログラミングが嫌いになってしまいます。

そりゃそうですよね。

 

 

例えばサッカーでも「オフサイド」というルールがあります。

オフサイドというのは、相手のディフェンスより 向こう側にいる味方にボールをパスしたりすることですが、

 

これは知らないと理不尽に反則にされたと

感じてしまいます。

 

 

テレビでサッカーを見ると、プロのプレイヤーたちは当たり前に気を付けているので、

そもそもオフサイドというのが存在しないように感じてしまいます。

 

 

そして、プログラミングでは、この「知らないといけない、理不尽ルール」が、

サッカーの比ではありません。

 

数百倍以上はあると思います。

 

 

これは決して過言ではなく、言語の種類も多いプログラミングでは実際にそうだと思います。

 

 

この理不尽さがイヤになり、勉強をやめる人が大半です。

 

 

しかし、これは

「知っていればラクに回避できるもの」

です。

 

 

プログラミングを教わるうえで、

人にキチンと地雷の位置を丁寧に教えてもらうことかなり重要ですし、

結果的に効率の上昇につながります。

 

 

そして、地雷に対処する知識を教えてもらい、

いろいろ試しながら自分のゲームを作ってみる。

これが自分の中で一番の学習法だと思っています。

 

 

ゲームの製作ですと、進捗が目で見てわかりやすいですし、

なにより作ってて楽しいです。

 

 

「楽しい」というのは、

モチベーションの維持に一番大切なものです。

 

f:id:hasetomo2038:20201107225101j:plain

 

今回の内容をまとめると、

 

・楽しいものが一番続く

・プログラミングには理不尽ルール多し。だからイヤになる。

・ほとんどは人にキチンと教えてもらうことで回避できる。

・地雷を回避しながら、楽しんでゲームを作ることが一番近道

 

ということです。

 

 

楽しみながら最大効率でプログラミングを勉強していきましょう!

ここまで見ていただき、ありがとうございます!

プログラミングは国語力!?正しい理解力と論理力を身に着けよう

こんにちわ!情報系大学生のハセガワです!

今回も始めてプログラムを勉強する人に向けて書いていきたいと思います!

 

おそらく、このブログを見てくださっている方は、

これからプログラミングを勉強することに興味のある方だと思いますが、

 

先に言います。

 

プログラミングの学習には

計算力より、

国語力の方が

はるかに大事です。

 

f:id:hasetomo2038:20201107225220j:plain

 

どういうことか説明しますと、

そもそもプログラムというのがコンピューターにどう動くのか命令するもので、

この命令書は他の解釈ができないように精密に書く必要があります。

(人間相手でも大事な書類は誤解を生まないように気を付けますよね!)

 

しかし、コンピューターくんは人間のように聞き返したり、わからないことを質問してくることはなく、とりあえず実行しようとしてしまいます。

 

f:id:hasetomo2038:20210427182905j:plain

「自分ではこう伝えたつもりなのに!」

といっても、コンピューターくんは理解を示してくれません。

 

そこで、ちゃんとコンピューターくんに何をしてほしいのか伝えるために

=正確なプログラミングをするために、

国語力必要不可欠なのです

 

f:id:hasetomo2038:20201107225313j:plain

 

また、プログラミングを解説しているサイトはいっぱいありますが、

それを正しく受け取るためにも国語力は必要です。

 

誤解したまま試してみても「やっぱりダメじゃないか!」と失敗し、

プログラミングがイヤになってしまいます。

 

f:id:hasetomo2038:20201107224513j:plain

そのため、

プログラミングを正しく学ぶために

プログラミングを正しく理解する力

が、どうしても必要です!

 

f:id:hasetomo2038:20201107225446j:plain

 

何回も説明するように、プログラミングを勉強するうえでは

この能力は必要不可欠なのにもかかわらす、

独学で学習を目指す人のほとんどがこの過程を大事にしないせいで、

大半の人が失敗してしまいます。

 

独学でプログラミングを学習することの危険性は以下のブログで詳しく説明しているので、時間があれば見てみてください!↓

hasetomo2038.hatenablog.com

 

もちろん、ある程度プログラミングができる人はよりその能力を発揮するために数学などを勉強しますが、

初めてプログラミングに接する人はより正しく効率よく学ぶために国語力がなにより大事になります

 

といっても、一人で勉強するのはかなりハードルが高いので、

最初は人に教えてもらいながら上達するのが一番理想的な勉強方法です!

 

プログラミングを最大効率で学習して、

楽しく成長していきましょう!

 

よきプログラミングライフを!

独学はNG!? 一人でプログラムを学ぶことによる大きすぎるデメリット

こんにちわ!情報系大学生のハセガワです!

今回からプログラミングを勉強したい人に向けてブログを書きます!

拙い文章ですが、最後まで見ていただけると嬉しいです!

 

さて、今回のテーマですが、

プログラミングを学ぶ上で独学は絶対NG

という話をしたいと思います。

 

f:id:hasetomo2038:20201107225555j:plain

 

 これから時代がデジタル、AIにシフトする中で、プログラミングは時代を理解する上で、必要なスキルです。

 

 

 完璧なプログラムを作れる必要なありませんが、この機械はこのように動いているんだなぁと、なんとなくでも自分で理解する能力が必要になってきます。

 

 

これができないと、身近な機械を理解することができず重度の機械オンチを患ったり、

最悪の場合時代に取り残されることになります

 

周りがドンドン成長し、デジタル社会を生き抜いていく中、

自分だけが成長できず、気づいたころにはどうしようもない状況に陥ります。

 

 

ある程度のプログラミングスキルは、社会を知るためにも絶対に必要なスキルなのです。

 

f:id:hasetomo2038:20201107225654j:plain

 

 

しかし、プログラミングを学ぶということを誤解している人が本当に多くいます。

 そして、そのような人たちはスキルを習得する前に9割挫折します。

 

 

そのような人たちに共通することは、全部自分の力で習得しようとしていることです。

 

 

はっきり言います。

プログラミングを自力で習得するのは非常に難易度が高いです。

 

f:id:hasetomo2038:20201107225754j:plain

 

話は逸れますが、小学校の書道の授業を思い出してください。

書道では、まず書く前にお手本を渡されると思います。

それをじっくり見て、書いてみて、書いた後に「ここはいい」「ここはダメ」と判断し、それをもとに新しく書く、というのを繰り返したと思います。

 

そしてある程度枚数を書くころには、お手本までとは言わなくても、最初の一枚目よりはかなりいいものが書けてると思います。

 

書道は、「ここはいい」「ここはダメ」を自分か先生に判断してもらい、それをもとに新しいものを書く、というトライ&エラーで上達していきます。

 

元々、字を書くということに対してある程度の学習ができているからこそ、トライ&エラーが通じるわけです。

 

 

対してプログラミングですが、独学で上達しようとした場合には、先生はコンピューターになります。

そしてこの先生が曲者で、基本的に「ここはダメ」しか教えてくれません。

また、「これはダメ」とダメな箇所すら教えてくれない先生もいます。

 

相手が人間なら「なんでダメなんだよ!」と聞くことである程度改善点などを教えてくれますが、コンピューターは「ダメだから!」しか言いません。

 

そうなると、なんでダメなのか自分で調べる必要があるのですが、

調べることができず、躓いてしまう人が数多くいます。

 

f:id:hasetomo2038:20201107225843j:plain

 

というのも、書いたプログラムを実行してくれない時はコンピューターが「ここがダメです」と指定してくれますが、

この指摘が初心者には非常に難解で、理解できないことがほとんどです。

ひどいときには指摘が英語だったりします。

そうなると、英語の翻訳から自分でする必要があります。

 

たいていの人は指摘された分が理解できず、そのままGoogle先生に聞いたりしますが、Google先生も難しい言葉でしか説明してくれない場合がほとんどです。

 

「構造が違います」

「不正な値です」

「意味がわかりません」

といった指摘をされますが…

 

どこがわかんねーんだよ!言ってみろ!

 

f:id:hasetomo2038:20201107230121j:plain

 

…と強い口調で言ってみても、

「えっ、そんなんわかんないからわかんないんです」

「ちょっと説明できないです」

 

こういうとき、コンピューターはつくづくバカだとイラついてしまいます。笑

 

というのも、コンピューターは理論で動くものなので理論が一つでも間違っていた場合、動作が停止してしまいます。

 

人間で例えると、作業スピードはめちゃくちゃ速いし正確だけど、一つでもわからないことがあれば途端に停止してしまいます。

他の人に聞くということもしません。

そして、本人は何がわかってないのかわかりません。

極めつけに、説明に対して「なんで?」「どうして?」と繰り返してきます。一つでも説明に穴があれば永遠に聞いてきます。

 

大抵の人は、この時点で解雇を検討すると思います。

 

そんなコンピュータくんについていけず、心が疲れてしまって勉強をやめてしまう。

これが独学を希望した大抵の人の末路です。

 

中途半端にしてしまっては、時間もムダにしてしまい、効果も最悪です。

これでは効率が悪く、もったいないと思います。

 

バカなコンピューターくんが何を言っているのか理解するために、学習を効率よく進めるために、人間の先生が間に入り、キチンと説明してくれることが何よりも重要です。

 

コンピューターが「ダメです!」とともに出す怪文書をヒトの先生が翻訳し、人間にわかりやすい形で改善点を示す。

これが初めてプログラミングを学ぶ上で一番効率のいい方法です。

 

f:id:hasetomo2038:20201107230236j:plain

 

今回の内容をまとめると、

・コンピューターが何を言ってるのかわからず挫折する人が大半。

・途中で投げ出してしまっては時間も知識も非常にもったいない。

・コンピューターが言っていることを理解している人に丁寧に教えてもらうことが一番大切

 

大事なことはこの三つです。

教えてくれる先生さえ見つけてしまえば、プログラミング学習は「無敵」です。

 

他の人があらゆる障害で伸び悩んでいる中で、自分一人だけ最大効率で成長することができます。

 

プログラミング学習に限ったことではないと思いますが、教えてくれる人がいるのは学習の効率を上げるうえで一番大切なことですよ!

 

あなたのプログラミング学習が楽しいものであることを願っています!

最後まで見ていただきありがとうございます!