FUNBREWの金井です。
プログラミングを始めた方で、「思うようにプログラムが書けない」と思っている人は多いでしょう。
かくいう私も、プログラミングを学習し始めたときは同じ悩みがありました。
プログラマーの誰しもが、プログラムをうまく書けなかった経験があるに違いありません。
今回はどうやったらプログラミングが上達するのか、私見ではありますが共有したいと思います。
プログラムが書けるとは?
私が初めてプログラムを書いたのは、大学生の時、基本情報技術者の午後試験対策のためのC言語でした。
「初めてのC言語」のようなタイトルの書籍を一通り終えて感じたのは、「自分はプログラマーに向いてない」と思ったことです。
本を一冊通してできるようになったのは、「黒い画面に表示される電卓もどき」のプログラムでした。
結局、基本情報技術者も午後試験で落ち、文系だった私は「実務経験がないから仕方がない」と思うようになりました。
当時、業界研究をしてなかった私は、文系でもエンジニアなれることを知らなかったのもあり、初めて内定をもらった企業に喜んで承諾をしたのを覚えています。
入社してからの研修はあってないようなものでしたが、エンジニアの先輩から色々話を聞いて、初めてウェブシステムを構築できたときに、ようやくプログラムが作れたという実感が湧きました。
「プログラムが書けた!」と思える瞬間は人それぞれです。
私の場合は初めてウェブシステムを作ったときでした。
そういう意味で、プログラミングを勉強している人は、「プログラミングで何が実現できたら嬉しいのか」を知ることから始めるのもいいと思います。
プログラミングをやり続けて、好きになる
私の経験で言うと、やはり面白くないことを続けていても上達は早くならないということです。
人は誰しも得手不得手・好き嫌いがあるので、できるだけプログラミングも興味があることに情熱を傾けられると、より学びが早くなると思います。
私がプログラミングを学び始めてしばらくして、プログラムの書き方にこだわった時期がありました。
リーダブルコードという可読性について書かれた本に感銘を受け、それ以降はただプログラムを書くだけでなく、読みやすさを重視するコードを意識していました。
それはひとえに、エンジニアという職に就いたプライドもありましたが、可読性を考慮するのが好きだったからに他なりません。
いわゆるキレイにコードを書くにはどうすればいいのか、それに頭を悩ますのが好きだった時期とも言えます。
何に興味を持つかは人それぞれですが、何かに興味を持つためには一定期間学び続ける必要があります。
何かを面白いと感じるには、プログラミングに関わるいろんなことにチャレンジしてみて、最終的にやり続けていることが自分の好きなものと言えるでしょう。
ジレンマではありますが、好きなことをやるには、ある程度やり込まないと見つけることさえできないということです。
「憧れがあってプログラミングを始めたけど、学習が辛い」
そう感じているのでしたら、もう少し頑張って続けてみてもいいでしょう。
なかなか楽しくなるところまで到達できずに、やめてしまう人が多いように思います。
プログラミングは責任を持つと上達する
これはどんな仕事にも言えますが、責任感を持つことでプログラミングが上達します。
例えば、あるシステムで、絶対に稼働を止めてはならないものがあったとします。
システムを止めないようにするためには、どんな工夫が必要か。
これを実現させようと頭を悩ました経験が、プログラムを書く力、ひいてはエンジニアとしての能力が向上します。
特に、もう後がない状況は何とかしようと必死にさせるため、爆発的な集中力を生むことがあります。
メンタルがやられてしまうような責任は本末転倒になりますが、今の自分には少し難しいと思うことにチャレンジすると、プログラミングの能力も向上させるきっかけとなるでしょう。
またそこまでのプレッシャーはなくとも、お客さんの要望に応えようとすると自然とスキルが上がるのは、経験として感じています。
そういう意味では、仕事でプログラミングをするのが、やはり上達の近道と言えるかもしれません。
なぜプログラミングをするのか
私がプログラミングを始めたきっかけは憧れからでした。
「プログラマーってかっこいい」
先にそんな気持ちがあり、パソコンを触るのも好きだったので、その道を目指そうと始めたのが大学生の時です。
ただ最近では「プログラミングは手に職である」や「年収が上がる」と言った目的で始める人も多いようです。
憧れでプログラミングをやっている人は、おそらくプログラムを書くこと自体は苦痛ではないと思いますし、自然と努力ができている可能性も高いです。
一方それ以外の理由でプログラミングを始めたなら、プログラミングが全てでないことを知っておいてほしいと思います。
例えば、年収を上げたいのであれば、プログラミングよりもシステムを使って何が実現できるのか、もしくはプロジェクトのメンバーをうまくやりとりして、つつがなく進められる能力の方が重宝される可能性があります。
いわゆるSEやPMといった仕事です。
もちろん、エンジニアとしてプログラミングは多少できた方がいいですが、特別得意である必要はありません。
今はプログラミングの上達を目指しているかもしれませんが、もしかしたら、そこまで肩肘を張ることはなく、もっと自分の得意な分野を伸ばした方がいい可能性もあります。
プログラミングは長く続けているほど、できるようになる
プログラミングも、結局は経験年数がものを言います。
1つのエラーに何時間もかけて頑張って、しかも解決できなかった。
そんなことがあると「なんてもったいない時間を過ごしたんだ」と思うかもしれません。
もちろん、エラーを素早く解決するための技術はありますが、最終的にはそんな面倒なことにもめげずに、ただただプログラミングを続けている人が上達していきます。
完全に根性論ですが、ある一定の能力値までは継続次第で誰でも到達できるというのが私の考えです。
かくいう私が、「こんな自分でも一応できるようなった」とそう思っています。
今、現場で活躍しているエンジニアも、似たような思いを抱いてる人は多いんじゃないかと想像しています。
とはいえ、学習は自分との闘いです。
プログラミングもスキルの1つですから、どこまでも突き詰めることができるでしょう。
そんな時に大事になるのが、先達のアドバイスであったり、いっしょに学べる仲間です。
それにプログラミングは、もはや専門的な知識を求められる仕事ではなくなりました。
ここでは詳しく述べませんが、うまく技術を扱える人が優秀なプログラマーと言えるようになってきました。
それについてはまた別の機会に書いてみたいと思います。
ファンブリューではエンジニアになりたい人を支援しています。
現在こんなお悩みがあれば、ぜひ一度ご相談ください。
- プログラミングを学習したいが、何から始めたらいいかわからない。
- IT業界に就職するために必要な知識が何かわからない。
- 実務経験がなくて現場に入れない