僕がプログラマーとして必要になった学力や専門的知識について

読了まで:約5分


概要: 僕はこれが無くて苦労しました


昨日の記事、

で、

今年は、 毎日ブログを書く! というコトに挑戦したいなぁと考えております。

とか宣言したので有言実行をこれから行いたいと思います。

僕はプログラミングをする上でこれらの知識が無くてかなり困った

ぶっちゃけると僕は、高校生の時に精神疾患、具体的には、

  • 統合失調症

を患ったため、最終学歴が高校中退の中卒という、 何とも言えない学歴で終わっていて、当然のコトながら、 高校の授業の内容も途中で尻切れとんぼしてるんですが、 特に、プログラミングをする上で、知識が無くて困った or 困ってるのは、

  1. 数学の知識
  2. 英語の知識
  3. デザインの知識

辺りです。

まあ、三番目に関しては、まだ実感としてはないんですが、特に、

  • 数学力

が、無いため、昨日まで作ってた Reed Solomon Code の Golang 移植を、 あきらめざるを得ませんでした。だって、

  • EncodedLen(n int) int
  • DecodedLen(n int) int

の計算が合わないし、なんかうまく Encode/Decode もできないし、 どうしたらいいのこれ……になったんだもん。

で、僕が実際にプログラミングをやっていて、ロジカルというか、なんだろう、数学的な式が必要になってくる場面で、高校数学や大学数学ができないっていうのが、結構高い障壁となっていて、僕の興味のある、P2P 関連の技術を実装する際とか、あるいは既存の P2P 関連技術の他言語移植の際に、この、

  • 数学力

が無いために、コードの意味が理解できなかったり、あるいは今回のように数式が組み立てられなかったりするので、僕はやっぱり、プログラマーには、まず第一に、

  • 数学力

が必要なんじゃないかなーと思う。

というか本当に数学に関しては、中学校レベルから学び直したいと思ってます。

英語の読み書きは長くプログラミングやってれば身に付く。問題はリスニング

で、次にプログラマーとして、よちよち歩きというか、プログラミングを初めて最初の方に困ったのが、

  • 英語の読み書き

だったりします。

ぶっちゃけ今となっては英文を読むのはちょとと時間がかかるけど大体できるし、英文でドキュメントを書くのも、接続詞の使い分けが怪しいにしろ、大体できるようになったので、それはそれでなんとかなるんですが、本当にプログラミングを始めた頃は、英文が読めなくて、というか意味がつかめなくてコードみないと何をどう使えばいいのか分かんないよコレ……と成ってました。

ただまあ、英文の読み書きについては、七年ぐらいずっとやってれば勝手に身に付くのでまあそれはそんなに勉強しなくてもなんとかなるもんですが、問題は、

  • 英語のリスニング

の方で、これは本当に自前で学習しないとどうしようもできません。

特に僕の場合、文章を読む際には、必ずと言っていいほど、文章を脳内音声で脳内再生されているんですが、僕の場合、英語に対してはこれがスムーズに行われないため、英語のブログを読むのがしんどいですし、あともう一個問題なのは、

  • 英語の Podcast を聴きたいのに何言ってるがガチで分からない(><;)

というのがあったりします。

というかこれは、以前に@miyawaga さんが、

で紹介していた PodCast を聴きたい! と思ったときに生じたコトで、まあプログラミング関係なくね? とか思ったりもしないでもないですが、英語がスムーズに脳内再生できない、あるいは聞き取りが出来ない、というのは、英語圏の Tech Talk とか、あるいは Apple の新作発表とかが聞き取れない、というコトなので、これはこれで僕としてはなんとかしたいなーと思ってたりします。

で、僕は一応これをなんとかするために、

をだいぶ前に購入していたりするんですが、ぶっちゃけまだ何もやってないというね。まあ去年本当に調子が思わしく無かったからね。今年こそこれらをやってなんとか英語力を鍛えたいです。はい。

プログラマーであっても デザイン力 は必要となる

ぶっちゃけ、

  • デザイン

という言葉には、広義の意味合いと狭義の意味合いがありますが、僕が今回取り上げたいのは、広義の意味合いである、

  • デザイン=機能設計

の方です。

正直僕は UI/UX とかは経験もなくて、僕がデザインを行ったことのある、 あるいは実装したことのあるもの、っていうと、

  1. プログラムのライブラリの Interface
  2. ブログとかのレイアウト設計
  3. データベースのモデル設計

ぐらいなもんですが、僕が思うに、プログラマーにとっても、いわゆる狭義の美術的な意味合いではなく、

  • 広義の機能設計としての デザイン力

というのは本当に必要なんじゃないかな、と思うワケですよ。

それは何故かといえば、この 機能設計としてのデザイン がクソだと、例えば Mobile Application で使いづらいクソのようなアプリができるワケですし、これがブログや Web App の設計だと、内容が見づらい、あるいは、どこにどの機能があるのがさっぱり分からん! というような、これまた犬のクソのような物体が出来上がるわけです。

で、僕はもう 7 年近く HTML + CSS はいじってるワケですが、まあ大体のレイアウトは決められるようになったとはいえ、本格的な Web App の設計とかはまだやったことないですし (というかアイディアがあっても形になってない)、あと、やっぱり最近興味がわいてきた、モバイルアプリの開発において、UI/UX を設計する際に、やっぱり、

  • 機能設計としての デザイン力

が必要になってくるんじゃないかなぁと思うのです。

まあなので、僕ももうちょっとデザイン周りの学習ができたらなーとか思ってます。

というコトで以上

なんか雑談的記事になったような気がしないでもないですが、とりあえず僕は、

  • 数学力
  • 英語力
  • デザイン力

に劣っている、というか、これらに関しては基礎的な知識や学力が無いため、本当にプログラミングしてる時に障壁にぶつかったりするので、この辺りの知識は本当に身につけたいなぁと思う次第です。

ただ一つ問題として、僕が今現在も患ってる、統合失調症や、あるいは鬱病と言った病気の影響で、学習意欲が続かなかったり、あるいはそもそもの学習意欲が起きなかったりするので、その辺りも克服できたらいいんだけどなぁと思います。というか僕の場合、映画を観に行くとか本屋へ行くとか、そういったどこかへ遊びにいく、ってコトすら結構次の日に来ますからね。一回元気を使うと回復がすげー遅いという。まあ本当しょうがないと言えばしょうがないんだけど、なんとかならんもんかねぇ。

ま、僕としては、

  • 数学
  • 英語
  • デザイン(広義)

の中身について、もうちょっとといか、基礎からやり直したい、と思っているので、今年中にこれらに取り組めたらな、と思ってます。まあもうちょっと体調が回復してからですけど。

というコトで、今日の記事は以上です。なんか、雑談チックでしたけど。

#FIXME

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。
次に備えて待機中。

今は趣味でプログラミングをして
生活しています。