IT企業に入社した新入社員の方々へ 2 (非ネタ編)

恐らくまなめはうすさんに拾っていただいたからだと思うのですが、
先のネタエントリIT企業に入社した新入社員の方々へへのアクセスが当ブログ過去最高のアクセス数となっております。
はてダに登録して4年以上経っているにもかかわらず
「ユーザー登録から本日までに日記をつけた日数:60日」
な当ブログにとって、まさにこれは事件です!
そういえば、ブコメみる時に絶対に「これはひどい」タグ付けてる人居るだろうなーと思ったけどいらっしゃらなかったのが意外でした。


ちなみに、勝手ながら先のような方法をネカマメソッド」命名させていただきました。
これはもう覆りません。ええ、もう何があっても。


などとどうでも良い前置きは置いといて・・・。

お詫び

まず、1点お詫びさせていただきたいと思います。
先のエントリにおいて、
「女性と偽り甘えた態度を取ることにより(とりあえず)業務を進める」
といった解釈ができる記述がありました。
もしかしたら、このような内容はIT業界でポリシーを持って活躍なさっている女性にとっては、例えネタエントリであっても不快な内容であったかもしれません。
不快な思いをされた方がいらっしゃいましたら、この場でお詫び申し上げます。

で、

この際なので、へたれエンジニア(左上のプロフィール欄参照)なりに思うところを書いてみます。
途中語尾が変わったりする挙句に特に落ちもありませんので悪しからず・・・。
また、自分はWEB系Javaの経験がメインなので、技術的な例はこれらがメインになります。


まず、繰り返しになりますが先のエントリは若干の皮肉も含んだ、程度の低いネタです。


今回、情報収集のツールとしてTwitterを挙げたのが受けた要因かもしれませんが、
似たようなことは実際にはずっと前から行われていると思います。
例えば、技術系のフォーラムで「初心者」であることを強調した上でそのものズバリの直球回答を求める投稿をするような例です。
このような投稿が現れるたびに常連の回答者たちは

  • 「初心者」は免罪符にならない、まずは自分で調べる努力をしろ。
  • 少しは調べたのならどのように調べたのかを書け。

と返します。
しかし、こうした常連回答者の「指導」も空しく、
アフリカの飢えたカバに愛の手を差し伸べるかのごとく颯爽とそのものズバリの回答をする「偽善者」様が現れ、
「初心者」様は「偽善者」様にのみ厚く御礼を申し上げて去っていく・・・。
そんなやりとりを何度も見てきました。


自分はこういうやり取りを見るたびに、

  • 「初心者」と名乗り無事に目的の回答を得たものは、仕事の現場では業務を無難にこなしている様に見え、あまつさえ「並」以上の評価をもらっていたりするのか?
  • もしかしたら自分の身近にもこのような「初心者メソッド」を使用しているものが居るかも知れない

などと考えていました。
「初心者メソッド」の発動者がパートナーさんであったり、プロジェクト自体が「とにかく動くものが出来れば良い」というスタンスなのであればそれでも良いかも知れません。
ただ、もし自社のプロパーが上記のような事を行っていたとしたら、上司はそれを見抜かなければならなりません。もとい見抜けなければならなりません。
そういう意味では、「新入社員の方々へ」と同時に「部下を持つ方々へ」の警告の意味も含んだつもりです。
(どれだけ深読みすればそこまでたどり着くのか書いてる自分でも不明ですがw)
ただ、ネットでの情報収集が容易になった今だからこそ、部下が本当に「本質」を理解しているのかを見抜く力が上に立つものには必要なスキルとなってくると思っています。

「能書き」について

一般的な新人にとって「能書き=ノイズ」というのはあながちネタではない。
いずれはこの「能書き」もきちんと吸収できるように育たなければ(育てなければ)いけないのだけれど・・・。


今年恐らく新人教育を任されるであろう立場の自分としてはそのタイミングが非常に難しいと思っている。
(新人教育は自分からやりたい旨を上司に志願した)[追記]正式に決まりましたー
早い段階から能書きを多く垂れてしまうと自信を失ってしまうかもしれないし、
遅すぎると連動して彼らの成長も遅れてしまうかもしれない。
良くないのは、まだ全然理解できていないのに理解したと勘違いさせてしまうこと。
また、最も最悪なのは「右も左も分からないのに前にだけは進む」という人材を育ててしまうこと。
右も左も分からないのに前に進めるはずが無い。そのような状態では、どちらが前かも分かるはずがないのだから。
そうならない為に、早い段階から「能書きの片鱗」だけでもほどよくチラ見せ焦らしプレイさせておくのがベストか。
「能書きの片鱗」を見せることで能動的にその本質を調べられるようであれば理想(というか技術者であればそうあって欲しい)だと思うけど、
最近は先のエントリに書いたように本当に「能書きをブロック」してしまう若手も少なくないと感じる。
この「能書き」にこそ一番重要な本質が隠れているにも関わらず。
かと言って、生半可なポリシーを持った、「能書き」だけを垂れる技術者というのも良くない。
うーん。実に難しい・・・。

