今の時代、コンピューターの発展はめざましく、プログラミングを学びたい!とComputer Science(CS)を専攻することを考えている人も多いと思います。
そこで、アメリカの大学にてコンピューターサイエンスを学んでいる私が、CSを学ぶ上で重要なスキルと、どのようにプログラミングを学ぶべきかを紹介したいと思います。
U-LABOは、あらゆる学生のための「海外大学進学予備校」です。
1人1人に合った多彩な受験プログラムを用意しています。
費用が高いから…英語力がないから…そのお悩みをまずは聞かせてください。
海外大学に行きたい!と思ったそこのアナタ。
U-LABOで夢をかなえてみませんか?
CSで最も必要なスキルとは?
CSで最も必要なスキルは「考える力」です。みなさんもご存じのように、コンピューターは人間には難しいことを簡単にできます。一方で人間には簡単でもコンピューターには難しいこともあります。
例えば、複雑な計算はコンピューターの方が速く正確にできます。しかし、絵を見て動物を認識する能力は人間の方が優れています。コンピューターが犬の絵を見て犬と認識するには、何万枚もの絵を覚えさせなければなりません。
このように、人間とコンピューターは得意なことが異なり、考え方も違います。なので、プログラミングをする時はコンピューターの頭で考えなければなりません。英語ではこれを「Computational Thinking」と言います。
これは時間をかけて努力すれば身に付きますが、元々このようなスキルを持っている人は、経験がなくてもすぐにプログラミングを習得することができます。コンピューター目線で考える力があれば、CSを専攻するのに向いているかもしれません。
関連記事>>>やりたいことが決まっていない人に、アメリカの大学をおすすめしたい理由
人間にはシンプルでも機械には複雑な例
人間にはシンプルでも、プログラミングするにはどのくらいのことを考えなけらばならないのか例を出します。
例えば、今日着る服を持ってきてくれる機械を作ろうと思ったとします。服を出すのは人間にとっては非常に簡単な事です。
しかし、機械にやらせようとすると、まず着たい服を認識しなければなりません。今は音声を認識する機能があるのでそれを使ったとします。次にその機械はクローゼットへ行き、服を見つけなければなりません。この見つける作業は実は機械にとっては非常に複雑です。もし毎回タンスの同じ場所に服を入れれば機械もその場所から服を持ってくるだけです。
しかしそこになかったらどうでしょう。人間なら何箇所か服がありうる場所が分かりますよね。ここになかったらあそこにあるのではないかと考えることが出来ます。しかし、機械はそのようなことは勝手に考えません。人間が機械のために、そのような場合には何をすればいいのかプログラミングしなければなりません。
違うタンスに入っているのではないか。床に落ちているのではないか。洗濯がまだされてなくて洗濯カゴに入っているのではないか。普段人間があまり考えずにやっていることを意識的に考えて、機械にやらせなければなりません。
自分一人のための機械だったら、服がある場所の候補は少ないかもしれませんが、この機械を一般に販売したいと思ったら全ての家庭で全ての状況に対応できなければなりません。この見つからなかった時などにどうするかはError Handlingと言われ、エラーが起こった時に機械はどうするべきかをプログラミングする際に考えるのは非常に重要です。
今はMachine Learningと言って、AIなどマシーンが自ら学ぶようにも出来ますが、学ぶことが出来るようにするのも人間です。このようにいろんな状況を考え、その際コンピューターはどのように対応するべきなのかを考える力はCSに必要です。
反対に人間にとって難しいことが機械には簡単な例
上記の例とは反対に、人間にとって難しいことでもコンピューターには簡単になることもよくあります。簡単な例だと、オセロや将棋などの2人用のゲームでターンを交代する際、もし今Player1の番だったら次はPlayer2になって、Player2だったらPlayer1になります。
この際人間が考えるようにプログラミングするなら「if文」というプログラミングで条件を作る際に使われる構文を使って、もし今の番がPlayer 1だったら次は2、2だったら次は1とします。この方法でももちろん出来ますが、コンピューターにとっては、今のPlayerの数字を2で割った余りに1を足す方が簡単です。
今の番がPlayer 1だったら、2で割った余りは1になり、1を足すと次はPlayer2になります。今の番がPlayer 2の場合でも、2で割った余りは0になり、1を足すと次はPlayer1になります。この場合、「もし1だったら」のように条件を確認する必要がないので、後者の方が効率的です。
また、0だったらPlayer1の番で1だったらPlayer2の番にするなど、どのようにコンピューターに認識させるかは全て決められます。これは簡単な例なのであまり効率的にはできませんが、普段考えないようなやり方でプログラミングすると最も効率的にできることがよくあります。
このようにプログラミングをする上で普段考えないことを考えたり、普段考えないような考え方で問題解決する能力がCSで最も重要なスキルです。
プログラミングの学び方
今はYouTubeやGoogleなどを使えば、すぐにプログラミングを学ぶことが出来ます。初心者向けから上級者向けまでいろいろあるので、自ら先に学ぶことをお勧めします。そして、大学では友達に教えるといいです。教えることで知識が定着しやすくなります。
また、その友達が分からないことがあって聞いてくるようになると、自分には分からないことや考えたこともなかったようなことを聞いてくることがあります。そのような時は自分で検索したり教授に聞いたりして答えを見つけてください。このように学んでいけば、授業で習うこと以上に学ぶことが出来ます。そして、どんどん知識が増えるとプログラミングが楽しくなるはずです。
プログラミングは最初はあまり面白くないかもしれません。できることが少なくSyntax(文法のようなもの)をとにかく覚えなければならないからです。英語を学んでいる時に例えるなら単語をひたすら覚えているような段階です。でも、その単語を組み合わせていろんな文章が作れるようになると楽しくなるはずです。
とにかく、どんどん先に学んで、人に教えることが一番学べると思います。もし、アメリカ大学を検討している方なら、入学して1学期目は人よりも真面目に勉強をして好成績を収めておき、できれば二学期目からはTAやTutorになってみてください。自分が学んだことを教えるだけですが、知識が定着するのはもちろん、新しいことも必ず学べます。
関連記事>>>【日本とどう違う?】アメリカ大学の種類・制度や過ごし方について解説!
関連記事>>>アメリカの大学と日本の大学との違いを紹介!
おわりに
この記事を読んでいただいて、少しでもCSのことが分かったら幸いです。
プログラミングの経験がなくても、「Computational Thinking」が出来る人はCSに向いていて、簡単に習得できると思います。考えることがあまり得意でなくても、練習の数が多ければどのように考えるべきかわかるようになるはずです。
CSに少しでも興味あったり、専攻を考えている人は是非、YouTubeなどで自ら学んでみてください。
U-LABOでは、カルフォルニア大学(UC)をはじめとした 名門アメリカ大学への編入プログラムを用意しています。
編入する前から編入後、就職活動までをサポートするので、編入を考えているけど、不安が多い方は編入プログラムを受けるのをおすすめします。
無料相談も実施しているのでお気軽にご相談ください。
About Us:株式会社U-LABO
U-LABOは、あらゆる学生のための「海外大学進学予備校」です。
レスポンスの速さやサービスの質の高さで、生徒や保護者様からも非常に高い評価を得ており、ありがたいことに年々入会者数が増加中。
無料カウンセリング予約・お問い合わせ・最新情報の配信は公式LINEから!
About Us:株式会社U-LABO
私たちは、海外トップ大学を目指す日本人学生のための留学サポート会社です。
U-LABO生のカリフォルニア大学への合格実績は、なんと100%!レスポンスの速さやサービスの質の高さで、生徒や保護者様からも非常に高い評価を得ており、ありがたいことに年々入会者数が増加中。
LINEでのお問い合わせも受け付けております!
About Us:株式会社U-LABO
私たちは、海外トップ大学を目指す日本人学生のための
留学サポート会社です。
U-LABO生のカリフォルニア大学への合格実績は、
なんと100%!レスポンスの速さやサービスの質の高さで、
生徒や保護者様からも非常に高い評価を得ており、
ありがたいことに年々入会者数が増加中。
LINEでのお問い合わせも受け付けております!