こんにちは。私は私立文系学部卒の大学生です。
来年には就職し、SEとして働くことになりました。
他業界にも内定を幾つか頂いた中、SEの道を選んだのですが、最近この業界は金融業界などに比較してキャリアパスが比較的狭いのではないか?と思い始めました(例えば海外で活躍するなどは出来そうにないetc)。
そこで色々と考えたのですが、将来的には何かのシステムやソフトウェアを作り、起業出来れば面白いなぁと考え、まずはスペシャリストとして技術力を磨かないと、と思っています。
しかし私はシステムについての知識は全くありません。アルバイトでHTMLのコーディングなどをやっていた程度です。
こんな私がSEとしてキャリアを築いていくために、何を勉強すべきでしょうか?
・入社前にやっておくべきこと
・入社後にやるべきこと
の2点について、自身の経験からやっておけば良いよ、ということがあれば、教えて頂きたいです。現役のSEの方や、IT業界で働いておられる方に教えて頂ければ大変参考になります。何卒宜しくお願いします。
まず入社前ですが、
初級システムアドミニストレイター/基本情報技術者やオラクル・シルバーといった資格を取ることを目標に幅広く勉強される事が良いと思います。
(実務に就くと資格を取得するための勉強をする時間が取れないことが間々あります。)
キャリアパスを狭くしないためには、語学(特に英語)をマスターしていると良いと思います。
(TOEICを受けてアピールすることも大事です。)
入社後は会社によってキャリアパス等が異なりますので一概には言えませんが、一番大切なのは苦しくても3年我慢することと、3年後には自在に転職できるスキルを身につけるための日々の勉強を欠かさないことだと思います。
URLはダミーです。
SEではありませんが、富士通に約16年勤務してDBMSの開発をしてました。
入社前にやっておくべきこと
Java、VB、C等プログラミング言語はたくさん知っているに越したことはありません。あとSQLはデータベース特有の言語ですが、まだしばらくは使われると思われるので勉強する価値はあると思います。
入社後にやること
システムは、結局そのシステムを使って仕事・商売する人のためのものですから、なんでこういう設計になっているのか、なんでこういう画面なのか、などそのシステムを使うエンドユーザの視点で考えて理解する事が大事です。
例えば銀行の業務というと大変広い範囲を指しますが、銀行業務全体の中で自分が関わっているシステムがどういう位置づけなのかを理解する事です。
つまるところ、お客さんの業務全体を知る事が大事です。そのために、SEの先輩や、システム発注元のお客さんに、業務についてどんどん質問することだと思います。
例として銀行をあげましたが、銀行職員でない人間が銀行業務全体を理解するのは当然大変な事です。最初はいろんな業務・業界について広く浅く知識をつけて、ある程度経験を積んだら、将来一人立ちする時にどの方面の仕事 (金融系、病院関係、学校等教育関係など) をしたいか的を絞って、その方面の知識を深めていけば良いと思います。
ありがとうございます。
言語は広く浅くでも、沢山やっておいた方が良いのでしょうか?
会社ではJAVAを勧められています。なんでも内定者研修でJAVAと業務知識(金融です)の勉強をするそうです。
まずはJAVAならJAVAを深く勉強すべきなのかなぁと思っていたのですが・・・。
その他の情報も参考になりました。ありがとうございます!
そんなにやっておくといい事って、あれやこれやと有るわけじゃないし、特殊なノウハウなんて、そうそう無いなぁ、って思ってます。
ただ、入社の前も後も、主要言語は複数マスターする(できれば、使いこなせるく
らい)ことや、興味が有るか無いかとかに関係無く、複数の業種についてビジネス
の詳細(用語からはじまって、仕事の内容、手順などのノウハウ)をマスターするこ
とや、コンピューターとコンピューターの周辺の技術(デバイスなんかを含む)を常に最新情報を勉強する事、辺りをやっておくといいかも知れません。
どれも、理想的には広く深く、って感じですかね。
生活の為の仕事としては、割と簡単に個人事業主で開業できるし、運がよければ、
IT長者だし、運が最悪でもキーボードが打てるだけで、データ入力の口も有りま
す。
コンピューターの技術は、どこにでも入り込んでいるので、やりようでは金融なん
かよりも幅広く、キャリアパスっていうか、キャリアアップの機会を自分自身で開
拓することができるんじゃないかなと思います。海外も行けます。金融みたいに派手じゃない、ってのが、ちょっとね、って感じがしますけど……。
ありがとうございます。
やはり広く深くが理想ですよね。
確かに、SEの仕事には派手さが無い気がしますね・・・スピード感というか・・・。
上URLは最新技術やトピックを取り上げているサイトです。知っていたらごめんなさい。入社前は英語(文章読解力、英会話含む)を勉強しておくとよいと思います。なぜなら現場では最新技術文書は英語で記載されているからです。また、現場には外国人技術者もおりますので、彼らと話をする際にも必要です。プログラミング言語については、各言語を幅広く薄く勉強しつつ、JAVA等どれか一つの言語について深く習得するとよいでしょう。入社後については、既に先輩エンジニアがいると思われるので、「この人はすごい」と思ったら即色々な疑問をぶつけてみるとよいでしょう。そして、そのような人のお手伝いをしながら技術を真似て習得してみましょう。
ありがとうございます。
大体必要なことがわかってきました。
・英語力
・1つもしくは幾つかの深い言語知識
・広く浅く様々な言語についての知識
ですね。頑張ります。
私立文系(文学部)出身でSEっぽい仕事について5年目です。
ありきたりな説明になりますが、SEと一言で言ってもやっている仕事は十人十色です。
プログラマに近いSEもいれば、いわゆる上流工程の要件定義、基本設計を中心にやるSEもいます。
sucreさんの就職する会社はどんなことをやっている会社で、sucreさん自身は将来どういう仕事をやりたいのでしょうか。
乱暴な言い方をするならば、SEのキャリアパスは大きく分けてプロマネになるか、スペシャリストになるか、しかないと思います。
どちらを目指しますか。
(って起業を目指す、って書いてますよね。)
ちなみに私は、ぬるめのメーカー系SEなのですが、仕事でプログラミング(コードを書くこと)をやったことがありません。
(この状況はちょっとどうかとは思うのですが…。)
実際の開発は外部の会社に発注したり、外部の会社のSEの人を雇って開発してもらったりしているためです。
という前提(私は少なくともスペシャリストではない)で以下の内容をご確認ください。
学生時代は、業界全体に興味を持って毎日を過ごしたら良いと思います。
例えば、以下のサイトを毎日チェックするなどして、どんなことが流行しているのか、ぐらいは掴んでおくと良いと思います。
また、他の回答にもありましたが学生時代の方が資格試験の勉強をする時間を作りやすいと思いますので、基本情報技術者試験あたりには合格しておいた方が良いと思います。
広く浅い知識が身につきます。
個人的な見解ですが、プログラミング言語はとりあえず1つ理解していれば十分だと思います。
1つをきっちり理解しておけば、「この言語ではこういう書き方をするのか、なるほど。」となるらしいです。
(私はまだ未熟でそのレベルに至っていません。)
コミュニケーションスキルを磨くことが重要だと思います。
顧客からは、要望を的確に把握し、決められたスケジュールで仕事をこなすことを求められるわけですが、そのためには、顧客の要望の裏にある真意を汲み取り、要件定義段階で意思をすり合わせ、関係者と調整して着実に仕事を遂行しなければなりません。
まずは、まわりの人の話をよく聞いて、日ごろから自分に求められている役割を意識するようにしてみてはいかがでしょうか。
プログラミングはやりたいことを実現するための1つの手段に過ぎません。
例えば既存のソフトウェアで実現できることを新たに1から開発するのは時間の無駄です。
また、起業をして自分の会社を持った場合、徐々にプログラミングに没頭することはできなくなり、仲間(あるいは部下)に仕事をまかせなければならなくなることが想定されます。
ここでも重要になるのがコミュニケーションスキルです。(マネジメントの前提にコミュニケーションがあります。)
最後になりますが、以前似たような質問があり、そこそこ充実した回答が寄せられていますので、一度確認してみてはいかがでしょうか。
ありがとうございます。参考になります。
私の就職する会社では、社長の方針で取締役になってもプログラミングが出来ることが大前提らしいので、プログラミングはしっかり勉強するようです。その後ITコンサルタントになるようですね。(勿論コンサルタントになっても必要ならプログラミングはするそうです)
正直言って今の自分にはどのようなSEが向いているのかは分かりません。個人的にはプロマネ的な職種の方が向いているような気がしているのですが・・・。
とにかく、コミュニケーション能力は重要ですね。意識して身に付けて生きたいと思います。
URLはダミーです。
まず、日本語をきちんと身につけること。プログラムを作る前にきちんとした設計書を書かなければいけません。このときに日本語が必要になります。
設計書たるもの理想的には一切の曖昧さを排除しなければなりません。誰がみても同じ解釈ができる設計書を書く必要があります。ここで大事なのが日本語だと思います。
文系と言うことで理系の人間にはないきちんとした日本語力を身につけることが大事だと思います。
また、プログラム言語は入社してからでもいやと言うほど覚えられます。それでも、入社前に何かしておかないと不安ということであるのならば勉強するとよいでしょう。
会社からはJavaを勧められていると言うことなので開発環境は一通り無料でそろえることができます。
開発環境はEclipseを使うといいでしょう。無料で使え、なおかつ現在業務で最も多く使われている開発環境だといえます。
また、データベースについて勉強したい場合はOracle 10 XEをダウンロードして使ってみるといいでしょう。
Oracleはもっとも業務で使われるデータベースのうちの一つです。覚えておいて損はないでしょう。
http://www.oracle.com/technology/products/database/xe/index....
JDBC経由でJavaと連携したアプリケーションを作ることができれば最高です。
Javaの開発はWebアプリケーションが多いですので、Tomcatの使い方を覚えるのもいいでしょう。Servlet,JSPに関してもHTMLとJavaの知識があれば比較的容易に習得できると思います。
さらに余裕があるのならばフレームワークを一つ覚えるといいかもしれません。StrutsやJSFといったものです。
ありがとうございます。
日本語についてはかなり自信があるので大丈夫だと思います。
勉強の環境ですが、すごく参考になります。ありがとうございます。早速試してみますね。
http://www.richdad-jp.com/top.html
従業員としての回答はいままでの人で言うことないので。
純粋に「起業」について。
ちっと考えたことがありますが、要するに
「人脈と運」
です。私は問題外な人ですが。
「起業」に関しては「SE」は難しい業種です。起こすのは
簡単なのは確かですが、続けるのは非常に難しいです。
もともと「起業」はどの業種であれ「続ける」ことが難しいです。
特にこの業種は「続ける」のは難しい。起こすのが簡単だから
「起業」は考えるのでしょうが、「起業」で重要なのは「継続」です。
意外とそうは問屋が卸しません。。それでも機会があれば
それはそれでいいでしょうけど。
「運」はともかく、「人脈」については、しっかりした人脈を築くのは非常に難しいなぁ、と思っています。
起業に関しては、少人数でまわるビジネスモデルを考えたいと思いますが、やはり「継続」というのは難しいと思っています。その辺りにはかなり「運」が絡んでくるでしょうね・・・。でも、人生において一度はダイナミックなことをしてみたいと思っているので、チャンスがあれば考えていきたいと思っています。
そのためにもSEとして最新の技術に常にキャッチアップしつつ、人脈を広げていきたいなぁ、というのが今の考えです。
上の方で『言語は広く浅くでも、沢山やっておいた方が良いのでしょうか?』
とおっしゃられていますが、基本的にNOだと思います。
ちょっとその言語が読める、くらいの人は専門学校生や趣味プログラマの方が沢山いますので、浅く広く知ってるよりは、
コレが出来ます!と言える言語を作る事をオススメします。
将来的に、コーディング業は人に任せて、
自分はSE的な仕事に専念するとしても、
言語を1つ習熟することは、別の言語を始める際、足がかりになるので役に立ちます。
『将来的には何かのシステムやソフトウェアを作り、起業出来れば面白いなぁと考え・・・』
ともおっしゃってますが、
この“何か”を詰めていくといいのではないでしょうか。
以前、TVでサイボウズの社長がインタビューで、グループウェアを作るにいたった経緯
(こんなんあったら便利じゃん、と思った云々)を語っていました。
はてなの近藤さん然り、こんなんあると皆楽しいよね?便利だよね?という発想って大事かと思います。
今、皆が便利がって人気のあるソフト・システムは何か?そんな辺りをチェックしとくと良さげです。それが、どんな技術で作られてるのか、とか興味は尽きないです。
ありがとうございます。
やはり深く勉強した方がいいですね。
起業に関するお話、ありがとうございます。とても参考になります。
---------
大体質問についての答えが揃ったので、以下では私が気になったことについて教えて頂けると幸いです。
・35歳ぐらいまではともかく、それ以上の年齢になったとき、SEって何をするのでしょうか?管理業務?いまいちイメージが沸きません・・・。スキルについても、歳をとると若い人に追いつけない気がするのですが・・・。
・他社に転職することを考えた場合、スペシャリストかPM経験が豊富な人か、どちらの方が良いのでしょうか?
以上2点について教えて頂きたいと思います。宜しくお願いします。
URLはダミーです。
学生のうちから頭を痛めてもあまり意味は無いように思います。学生は、社会人になるまでに学生でやっておきたい事を精一杯やっておくべきです。それが興味に繋がって、枝葉して、どの業界にいても役に立つと思います。今までの自分を振り返って、小学校、中学校、高校、大学の友人にどれくらいパスがありますか?そーゆー事の方が重要ですし、そんなパスのない人間が実に多いのも事実です。転職についても前職とのパスをどの程度維持できるか?これが本当のキャリアパスだと私は思っています。「いろんな人とパスが張れる」事は、コミュニケーション能力と言われる部分に含まれると感じます。
プログラムなどは、勉強すれば済む話です。大学受験は、お金を払って勉強しましたが、会社ではお金を貰いながら勉強できます。社会に出てから毎日勉強してください。大学で勉強した技術的な話など1年で埋まる程度のスキルだと思います。私は、pingも打てない所から入りましたが、キャリアのお馬鹿さん達にお灸をすえるのが最近のお仕事です。(^^
私はシステムの発注側として、
SEの方と仕事をしてきましたが、
人気のあるSEの方は、こちらの仕事内容を
理解してくれていて、とても仕事がやりやすかったです。
JAVAとか、何を選ぶかも大切ですが、
コミュニケーションスキルも大切なことでしょう。
その意味では、下記のような本を読んでおくと
いいのではと思います。
速効!SEのためのコミュニケーション実践塾 (日経ITプロフェッショナルBOOKS)
SEのためのヒューマン・スキル入門―35のコーチング事例で学ぶ
上海である金融機関に勤務しています。海外で活躍できるSEは大変貴重です。今でも当社は、システムのわかる人材をシステム子会社から長期で派遣して欲しいと本社とネゴっているところです。
今でも人事ローテーションの一環としてシステム畑にいた人材がいますが、所詮かじっただけで使い物になりません。どうしても専門性を持った人材が欲しいのです。
語学能力はあるに越したことはありませんが、無理なら通訳でも何でもつけています。それよりも働いてやろうという意欲のある人に来てもらいたいです。
語学力があっても現地人のコミュニケーションは難しいですから、粘りよく対話する能力のほうが重要と思います。
ありがとうございます。
基本情報処理は取ろうかと思っていました。
案外SEでも英語を勉強しておくと良いという話は良く聞きますね、勉強したいと思います。
3年間が勝負ということですね・・・頑張ります!ありがとうございます。