1. 無料アクセス解析

プログラミングに没頭しているあるIT技術者の日々

プログラミングに関する技術やコードについて、日々思ったことを書いていくブログです。

発想はいつメモするべきか

本文リンク先

う〜ん、良い記事を見つけてしまいました。記事内容に激しく同意って感じです。

本文の中身から一部抜粋したい点は、最近仕事をしていて思うのですが、問題に当たった時には頭だけで解決しようとしないでその辺にある紙にとにかく色々書くって所でしょうか。

どうやら、これをやると解決する事が多いみたいです。

とりあえず私の現時点での問題は、大体はしているけどメモ帳を"常に"持ち歩く事は出来ていないので、小物入れでも買ってそれにメモ帳とペンを入れておきましょう。

管理人からのオススメ | コメント:0 | トラックバック:0 |

.NET開発者に必見のWEBページ?

今朝、会社のVistaガジェットで下記の記事を見つけました。

リンク先

タイトルの最後に?がついているのは皆さん既にご存知ではないかという事と、必見という程の内容では無いかもしれないからなんですが、少なくても今の私には物凄〜く為になる記事です。

逆引き代全とも似ていると思いますが、こっちの方が説明が深く分かりやすい印象です。

あと、この記事は「〜 コンテンツは毎週拡充しています 〜」という文言もあるので引き続き注目ではないかと思います。

管理人からのオススメ | コメント:0 | トラックバック:0 |

各種言語とフレームワークを比較する

タイトルを見て、おお〜と思われた方にまずお詫び申し上げたいのですが、現在私はIT業界に入ってまだ2か月目の新人な為、ろくに言語もフレームワークも理解していない状況です。

ですので、全然ピント外れな事も書いているかもしれません。

そんな私の意見になってしまいますが、よろしければ読んでみてください。

あと、かなりの長文ですのでその辺りも考慮に入れて読んでください。

まず、今回取り上げる言語とフレームワークは以下の通りです。

<言語かフレームワーク名><登場時期>
Java                1996年
Struts               2001年
Spring framework 2系     2006年
.NET                2001年            
Python              1990年             
Perl                1987年                
Ruby                1995年
Ruby On Rails          2004年
PHP                1995年

次に、各フレームワークや言語で見つけたWEBページのご紹介です。

Pythonに関する先月のニュース

リンク先        

PHPとRubyの違い(以前にも貼ったけど)

リンク先

2008年4月現在の人気のプログラミング言語ランキング(これも以前取り上げたけど)

リンク先

では本題に入りますが、何を比較するのかについては下記の通りです。

「流行る言語やフレームワークと流行らない言語やフレームワークの決定的な違いって何?」

では、上記の言語とフレームワークを一つずつ見ていきたいと思います。

Java → これは何も言うことがありませんね。

完成度も高いし母体がSunと大きい事もあってよく使われているのでしょう。

Struts → 1系と2系が有りますが、2系は出て間もないのでここでは1系を取り上げます。

"私が考える"Strutsが流行った理由は登場時期がちょうどサーバーサイドJavaの技術が広まってきた時期でそれに対応したフレームワークが当時は余り無かった為、流行ったというのが私の見解です。

それと母体がApacheであったのもしっかりしているという事でそれもあったかもしれませんね。

とはいっても当時の状況は私は知りませんので、あくまで仮定の話ではありますが。

現在では他にも良いフレームワークも沢山出てきていますし、正直"今は"余り良いフレームワークだとは思っていません(2系は別ですよ)。

Spring framework → これはとにかくDIの印象が強いのですが良いフレームワークだと思います。

ちなみにですが私が今年の2月にIT業界の転職活動をしていた時、現場でこのフレームワークを使っている会社がありました。

だから今後それなりに広まっていくフレームワークな気はしています。

ただ母体がStrutsに比べ不利な気がするのでその辺りがどうかですね。

.NET → はっきり言って全く知りませんが(だったら書くな(笑))、母体がマイクロソフトという事もあるのか、結構使われていますよね。

今後も使われていきそうですね。

上記スクリプト言語全て → 上記の人気のプログラミング言語ランキングでは4つの言語の中で1位がPHPで最下位がRubyという現状になっています。

でももう一つのリンクのPHPとRubyの違いを見ると明らかにRubyの方が良く思えます。

これホントに原因がわかりません。

言語仕様が全然違うわけでもないし、登場時期も大体同じ時期なわけですからね。

