目次
はじめに
「プログラムを勉強したい…なにから始めたらいいかわからんし、難しそう」「プログラムなんてもんは一度挫折したぜ。だが次こそは…!」
そいういう方はたくさんいると思います。
で、「実際プログラムって何をどう勉強したらええの?」という事で。
私なりの勉強方法を晒しますが、これには向き・不向きがあります。
少しでも参考になれば幸いです。
プログラムって結局何ができる?
とりあえず、「プログラムで何ができるのか」を考えてみる(調べてみる)ところから始めましょう。身近なところで言うとスマホのアプリやゲーム、ホームページ、ブログ、リモコンやちょっとした電子機器の作成、ロボット、AI、Webアプリ… …。
ぶっちゃけなんでもできちゃうと思っていいと思います。(多分)
私は日々の生活の中で「面倒だなー」と思ったことは大体プログラムで効率よく出来るんじゃないかと考えています。
あなたは何がしたいですか?
私のプログラムに対する欲求はこれに尽きる。「自分が何をしたいのか」
すごく大事です。
やりたいことがあると、自分のモチベーションも集中力も格段に上がります。
是非やりたいことを探してください。
コードで遊んでみる
やりたいことが決まったら早速調べてみましょう。さあ、ブラウザを開いて!
「〇〇 作り方 プログラム」
もうこれで大体出ます。(適当)
あとは「初心者」とか「手順」とかワードをいろいろ試しつつ調べたりするといいかもしれないです。
で、最初はとにかくコピーして動かすところまでやる。
構文、文法どうのこうのは最初から理解するなんて大変ですし、コピー元のソースが間違ってたり、汚い(って言うと失礼ですが)時もあります。
とにかく、まず動かしてみる。
そのあとで、どの部分がどういう役割(処理)をしているのかを理解していく。
がっつりやると疲れるので、パラメータをいじってみたり、処理の順番を変えてみたり、コメントアウトしてみたりして、 大体「これは描画してる」とか「こいつがファイルをイイ感じに操作してくれる」とか、 「ここで入力を受け付けてくれる」みたいな、雰囲気をつかんでいきます。
コードを眺めて、いじって、遊んで、試して、プログラムというものに慣れる事からやりましょう。
見ているうちにだんだん流れも見えてくる(ハズ…)と思います。
自分で打ってみる/構文・文法を勉強する
遊ぶことに飽きたらいよいよ自分で一から作ってみます。最初はコピーしたコードを見ながら、自らの指でひとつひとつ確実に打ちこんでいきます。
そうすることで、体に覚えさせるというのと、作成の流れをつかみます。
ここまで来てようやく構文・文法を調べていきます。
文法を見ていくことで、プログラムに対する理解を少しずつ深めていきます。
悩んだら調べる。それだけ。
自分ができることをやってみる
ひとつできると次への自信になります。正直この段階でできる事は限られていますが、 その限られた知識のなかで、自分で仕様を組み、実際に一つ作ってみましょう。
どこぞのサンプルの改良版でも良いです。
ここから本格的にデバッグの方法を学び始めましょう。
デバッグが上手にできないとこの先とてもプログラム開発なんてできません。
また、わからないことや疑問がどんどん増えていくと思います。
そういう時はネットや本を活用して調べていきましょう。
近くに聞ける人がいるのなら、聞くのが手っ取り早いですが、 まずは「調べる力」をつける事が大事。
やりたいことをやる!
ここまでくるとどんどんやりたいことが増えてきませんか?(増えなかったらごめん)
あとは「やりたい」と思ったことをどうやって実現していったらより良いか、 もっと上手な方法がないか、試行錯誤を繰り返していきます。
また、コードの見やすさなんかも考え始めて欲しいです。
後から見直したとき、見づらいコード程萎えるもんはありません。
というか、仕事としてプログラムをする予定であればなおさら見やすさにもこだわるべきです。
このあたりは人それぞれあるとは思いますが…。
「リファクタリングしやすく、デバッグしやすい=見やすいコード」が理想的です。
(私にとっては)
とりあえず、
やりたいことをやる=「やりたいこと=意欲」と「調べる能力」と「デバッグ能力」が必要。
最初に勉強すべき言語は?
ぶっちゃけなんでもいいと思います。やりたい事 > 覚えたほうが良いと巷で言われる言語の数々
私は↑こういう気持ちです。が、それだと無責任なので、[覚えたほうが良いと巷で言われる言語の数々]をあげてみます。
これは私の戯言と思ってください。基本なんでもいいと思ってるので。
ゲームプログラマーを目指しているならとにかくC、C++くらいは覚えておくといい事あるかもしれません。
が、就職先で何を使用しているかなんてわからないし、勉強する時間も限られているでしょう。
なので、コンシューマ系なら最低C、C++、欲を言えばC#まで。できればVB。できればDOS。
アプリ系ならobjective-c、Swift、C#。
(私はアプリ系は詳しくないので悪しからず)
自分がどういうジャンルのゲームプログラマになりたいかを妄想して勉強する言語を選ぶと良いかもしれません。
Web系プログラマーを目指しているなら、HTML、css、PHP、JavaScriptあたり??
(私はWeb系は詳しくないので(以下略))
あとはよく聞く系だとPythonとかかな…?
(私はPythoは詳し(以下略))
結論:悩むくらいならとりあえずCやっとけ。ただし責任は取らん。
(私はそこそこ古い人間ですので悪しからず)
ちなみに、自分が最初に手を付けたのは高校生のとき、数学の教科書にのってたBASIC。
その後Cを勉強してからは次から次へと手当たり次第に…。今は主にC#ばっか。
基本の言語(自分はCだと思ってる)を一つマスターしておけば、後は応用が利くので、リファレンスがあればすぐに次が覚えられる。
まとめ
どんな事でもそうですが、最初からできるヤツなんていません。必ずみんな最初は初心者です。「やりたい!」と思える何かがあれば、挫折しづらいと思います。
プログラムが作れるようになるととても便利ですし、 なにより動いた時はめちゃくちゃ嬉しい&楽しい!
そんな感覚を一人でも多くの皆様にも是非味わっていただきたいです。