プログラミングを勉強しているときに困ったこと

振り返りが終わってしまった。今後しばらくは振り返っている間に頭に浮かんだことを書き下していくことにする。 今日は自分がプログラミングを勉強しているときに困ったことを紹介する。

振り返りが終わってしまった。今後しばらくは振り返っている間に頭に浮かんだことを書き下していくことにする。 今日は自分がプログラミングを勉強しているときに困ったことを紹介する。

どこまで一般的なものなのかわからず最初の一歩を躊躇する

課題

初めて触ったプログラミング言語C言語だった。 「C」と名前がつくことから、D言語とかG言語とかあるのか?ともしかして一部の業界でしか使われていない?と不安になった。

解決

いくつものプログラミング言語を勉強することで不安が解消された。よって、まず一歩踏み出してしまうのが良い。 古今東西すべてのソフトウェアを単一のプログラミング言語で作ることは出来ない *1

文法を勉強した後に途方に暮れる

課題

最初は文法をマスターすることこそがプログラミングのゴールだと思っていた。 しかし、勉強が終わってもExcelChromeも実装できる気がしない。 明らかに勉強が足りていない分野があるが、その名前がわからなかった。

解決

友人に聞いてしまった。「あれはどうすれば作れるのか」「ああいうものを作る場合どんな知識がいるのか」と聞くことで、 まず技術の名前を知ることができた。

練習問題がない

課題

プログラミング言語の文法を学んだ」というのは、学校の勉強で言えば「教科書を読んで公式を知った」程度の状態。 当然のことながら練習問題を解きたくなる。しかし、計算ドリルのような手ごろなものがなかった。

解決

いろいろ足掻いた。が、世界はここにまだ課題を持っている気がする。

  • 標準ライブラリを片っ端から使ってみた *2
  • アルゴリズムコンテストの問題を解く
  • 人の書いたライブラリを使ってみる
  • 自分でライブラリを書く
  • 車輪の再発明をする *3

みんな言うことが違う

課題

タイトル通り。勉強しているといろいろなことを言ってくる人がいる。 「プログラミングは単価の安い人間のすることだ、設計を学べ*4」 「目的なしにプログラミングを勉強するな*5」 「コンピュータサイエンスなんて使わないでもソフトウェアは書ける((正しい。が、私はソフトウェアで付加価値を訴求しようと思ったら必要になった。)))」などなど。 どれを真に受けたらいいのかわからなかった。

解決

とにかくいろんな人に話を聞きまくる。いろいろなチャネルからつながりをつくるのが重要だと、いま今振り返ると思う。 もちろんどれも良心から言ってくれたものだし、正しいことも多くある。が、この投稿も含めて一個人の意見でしかない。 Twitterや勉強会は普段会えないような人たちに合わせてくれる良い機会を与えてくれた。

*1:たまにJavaはなんでもできると思っている人がいるが放っておいていい

*2:ある程度標準ライブラリが豊富な言語でないとあまり効果はない。C言語とかはダメ

*3:Webサーバを自分で書くとか

*4:これはSI業界の人の発言で、実際SI業界ではそうだと思うが他は違う。うちの業界は違った。

*5:モチベーション維持という意味ではある意味正しい。が、何ができるのかわからないうちは「まず触る」で良かったと思う。