灰色の棚

適当な話を適当に書くので、適当に見ていってください

プログラミングのレベルアップの方法が知りたい!


スポンサードリンク

f:id:syunki-gt:20140515003351j:plain
 私はプログラミングが好きです。と言うのはどうかなーと思いますが、多分好きだと思う瞬希です。

 ちょっとしたゲームを作ったり、シミュレーションをしたり、簡単なアプリを作ったり。そういう行為が好きです。欲しい物を作り出したり、問題を解決したり、面白いと思います。


 と、好きなのは確かだと思うのですが、もっと腕を上げたいと思うことが多々あります。私はレベルがそう高くないので。レベルアップしたいと。

 ですが、その方法が分かりません。分からないので、調べたり考えたりしてみたいと思います。

 では、いってみよー。

レベルとは何か

 レベルアップしたい! という時のレベルとはなにかというのをまず固めておきたいと思います。

 私が考える「レベル」は、問題解決能力の高さだと思います。そして、解決するだけでなく「スマートに」解決する能力の高さだと思います。


 プログラミングには力技というのがわりと多くあると思っていて、でもスマートじゃないよなと思うことがよくあります。問題を解決するだけならスマートじゃなくても問題ない場合は多いけど、拡張性が低かったりセキュリティに問題を残したりといろんな不具合が出てくる場合があります。

 問題を、スマートかつ早く解決する能力を身につけたいと思います。

場数を踏む、本を読む

 言語を習得し、特性を知るための最も簡単な手段は、使ってみることだと思います。

 最初は力技しか出来なくとも、それが嫌だと調べればよりハイレベルな方法を習得できる可能性があります。知らない言語を使えるようになりたい場合も、使ってみてわからないところを調べるのは効果的です。


 そして、そこから一歩踏み出すためには本を読むことだと思います。

 言語の本、アルゴリズムの本、個別の事例の本など色んな本があります。自分に最適な本を探し、読み込むことはおそらく力になるのだろうなと思います。


 実践する、本を読む、実践する、本を読む。この繰り返しが上手くはまればすごくレベルアップできそうです。

仕事をするのが早いのも分かる

 プログラミングを上達させる方法としてすごく優れている方法に、仕事としてやる、という方法があるようです。

 お金をもらって、問題を解決する。自分にプレッシャーもかかるし、責任ものしかかります。時間に制限もあるでしょうし、レベルアップ出来そうです。


 これは私にも経験があります。私は以前、半年間プログラマとして働きました。その期間の伸び方は、それまでの独学の期間とは比べ物にならなかったようにも思います。

 働いていた時だって、誰かに教えてもらったことは少なかったです。やっていることは独学の時と同じ。でも、お金をもらっているという感覚は強く、伸びざるをえないという感じもありました。

なにか作りたい

 プログラミングと言っても方向性はいろいろあるので、レベルアップしたいと言っていたら「で、何がやりたいの?」と聞かれそうな気がします。

 問題は、この答えが見つからないことです。


 得意分野といえる分野もはっきりしないし、何がやりたいかといえばなんでもやりたいんです。面白そうだと感じればなんでもやってみたい。プログラミング方面で面白くなさそうと感じたことは今のところ無いので、なんでもやってみたい。

 ですが、範囲が広すぎると「何にもできない」につながりがちで。私はそうなってるなと思います。

スペシャリストを目指したい

 ジェネラリストとスペシャリストという言葉がありますよね。プログラマにもこの言葉使われるように思います。

 ジェネラリストもいいと思いますが、会社に属せていない現在ではそちらを目指すのは危ないような気がします。範囲を広げすぎて器用貧乏になったら誰にも使ってもらえなさそうで。

 そう考えると、スペシャリストを目指すべきかと思いあます。特定の分野にすごく強い人を。特定のと言っても、近い分野を3つ4つ伸ばしたいかなと。1つだとつぶしが利かないし。


 そんな感じで、スペシャリストを目指したいと思いました。

 でも、どうしたらいいんだろう?

方向を固める。実践と勉強を繰り返す。

 何を勉強したいのかをしっかり固めること。そしてその方向に突き進むこと。

 それができればいいなと思います。なかなかできないんですけどね……。


 方向性を考えた時、「方向はたくさんある」ということは知っていても「どんな方向があるのか」をはっきり知らなかったりします。見えないんですよね、なかなか。

 アプリ系しか分からないけど、スマホやWebやPCなどがあって、言語がいろいろあって、セキュリティやら通信やらいろいろ個別にもあって……という感じ?

 うーん、わからないです。

相手のことを知らないんだな

 相手(プログラミング関係のいろいろ)をよくしらないんだなと思いました。

 敵を知り己を知れば百戦危うからずというけど、敵も己もよく分かってないんじゃ勝てませんよね。


 うーん。もっと全般的な知識も必要そうです。どういうものがあるのかとか、どういう繋がりがあるのかとか。

 調べる。どう調べればどう身につくのだろう。ちょっと分からないので調べてみるかなぁ。

おわりに

 2200字くらいだらだらーっと考えてきましたが、とりあえず

  • 相手(プログラミング関係のいろいろ)のことを知らなすぎる
  • 方向性を固めないと
  • あとは実践と勉強の繰り返しでは?

 という感じになりました。


 「こうしたらいいよ!」とかあったら、教えてください。

 私は専門的な教育を全く受けていないので、基礎知識はほぼ無いです。もし普通は辿るであろうルートとかあるのなら、知りたいです。


 知識を深めたいなーと。技術を高めたいなーと。

 そういう思いがあるので、ガリガリ書いてみました。ここから伸ばしていけるといいな!


 そんな感じで今回はここまで。おわり!