2015年1月11日日曜日

今までのプログラミング遍歴

「最初に教えるならどの言語?」という話が私の周囲に話題になっていたのですが、

そういえばプログラミングに触り始めて5年を過ぎて
「最初の頃ってどうだったっけ」と初心?を忘れてきましたので、
個人的なまとめです。

一応自分で参考になったものなどは書こうと思いますが、
これから始める人に本当に役立つかは謎です☆(๑´ڡ`๑)






まず前提ですが、私は大学に入るまではプログラミングのプの字も知らず
ブラインドタッチはできるぐらいの (・_・)フツウ でした。

以下はその穢れを知らなかった頃。


〜小学生




世は大ワープロ時代...!!!!



  • 我が家でも年賀状などはワープロで作っていたので、その流れでフロッピーをもらって短いお話を書いたりスタンプを組み合わせて絵を描いて遊んでた。
  • 多分ここでタイピングを覚えた。





そして Windows  95  の登場 ...



  • 我が家にも導入されましたが、電話回線でインターネットが高かったのでもっぱらマインスイーパ。
  • あとは絵を描いたり文章を書いたりもしたけど、プログラミングまではいかなかったなー。
  • 個人サイトは持ってたから、そういえばhtmlを自分でいじったりはしてたかな。




〜JK時代



情報の教師が大セクハラ野郎だったヽ(`Д´)ノ


  • お気に入りの女生徒には手取り手取りで(!)女の子の手を包み込むようにマウス動かしてたらしい。(噂です)
  • おかげでだいぶ情報が嫌いになった(苦笑)

  • しかも課題を送らないといけないので家のアドレスから送ったら、定期的に自分新聞みたいなのが送られてきた。多分今なら個人情報的にアウトでしょうねぇ。。
  • ヘッタクソな絵や全く興味がない自分の旅行の写真なんかが載ってるんだけど、それを母親が律儀に全部印刷して保存してたんでウケた。


 ....  ( ゚д゚)ハッ!
怒りのあまり、話が逸れてしまいましたな。失礼しました。



〜そして大学へ




まず初めに自分の言語遍歴を晒しますと
多分メインで触ったのは

ruby -> C -> Java -> C++ -> R -> Python -> Go

これぐらい。


  • 選択の授業で rubyを触る。フィボナッチとか簡単な課題は特に苦もなかったけど、最後の方の課題は難しくてシケタイに教えてもらった気がするなぁ。
  • 学科に進学して突然Cのポインタのポインタのポインタとマロック地獄が始まる
  • ここでソートは一通りやったんだろうか
  • 最初の課題はemacsのチュートリアルだった気がする。そもそもショートカットというものをほとんど使ったことのなかった私には衝撃!

  • Scheme?はてなんのことだか...
  • プログラミング課題で泣いたことがある ○か×か??? (。`・ω・´)
  • アセンブラは物理的な感じで逆にわかりやすくて楽しかった

  • よくわからないけど「りなっくす」ってのの入れ方を同期の子が教えてくれた!
  • →数ヶ月後になぜかシェルを作ってる???
  • →サーバーとクライアントってまぢなんなの???
  • ふつうのLinuxプログラミングがなかったら死んでた
  • emacs小指になる


〜大学後半戦(もう穢れてる)



  • 先生の趣味で突然のJava
  • 先生の趣味で突然のC++
  • STL頑張って使ったけどほとんどCの拡張
  • 扱うデータが膨大になってくる。でもワークステーションやスパコンの使い方をまだ知らなかった(純真
  • パソコン自体のこと(設定やインストールとか)やコマンドラインはちょっと上達
  • その流れでなんとなくオブジェクト指向というものを知る
  • デザパタ的なものをかじる
  • 「プログラミングちょっと楽しいかも」と思う\(^o^)/

  • 卒研でスパコンを使いながら大量のデータを扱いだす
  • ビッグデータ(笑)を扱うために、メモリの節約や高速化などのテクニックが必要になったのでプログラミングの勉強を始める
  • マルチスレッドできたぞ!
  • gdbデバッグというものが真面目に必要になったので少しできるようになる
  • IDEを使うようになった
  • データ処理でgnuplotとかいろいろ触ったけどとりあえずRに落ち着く

  • Efective c++を読んで人生がかわる
  • これを読んで初めて「綺麗なコードを書けるということは素晴らしいことだ」と思いました
  • 影響を受けてTemplateやクラスの継承などをいろいろ試してみてプログラムが超巨大化。おかげさまでmakeの勉強をする。
  • この時点で5000行ぐらいいってた気がする
  • C++のalgorithmライブラリやC++11, Boostに衝撃を受ける

  • スクリプト言語はperlを使っていて文字列処理やインターネット経由でデータ落としたりしていた
  • tex、汚い。有料ってすごい。

〜大学院(M)


  • ある程度こなれてきて、いろんな言語をとりあえず触ってみるようになる
  • Javaももう一回勉強して、オブジェクト指向を真面目にやった
  • vimを覚える
  • でもショートカットはemacs

  • アルゴリズムに凝り出して、DPや機械学習の勉強に勤しむ
  • 可視化技術をいろいろ身につける
  • デバッグに苦しむ。とても苦しむ。

  • 本もいろいろかじって、宗教()がいろいろあることを知る
  • ブログを始めた
  • アプリを作ってみたけどあまりはまらず(そっち方面ではないのかもしれない。。

  • 飽きてきたのでPythonを始めた
  • スライス楽しい!Numpyすごい!(∩´∀`)∩
  • 圧倒的にパースと数値処理が楽になりました

  • バージョン管理を知る
  • 世界の広さが段々わかってくる


〜今ココ


  • Dvorak教になってしまった
  • キーボードやショートカットなどいろいろと自分がやりやすいようにカスタマイズを始めた
  • Go langが楽しい
  • シェル芸を身につけはじめた
  • 勉強会にも顔を出したりするようになりました
  • 応用情報の勉強でネットワークや暗号化も面白そうだと思ったり( ^ω^ )

  • 単体テストをこれからは大切にします!
  • Dockerとか使いこなせるようになりたい!
  • バージョン管理も真面目にやりたい!

  • htmlやjavascriptを始めかけてる゚・✿ヾ╲(。◕‿◕。)╱✿・゚:✲:


こうやってみると、研究室に所属してから吸収したことがたくさんあるんだなと実感するし、「必要は勉強の母」だったと思います(笑)

そしてそれを吸収するために学部で最初に勉強したことって大事だったんだなぁと改めて思います。でも恨んでます。


という訳で大量に書きなぐってみましたが、
これからも視野を広く、基礎の勉強もしつつ、
新しいことを受け入れられる人間になれるようにがんばります(`・ω・´)


まぁまだまだ雑魚なんですけどね!!!ヾ(*´∀`*)ノキャッキャ


おわり







0 件のコメント:

コメントを投稿