では違いは何処にあるのかなんですが上記の言語やツールを見てもそうですが「ツール自体の生産性が高いからといって開発者に喜ばれる技術でも、母体の信頼性やその技術の売込みなど政治的な面も流行るかどうかの目安になるのでは?」ないかと思います。

ただ、PHPも母体は決して大きくないのにどういう売り込みで広げたのかがちょっとわからないのでそこは不思議ですけどね。

だからRubyも開発者達はPHPより良いと思っていても、実際のプロジェクトで取り入れられるようになるにはRubyをもっと宣伝していって"クライアント側にとってPHPには無くてRubyにあるメリット"をどんどんアピールしていけば(そんな事はもうやっている気もするけど)良いんじゃないかと思います。

どんな事でもそうだと思うんですよ、いくら性能の良い家電製品でも母体と売り込み方で売り上げが変わってくるのとか、私がエッチだって言わなければ誰もエッチだとは気づかない事とか(大笑)(全然違うだろうが!(大笑))。

ちょっとボケてしまいましたが(笑)、ここで結論を。

「流行るかどうかは開発者にとっての利便性ではなく、クライアント側にとってどうなのかと、母体の信頼性や政治的事情に左右される」

まあ、私自身も開発者なので余り良い傾向ではないと思いますが、現状ではこうなのかなと思います。

変えていきたいですね、この現状。

2008/05/07追記

実はこの記事はmixiにも載せているのですが、mixiで大先輩方と討論して出した(大先輩も完璧と言ってくれた)私の結論は以下になります。

Q
「流行る言語やフレームワークと流行らない言語やフレームワークの決定的な違いって何?」

A
「流行るかどうかは開発者にとっての利便性ではなく、クライアント側の都合(動かない(融通の利かない)言語やフレームワークを導入しても仕方ない)と、提供している母体の信頼性(MSなら信用出来るとか)や過去の母体の実績、また政治的事情(プロジェクトの実績とか)に左右される」

だからJavaは流行ったと思うんですよ、母体も信用できるし基本的にどんな環境でも動くから(政治的な事情までは全く分かりませんが)。

次にmixiでの討論で途中から加わった下記のテーマは

Q
「言語やフレームワーク間の違いやコードの標準化で開発生産性は向上するか?」

A
「"理想的な"ソフトウェア開発全体においてコーディングする期間は短いので(現実はコーディングとデバッグに時間が多く割かれているが)、言語やフレームワークの違いやコードの標準化を行ったからといって生産性は"飛躍的には"上がらない。それよりも上流工程での要件定義や基本設計辺りの"人によって違う"取り組み方の方が生産性の向上に影響する(開発全体の工数が多く割かれるから)。仮に生産性の高い言語やフレームワークが有ったとしても、それを扱う"人間のスキル"に左右される面があるので、生産性の向上に一番影響を与えるのは"人"である。必然的に銀の弾丸も基本的には存在しないことになる」

更に下記のテーマについては

Q
「フレームワークを使うメリットとデメリットって何?」


「フレームワークを使う事でコンポーネントを部品化しての再利用も容易な面があるが、新しいフレームワークを導入する場合は特に、新たに教育が必要になるなど工数が増えるデメリットやバグ潰しで結果的に工数が増えるデメリットもある。」

最後にもう一つ

「ソフトウェア開発において一番重要なのは生産性の高い言語や技術ではなくそれを扱う"人間"である」


管理人からのオススメ | コメント:0 | トラックバック:0 |

誰でもプロフェッショナルを目指せる 考察(IT技術者向け)

リンク先

先程読み切りましたが、かなり長いです(全23ページ)。1時間30分ぐらいかかりました(読むの遅過ぎ)。

全ページから気になった部分を取り上げます。

>プロフェッショナルとそれ以外の人を分ける決定的な違いは、顧客第一を貫けるかどうかだ。

まあ、そりゃあそうでしょう。顧客無くしてビジネスは成立しませんから、大事にはしなきゃいけません。

>目の前にある前人未到の問題に対して、自分でアプローチを決め、解決に導く具体案を示す問題解決力が欠かせない。あきらめずにやり抜く継続性と高い倫理観も求められる。

また、問題解決能力が出てきましたが、やっぱり大事です。私は倫理観が一番欠如してると思うのでその辺を高めていきたいですね。

>意識を変えることにカネがかかるわけではない。10年間、プロフェッショナルを目指す気持ちを持ち続ければ、まったくの別人になっていることだろう。

継続は力なりってヤツですか。あとは気持ちで負けちゃいけませんと。