「なぜ?」と疑問に思うことの重要さについて

「なぜ?」と疑問に思うことは重要だ。
例えば、まずはJavaプログラミングについて

  • 配列のインデックスって何で0からなの?
    • どうやらC言語の名残らしい。
    • メモリアドレスの「ある地点に先頭要素が格納されており、そこからn番目」という数え方をするかららしい。だから、先頭は先頭から数えて0番目。
    • a[i]という書き方はC言語のポインタ操作を簡略化するための構文らしい。
    • こういった、結果的に同じ動作でもプログラム上は別の書き方が出来ることを「シンタックスシュガー(構文糖衣)」というらしい。
  • 何でboolean型の変数bを使った「if (b = true) 」がコンパイルエラーにならないの?int型の変数iを使った「if (i = 0) 」はコンパイルエラーになるのに!
    • Java言語ではif文の中はboolean型の式である。
    • 式は評価され結果として値を返す。
    • 「b = true」は代入演算子「=」によって変数bへtrueという値を代入する式であり、結果はtrueというboolean型である。
    • とすると、「boolean boo = b == true;」みたいな事もできちゃうんだ。でも分かり辛いね。見辛いね。やるなら演算子の優先順位もちゃんと考慮しないとね。
  • Javaで変数名とかクラス名に日本語は使えないの?
    • 使えるみたい。(UNICODEが)
    • でも誰もそんなことしないみたい。
    • クラス名を日本語にしたらファイル名も日本語にしなければならないし、開発環境と実機環境が異なるOSかもしれないし、危険な事(気持ち悪いこと)は避けたほうが良いんだね。それに今の時代、日本の会社にも海外の技術者はたくさん居るみたいだし。

その他

  • Servletのレスポンスのリダイレクトとフォワードって何が違うの?結果一緒じゃん。
    • 全然ちがうよ!
    • forwardはそのリクエストの処理をさらに別のServletへ受け渡す。てことはあくまでWEBアプリケーション側のお話だね。
    • redirectはHTTPのステータスコードで「302 Found」ていうレスポンスコードと共に次へ遷移すべきページのURLが返却される。ブラウザはこの「302」を受け取って、指定されたURLに再度リクエストを投げる。「301」っていう恒久的リダイレクトなんてのもある。
    • てことは、最初のリクエストとredirect後のリクエストは別のリクエストってことだね。てことは、最初のリクエストのrequestスコープに格納されていた値やリクエストパラメータはredirect後は参照できないのかな?試してみよう。あ、確かに値が消えちゃってる!なるほどー。
    • あ、forwardだとブラウザのURL欄は最初のリクエストのURLだけど、redirectだと後のURLが表示されるんだね。ブラウザでF5押した時の挙動に影響しそうだね。
  • そういえば、今まで良く分かんないけどjspにforwardしてたけど、jspってServletなの?
    • jspは内部的にServletに自動的に変換される。だから、jspに初回アクセスする時少し重い感じがするんだね。これをページコンパイルって言うんだね。
  • じゃあ誰がjspServletに変換してるの?
    • Tomcatだと共通のweb.xmlに「*.jsp」のURLパターンでJspServletっていうサーブレットが定義されていて、ここでやってるみたいね。
    • てことは、新たにJspServletのURLマッピングの定義を追記してあげれば「*.jsp」ではなく別のURLパターンでもjspが動かせるんだね。「*.unko」とか面白そう!><
  • TeraTermUnix機に接続してviでテキスト編集して保存しようとしたら間違ってCtrl+S押しちゃった。画面が固まった!バグ!?
    • Ctrl+Sは「端末の出力の中断」ていう制御文字だよ。バグじゃないよ。こんぴゅーた様はちゃんと指示通りに動いているよ。
    • 今そうやって某シンジ君みたいににガチャガチャキーボードを叩いてるけど、端末の表示が更新されていないだけで、入力は受け付けられてるよ。
    • 復帰するにはCtrl+Qだよ。ほら、さっきガチャガチャキー叩いてたからテキストがおかしくなっちゃってる。
    • 制御文字は他にもいっぱいあるよ。さりげなくCtrl+HとかCtrl+FとかCtrl+BとかCtrl+Aとかでカーソル移動しちゃうとカッコイイよ!でもそれで女の子にモテるわけではないよ!
  • 改行コードって、何でCRとLFがあるの?
    • 昔のタイプライターの名残なんだって。
    • 今はWindowsはCR+LFでUnixLinuxはLFなんだって。
    • テキストファイルを読み込んだりするプログラムを書くときは注意が必要だね。
  • TeraTermUnix機に接続して、コマンド入力を間違えたのでBackSpaceキーを押したら変なのが出た!なにこれ!Ctrl+Cでまたやりなおし!?
    • つ sttyコマンド
  • 「ls」って打とうと思って間違って「sl」って打ったらSLが横切ったよ!すごい!感動した!なんすかこれ!
    • ふはははははh
    • じゃなくて、「ls」は一番良く使うコマンドで「sl」とタイプミスすることも多いでしょ。昔は、タイプミスの際にOSがコマンドを探すのにすごく時間が掛かったから、こういうダミーコマンドが作られたんだって。昔は大変だったんだね。今は別の意味で大変なんだけどね。
    • ハードウェアが進化した今では、ただのジョークコマンドとして残っているだけみたいね。


