「デザインパターン」を含む日記 RSS

はてなキーワード: デザインパターンとは

2018-03-18

プログラミング歴とプログラミング能力ほとんど関係無い件について

ほとんどの人はもう既に気付いていると思うけど、あえてこの表題言及している人はあまり多くないんじゃないかと思ったので書く。炎上したら💩なのでここに書く。

結論から言うと、プログラミングを何年やったかプログラミング能力はこのぐらいと言うことは絶対にできない!

これは何もIT業界だけでなく他の分野でもそうだ。たとえば野球とか絵画かにも言えることで、ただ年数を重ねればいいってわけではない。勘違いしてほしくないのは、他の業種ではただ年数を重ねればいいといっているわけではない。

コンビニだったら始めはレジ打ちから入るだろうが、だんだん品出し、他者とうまく調整できv、何が売れるか・何が利益率を叩き出すかを把握し、接客態度は絶えず磨き……というように、能動的にスキルを身につけるなければあっという間に「経験した年数」などというものは何の武器にもならないであろう。(「やっても給料変わんない」とかそういうのは抜きにしても)

IT業界でもこれが言えるのだ。

その証

個人的経験によるサンプルしか無いが、ぼくの経験上では年数が高ければ高いほどいいと思ったことは全くない。もちろん2ヶ月の新人と5年目の人での比較はなかなか難しいが、情熱ある新人プログラマ半年で5年目を追い越すなどということはありふれた話だ。あたか大人小学生中学生さらっと数学英語能力で負けるように負ける。

残念ながらしっかりした実証などはないので、周りの環境がそうではない場合は納得できないかもしれないが、以下は明らかであろう。

経験年数とは時間であり、重要なのは時間を代入すると成長度合を求められる関数(ここではFとする)の違いである。(F: time -> ability)

Fの方が大事理由も明らかだ。timeケチをつけようとする例外を除けば誰にとっても同じであり、おもしろくもなんともない。

Fの次元が違う場合は、能力次元文字通り違う。そのため、かなり重要だ。

プログラミング歴が増えることは恥だと思いたい

プログラミング歴2年だからこんなことを知っている」と周りから評価されるというのは、要は「プログラミング2年生」だということだ。これははっきり言って侮辱である。2年プログラミングをやったから知っているんじゃなくて、2年の間で勉強したことたまたま別の箇所で出現したということだ。決して2年やったからではない。2年の間に獲得したスキルがいっぱいあるからだ。2年は重要じゃない。どれだけやったかだ。2年という期間それ自体は全く重要ではない!

プログラミング歴2年なのにそんなことまでできるのか」というのが真の評価なのだ

これはまあまあ高い評価である。「プログラミングを始めてまだ半年なのにそんなことできるのか」という評価はより容易く得られる。年数を重ねれば重ねるほどこの評価に達するのは難しくなる。したがって「プログラミング10年なのにそんなことまでできるのか」という評価ほとんど得られない。ほとんどの場合、「10年やってるからできるんだな」とか、ひどい場合10年やってるのにこんなこともできない」という評価になる。

これもある種、年数というもの全然重要じゃないとみなされている証左であろう。みんな知らず知らずのうちに周囲の人々の経験年数と能力とでおのおの相関図を作り上げて、標準偏差をなんとなく作り出して、「45歳……クソコード……チーン!こいつは偏差値37!落第!死刑!」みたいなことをやってるんだろう。

プログラミングも慣れてくると、特に新しいことを勉強しなくてもなんとなくできるようになってきはじめる。これが危険シグナルだm

謙虚でありたい

自分プログラミング歴が長いのに、HTTPSの仕組みもTCPの仕組みも詳しく知らず、JavaScriptもまともに書けず、WebAssemblyは全く知らないし、RDBのことは知らないし、もちろんRDB以外のDBちんぷんかんぷんで、デスクトップアプリは作ったことがない、サーバサイドはRailsしか知らない。Railsがどう作られているかも知らない、gitの触りぐらいしか知らない、AWSGCP全然使いこなせない、公開鍵暗号方式もよく知らないし、アルゴリズム簡単ものしかからない。デザインパターン勉強してないし、関数型言語もわからないし、C言語全然読めない、アセンブリはやろうと思ったことすらない、正規表現も複雑なものはいまいちわからないし、機械学習はわからないし、そもそも数学不安で、AndroidアプリiOSアプリもまともなものリリースしたことがなく、エディタは人が作ってくれたプラグインをただインストールするだけで、英語ほとんどできず、セキュリティに関してはザルもいいとこ」

のように自分を見直すべきである。もちろんほとんどの人はそうしているとは思う。そもそも自分プログラミング歴が長いのに」という部分はもはや要らないだろう。

あとはただ穿つだけである能力は、どれだけ、何を、どうやったかとの方と強い相関を持つ。能力とは現在状態であるのだから、強い相関を持つのは最最もである