>「自分はプロフェッショナルです」と周囲に宣言してみなさい、と言いたい。言い続けているうちに、自分の発言や行動がプロフェッショナルらしくなってくるものだ。

これは、なかなか言えないですよね。ただ、「自分は??です」と思い込むぐらいじゃないとどんな事でも出来ないんでしょうね。

>いったん偏差値で低い評価を付けられたためか、自分のポテンシャルはそこまでだと思い込んでいる。

これは自分で自分の可能性を縮めている良い例でしょう。自分で限界を作ってはダメって事ですね。

>「自分よりいい大学に合格した人には永遠にかなわない」「あの優良企業に入社した人は自分よりすごい」などと思ったら本当に負けだ。

まあ、実際には私より優秀な人間は沢山いて尊敬は凄くしますが、確かに負けは認めたくないですね。

>経営の視点から情報システムを考えられる。顧客に経営と関連付けた提案ができる。

これは勉強になりますね。経営感覚もエンジニアには必要と。そうしなければ、きっと顧客満足も満たせないのでしょう。

>全員が単なる丸しかつけなかったら採用しない。突出したところがない人間は不要というわけだ。

私はどちらかというと得意・苦手がはっきりしてますけど、これはどうでしょうね〜。

バランス感覚(一般的な視点)も重要だと思いますけどね。

>日本人ではあるが、国境の中だけで通用するという「地域限定免許」ではないプロフェッショナルとして認められているからだろう。

まあ、世界も広いですから、やっぱりグローバルに活躍したい気持ちを持っていないといけないんでしょうね。

>ゼロベースで顧客の問題は何か考え、それを抜本的に改善する策を考えるのがプロフェッショナル
顧客企業の業務は本当はどういう姿が望ましいのか。ITを使うと何が変わるのか。これを考えるのがITにかかわる人々の任務

一言でいうと思考力と提案力が必要ということなんでしょうね。

>顧客の事業や業務を理解できていない人が多い。逆に顧客側はITの威力を知らない。

私は業界も複数経験してるんですが、「それは良い事」と面接の時に言われました。上記の事に役立つからでしょうね。

>特定のパターンの問題については解決できる人がエキスパートだが、すでに書いたように、パターン外の問題に取り組める人の価値が特に高くなっている。

これはかなり難しいですね。どうする事でパターン外の問題に取り組める人になっていけるのかが分からないです。

>日本人とインド人が応募してきた。両者とも能力は申し分ない。給与水準に目を向けると、日本人の方がはるかに高い。ならばインド人を採用しようと決断するはずだ。つまりスペシャリストの道を行くなら、世界中のスペシャリストと同じ土俵で競合しなければならない。

最近はオフショア開発も増えてきているみたいですが、上記を見るとやっぱり一つの分野でしか活躍出来ないスペシャリストにはこれからは厳しくなっていくのでしょうね。

>ある分野のスペシャリストであっても、ダニエル・ピンク氏が言うような「ハイ・コンセプト(新しいこと)」を考え出せるクリエイティブな人材なら、どこに行っても引く手あまただ。

これも難しい。私はあまりクリエイティブ能力が無いと思ってるのですが、どうやって身に付けていけばいいのか。

>定型的な仕事はインドや中国企業に取られてしまう。自社が取れるパイはどんどん小さくなる。

「定型的」っていうのがポイントだと思います。だからそれしか出来ない人間じゃ駄目なのでしょう。

>中国、インド、ロシアのITパワーを知った上で日本人の給与水準を考えると、ITのスペシャリストとして生き続けるのは非常に難しい。

ロシアがこんなに凄くなっているのは初めて知りました。BRICsでいうとブラジルも発展しそうですし、ライバルがどんどん増えますね。

>「自分にとっての答えを自分で見つけた個人が飛躍できる」。今という時代は、誰もが手中にできるそんなチャンスが転がっている。だから日本のITエンジニアも頑張ってほしい。正しい質問をし、そして自分で答えを見つけるためのアプローチを考える。このような習慣を身に付けるのだ。

改めて再認識しました。やっぱり自分で考えて答えを出すことが大事なんでしょう。

>自分にとっての正しい質問を投げかけ、毎日一生懸命考えた。そして勉強したことを大学ノートに毎日書き込んでいった。1年後にはノートが厚く積み重なった。

は〜い、わかりました〜。これから出かけてくるのでついでに大学ノートも買ってきま〜す(笑)

