• ベストアンサー

プログラム能力

私は今春就職する学生で情報系の研究室に所属しています。私の内定先で、同期入社(SE採用のみ)で大卒は自分だけで他は全員専門学校出身です。皆はC・Java・Basicを学習してきていますが、私はC・Javaでしたので最近になってBasicを勉強し始めました。専門学校の人たちよりプログラムをいじる時間が少ないので、入社当時のプログラム能力に差が出るのではないかと思っています。会社はソフト開発でオープン系です。入社まで時間が余りありませんが、ようやく卒業研究が終わったので本格的な勉強をしたいと思います。入社前にプログラム経験を専門学校の人に負けない位に出来ればと思っていますが、学習する上(3つとも)で気をつけた方が良い事・やっておいた方が良い事などありましたらアドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • monmon3
  • ベストアンサー率83% (10/12)
回答No.9

先に一言。極端な書き方をします。 私は現役でフリーランスのSI(SE/PGからケーブル敷設まで)をやっています。 そんな私から、あなたの勘違いを指摘させていただきます。 SE/PGに求められる能力は決してコーディング能力ではありません。 問題(課題)の把握とその分析、そして最適なソリューションの選択です。 最低限必要な能力としては、問題と解決手法を誤解無く読める母国語の文章で簡潔にまとめられる事です。 極端な話、プログラム言語なんて、リファレンスを見ながら書ければ十分です。 1つの言語にとらわれすぎて、40歳50歳になって潰しが効かなくて困っているSEもいっぱいいます。 簡潔な箇条書きで書かれた母国語の文章をそのままプログラミング言語に当てはめれば、ある程度のプログラムは作れます。 「抽象化」が出来ればさらに良いでしょう。 次に必要な能力は、データを整理する能力です。 データを系統立てて整理し把握できる状態にする事。これが必要なのです。 つまり、箇条書き能力とデータ整理能力があればPGとして最低限の仕事は出来るという事です。 そこに「プロジェクト管理」や「抽象化」「オブジェクト指向」、データの「正規化」が出来れば技術サイドのSEとして十分やっていけます。 さらにその上に、お客様の日常使っている言葉で語られた要望を、簡潔にもれなくまとめる能力が加われば、営業サイドのSEとしてやっていけます。 プログラミングの技術を云々するのは、ゲームや制御系など、タイミングにシビアな世界のみです。 業務系の世界ではお客様の要望をいかに取りこぼし無く拾えるかが課題になると思います。 つまり、最大限必要なのは「国語力」と分析能力です。 分析能力や抽象化には「集合論」や「離散数学」が応用できます。 あまり幅を広げずに、国語力の増強と集合論の会得に心がければ良いSEになれると思います。 自分にある程度の能力が備わったと思ったら、トレンドをチェックする事を忘れずに。 ただし、トレンドには"はりこ"の様に中身の無い物も多いので、うたい文句全てを信じない事。 最初は話半分で、「この案件に使えそう」と思った時に調べ始めても十分間に合います。 (知らなきゃ調べようもないですから、新しいものが出たら概要だけでも調べておきましょう。) コーディングしか出来ない頭でっかちには無いセンスで勝ちに行きましょう。(o^ー')b 無理せず、がんばってください。

yukki-asimo
質問者

お礼

だいぶ返事が遅れて申し訳ありません。 専門家の方からアドバイスをいただけて大変嬉しく思います。

その他の回答 (8)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.8

#7です。 >SQLの方が親しみやすくて考え方がUMLと同じなのであればSQLを勉強したいと考えていますがどうでしょうか? SQLとUMLは用途が違います。 SQLはデータベースを利用するときに使用する言語ですが、UMLは設計などで表記を統一するための一種のフォーマットみたいな物です。 SQLはデータベースを利用するときに必ず利用することになるので覚えて損はないと思います。 たいしてUMLは普及し始めているものの、実際に読み書きできる人が多いわけではないので、職場によっては使っていない可能性があります(現に私の職場では利用していません)。なのでUMLは仕事をしながら覚えてもいいとおもいます。

yukki-asimo
質問者

お礼

回答、有難う御座います。 両者で用途が違うのですね。 とりあえずSQLを着手します。

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.7

プログラミング能力を気にされているようですが、専門学校を出たからといって能力が高いわけではありません。私は専門学校に行っていたのですが、時代の流れで入ってくる人間も多かったため、卒業した人間の能力もピンからキリまで差が出ました。 あなたが経験者であるならば、プログラミング能力には大して差は出ないと思われます。 #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を用いて話を進めていくため、デザインパターンとプログラミングの両方の勉強にもなります。

yukki-asimo
質問者

お礼

アドバイス、有難う御座います。 専門家の方から頂けて嬉しいです。 プログラミングにこだわっている訳では無いのですが、負けたくないという気持ちが強く、プログラム能力を高めようとしていました。デザインパターンに付いては是非勉強したいと思います。本屋で見たら結構分厚かったような…。まだ購入はしていませんが、検討中です。DBなのですが、SQLも有効でしょうか?UMLの本を本屋で見てみたのですが、SQLの方が親しみやすくて考え方がUMLと同じなのであればSQLを勉強したいと考えていますがどうでしょうか?

noname#105965
noname#105965
回答No.6

#2です。 >C#は今と同じアプリケーション(MicrosoftVisualC++6.0)でも使えるのでしょうか? 使えないですね。 まあ、C#は入社してからでも充分間に合いますから。 いろいろな知識を持っているということはとても重要です。 入社前もそうですが、入社してからもがんばってくださいね。

yukki-asimo
質問者

お礼

アドバイス、有難う御座います。 より多くの知識が得られるように少しづつ吸収していきます。 >入社前もそうですが、入社してからもがんばってくださいね ⇒有難う御座います!!

  • UMTS
  • ベストアンサー率25% (3/12)
回答No.5

#1~#4までの方々がそれぞれに専門の立場でアドバイスされているので、門外漢の通りすがりの一言って事で聞いて下さい。 私は某大手電機メーカーで携帯電話用の製造設備の治具設備導入担当をしています。新製品を作る訳ですので一般に購入出来る汎用機器では対応出来ず、HW・SW共に社内製作する事も当たり前です。 貴方の場合、オープン系の会社へ就職と言う事ですのでDebug用の基板から作ると言うような事は稀だと思いますが、将来的に他の人との差別化を考えるならOSを含むHW寄りの知識も身に付けられると良いのでは無いかと思います。うちの会社のSW設計にもソフトハウスから派遣されている人が多数いますが、HW(コンピュータの原理)を知っているプログラマは重宝されているようです。 さて、#3さんも言っておられるように入社時点でのスキルの差はさして重要では無いと考えるのは私も同感です。 重要な事は、3年後、5年後、10年後に貴方がどうなって居たいのか目標があるかどうかだと思います。 #2さんが仰っておられるようにUMLについて研鑚を深められるのは有効だと思います。何故なら、C・JAVA・BASICやDB(SQLなど)、ネットワークやセキュリティと言った物はあくまでも開発等の手段に過ぎず、極論してしまえば家を建てる大工道具のようなツールだと思いますが、UMLをかじる事により、ツールを有効に活用する為の考え方が身に付くのではないかと思います。これは、アプリケーションの世界に限らず、どんな職種でも通用する汎用性のある考え方が身に付くと言う事でもあります。 頑張って下さい!

yukki-asimo
質問者

お礼

アドバイス、有難う御座います。 とても大切な事を教えて頂き、有難う御座います。 道具をうまく活用出来るように少しでもUMLについてかじっておきます。早速今日本屋に行って自分に合いそうな本を探してきます!!

  • yangwenli
  • ベストアンサー率27% (20/73)
回答No.4

現役のSEをしています。かれこれ15年くらいになりますので、新卒の教育等も担当したことがあります。 私の経験からいいますと、言語にそれほどこだわることはないと思います。CやJAVAをやっていたのであればプログラミングの基本的な考え方は理解できているかと思いますので、あとは実戦で経験を積んでいけば良いと思います。 実際に使う言語がなんであれ、要するに考え方さえ分かっていれば初めての言語であってもどうにかなる物です。またプログラマーにはそういった能力が必要だと思います。(これは経験で身に付く物です) それよりも、オープン系ということですのでDBやネットワーク、セキュリティなどの基礎的な知識を幅広く身につけていった方が良いと思います。

yukki-asimo
質問者

お礼

アドバイス、有難う御座います。 また、現役の方からアドバイスを頂けて嬉しいです。 言語は考え方が大切なのですね。私はグラフィックスを通じて言語を学んできました。ネットワーク関係の知識を少しづつ学習していきます。

  • suikaf
  • ベストアンサー率0% (0/2)
回答No.3

こんにちは.現役システムエンジニアです. LEOGAさんもちらりと書いていらっしゃいますが,ちょっとご質問の趣旨とは違うお話を. 他の方は専門学校出身,あなただけ大卒,ということは,貴方には,専門学校出身ではない,プログラム能力以外の,何か別のスキルを期待されてるのではないでしょうか. SEは,確かにプログラム能力も求められます.しかし,それだけなら,専門卒であれ何であれ,プログラム能力が入社時に高い人から順に,企業は採用するはずです. 参考までに. 私の同期は全員大卒でしたが,1人,文学部出身の女性がいました.彼女は,ほとんどワープロ程度しか使ったことのない状態で入社したほど.だから,最初の研修では,一人悪戦苦闘してプログラムを書いていました.もう辞めたいと泣いていたのも知っています. しかし4年経った今,彼女は,営業SEに近い存在として,立派に働いています.プログラム修正だけでなく,お客様との窓口であったり,社内連携をしたり,いろいろと大変な立場にいます.私は部下なしですが,彼女は部下を抱え,指導もやっている状態です. さて,何が違うんでしょうね(^^

yukki-asimo
質問者

お礼

アドバイス、有難う御座います。大変参考になります。 また現役の方からアドバイスが頂けて嬉しいです。 あえて書いていませんでしたが、同期入社で女性は私(大卒)だけです。 >専門学校出身ではない,プログラム能力以外の,何か別のスキルを期待されてるのではないでしょうか. ⇒実は就職活動で「逆求人フェスティバル」というイベントに参加していて、その時企業側からスカウト(是非●●社にと言われて名刺をもらった)され、選考も私だけ面接は役員のみという構成でした。

noname#105965
noname#105965
回答No.2

JAVAを学習されているということで、オブジェクト指向もばっちりでしょうから、 C#あたりがよいのではないでしょうか? とはいうものの、せっかくSE採用なんですから、 プログラムに熱心になるよりも、 他の方との差別化という意味で、設計を勉強される方がいいような気がします。 最近ですとUMLですかね。 あとは、データベースはよく使いますから、SQLなんかもいいんじゃないですか。

yukki-asimo
質問者

お礼

アドバイス、有難う御座います。CとJavaは情報処理の講義で習い、卒業研究ではCを使っていました。具体的にはOpenGLを用いて3DCGで自分の作りたいものを作品にして言語を学んでいていました。初歩的な質問で申し訳ありませんが、C#は今と同じアプリケーション(MicrosoftVisualC++6.0)でも使えるのでしょうか?UMLなどの設計に関する本を本屋で見てみます。初歩的な事だけでも身につけられるように頑張ります!!

  • teo98
  • ベストアンサー率23% (70/303)
回答No.1

Basicプログラムは、あまり製品価値がないように思います。あまり本格的規模のプログラムを書けません。内定先にもよりますが、C言語よりC++、Java技術を磨いた方が良いでしょう。 プログラマーだと自己紹介されて、Basic知っていますでは、がっくりなのです。

yukki-asimo
質問者

お礼

アドバイス、有難う御座います。 C++に手を出してみます。Javaは昨夜自分にあった本を見つけてきたので、それを基に何か作ってみようと思います。

関連するQ&A

  • 組み込み系+制御系プログラムの勉強するなら?

    組み込み系か制御系のプログラムの勉強したいのですが、 前からC言語とjavaはやってるのですが、 言語以外に勉強すべき事や、 c/javaよりも、やるべき言語が、あれば教えてください。 学習に、いい本が有ったら本の名前等も教えてください。 よろしくお願いします。

  • javaプログラムで他言語のプログラムを動作できるのでしょうか?

    java言語を勉強しているものです。 答えが見つからないので質問させていただきます。 現在以下の2つのプログラムを作成し動作確認をしました。 1:カメラの画像を保存する   プログラムの言語はBasicとC++が推奨されていたので、今回はBasicでプログラムを作成しました。 2:保存した画像をAppletでスライドショーにして見せる   プログラム言語はjavaです。 理想的な動作はリアルタイムな画像を次々に見せることです。 そこで、2で作成したプログラムの中に1を動作させる機能を持たせたいのですが、実現可能でしょうか? 知っている方がいましたら、御指導をお願いいたします。

    • ベストアンサー
    • Java
  • 今流行りのプログラム言語は?

     今まで少し学習したのはBASIC, Fortran, AWKです。どれもほんの少しです。とりたててプログラム言語を学習しなければならないというわけではありません。  Windows 7でBASICは使えるのでしょうか。何を用意しなければならないのでしょうか。  Perlもほんの少しだけ学習はしました。  今流行りの言語はCでしょうか。C++でしょうか。Rubyでしょうか。漠然とした質問でスミマセン。

  • アイデアをください。

    専門学校の卒業研究でプログラムを組むんですが、いいアイデアが 浮かびません。何かいいプログラムのアイデアはありませんか?? 言語としては、C言語、Visual Basic、java、は使えます。 これらの言語を使って作れるプログラムのアイデアを探してます。 何かあったら、教えてください。

  • プログラムを組みたいのですが…

    とある工業生です。 課題研究で仲間4人でプログラムを組もうとおもっているのですが、学生のレベルで出来るやり甲斐のあるものってないですか?ちなみに、時間はたっぷりあるので学校で習ってない言語であっても、勉強する時間はあります。

  • 現在一般的に使われているプログラム言語は?

    これからIT業界に転職したいと思っているのですが、未経験のため質問があります。 現在、世界的に、または日本国内で一般的に使われているプログラム言語は何なのでしょうか? 当方の調べたところ、Java、C、C++、Visual Basicが主要な言語だと分かったのですが、これは正しいでしょうか? また仮に正しいのであれば、それぞれの一般的な使用頻度や順位づけを教えていただけないでしょうか?

  • PCのプログラム?などについて

    PCのプログラム?などについて 自分はPCが好きでよくPCを使って遊んでいるのですが、最近もっとPCについていろいろ知りたくなました。 そこでお聞きしたいのですが、プログラムを作ったり、いじったりするような技術はどうすれば習得できるものなのでしょうか? すこし調べたところC言語というものがあるらしいのですが、それについて勉強すれば簡単なプログラムや、ちょっといじったりすることは出来るのでしょうか? また、そういう技術はやっぱり独学ではなく専門の学校に行ったりしなければ到底無理なことなのでしょうか? 宜しくお願いします。

  • プログラムを始めるなら

    C言語をある程度知っている人なら、プログラミングは大丈夫だと言われる理由って何でしょう? 別にC言語を元に全てのプログラムができたわけでもないし、 オブジェクト指向のプログラムとは毛色が違うし。 私自身C言語,javaなどのソースが読める程度しかできませんが、 プログラミングが出来るとはお世辞にも言えません。 何故このような事が言われているのでしょう? また、最初に学ぶべき言語としてはやはりC等の言語がいいのでしょうか? それともアセンブリ言語のような物の方がいいのでしょうか?

  • javaプログラムがコンパイルできない

    javaの勉強を始めようと思い、環境を作ってみました。 しかし、記念すべき第一作目のプログラムがコンパイルできなく、困っています;; 初心者で、説明もうまくないと思うので、補足要求をしていただければ幸いです。 【状況】 ・JDK6をダウンロード・インストールしました。 ・保存先は「C:\Program Files\Java\jdk1.6.0_14」です。 (この保存先は正しいのでしょうか。普通の人はどこに保存するのでしょうか。) ・コントロールパネル>システム>詳細設定>環境変数で、ユーザ環境変数で、 変数:PATH、値:C:\Program Files\Java\jdk1.6.0_14\bin を新規作成してみました。 ・サンプルプログラムを「C:\Program Files\Java」に保存しました。 (この保存先は正しいのでしょうか。普通の人はどこに保存するのでしょうか。) ・コマンドプロンプトでディレクトリを「C:\Program Files\Java」にして、「javac "(サンプルコードのファイル名)"」と実行しました。 ・「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません」 と言われてしましました。 お忙しいところ恐縮ですが、助けていただけると嬉しいです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 開発言語の学習に関して

    私は現在、pythonを学習しています。私は来年、専門学校へ入学する予定なのですが、希望する専門学校で習得できる言語は、java,C,C++,PHP,perlがあります。 私はlinuxカーネルで動作するオープンソースのプログラム(特に、高機能なCUIのセキュリティー関連のプログラム)や組み込みLinuxの開発に興味があるのですが、そういったプログラムを作るにおいて、今の学習も兼ねてどのような開発言語を学べば有効でしょう? (一応、python以外にも、Cの中級(明解C言語の実践編ぐらい)とC++の基礎(オライリー出版のC++入門)ぐらいの理解はあります。)

専門家に質問してみよう