結論

少年老い易く学成り難しである

一刻も早く「プログラミング歴」でなんとなくの判定するのをやめて、プログラミング歴1秒の人に対しても、プログラミング1000年の人に対しても、そのFを見るようにし、自分はとっとと次元を越えて昇華したいものである

結局、「いっぱいやればいっぱい成長する」という自明結論自体は変わらないんだが(高)

2018-02-16

プログラム設計書とかいもの

最近SE向けに、JavaWEBアプリコードからプログラム設計書を書き起こす作業をしている。

コード自体は今風の書き方で、それなりに読みやすい。そのコードを、日本語文章(たまにフローチャート)に翻訳していく。

基本的に読者は非プログラマーなので、クラス設計原則やら、デザインパターンやらの気配を匂わせてはいけない。通じないし、冗長になるだけだからだ。

辛い。ゴリゴリ精神が摩耗していくのを感じる。果たして、これは必要ものなのか?残念ながら、必要なんだな、今のプロジェクトでは。

いまさらこんなもの書くことになるとは思わなかったなあ…。

2018-01-02

プログラミング初心者の頃の気持ちを忘れた

プログラミング教えてと言われた。

自分PCサーバ立ててドメイン通してアクセスしてみて、HTMLCSSJavaScript概要を教えた。

http://hogehoge.comを叩くとぼくのローカルPC上のHTMLを見ることができるのだ。普通これは感激するはずだ。ヤツは少しも感動しなかったが。

タグのことを教えて、formタグ使ってみて、CSSを教えてセレクタの使い方教えて、なるべくDOMというワードは避けてJavaScriptイベントの追加のしかたを教えた。

で「あとは色んなタグ覚えるだけ」「CSSで色んな組み合わせやってレイアウトを楽しんでね」「あとは色んなイベント覚えるだけだから」みたいな感じ。色んなイベントを追加してもらった。

その後データベースの話をした。

「まずエクセルファイルからデータ取ってみよう(実際はCSV)」「あ、でもこれだと取りにくいし時間かかるね」「しかもこれだとデータ矛盾ちゃうしめんどくさいね」「そこでデータベースですよ」

って言って、sqlite3を教えた。エクセルで「これがインサート、これがデリート」って説明しながら、テーブルレコードSELECT, INSERT, UPDATE, DELETEを教えた。

ヤツは「なんでそんなわかりきったことをわざわざ文字入力するんだ」と憤慨していた。こっちが憤慨したい。

で、次はWebフレームワークの話。まずWebフレームワークを使ってもらう前に、URLを叩いたらアプリケーションが走ることを確認してもらう。僕は「すごいでしょ!!」って言う。

さっきのsqlite3とつなげてみて、データを取得して表示してみた。ここで僕、「すごいでしょ!感激するでしょ!!」って言う。「ふーーん」っていう反応。「データをそのまま表示してるんだからそんなの当たり前でしょ?」みたいな。うるせぇWebサービスなんて大体そんなもんだわという言葉を飲み込みつつ、ここまで3時間

ここで初めてサーバサイドの言語を教える。for-each文、関数までは順調。そしてクラスクラスは若干詰まっていたのでぼくはまず構造体について説明した。

構造体のことはよくわかるみたいだ。まず青赤緑で構成された色の構造もどきを作って、画面に色を出力した。ぼくがこの構造もどきで画面にマリオを描くとヤツは感動していた。

そしてぼくはクラスについて教えた。「この構造体に関数がついてたら便利なときもあるもんだ」って感じ。説明がめんどくさいので「このクラスっていうのが型だよ」とか言っておいた。

共通でいてほしいものもあるけど、共通でいてほしくないものもある」と言って、ぼくはキャラクタークラスを作ってマリオオブジェクトクッパオブジェクトを生成し、FFを究極に安っぽくした感じのフィールドで戦わせた。

ヤツは興奮しているようだった。マリオは負けた。ぼくは「人は目に見えるものしか興味が沸かないんだな」と達観した。

Webフレームワークに戻ってぼくはクラスを使ってViewModel、そしてControllerを教えた。彼はなんだかかなりよくわかった様子だった。ぼくは満足した。

そろそろ5時間になろうとしていたので、ぼくは「あとはデザインパターンと言って、プログラミングしていてよくあるパターンを集めたものがあるんだ」とか「アルゴリズムを知ると色々効率よく書けるよ」とか「非同期処理とかもあるし、とにかく色んなライブラリを試してみて」「他の言語とかも試してみて」とかそんなようなことを言った。

ぼくの仕事は終わった。あとはもうヤツは自分ひとりでなんでもできるだろう。ときどきぼくが質問に答えることもあるだろうけど、ヤツはサーバサイドに必要な大まかな知識を、こんなに短期間で得たのだ。ヤツは優れたエンジニアになるに違いない。ぼくはヤツの家をあとにした。お金ぐらい払ってほしいものだ。