他にも挙げればキリが無いが、一つの疑問を持つことからまた新たな疑問が生まれ、知識はどんどん蓄えられていく。
プログラミングについての「なぜ?」も重要だが、早い段階からプロジェクトや仕様についての「なぜ?」も常に意識しておいた方が良い。
いずれ、設計や用件定義、見積りに携わるようになった時に必ず役に立つ。

  • このプロジェクトは全体はどのくらいの規模で、どのくらいのお金が動いているのか?
  • このプロジェクトの成果物に大してお客様は何を最も期待しているのか?
  • この処理はなぜこのような仕様なのか?(こういう仕様の方がいいのでは?それとも何か事情がある?)
  • この画面はなぜこのようなレイアウトなのか?(こういうレイアウトの方が使いやすいのでは?)
  • この画面を使う人(エンドユーザ)はどういった人たちなのか?
  • この画面で最も使用頻度が高い操作ってなんだろう?
  • そもそもこのプロジェクトはなぜウォーターフォール気取り?手戻りしまくってんじゃん。ばかなの?sぬの?


・・・など。


もし、こういった「疑問に思い一つ一つ解消していく」行為に対して「やりがい」や「満足感」、「面白さ」といった感情を抱かない、あるいはそもそも疑問にさえ感じないとしたら、それは技術者としては致命的だ。
すぐに辞職をお勧めする。そのまま留まり続けても、自分が苦しむだけならまだしも周囲に多大な迷惑を掛けることになる。

人材について

一方で、「人材は育てるのではなく取り替えるものである」という考え方もある。
この考え方に対しても解釈は様々だが、パートナー要員についてはその通りだと思う。
乱暴に言ってしまえば、
「使えなければ切る。そして別の要員を探す。」
それだけだ。
プロパーの場合、大企業なら「適材適所」という意味で配置換えなどで対応できるかもしれないが
多くの中小下請け企業にとって、それは難しい。
自分はまさにこの中小下請け企業に所属している。
こういった小規模開発会社ほど、プロパーの技術力がとても重要になってくると思う。


大手SIerなどの場合、稀に現場ではまったく役に立たない、ただプロジェクトを引っ掻き回すだけの
「勉強の出来るバカ」の成れの果て即ち「SIer茶坊主」が居る。
この類はなまじ学歴もプライドも高く本当に性質が悪い。
新入社員の方々には、こういった人間にはなってほしくない。
自分の周りだと、新卒でSIerに就職した技術に関心のある有能な人材は、2〜3年で退職してフリーランスか起業している人が多いように見える。

まとめ

全然まとまってませんが、正直、本当にまとまってません(笑
自分自身、現状のIT業界に違和感をすごく感じているけれども、
一体どうすればいいのか、どのように向かっていくべきなのか分かりかねています。

  • 技術者の低レベル化(さほど技術を知らなくてもIDEなどの発達によりそれっぽいものが作れてしまう)という現実
  • IT技術者も免許制にすべきだ!という意見
  • 殿様商売するSIerが悪いんだ!という遠吠え
  • SEとかPGとか区別してる時点でニッポンオカシイヨ
  • 人月ってなぁに?おいしいの?
  • ステップ数(笑)
  • スーツ(笑)
  • 運用でカバー(笑)
  • 美しい国、日本・・・。

・・・。
う〜もうだめ、ばたんきゅ〜します。