>Googleの効果的な使い方を知った人は、相当なことまで調べられ、しかも頭が良くなるはずだ。Googleを使う際、「何を知りたいのか」と問いを立て、「どのキーワードを使えば正しい答えが返ってくるか」と考えるからだ。正しい質問を考えられる頭を鍛えるために、格好の訓練と言える。

これと似た話もどこかで書いた気がしますが、正しいみたいで自信が付きました。

>問題解決の手法を学び、悩みに正面から取り組む習慣を付けると悩みがなくなる。毎日熟睡でき、心身の健康が保たれる。するとますます悩みがなくなる。

これはきっと「悩む」のではなく「考える」って事を言いたいのでしょうね。

>指導要領の中に答えなどない。答えはクラスのみんなで考えて見つけましょう

IT業界もみんなで考えて良くしていかなきゃいけないんじゃないですかね〜。

>「この世界でこの問題に答えを出せるのは自分自身しかいない」。このようなメンタリティになれるかどうかが、自分の創造性を発揮し、プロフェッショナルとなるための最も重要な条件

自分で考える事で、創造性も身に付くんでしょうね。

>問題がぼやけている段階では創造の力は出てこない。解決すべき問題を特定し、取り組むべき物事のスコープを狭めることが、自分の創造性を引き出すための重要なポイントだ。

分からない事は、一度に解決するのではなく、少しずつ解決していく事で解決に繋がる気がします。

>紙の左下から書いていく。左眼を主に使うことになるから、右脳が刺激される。しかも常に、右上に白いスペースが広がっており、それを眺めると突然ひらめくことが多い。

地味ですが一番参考になった気がします。早速やってみて検証してみます。

>日本政府は本来なら潰すべき企業を保護する策ばかり打ち出している。投資家がそんな国に資金を投じたいと思うだろうか。株価が落ちて当然なのだ。

批判的な意見もあるでしょうが、私も上記の意見に同意します。

全ページを読んで一番感じたのは、これからは小さな殻に閉じこもってやっていこうとしても出来ない時代になっていくから、グローバルに活躍していく為の努力が必要なんじゃないかということですね。

で、具体的な努力として必要なのが英語(に限らずバイリンガル)が話せるようになることだと思います。

よし、冗談抜きで本当にやろう。

管理人からのオススメ | コメント:0 | トラックバック:0 |

ビビリな若者たちよ!! 実名ブログで自分を「見える化」する勇気を!!

リンク先

今日から来ているITproのメルマガですが結構良いです。

今日だけで2件も取り上げたい記事がありましたからね。

で、この記事なんですがかなり考えさせられました。

印象を残った部分をまた挙げると

>ネットで検索した時に名前が見つからないようでは,存在していないに等しい

言われてみれば確かにそうです。

今、Googleでやってみましたが私の本名で検索してもこのブログには辿り着けません。

Googleでの検索キーワードを「プログラミング 没頭」とすると一番上には出てきましたがこれじゃあちょっとね〜と思いますし。

私は世界中に発信していきたいと思っているので、上記の言葉には考えさせられました。

次に

>メールの署名に自己紹介代わりのブログが無い人は,どんな人かわからないので会いたくない

これは驚きました、こういう考えをされる方がいらっしゃることに。

>無名の人間が普通のブログを始めてすぐに大人気となり,衆人環視にさらされるようなことは考えられません。

いや、確かにそうなんですよね。

昨日までの私のブログの一日のアクセス最高件数もたった22件ですから。

次に

>1日に数百通のメールが届き,その7割は迷惑メールです。それでも,新たな縁者に出会い,新たなチャンスに恵まれるメリットの方が大きいのです。

考え方一つなのかな〜と思いました。

あと

>オープンなブログよりも,仲間内だけでクローズドなmixiなどを使って限定発信する
>ネット検索をしてもヒットしないSNSで情報発信をしていても,新たな縁は広がりづらいでしょう。似た者同士で情報交換をしても,新たな知見や感動は得られず,発想を広げることもできません。

まあ、私はmixiにしかないメリットも知っているので上記を読んですぐにmixiを止めようとはこれっぽちも思いませんが、「ネット検索をしてもヒットしない」という所にSNSの限界を感じてはいます。

>mixiの会員数も増え続けて,今や,国内に限って言えば,ほとんどオープンに近い状況です。だとしたら,最初からオープンなインターネットで発信しても変わらないでしょう。

確かにそうかなと思います。

それもあってブログを始めたんですけどね。

