- ベストアンサー
プログラム能力
私は今春就職する学生で情報系の研究室に所属しています。私の内定先で、同期入社(SE採用のみ)で大卒は自分だけで他は全員専門学校出身です。皆はC・Java・Basicを学習してきていますが、私はC・Javaでしたので最近になってBasicを勉強し始めました。専門学校の人たちよりプログラムをいじる時間が少ないので、入社当時のプログラム能力に差が出るのではないかと思っています。会社はソフト開発でオープン系です。入社まで時間が余りありませんが、ようやく卒業研究が終わったので本格的な勉強をしたいと思います。入社前にプログラム経験を専門学校の人に負けない位に出来ればと思っていますが、学習する上(3つとも)で気をつけた方が良い事・やっておいた方が良い事などありましたらアドバイスをお願いします。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
先に一言。極端な書き方をします。 私は現役でフリーランスのSI(SE/PGからケーブル敷設まで)をやっています。 そんな私から、あなたの勘違いを指摘させていただきます。 SE/PGに求められる能力は決してコーディング能力ではありません。 問題(課題)の把握とその分析、そして最適なソリューションの選択です。 最低限必要な能力としては、問題と解決手法を誤解無く読める母国語の文章で簡潔にまとめられる事です。 極端な話、プログラム言語なんて、リファレンスを見ながら書ければ十分です。 1つの言語にとらわれすぎて、40歳50歳になって潰しが効かなくて困っているSEもいっぱいいます。 簡潔な箇条書きで書かれた母国語の文章をそのままプログラミング言語に当てはめれば、ある程度のプログラムは作れます。 「抽象化」が出来ればさらに良いでしょう。 次に必要な能力は、データを整理する能力です。 データを系統立てて整理し把握できる状態にする事。これが必要なのです。 つまり、箇条書き能力とデータ整理能力があればPGとして最低限の仕事は出来るという事です。 そこに「プロジェクト管理」や「抽象化」「オブジェクト指向」、データの「正規化」が出来れば技術サイドのSEとして十分やっていけます。 さらにその上に、お客様の日常使っている言葉で語られた要望を、簡潔にもれなくまとめる能力が加われば、営業サイドのSEとしてやっていけます。 プログラミングの技術を云々するのは、ゲームや制御系など、タイミングにシビアな世界のみです。 業務系の世界ではお客様の要望をいかに取りこぼし無く拾えるかが課題になると思います。 つまり、最大限必要なのは「国語力」と分析能力です。 分析能力や抽象化には「集合論」や「離散数学」が応用できます。 あまり幅を広げずに、国語力の増強と集合論の会得に心がければ良いSEになれると思います。 自分にある程度の能力が備わったと思ったら、トレンドをチェックする事を忘れずに。 ただし、トレンドには"はりこ"の様に中身の無い物も多いので、うたい文句全てを信じない事。 最初は話半分で、「この案件に使えそう」と思った時に調べ始めても十分間に合います。 (知らなきゃ調べようもないですから、新しいものが出たら概要だけでも調べておきましょう。) コーディングしか出来ない頭でっかちには無いセンスで勝ちに行きましょう。(o^ー')b 無理せず、がんばってください。
その他の回答 (8)
- Bonjin
- ベストアンサー率43% (418/971)
#7です。 >SQLの方が親しみやすくて考え方がUMLと同じなのであればSQLを勉強したいと考えていますがどうでしょうか? SQLとUMLは用途が違います。 SQLはデータベースを利用するときに使用する言語ですが、UMLは設計などで表記を統一するための一種のフォーマットみたいな物です。 SQLはデータベースを利用するときに必ず利用することになるので覚えて損はないと思います。 たいしてUMLは普及し始めているものの、実際に読み書きできる人が多いわけではないので、職場によっては使っていない可能性があります(現に私の職場では利用していません)。なのでUMLは仕事をしながら覚えてもいいとおもいます。
お礼
回答、有難う御座います。 両者で用途が違うのですね。 とりあえずSQLを着手します。
- Bonjin
- ベストアンサー率43% (418/971)
プログラミング能力を気にされているようですが、専門学校を出たからといって能力が高いわけではありません。私は専門学校に行っていたのですが、時代の流れで入ってくる人間も多かったため、卒業した人間の能力もピンからキリまで差が出ました。 あなたが経験者であるならば、プログラミング能力には大して差は出ないと思われます。 #3さんや#4さんの書かれているとおり、プログラミング言語という狭い視野から離れ、ネットワークやDB、ハードウェア、セキュリティなど幅広い知識を取り入れ、大きな視野で物事を考えられることも大切です。 いくらプログラミング言語の知識があっても、それを利用する側の知識がなければ話になりません。例えば、包丁が使えても料理は作れないようなことと同じです。 プログラミングにこだわるのであれば、デザインパターンなどの本を読み、実装レベルの設計技法などの知識をつけることをお勧めします。これらは専門学校の期間では習得できるレベルではないのでいい武器になるとは思います。 デザインパターンの本は結城浩著のこれらの本がお勧めです。 http://www.amazon.co.jp/exec/obidos/ASIN/4797327030/qid=1109768370/br=1-1/ref=br_lf_b_0/249-4253304-2821963 http://www.amazon.co.jp/exec/obidos/ASIN/4797319127/qid=1109768391/br=1-4/ref=br_lf_b_3/249-4253304-2821963 Javaを用いて話を進めていくため、デザインパターンとプログラミングの両方の勉強にもなります。
お礼
アドバイス、有難う御座います。 専門家の方から頂けて嬉しいです。 プログラミングにこだわっている訳では無いのですが、負けたくないという気持ちが強く、プログラム能力を高めようとしていました。デザインパターンに付いては是非勉強したいと思います。本屋で見たら結構分厚かったような…。まだ購入はしていませんが、検討中です。DBなのですが、SQLも有効でしょうか?UMLの本を本屋で見てみたのですが、SQLの方が親しみやすくて考え方がUMLと同じなのであればSQLを勉強したいと考えていますがどうでしょうか?
#2です。 >C#は今と同じアプリケーション(MicrosoftVisualC++6.0)でも使えるのでしょうか? 使えないですね。 まあ、C#は入社してからでも充分間に合いますから。 いろいろな知識を持っているということはとても重要です。 入社前もそうですが、入社してからもがんばってくださいね。
お礼
アドバイス、有難う御座います。 より多くの知識が得られるように少しづつ吸収していきます。 >入社前もそうですが、入社してからもがんばってくださいね ⇒有難う御座います!!
- UMTS
- ベストアンサー率25% (3/12)
#1~#4までの方々がそれぞれに専門の立場でアドバイスされているので、門外漢の通りすがりの一言って事で聞いて下さい。 私は某大手電機メーカーで携帯電話用の製造設備の治具設備導入担当をしています。新製品を作る訳ですので一般に購入出来る汎用機器では対応出来ず、HW・SW共に社内製作する事も当たり前です。 貴方の場合、オープン系の会社へ就職と言う事ですのでDebug用の基板から作ると言うような事は稀だと思いますが、将来的に他の人との差別化を考えるならOSを含むHW寄りの知識も身に付けられると良いのでは無いかと思います。うちの会社のSW設計にもソフトハウスから派遣されている人が多数いますが、HW(コンピュータの原理)を知っているプログラマは重宝されているようです。 さて、#3さんも言っておられるように入社時点でのスキルの差はさして重要では無いと考えるのは私も同感です。 重要な事は、3年後、5年後、10年後に貴方がどうなって居たいのか目標があるかどうかだと思います。 #2さんが仰っておられるようにUMLについて研鑚を深められるのは有効だと思います。何故なら、C・JAVA・BASICやDB(SQLなど)、ネットワークやセキュリティと言った物はあくまでも開発等の手段に過ぎず、極論してしまえば家を建てる大工道具のようなツールだと思いますが、UMLをかじる事により、ツールを有効に活用する為の考え方が身に付くのではないかと思います。これは、アプリケーションの世界に限らず、どんな職種でも通用する汎用性のある考え方が身に付くと言う事でもあります。 頑張って下さい!
お礼
アドバイス、有難う御座います。 とても大切な事を教えて頂き、有難う御座います。 道具をうまく活用出来るように少しでもUMLについてかじっておきます。早速今日本屋に行って自分に合いそうな本を探してきます!!
- yangwenli
- ベストアンサー率27% (20/73)
現役のSEをしています。かれこれ15年くらいになりますので、新卒の教育等も担当したことがあります。 私の経験からいいますと、言語にそれほどこだわることはないと思います。CやJAVAをやっていたのであればプログラミングの基本的な考え方は理解できているかと思いますので、あとは実戦で経験を積んでいけば良いと思います。 実際に使う言語がなんであれ、要するに考え方さえ分かっていれば初めての言語であってもどうにかなる物です。またプログラマーにはそういった能力が必要だと思います。(これは経験で身に付く物です) それよりも、オープン系ということですのでDBやネットワーク、セキュリティなどの基礎的な知識を幅広く身につけていった方が良いと思います。
お礼
アドバイス、有難う御座います。 また、現役の方からアドバイスを頂けて嬉しいです。 言語は考え方が大切なのですね。私はグラフィックスを通じて言語を学んできました。ネットワーク関係の知識を少しづつ学習していきます。
- suikaf
- ベストアンサー率0% (0/2)
こんにちは.現役システムエンジニアです. LEOGAさんもちらりと書いていらっしゃいますが,ちょっとご質問の趣旨とは違うお話を. 他の方は専門学校出身,あなただけ大卒,ということは,貴方には,専門学校出身ではない,プログラム能力以外の,何か別のスキルを期待されてるのではないでしょうか. SEは,確かにプログラム能力も求められます.しかし,それだけなら,専門卒であれ何であれ,プログラム能力が入社時に高い人から順に,企業は採用するはずです. 参考までに. 私の同期は全員大卒でしたが,1人,文学部出身の女性がいました.彼女は,ほとんどワープロ程度しか使ったことのない状態で入社したほど.だから,最初の研修では,一人悪戦苦闘してプログラムを書いていました.もう辞めたいと泣いていたのも知っています. しかし4年経った今,彼女は,営業SEに近い存在として,立派に働いています.プログラム修正だけでなく,お客様との窓口であったり,社内連携をしたり,いろいろと大変な立場にいます.私は部下なしですが,彼女は部下を抱え,指導もやっている状態です. さて,何が違うんでしょうね(^^
お礼
アドバイス、有難う御座います。大変参考になります。 また現役の方からアドバイスが頂けて嬉しいです。 あえて書いていませんでしたが、同期入社で女性は私(大卒)だけです。 >専門学校出身ではない,プログラム能力以外の,何か別のスキルを期待されてるのではないでしょうか. ⇒実は就職活動で「逆求人フェスティバル」というイベントに参加していて、その時企業側からスカウト(是非●●社にと言われて名刺をもらった)され、選考も私だけ面接は役員のみという構成でした。
JAVAを学習されているということで、オブジェクト指向もばっちりでしょうから、 C#あたりがよいのではないでしょうか? とはいうものの、せっかくSE採用なんですから、 プログラムに熱心になるよりも、 他の方との差別化という意味で、設計を勉強される方がいいような気がします。 最近ですとUMLですかね。 あとは、データベースはよく使いますから、SQLなんかもいいんじゃないですか。
お礼
アドバイス、有難う御座います。CとJavaは情報処理の講義で習い、卒業研究ではCを使っていました。具体的にはOpenGLを用いて3DCGで自分の作りたいものを作品にして言語を学んでいていました。初歩的な質問で申し訳ありませんが、C#は今と同じアプリケーション(MicrosoftVisualC++6.0)でも使えるのでしょうか?UMLなどの設計に関する本を本屋で見てみます。初歩的な事だけでも身につけられるように頑張ります!!
- teo98
- ベストアンサー率23% (70/303)
Basicプログラムは、あまり製品価値がないように思います。あまり本格的規模のプログラムを書けません。内定先にもよりますが、C言語よりC++、Java技術を磨いた方が良いでしょう。 プログラマーだと自己紹介されて、Basic知っていますでは、がっくりなのです。
お礼
アドバイス、有難う御座います。 C++に手を出してみます。Javaは昨夜自分にあった本を見つけてきたので、それを基に何か作ってみようと思います。
お礼
だいぶ返事が遅れて申し訳ありません。 専門家の方からアドバイスをいただけて大変嬉しく思います。