翌日、ヤツから電話があった。

「ごめん、HTMLってなんだっけ……?ていうかファイルってどうやって作るんだっけ……」

ヤツは何も覚えてなかった。俺は発狂した。俺はいったい、何を教えていたんだ。

あと俺、数年勉強しててこれぐらいのことしかわかってなかったのか?そう思って、なんだか猛烈に虚しくなってしまった。

そしてぼくは、二度と人に教えないことを決意した。

2017-12-31

anond:20171228095020

知識としては経営学部学部回生レベルからね。

デザインパターンみたいなものといえばそうだと言える。

その知識を元に、ケーススタディといってビジネスを見て振り返ってというのを繰り返しやるのがMBAだけど、

「生き残ってる」ベンチャー社長で、ある程度まともなのは経営学特にマーケティング知識を踏まえた行動をやらんと生き残れない。

生き残ったのが社長を続けているから、MBAで学ぶ程度の初歩知識はある。

一方、その最低限のマーケティング意識がないのもいっぱいいるか知識としてはやっぱり持っておかないとならない。

ビジネスが完全にわかる奴というのはまあ、たしかに世の中にはいいかもしれない。

いろんな人はビジネスはこんなもんだ。みたいなのを読んでの積み重ねでしかないんだろうね。

まあ、裏張りや「こんなあくどいことしても儲かるオレすげー、世の中バカwwww」みたいな苛立たせるような成金書物もあるからそこはみさだめないと。

2017-12-28

MBA持ってる人と話をしたんだけど

経営学修士持ってるって言ってもこんなもんかよ

絶対オレのほうが詳しいわ(自分が詳しいなんて思ってないけど)

ガッカリだよ

 

そういや、そこらのベンチャー社長の話聞くと皆かなりしっかりしてるけど

ほとんどMBAなんて持ってないんだよね

結局独学、個人資質次第ってこと?

ビジネスちゃんと分かる人って一体どこに居るんだ?

なんかオカシイんだよね、滅多に居ない(そもそも皆興味がない)

 

そもそも、そんなパターン化できるものでもないと思う

喩えるならプログラミングに近い

デザインパターンで全部解決できるわけじゃないのと同じ

パターンでできるなら誰でもできるが、そうなってないというのと同じ)

からこそMBAという「こいつは理解している」という印籠に効力があると思ったんだけど

何、座学受ければ誰でも取れるのかこれ

場所によるとか?

2017-12-14

IT系あるある

ジーパン or チノパン + ワイシャツ

それ以外の格好がなかなか出来ないしファッションもこう、なんかデザインパターンみたいのが欲しいです。(笑)

2017-11-27

子供プログラミングを学ばせる・・・ってやつ

パズルみたいな奴でオブジェクト志向的な発想を学ばせるやつ

あれ本当に効果ある? 

そんなん初歩の初歩で、プログラミングって結局デザインパターンや、アンチパターンライブラリ名前

サーバーデータベースの設定方法や、次々出てくる新しい概念を覚えるという泥臭い勉強必要なわけじゃん

楽しくプログラミングなんかしてたら絶対身につかない知識が実務には必要

パラダイムシフトさせて世界技術の基盤を作るような発想をするにも、やっぱり泥臭い勉強必要

ゆとり教育と同じ失敗やろうとしてる気がするんだけど、あれで本当にいいのか

それよりは大学コンピューターサイエンス科を増やしたほうが・・・

2017-11-22

anond:20171122020027

行き過ぎたオブジェクト指向には弊害があることがわかってきたし、

デザインパターンも、たったそれだけのパターンで何でも解決できるわけがないだろ。

臨機応変もっと頭使えよ。的な論調はあるよ。

考案された時期から考えたら、もう古い技術と言っても差し支えないでしょう。

2017-11-08

anond:20171107110105

> ここ5,6年の悩みで最近はっきりわかってきたんだけど、俺いつのころからかどうやって勉強していいのかわからなくなった。

> 一番大きいのは結婚して子供できて自由時間が減ったことなんだろうけど、でもそれ以前から勉強ぜんぜんできなくなったの。

お前は俺かってくらいまったく同じ状況。なので最近ずっと「俺ってもっと優秀な人間じゃなかったか」って思って自己分析してるんだけど、ここ数年で一気にスキルセットが変わったのが大きな原因かなと思ってる。デザインパターンアスペクト指向UMLプロジェクト管理手法、積み上げてきたものはたくさんあるけど、今はまったく使えない。若者より知識ものすごくあるけど、意味がなくなった知識ばかりなので実質的比較をするとほぼ対等。アジャイルクラウド機械学習・・・新しく出てきて若い世代が中心的に学んできた技術存在を考えると、おっさんたちはむしろ若者よりマイナスになってしまったわけ。知識の量は若者より多いのに関わらず。

