プログラミングを覚えたてのころ。次の段階へ進もうとしたときに手が止まってしまう。「自分にはプログラミングができないのではないだろうか」。そんな気持ちになってしまう瞬間が訪れることがあります。
しかし、折角興味を持って勉強し始めたものを、「できないから」といって放り出してしまうのは非常にもったいないことです。
最初の内は覚えることも多く、困難が続くかもしれません。しかし、自分一人の力で思い描いたアプリやサービスを、世に送り出すことも可能なプログラミングは、魅力的な学問です。一度目指したなら諦めず継続してみてください。
ここ記事では、一般的に見られる「プログラミングができない」現象について、その原因の分析と対策の例をみてみましょう。
- ネガティブな思考や、無計画に一気に作り上げようとすると、結果的にうまくプログラムが動かない
- 目標・目的、期限を明確にしてからプログラミングに取り掛かろう
- 疑問を放置しない、他人に助けを求める姿勢も重要
- 初心者の場合、入門書で基本的な知識を学び、書籍や他人が書いたコードをまず動かす所から初めてみよう
プログラミングができない原因
そもそも、「プログラミングができない」とは、どういう状態でしょうか。
プログラムが思った通りに動かない
いわゆる「バグ」がある状態なのに、どこにバグがあるのかわからない。「自分の書いたプログラムは正しいのに!」こんな思考に陥ってしまうことがあります。しかし、ほとんどの場合はプログラムが間違っているのが原因です。どんなベテランプログラマーでもバグは起こります。しかし、できるプログラマーほど、デバッグに力を入れます。自信を持ってプログラミングするのは大事ですが、落ち着いて少しだけ顧みる余裕を持ってみましょう。
プログラムの書き方がわからない
言語仕様のドキュメントも読んだ、文法もバッチリ覚えた、でも今実現したい機能をどう書いたらいいかわからず、途方に暮れてしまった…プログラムを一気に書き上げようとするとこういった事象に遭遇しがちです。こんなときはプログラムの機能を徐々に分割していきましょう。「この機能を実現するためには何をしなければならないか」を考えて更に「分割された機能を実現するためには何をしなければならないか」を考えて、更に分割を繰り返して。そのうち、1行のコードで実現できるところまで分割されれば、あとはそれをタイピングしていくだけです。
プログラムの意味がわからない
プログラムというものがどんなものなのかは理解したのだけれど、英語みたいだし(英語は苦手だし)、計算してるし(数学も苦手だし)。確かにそうなのですが、英語といっても殆ど単語でしかありませんし、計算といっても基本は四則演算程度です。参考書も多数出版されていますし、インターネットで調べることも可能です。学校の試験ではありませんので、カンニングも咎められません(もちろん、他人の書いたプログラムを自分のものと主張するのは違法ですが)。一つ一つ落ち着いてプログラムを辿ってみると、意外とわかってくることが多いですよ!
未経験からのエンジニア転職に強いスクールはこちら
プログラミング学習のコツ
では、どうやったら「プログラミングできる」ようになるのでしょうか。
目標・目的を明確に
いつ、どこで、誰が、何のために、どのように使うプログラムなのかを意識して、どういうプログラムにするか、つまりプログラムの仕様を決めましょう。プログラミングしていくうちに仕様に誤りや疑問が発生してくるかもしれませんが、その場合には一旦プログラミングを止めて仕様を検討し直しましょう。
いつまでに達成したいのか期限を明確に
仕事としてプログラミングするのであれば、もちろん納期が発生します。仕事でなくとも、実際に使用するタイミングに間に合わなくては意味がありません。しかし、期限に間に合わせるためにいい加減なプログラムを作るわけにはいきませんし、そのために毎日徹夜してボロボロの身体になってしまうのでは本末転倒です。仕様と併せて無理のないスケジュールを立て、日々進捗状況を管理し、場合によっては仕様・スケジュールの見直しも検討しましょう。
暗記しようとしない
参考書やテキストを隅から隅まで読解しても、実際のプログラミングが完璧にできるようになるわけではありません。机上や電車の中で参考書を読むのも必要かもしれませんが、それよりは少しづつでも実際にプログラミングをしてみて、わからなくなったら参考書やインターネットに頼ってみましょう。「習うより慣れろ」です。
最初からすべてを理解しようとしない
どんなスーパープログラマーでも最初からスーパープログラマーだったわけではありません。皆、挑戦と失敗を繰り返して徐々に「プログラミングができる」ようになっているのです。仕様でもプログラムでも、自分の理解できる言葉に噛み砕いてみましょう。そして、自分で理解できた部分から全体へと範囲を広げ、全体へ広がったら細かい部分に矛盾がないかを確認していきましょう。そのうちに、自分の理解できる範囲や言葉が広がっていることに気づくことでしょう。
疑問点を放置しない
参考書やインターネットにある回答やヒントを元にして、一部のソースコードが一体何のために必要なのかがわからないけれど、とりあえずプログラミング終了。これをそのまま放置しないで、自分の記述したソースコードは全ての行に何の意味があるのかを理解しましょう。全ての行にコメントをつけて意味を明示する、というのもひとつの方法です。
他人に助言を求める
プログラミングの目的は正常に動作するプログラムを作ることです。そのために他の誰かに助けを求めるのは何の問題もないことです。インターネットのQAサイトで問いかけるのもいいでしょうし、先輩や同僚に質問するのもいいでしょう。
しかし、質問にミスリードがあったり要点のわからない質問をしたりすると正しい回答は返ってきません。正しい回答を導き出すためには、正しい質問の仕方が必要です。正しい質問をするためには、何がわからないのかを明確にする必要があります。どんどん質問して「質問のスキル」を磨きましょう。質問のスキル、それは即ちプログラミングのスキルとなっていくことでしょう。
未経験からのエンジニア転職に強いスクールはこちら
初心者におすすめの学習法
プログラミングに慣れるためにお勧めの学習方法です。野球をするときにキャッチボールから始めるように、プロになってからでも肩慣らしになる学習方法です。
入門書を読む
難しい専門書を読む必要はありません。また、前述のように暗記する必要もありません。ザックリ概要を理解する程度で十分です。新しい対象をいくつも経験するうちに、対象の持つ「特徴」を読み取れるようになります。あとは、実際にプログラミングしている過程で、疑問に思ったことがあれば必要に応じて読み返してみましょう。
とは言え、どの入門書でもよい、というわけではありません。自分に合った書き方をしているものでなければ読み進めるのは苦痛ですし、入門書自体が導こうとしている方向性もあります。自分に合った入門書を選ぶのは難しいですが、実際に書店や図書館で手に取って選んでみてください。上記のような使い方をするのであればサンプルプログラムが多い、目次(インデックス)が充実している書籍がお薦めです。
写経する
僧侶は、写経することで仏陀の教えを理解し、仏陀の心に触れようとしました。梶井基次郎は、他の作家が書いた作品を書写することで著者の心情や、文体の流れを感じようとしたといいます。同様に、と言えるかどうかわかりませんが、参考書やインターネットにあるサンプルプログラム、または他人が作成したプログラムをそのまま自分で記述してみる、というのもひとつの勉強になります。
1ステップ1ステップを確実に意識することで、「あ、ここでこういう処理が必要なんだ」とか「何でこんな書き方をしているんだろう」という発見や疑問がきっと出てくるでしょう。それはそのまま今後のプログラミングに役立つはずです。
未経験からプログラマーになりたい方には、「ポテパンキャンプ」がおすすめです。最短5か月で未経験からプログラマー・エンジニアになれるプログラミングスクールです。
まとめ
プログラミングは英語ができて数学ができる頭のいい人でないと理解できないほど難しいもの、ではありません。事実、現役プログラマーにも英語が苦手、数字が嫌いといった人達がゴマンといます(著者もです)。
本当に「プログラミングができない」ということは殆どないはずです。但し、プログラミングには王道はありません。ひとつひとつを確実にこなしていくことで必ず理解できるものですので、諦めずにチャレンジしてください。
プログラミングを習得したら、自分なりのアプリやサービスを世に送り出してみましょう。昨今では、スマホアプリや Webサービスが簡単に少ない費用で公開できる環境が揃っており、アイデア次第で多くの利益を得ることも可能です。