>実名で発信することで,自らの名誉を賭けた情報発信が求められますし,責任も伴います。だからこそ,勉強になるのです。覆面をかぶって,その他大勢のエキストラを何百回やっても,お芝居がうまくなるとは限りません。しかし,素顔を晒(さら)して自分の名前を掲げた「一人芝居」を一回でもやったなら,成功しても失敗しても,大きな進歩につながるでしょう。

そうなんですよね〜、いわゆる”本物の人間”は皆公開しているわけだし。

>実名ブログに入らんずんば,心からの友を得ず

なるほどね〜って感じです、自分の正体を明かさないと友達って出来ないですもんね(私の場合、明かすと大体失望されるんだけど(笑))。

>企業名を出してのブログ発信

これはさすがに現時点では全く考えておりません。本文も見てもちょっと前向きに考え過ぎのようにも思えるので。

さて、ここまで書いてきてかなり実名を公開する気持ちに傾いていますが、ただし

「実名はさらしたら元には戻せない」っていうのもあると思うんですよね。

もう大丈夫な気もするけど、私は一人だけ「勘弁してくれ」って人がいて、その人に知られるのも恐いというか面倒でして。

ま、今すぐには公開しません。しばらく検討してみます。

追記

ちなみにこの記事を読んでの賛成反対の割合は(厳密にいうと賛成反対では無いんですが)

賛成22:反対78でした。

管理人からのオススメ | コメント:0 | トラックバック:0 |

可能性を潰さない――ワクワクできる自分のつくり方

今日、会社でVistaのガジェットにある@ITの記事を見ていたらこんなのに出会いました。

つい先程、全ての回を読み終わりました。

第一回から第四回まであって全部お勧めですが、特に勧めたいのが第四回です。

第一回

第二回

第三回

第四回  ←特にマイナス思考になりがちな人にお勧め

結構長いので、暇な時に見てみて下さい。

では、第四回から印象に残った部分を抜粋すると

>自分の可能性を自分で縮めるのはもったいないなぁ
>「私は何もできない」と考えていると、できないという思いが現実になってしまうのです。

ホント、そう思いますね。

実際には出来ないかもしれませんが、思いまでそう思ってしまっては駄目でしょう。

要するに気の持ちよう一つではないかと思います。

>「事務所を持てたらいいけど、お金もかかるし相当先だな」と思っていましたが、思いを大切にするようになってから、事務所を借りることを前提に考えるようになりました。
>事務所を借りることを前提に考えるようになったので、結果的に借りられたのではないかと思います。

これを今の私に当てはめるとプログラミングの方は大丈夫なのですが

「英語を話せるようになれたらいいけど、忙しいし相当先だな」

これは参考になりましたね。

今後は私も「英語が話せる事を前提に」考えていきたいと思います。

そうすれば話せるようになるでしょう、多分(笑)

>情報を選択するのはやっぱり重要。

これはどうかな〜と思います。

ネガティブな情報でもそれから逃げずに、得れる物を探す癖を付けた方が良いと思っているので。

まあ、私の性格(超プラス思考で楽観的)的にはそれが出来ても全員が全員出来るかどうかは何とも言えないんで、完全否定はしませんが。

>物事を違う角度から眺めてみる = リフレーミング

リフレーミングって言葉、初めて聞きましたがこれはかなり重要でしょう。

上記の言葉は「自分を客観的に眺めてみる」とも置き換えられると思うんですが、客観的に見る事のメリットとして「自分の弱点に気づきやすい」というのがあると思います。

自分で思い浮かぶ弱点よりも、他人から指摘される弱点の方が的を得ている事が多い印象があるので、これはまんざらでもないんじゃないかと思います。

>予定どおりにいかなかったり、目の前に壁が現れてなかなか前に進めなかったりするときもあります。その壁にこそ、思わぬヒントが隠されているのです。

そうそう、ホントそう思います。

そのヒントを探し易くする為には、色んな所にアンテナを張って情報収集する癖を付けることが大事だと私は思うんで、情報は選択しない方が良いと思うんですけどね。

>上司や、会社や、業界の変化を待つのも1つの手段ですが、自分ができることから変えていった方が絶対に早いです。私にだってできたんです。あなたにもきっとできます。「できるか/できないか」ではありません。「やるか/やらないか」です。

これは一言でいうと「WAITじゃなくてACTIVEに」って事でしょう。

私なんかは、「俺に不可能は無い」ぐらいに思い込んでいますからね(笑)

私ごときの立場で恐縮ですが、自分の考えを書いてみました。

管理人からのオススメ | コメント:0 | トラックバック:0 |
| HOME |