なので、勉強をするときも「若者よりスタート地点がだいぶ低い」という観点勉強しないとダメだと言う結論に至った。その方法とは、簡単コンテンツを、大量の時間をかけて大量に吸収する、ということ。

後、子供はもう致命的な。特に休日今までは合計で16時間くらいは勉強に使えていたのが0時間になる。一ヶ月だと64時間くらい消えてるのね。勉強できないってより勉強してない。となると、前述の「大量の時間をかけて」が無理ゲーなので、すでに詰んではいる。

> もう俺は嫁さんと一緒にあと20年近くかけて子供2人育てなあかんからITが好きか嫌いか仕事選べる立場じゃねーーーの!

「すでに詰んではいる」と書いたとおりなのだが、これもまったくの真実。「技術ができない人」が「大金を得なければならない」。しかもそれは自分のためではなく、家族という他人のため。その行為は悪ではなく、善。

驚くべきことに結婚して子供ができると「能力の低下」と「収入の増加」を同時に満足させなければならない。そのためにできた制度が、おそらく年功序列であり、管理職なのであろう。そして今はその制度が壊滅しつつある。それでもこの矛盾と戦わなければならないので、結局は能力がなくても若者からお金を奪っていく方法を考えて、どんな手段を使ってもそれを実践していかなければ家族(言い換えると次の世代)を守れない、ということになるだろう。

管理職になる他にも、自分の持ってるレガシー技術を後輩に強制して、自分レガシー知識有効となる土俵議論を持っていくという手もある。いずれにしてもろくでもない。

2017-02-11

職場の開発スタイルが古すぎて限界なんだが

IT業界プログラマなのですが、どれだけ技術進歩しても何年も同じ開発スタイルから一向に改善しなくて限界を感じています

例えば次の点が挙げられる

バグ個人責任のせいにする

 ・世渡りが上手い奴は口だけ出して手は動かさな

  ・こいつが手を動かすのは最小限で、なおかつビビりなのでよく確認する

 ・手だけが早くリリースしてから考えようぜって思っているタイプバグを出すたびに個人攻撃される

開発プロセスが雑

 ・レビューがない

 ・仕様最初から作るつもりがなく、毎回担当者が長年の勘で仕様を考える

  ・故にどこかで矛盾が生じる

  ・担当者の長年の勘が頼りなので、作り手としては要求に答えるしかない

   ・仕様明確化されていないので、言われた通りに作るしかない

   ・一部しか担当していないので、一部しか知らないのだがそれを「もう何年もやっているのに担当したところしかできない」と言われる

    ・尚、これに対し口答えは許されない模様

 ・仕様がないので自分なりに担当者確認して作る

  ・このあたりはOKなのだが、その内容は一切ドキュメント化されていないしするつもりもない

  ・いつでもこの仕様担当者の気分で変更できる

   ・変更できるのは問題ないが、言い方が「お客さんがバグ報告がきた」みたいな切り出し方

   ・バグではなくただの仕様だし「作る時にそう言いましたよね?」と言ってもドキュメントがないので根拠なし

テストを書かない

 ・開発スピードが遅くなるから理由テストを書かない

 ・というか書き方を知らない

  ・xUnitすら使えない

MVCを知らない

 ・単語は知ってて理解しているつもりなんだけど的外れ(いわゆる Fat Controller が普通だと思っている)

・新しい知識を覚えるつもりがない

 ・自分達で勉強した最新の知識デザインパターン

 ・新人が入ってくるもこの調子なので2〜3年もすると社内の仕事はできるが若いのに技術力は10年以上前技術者レベルになる(仕事必要なことしか知らないのでそれ以下か)

 ・そして、いつまで経ってもこの開発スタイル改善しない

けものフレンズがバズったので、ついカッとなってやった。

2016-11-18

設計について善し悪しを議論をするのは難しい

ブレストとかあるじゃん

あれって、非常に単純なアイディアに対する議論が主なんだよ

構造的になっているような、設計必要タイプの話は中々議論ができない

できるとしたら、その筋のプロ同士とか、デザインパターンが決まったものについてとか、天才同士とか、そのくらいだ

 

からブレストから始めると、構造的な問題に対する話が漏れ

結果「みんなで考える」より「ひとりを中心にして設計する」方がうまくいくケースが有る

そして、そういうケースは得てして非常に重要ものだったりする

(例:物語脚本組織づくり)

 

何かしらの設計に携わる人は、この件について知っていたりするものだが

多くの人は「みんなで知恵を出し合えば解決する」と勘違いしている

そういう風にして手詰まりになるシーンを何度か見たことがある

2016-10-16

プログラマ思考なんて教えられないだろ

俺が日常プログラマ思考が生きているなと感じる対象

