「ハッカー」からエンジニアになりたい、どうしたらいい? 55
ストーリー by hylom
悩む学生 部門より
悩む学生 部門より
eggy 曰く、
本家/.「Transition from "Hacker" to Engineer?」より
私は、コンピュータサイエンスの修士号取得を目前に控えており、「実社会」で(再)出発することになっている。既に就職先は決まっているが、一つとても引っ掛かっていることがある。それは、私が学んできたことの大部分はコンピュータサイエンスに関してであり、それこそ本来のソフトウェアエンジニアリングではないということだ。私はまだ「ハッカー」でしかないのだ。
つまり問題解決を請け負っても、できることは適するアルゴリズムを使って大まかな解決方法をみつけたり、(多くのデバッグプリントを使って)コードを書いたり、基本的な検証を行うくらいのものである。当然、このやり方でも学校の授業ではうまくいくのだが、実社会ではそうはいかないだろう。いままでもシスアドやセキュリティ、サポート、プログラミングといった何でも屋的なことは経験しているが、処理手順の検証に特段の厳格さは求められず、その結果として私は「エンジニア」としてはまだ未熟なのではないかと感じている。
そこで皆さんにお訊ねしたい。(良い意味の)ハッカーから本物のエンジニアになるのにはどうしたらいいのだろうか。当然「人月の神話」は私の読書リストに入っているが、他にお薦めの本があればそれも教えて頂きたい。
皆さんは「ハッカー」の思考からどうやって抜け出しましたか?
既に十分では (スコア:3, 興味深い)
本家のコメントは読んでいませんが、この違いをこの段階で認識しているだけでも、既に十分な気もします。
現状と目標のギャップを正しく認知できれば、その間を埋めるための方策は自ずと見えてくるのではないでしょうか。
Re: (スコア:0)
ゆとり君は、こういうの見て、どう思うのだろうか。
こういう悩み方ができない学生が多いこと多いこと。
Re:既に十分では (スコア:2, おもしろおかしい)
他人にレッテル貼り付けて勝手な事言ってるおっさんウゼェ、と思ってる事でしょう
Re: (スコア:0)
どう思おうが、働きがあればいいのだけれど。
足んないんだよね。
もう少しまともに悩めよ。ちょっとぐらい。
客を意識できるかどうかの違いかしら (スコア:3, すばらしい洞察)
キレイな絵が描ければ漫画が売れるかといえばそんなことはないわけで。
読む人がどうしたいか、どう楽しみたいかを意識せず機械的に記号を組み合わせても、面白いものができる確率は上がらないと思う。
客を意識する、といっても必ずしも実際に使うUI周りとかを指すわけではなく、自分のステークホルダーである上司や上流・下流の作業をしている人に対しても可読性や流用性、汎用性、耐故障性などをどれぐらい意識するかで違いはあると思う。
その辺りを意識すれば、数あるシステムのアルゴリズムの中で最適だと思える『基準』を持てるようになるのかなと。そこは、ハッカーと違うところかもしれない。
結局、動けばいい、で終わったら、先に挙げたキレイな絵を描ける程度の人と同じなわけで、そこから『選択した上でこれ』ができるかどうかが、『エンジニア』なんじゃないかなぁ、と。
(そして思い出したのが、これ [twitter.com]。)
Re: (スコア:0)
自分とはまったく違う問題を抱えた人を助けることが出来るかってのは、エンジニアに限らず自己満足から一歩出たかどうかの基準にはなりますね。
自己満足も突き詰めれば一般性を持つので、悪いこととは思いませんが。
ハックする人々 (スコア:3, すばらしい洞察)
つい最近、スラドに張られたリンクを辿ってハックの定義を知ったのだけど、たしかこんな感じだった。
「手近な材料を駆使してなんとか役立つもの(こと)を仕上げること」(←意訳)
料理で言えば「冷蔵庫の中のあり合わせの材料でパッと作って美味しくいただける料理」
気をつけなければならないのは、準備万端正攻法で行われた重量級の仕事に「ハック」と
言ってしまうと決して褒め言葉にはならないのだそう。
タレコミにある「ハッカー」にはこういう意味が込められてるんじゃないか。
エンジニアとの対比もなんとなく判る気がするし。
Re: (スコア:0)
>あり合わせの材料でパッと作って
Coooooolだぜ。と、最近、Fate/Zero を観て思いました。
#アニメネタ、しかもブラックですいません。
分かり易いコードを書くのが正しい=エンジニア 難解なコードを書くのが正しい=ハッカー (スコア:3)
タイトルの通りに、信念を変えて頂くだけでございます。
Re: (スコア:0)
そうか、「難しいことはいいから、ちょちょっと簡単に作ってよ」と言う
俺は、エンジニアとして正しいことを言っていたんだな。
「なんかよく分からないけど、簡単に作ればいいじゃん」と言われて
嫌そうな顔をしていたやつらはハッカーだったんだ。
やっぱりそうか。
Re:分かり易いコードを書くのが正しい=エンジニア 難解なコードを書くのが正しい=ハッカー (スコア:1)
確かに前者の方が立場が上だったり高給だったりする傾向にはあるなぁwww
通知の設定いじったから、ACだとコメントされても気づかない事が多いよ。あしからずw
エンジニアになるには (スコア:2)
エンジニアの求人に応募すれば良い。そしてエンジニアとして採用されれば間違いなく本物のエンジニアでしょう。
その事を忘れているエンジニアも沢山居ますが。
そうではなくて一流のエンジニアになりたいならば、三流エンジニアの私にアドバイスできる事はありません。
サイエンスを忘れすぎ (スコア:2, すばらしい洞察)
元の文章では「コンピューターサイエンスの修士」とありますので、「サイエンス」という発想を比較対象から忘れるのは宜しくないと思う。
おそらく、「コンピューターサイエンス」と「ソフトウエアエンジニアリング」の違いについて言及してもらいたい文章にも見える。そして、この人の定義(感覚)だとハッカーという言葉はよりサイエンス側に定義している。「コンピューターサイエンスの修士な僕はハッカーで、これからエンジニアという下界におりてきます」というちょいと傲慢さも感じた。訪ねる体裁で煽るとう典型的な文章だ(元の文章読んでないが)。ようするに煽っている空気を私は感じた。(逆に言うと彼の「ハッカー」という言葉には違和感を感じた。だからハッカーではなくて「ハッカー」なのだろうが)
たとえば圧縮に関する全く新しいアルゴリズムを研究開発する人をおそらくこの人はハッカーと定義している。アルゴリズムそのものの研究者をハッカーとしている。そして、その圧縮アルゴリズムを使って、実際に製品等のソースコードを書く人(効率的な実装をするのを含めて)をソフトウエアエンジニアリングする人をエンジニアと呼ぶ。たとえば、Winnyの中の人ももともとは本業は典型的な研究者だろ。完全にサイエンスよりだ。無論世間様的に彼がハッカーとしてカテゴライズされているのは、本業のネットワークの研究ではなくて、Winnyという'製品'をリリースするという一種のエンジニアリングによる。
で、ハッカーの感覚的な定義が玉虫色なのは、エンジニアリングという発想だけで見ても、コンピューターという物理実態を持っている実機よりのハッカーと(たとえば、CPUアーキテクト寄りでコードを書ける人、むしろアーキテクト出来る人とか、Intel でコンパイラの開発に関わるとか)、逆にあまりハードウエアに依存しないレイヤーでのハッカーがいると思う。無論それぞれの中でそれなりのプロになってくればある程度は技術や知識はオーバーラップするし頂上は似ている。でもどの「プロ」かは明らかにカテゴライズされる。そしてそれぞれの中で、エンジニアリング寄り指向とサイエンス寄り指向がいると思う(普通はエンジニアリングより)。元の定義自体が「コンピューターに詳しい人」なので。人によってとらえ方がいろいろとある。
だから、元が学生であっても、どのいらの業種からどこいらの業種へコンバートするかということがそもそも念頭にないと、どういうエンジニアなるのかの元ネタがないと、はっきり言ってコメントしようがない気がする。どのジャンルのエンジニアになりたいのか?がわからない。なので、あえて言うのならば、「社会人」とはとか、「仕事」とは?とかいうお話しか出来ようがない。最初から問いかけが中途半端なのだ。
"自称"じゃあねぇ (スコア:1)
まずは、自分が「ハッカーでない」と自覚することからでは。
エンジニアを突き詰めて、技術の酸いも甘いも嗅ぎ分けて穴や弱いところを嗅ぎ分けられるようになったら「ハッカー」といえる。
Re:"自称"じゃあねぇ (スコア:1)
俺基準では、エンジニアとして不十分でもハッカーだしエンジニアとして十分でもハッカーとは限らない。ましてやハッカーが能力の一部を押し殺して職業エンジニアになるべきかどうかも、判断しかねる。
コンピュータサイエンスの学生であるというだけの自称ハッカーはたしかに違和感はあるし、ゴリゴリ書いてる根性型の人がオープンソース開発の実績があるだけでハッカーと呼ばれるのも違和感ある。
俺基準で、くわっとした仕事を見せてくれたらハッカーって呼んでやる。
Re:"自称"じゃあねぇ (スコア:1)
真の「ハッカー」を名乗れるのは飽くなき探究心が必要です。
Re:"自称"じゃあねぇ (スコア:1)
Re: (スコア:0)
自覚した上での言葉遊びなんだと思ったけど・・・「多くのデバッグプリントを使って」とか書いてるようだし。
「ダメ技術屋的な言葉としてオタクに相当するgeekを使おうにもなんだかかっこいい方向に意味が迷走してるし、クラッカーしてるわけでもないし、ましてやアニメ方面のNardでもない。そこへきてハッカーという言葉は一般人どもにシッチャカメッチャかにされている・・・半端者の自分にちょうどいいではないか。」
的な。
タレコミの後半読むとこの解釈も怪しくなってくるけど・・・
デバッグプリントがハッキーな手段だと思ってる末期患者だとは思いたくない・・・・・・
Re: (スコア:0)
本人がハッカーだって言ってるならそれでいいじゃん。
なんか皆、"ハッカー"という言葉にさ、勝手に"スーパー"っていう接頭語をつけて考えてないかい?
ハッカーって、そんなに敷居が高ものでも崇高なものでもないよ。
わざわざ m9(^Д^)ハッカww ということの程でもあるまいに。
心配ないでしょ (スコア:1)
既に自分の特性と言うか、経験が不足してる領域の存在を認識してるようだし。
ビジネスは人間が動かしており、問題解決の多くは人間作業側との両面の視点が必要と言う
部分さえ押さえていれば、上流から開発現場まで含めて通じた得がたい人材になるだろうね。
Re:心配ないでしょ (スコア:1)
東京にくれば翌日から超一流 問題ない
趣味と仕事は違うんだよ (スコア:1)
と、下働きから自分の裁量でなんとかできる仕事が増えてきた頃
よく上司に言われたっけなー
今なら分かるわー
Re: (スコア:0)
> 今なら分かるわー
あなたがもっと偉くなると「今なら分かりません!」になります。
Re: (スコア:0)
自分ひとりで10の仕事をするよりも、
本来2の仕事しかできない10人を率いて、5x10人の仕事をさせる方が仕事的には価値がある
エンジニアってなんだろう?ハッカーってなんだろう? (スコア:1)
自分の勝手な印象からすると、自分の持っているハッカー的なスキル(コンピュータサイエンス?)も問題解決の一つの手段でしか無いと認識し、
それを使わずに解決する手段が最適ならば、それを選んで実行する事ができる事かなあ。
最近考えるのは、自分のやっている事を意味のある仕事にするためには、何が必要でどういう行動が必要なのかを認識している事かな、
それはプログラミング以外の行為全てなんだけど、それってエンジニアというより職業人としての認識な気がする。
#存在自体がホラー
Re:エンジニアってなんだろう?ハッカーってなんだろう? (スコア:1)
ハッカーとは、何かの処理を作る人
職業エンジニアとは、何かの処理をするシステムを作る人
(コンピューターシステムじゃないよ)
言い換えると、自分で処理できればいいのがハッカー
仕組み/組織/スキームをたてつけ、処理するシステムを構築するのがエンジニア
ハッカーとエンジニアは相反する要素じゃないよね (スコア:1)
ハッカーからエンジニアに変身する必要はない。「エンジニアのスキルを身に着けたハッカー」こそが目指すべきものである。
そして、どんな「すーぱーえんじにあ」でも最初は初心者だ。
エンジニアの入り口に立てたのなら、そこからまっすぐ進んでいけばいいだけのこと。
取り敢えずプログラミング以外の問題をハッカーマインドで解いてみるんだ (スコア:1, すばらしい洞察)
実はそれでも使える道具が「エンジニア」としての道具(の一部)。
fjの教祖様
ハッカーかエンジニアかではなく、趣味か仕事かでないの? (スコア:1)
ハッカーかエンジニアかではなく、趣味か仕事かでないの?
まぁ、SEなんて肩書き持たされて仕事してて思うのは、人を使う立場になれば本物。それまでは、ハッカーもエンジニアも大差ねえなって感じかな。
いあまぁ、実際問題、開発に使っている製品の基本知識すら持ってなくて(しかも自分で設計すらやらないw)、それでも高収入なんてのが、そこらじゅうにいるのが日本の現状だしね。
通知の設定いじったから、ACだとコメントされても気づかない事が多いよ。あしからずw
Re: (スコア:0)
>人を使う立場になれば本物
でも、人を使う事が目的になると嫌だよね。使うというか売りつけるというか。
言葉の表現の違いか (スコア:0)
アマチュアからプロになりたいってことだよね?
適当なソフト会社に入って経験積むしかないのでは?
Re:言葉の表現の違いか (スコア:2)
足りないのは技術的知識やテクニックではなく、社会人としてのコミュニケーション力とかじゃないかな?
無理言ってくる取引先やクレーマー等面倒くさい客、ダメ案件を持ってくる営業部門への対応力みたいなもの。
で「やりたくない仕事でも時にはやらなきゃいけない」ことを理解したら社会人、とか。
Re: (スコア:0)
いろんな部分で賛成したい面と反対したい面がある。
就職先も決まっており、マスターももうすぐとれるんだろうから、そっちの心配はしないでおく。
まず基本的な会社でのありかたは会社で学べるだろう。
それが必要ではないとは言わないが、それよりも問題点を発見することによろこびを見いだすといいタイプなのかもしれないね。
別にコンピュータを使ってどうするかよりも、顧客は悩んでいる事を解決したいだけだよ。
Re: (スコア:0)
作るソフト、作るソフトすべて基盤的なのがアマチュアで、基盤ソフトを作る側になかなかなれないのがプロでは。
基盤ソフトではインターフェースは、不磨の規約だけれど、
そうで無いソフトではインターフェースは、変えてみて影響範囲をしる為のプローブに過ぎないとか。
名前空間も、基盤ソフトでは致命的に必要でしょうけれど、
そうで無いソフトでは、なにそれ意味ねーじゃんの扱いになるとか。
Re: (スコア:0)
ちゃんとした会社じゃないと、入社して周りのレベルの低さに失望するだけだと思うけど。
エンジニアとは何か (スコア:0)
ココ [vector.co.jp]のエンジニアを理解しよう -- その2を読むとエンジニアの生態が良くわかる。
要は楽しくないこともちゃんとやればいい (スコア:0)
まともなドキュメントの作成と網羅したテスト、それがプロとアマチュアの違い。
ハッカー的知識なんて普通のソフト屋には必要ありません。
# コーディングだとコメントの量で学生かどうかの見分けがつく。
Re: (スコア:0)
別の知識なんで、必要無いって事はないです。
知識のポケットは、たくさんあった方が良いですね。
勘違い (スコア:0)
本物になるには別のスキルが必要。
数日唸りながら見つけたバグが人のライブラリコードにあっても憔悴せず、
それを報告した時に「あそうですね直しときます」というのを数十回繰り返しても腹を立てず、
仕様がなくても「なんだろう何かが足りないな」以上のことは考えず、
「どこ見ればこのライブラリの仕様がわかるんですか」との質問に「口頭で伝承してる」と言われても笑顔を絶やさず、
その為バグが頻発して誰かが「俺達みんなもっと注意しないとな」と言っても突っ込まず、
目が腐るようなコードに埋もれて死にかけても私生活に影響させず、
「綺麗なコード書こうとする奴は遅いから駄目だ」と言う奴がいても殴らず、
インデントが3スペース、4スペース、8スペース、タブ混在であっても心の目で正しく整形し、
関数名がdoStuffsであっても「これはユーモアのある命名だな」と考え、
会社に入ってそれを普通だと思ってる奴が大多数であってもオー人事に駆け込まない、
そういう前向きで人間力のある奴を本物の変態と言うのだ。
Re:勘違い (スコア:1)
でも、それぐらいでストレス感じてたら、日本のSEは務まらないよなぁwww
#ま、実際問題、もっと酷いの相手に仕事してて、口内炎が絶えない日々ですが(苦笑)
通知の設定いじったから、ACだとコメントされても気づかない事が多いよ。あしからずw
Re: (スコア:0)
そういうひとにわたしはなりた・・・くねぇよ!!
でもなっちゃった・・・orz
Re: (スコア:0)
最近はよく切れるようになったorz
Re: (スコア:0)
チーズさん。乙です。
マジレスすると、心が疲れているか、加齢か。
Re: (スコア:0)
あなたも私も、みんな疲れて心がすさんでるよねコの業界
「相手が金を払ってでも欲しいと思うようなものを作れ」 (スコア:0)
Re: (スコア:0)
禿同。
そこから、自分なりのやり方が導き出される。
落としどころ (スコア:0)
を金で計算できるところなんだろうなとおもっている。
未熟者です。
超Cooolだぜぇ〜旦那ぁ〜 (スコア:0)
今まで、ただ単にハックする日々でしたが、
ある日、家の古文書に書いてあった儀式を行って出会った、先達からの指導で
ハックしたものを使って製品(オルガン)を作ることに目覚めました。
こうですか?わかりません。
Re: (スコア:0)
青髭のマスターさん。乙です。
#日本の尊師とか、ドイツの伍長とか、カンボジアの書記長とか、ルーマニアの大統領とか、北朝鮮の総書記とかも英霊になるのだろうか?
興味がないからといって手を付けないことが許されない (スコア:0)
ですよね、仕事としてやる以上は。
趣味的ないわゆるハッカーはそれが許されてしまう、というより自分が自分を許してしまう。
退屈な仕様固めが続いたり、他人が書いたグダグダなコードのデバッグを延々と行なったり
そういうのも持続できる精神的な耐性が求められたりするんじゃないかと。