・if else の条件分岐の考え方(条件漏れをなくすという考え方含む)

論理和論理積の考え方

デザインパターンの考え方(メソッドという概念を含む)

バグチケットの書き方

製造プロセス全体

  

こんな感じだけど、実務2年くらいやらなきゃ身につかない

学校で一体何を教えるんだ?

2016-04-07

デザインパターン中の人のひとりが亡くなったらしい

やっぱりゴフッていいながら倒れたのかな

2015-11-06

http://anond.hatelabo.jp/20151106113518

デザインパターン」の一言で済む話…のような気がするけど意外とそうでもない(デザパタの話にメソッド設計思想の話とかあんまないからねえ)

そういうプログラミング鉄則集みたいな思想書があればいいんだが。

2014-07-22

オブジェクト指向を学ぶ意味とは

今月に入ってからJava(ゆくゆくはAndroid勉強してる素人なんだけど

http://qiita.com/kenokabe/items/13ea8d2da6adce1b3b9a

http://d.hatena.ne.jp/nowokay/20140718

こういうの読むと、別に理解出来てるわけじゃないものの、じゃ今OOPやる意味ってなんなんだろと思う。

地固めというか、それでも基礎力つけるためにひと通りはやったほうがいいのかな。

デザインパターンUML書きながら、動作と意味を追いながらとりあえず書経してるけど、

周りに相談できる人もいないので、ここで訊いてみた。

初めてはてなダイアリー書いてみたら、記法からなくてアメブロみたくなったので死にたい

2014-06-18

後輩をいい方向に向けてやりたい

情報系の研究室には珍しく女の後輩ができた。

見た目に関してはお察し。

しかしこの後輩、いわゆる「意識高い系」のようなのだ

Windowsバカにするんだけど、さりとてMacの利点を聞いても答えられない感じ。

それでいて自己顕示欲は強いらしく、開発サークルなどで積極的に活動している。

しかし、コーディング力もマネージメント能力も無いので一向にプロダクトができてこない。

プロジェクトを始めるにあたって、設計をしない。

その重要性を全く理解していない。

アジャイル勘違いしている。

デザインパターン理解できていない。

情報隠蔽を「チームメンバにコードを読ませないこと」だと思っていた。

絶句した。

そしてプライドが異常に高い。

から、それは違うよ、と言おうにも、まるで受け付けない。

どうにも自分のことを、具体的なコードは書かないが画期的ヴィジョンを作り、

チームを率いてプロダクトを作る指導者タイプだと思っているふしがある。

まり自分ヴィジョン完璧なのに、周りがそれについてこれないせいで失敗していると思っているふしがある。

自分でまとめていて、なんかもう、絶望的だなと思わないこともないのだけど、

方向はさておきがんばっている姿は本物だと思うので、なんとか良い方向に向かわせてやりたいのだが。

ちなみに彼女は俺のことをブサい口だけの男だと思っているようで、まったく尊敬していない。

から搦め手というか、本人にそれと気づかないやり方で意識を変えてやりたい。

どうしたらいいと思う?

これだから女は」とか、そういうのいらんから真剣に頼む。

2014-06-07

自分より仕事ができない人が嫌い

高卒だし、高校では赤点ばっかりだったし、算数数学も大嫌いだったのに、なんとかプログラマーやってる。

プログラマー歴は5年ぐらい。

零細ECサイト運営してるブラック企業就職してエクセルVBAを触ったのがきっかけでプログラマーになった。

 

それまではコンピューターを触ったこともほとんどなかったのでPC歴は6年ぐらい。

パソコンなんてどっちかっていうと嫌いなぐらいだから休日ネット以外ではほとんど触らない。

仕事から仕方なくやってるレベル

 

驚く事にこんな俺より使えないプログラマー存在する。しか大卒だったりする。

 

去年入って来た早稲田大学卒業プログラマーなんて1年やってもオブジェクト指向が分かってない有様。

デザインパターンに至っては何それ状態。

俺の教え方が悪いってのもあるが、そんなの自分勉強してくれって思う。

なんでもパブリックメソッドにするし、便利クラス作るし、脳みそ腐ってるんじゃないかと思う。

 

先輩は先輩でデータベースが遅いっていうから見たら、インデックス張ってないし。

なんで基本すら分かってないの?

おたく大卒なんでしょ?頭良いんでしょ?

 

別にこいつらがどんなコード書こうが別プロジェクトだしどうでも良いはずなのに、

なんでイライラするのか自分でも分からない。

俺は心が狭いんだろうか?

2014-04-22

http://anond.hatelabo.jp/20140410183410

すごい今更だけど、1に対してだけ少し。

基本的に、まだ発展途上にあるものほど、理論面が強調されがちなんだと思う。

今の関数型言語は、まだデザインパターンが、色々発案されだしているけど、確立しきっていなかった頃のJavaオブジェクト指向時代、みたいな感じ。

Javaで言うデザパタは、関数型言語では大体、モナドとしてまとめられるわけだけれど、そのモナドを色々発明するために、圏論をしっておくに越したことはない、みたいな感じなんじゃないかと。

もっとも、そろそろすでに出てきているデザパタモナドを利用するだけの、純粋学習者も増え始めている頃合だから、気になりだしては来るタイミングなんだろうけど。

2014-04-11

デザインパターンはきっと

使うでも当てはめるでもなくて気がつけばそこにあるもの

2014-04-10

プログラム中級者が感じる関数型の違和感

なんだか話題になってるから書く。

やっと初心者を脱して中級者になりかけてるプログラミング学習者が関数型言語に何を感じているかを書こうと思う。

1 圏論かいらないんじゃないの?

Haskellが短いコードプログラムを書けるというのは分かる。

forループmapやfoldで抽象化する利点も分かる。

それでやりたい処理のほぼ全てがまかなえるということも実感している。

副作用のない小さな関数を合成して大きな関数を作る利点も分かる。

再利用性も上がるし、どこからどう影響を受けているかが簡単に分かるからバグも出にくい。

ただ、Haskellの基礎になってる圏論が何の役に立つのかは、まったく分からない。

むしろ邪魔なんじゃないかと思う。

ファンクターやモナド概念圏論で扱われているのは分かるけど、圏論なんて名前だけ知ってればコードを書くのに不都合はないだろう。

圏論必要なのはHaskell設計する人であって、使う人ではないと思う。

なのに、やれクライスリ圏だ自己関手の圏だのと、うるさいったらありゃしない。

Linux上で開発環境整えるのにカーネルコードを読めって言うぐらい的外れだと思う。

いや、知識として持っとくのはいいだろうけど、役に立たんだろ。

2 言うほど新しい機能ないような?

Rubyが羊の皮をかぶったLispとはよく言われることだけど、関数型言語オブジェクト指向言語とそこまで違いがあるような気がしない。

純粋言語ではできないけど、クロージャに内部状態を保持してもらって無名オブジェクトみたいな使い方をすることはあると思う。

その無名オブジェクトもっとあれこれデータ関数詰め込めば、いつの間にか普通にJavaC#で使うようなクラスのできあがり。

その間はなめらかにつながっていて、不連続に切れるようなもんじゃない。

関数プログラミングと言いつつ、オブジェクト指向の考え方は利用できる。

上級者はデザインパターンdisるのが好きかもしれないけど、逆の考え方をするべきだと思う。

デザインパターンオブジェクト指向言語欠点を補うための苦肉の策じゃないよ。

関数プログラミングの基礎的なパーツだと思う。

からちょっと見た目がすっきりするだけで、結局やることはオブジェクトプログラミングと変わりはないと思う。

3 なんか選民思想にとらわれて無い?

関数プログラミングコミュニティの人って、業務でクソコードメンテさせられて、その現実逃避に美しいコードに擦り寄っているように見える。

もちろん、美しいコードを書けるなら書いた方がいいし、現代的な言語を使えるなら使ったほうがいいと思う。

けど、適材適所というか、オブジェクト指向言語でも、やってやれないことはないわけで。

役に立たない圏論をありがたがる所とか、どうもイキがってるように見える。

せいぜい生産性が倍になる程度で、他の要素が悪ければ帳消しになるような利点でしかないに違いないのに。

開発プロセスとかを見直す方が仕事を楽にしてくれるんじゃないのかな?

2014-03-28

女性エンジニア仕事ぶり

女性エンジニアで「すごい!この人できる!」という人を見たことがない。

いままで出会った女性エンジニアは、

という残念な方々だった。(全部違う人、経験年数4~15年とバラバラ)

設計があればコーディングがすごく早い」とか「お客様へのフォローうまい」とか、ここはいいなと思う点はある。

けど実際、「仕事ができる」と思われる人はどれくらいいるのか?

主観的に「仕事ができる」と書いたけど、定義するなら「仕事が早い」「品質がいい」「マネジメント能力が高い」とかかな

こんなこと書いてるけど、私も女性社会人10年目を迎えるプロジェクトリーダー

半年前に転職した際、一部上場企業スタートアップ企業からプロジェクトリーダーマネージャー枠で内定もらえたから、

その辺りの採用基準はクリアしているのだろう。

でも「仕事ができる」と言えるレベルにはまだまだ達していないと思う。

こんなこと悶々と考えている理由は、

目標としたい年上の同姓のエンジニアが身近にいなくて、将来の不安が年々大きくなっているから。

みんないつ結婚しているの?(相手いないけど、結婚願望はある)

職業柄激務になりがちだけど、子育てと両立できるの?

結婚しない場合はどういう働き方になるの?

謎、謎、謎。

自分の周りの環境がすべてじゃないのはわかっているし、シリコンバレートップ企業とか上を見たらきりがないけれど。

仕事ができる女性エンジニアがいたら、経験とかキャリアパスとか教えてもらいたい。

プライベートも充実している人だったら、師匠にしたい。

2014-03-03

職場レベルに合わせてコードを書きましょう

上司デザインパターン?なにそれ?for文で回せばいいじゃないか」

チームでコーディングするときに最も重要なことはなんだろうか。

それは協調性だ。”コードのリーダビリティ”とは”上司にとって読みやすいこと"を意味する。

リーダビリティを高めるために、"一貫性"を意識することもまた、重要だ。

そう。上司の言うように、すべての関数コメントを付けなければならない。

function up(){ // 上げる. 2014/1/21 3:34 by xxx

コメントのxxxは俺だ。俺なんだ。

2014-02-28

去年はじめから現在まで

2013年1月か2月

プログラミング経験、ほぼ皆無。

HTMLCSS, JavaScriptちょっとだけ分かる

dotinstallとか見てブラウザタイマー作ってわーいって喜んでるくらいのスキル感。

プログラミング勉強したい

勉強したいけどスクールとかはお金かかるから嫌だ

→本を買ってやるのは安上がりだけど途中で挫折しそう

→じゃあお金稼ぎながら学んだらいいんじゃ

プログラマバイト探そう

求人サイトで見つけて応募してみる

経験でも大丈夫らしい

バイト始めることになった

バイト始まる

はじめは研修アルゴリズムPHPについて

課題を出されて、できたら業務に入れる

フレームワーク使って指定されたwebサービスをつくる

基本自分の力でつくる。放置される

誰も教えてくれない

今思うと初心者やらせるのはなかなかハード

ググってググってググりまくる

他のできる子はさらさらっと1週間くらいで終える

ひーひー言いながら2~3週間でなんとか終えた

この期間、ほとんどプログラミング以外のことしてない

なんとかなった

3月4月

PHPドキュメントを読む習慣がつく

ググってコードコピペして動かしてみる、という段階

動くと楽しい 分かると楽しい

このときくらいにパーフェクトPHPを読んだ。FWは、つくれる!

FWがなんたるかをやっと理解し始める

あーようするにURLを受け取って振り分けたり、DBからデータ引っ張ってきて画面に表示させたりするのね

分かった気になる←分かってない

HTTPリクエストについて気にしだした

GET/POSTでごにょごにょすればいいんだね楽勝だわ←全然分かってない

フレームワークはいくつも種類があることを知る

このころ、Sinatraという言葉を小耳に挟む。支那虎?

5月6月

FuelPHPを聞きかじって、何をトチ狂ったのか在宅でwebサービス受託をやる

まあ良い経験になった

フレームワークいくつかやって、web開発のいろんな概念tipsがたくさん頭に入ってきて、

あーあれかーくらいには思えるようになった

DBCRUD操作, ORM, DBマイグレーション, RESTfulとは, コマンドラインコード生成,認証周りのプラクティス ...

7月くらい

さて、バイトが本格的?になってくる

一人で開発 責任おもい

機能追加のタスク

ごく一般的機能

でもなんか躓いた。

書いたコードに自信が持てない

これでいいのか不安になって手が進まない

やっぱり自分で考えて経験したことのないことはなかなか難しい

DBのテーブル構成を理解するにも骨が折れた 命名規則大事

セキュリティで手直しはたくさんもらった

フレームワークにはDB操作ライブラリがちゃんとついてるのにそれ見ずに自分SQL組み立てて案の定エスケープしてないし、とか

必要ないところでCSRF対策してるし、とか

でも、なんとか完成させた

プッシュして、マージされて、できちんと本番環境で動いてる。やったね。

8月9月

Rubyを知った

PHPと違って()が殆ど無いし、;ないし、do~endとか何だよって感じだった。

ちょっとだけ触ってみた。使いやす

Railsも知った

それからは空いている時間の大半をRubyRailsにつぎ込んだ

まずはRailsTutorialをやってみた

テスト周りでつまづいたけどなんとか終わらせた

dotinstallやらミニツクやら、検索して出てきた記事・チュートリアルはとりあえず手をつけて学んだ

はじめはRuby理解せずにRailsをやっていたけど、すぐにRuby自体に興味が出てきた

はじめてのRuby・はじめてのプログラミング・たのしRubyプログラミング言語Ruby... 入門系の本を乱読した

PHPでさんざん苦労していたからか、Rubyオブジェクト指向を学ぶとなんの無理もなく頭に入ってきた

Rubyドキュメントの読み方を覚えた

その後、パーフェクトRubyで標準ライブラリやらGemやらSinatra支那虎じゃなかった)やらについて学んだり、

メタプログラミングRubyで黒魔術を学んだりした。巻頭のMatz言葉痺れたなー

バイトのほうも何とかこなせるようになってきた 成長すげー

9月10月11月

Vagrantをかじる

インフラ・ミドルネットワーク周りに興味がでてくる

AWSでいろいろ遊ぶ

メタプログラミングRubyは断続的に2~3回ほど読み返す

Rubyってほんと使ってて楽しい

webスクレイピングとか検索APIとか使ってムフフ画像をアハーンしたりして遊んでた

11月12月

Rubyと名のつく書籍を読みあさる

Ruby言語をつくろうだの、スクリプティングを極めようだの、JavaRubyがどうだの。

メタプログラミングだの、デザインパターンだの、テストだの、リファクタリングだの。

借りられる本は借りて済ませた。全部買ってると破産する

他にもRubyとつかない本もいろいろ。

達人プログラマーは途中で挫折した。そのうちもう一度読む

プログラマが知りたい97の何とか。いい本

Ruby関数オブジェクトからのつながりで関数型プログラミングにも手が伸びる

OOPと全く違う。

2014年1月2月

就活はじめるよー

まあ、エンジニア枠で探すことにする

エントリーめんどくさい

ので、1社受けて落ちたら次の会社エントリーするという作戦にした

無計画玉砕作戦

はいえ、なんとかなると思ってやってく

気を揉む期間

いろいろな会社採用ページ眺めていると気になること

入ってやる仕事の内容が分からない

やたらパララックスつかってゴテゴテにしてるわりに、何が言いたいのか伝わってこない

せめてよく使ってる言語くらいはのっけておいて欲しい。

気になる会社はいろいろ調べる

で、1社選んで応募して、選考が始まった

面接、失敗したなと思ったところもあったが

嘘つかない

知らないことを知ってるように話さな

は通せたので良かったと思う。

で、進んでいって最終面接。これもなんかよく分からないうちに終わってた

相手が適宜フォロー入れて話しやすいようにしてくれたのは覚えてる

うん、ぜひ当社にご入社いただけたらと思いますとのこと。やったね。

から気になってた会社ではあった。勝手リスペクトしてた会社

自分が憧れてる技術者さんたちが在籍してる会社でこれから働くことができる

いろいろと運が良かった。嬉しい

他の会社はどうしようかな。

受けてみたい気もするけれど、エントリーがめんどくさい

続けるかどうかは未定だけど、ひとまず休憩することにする

今は、関数型言語についての本買って読んでる。関数型、Rubyに劣らず楽しい

2014-02-07

http://anond.hatelabo.jp/20140207135655

それにデザパタなんて普通にプログラミングやってたら使ってるもんだろ。特別勉強するもんでもねーよ。

抽象化って基本わかりづらいから、みんなで俺々抽象化やってると収拾つかなくなるじゃん。(多分そのせいでLisp流行らない)

似たような事やりたい時は、似たような構成にして、共通の名前付けましょうってのは、重要だと思うよ?

コード書けない奴がデザインパターン語るなんて笑止というのは同意するけど。

ゴミSIer責任は重い

前職はいわゆるブラック企業のようなところで、コードのエレガントさなんて微塵も考慮されておらず、

それのせいでテスト行程が複雑になり、QAがままならず、工数も膨らみ、

これらの原因は「スケジューリング(や見積もり)が悪い」だの言い出すくらいの頭の悪い人ばかり。

コードを短く、シンプルに、コンパイルを少しくらい活用できればテスト工数なんて糞小さくなるわ。

なんで型が違うだけのクラスに同じテスト工数見積もるんだよ。バカだろ。template使えよ。そんなことやってるからべき乗でテスト工数増えるんだろ。

使ったら使ったで、「お前のコードは読めない(から糞)」だとか言う役立たず。

未だにいるんだよな、(素人でも読める)可読性こそが神。はいバリア。お前死んだ。ってやつ。三項演算子万歳だろうが。

そのくせに自称SIerどもはデザインパターンとか無駄に良く知ってるんだわ。お前パターンパターンいいたいだけだろ。

そもそも可読性ってのはバカでも読めるように書くってことじゃねーよ。

ロジックが見えやすいようにシンプルに書けってことだろ。

それにデザパタなんて普通にプログラミングやってたら使ってるもんだろ。特別勉強するもんでもねーよ。

そんな暇あるなら入門書でもかって読んでくれよ。

つーかデザパタ本なんてコード読めないと意味からないだろ。どうやって読んだんだよ。逆にすごいわ。

もういいわ、設計無視

君らが一生懸命洗い出してくれたExcelシートからcsv作って暗号化までして読み込んであげたら怒るし何がしたいんだよ。

まさか工数の半分ほど使って作った仕様書が間違ってるとか言わないだろうな。

そして私は転職しました。

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん