- ベストアンサー
現役のプログラマさんやSEさんに質問です。
私は現在プログラマ(後にはSE)を目指してC言語、C++、VCの勉強をしています。 そこで質問なのですがプログラマになる為にはどの位のスキルが必要なのですか? また、プログラマになった後もプログラムについて研究や勉強をしているのでしょうか?
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
基礎ができていれば問題ないと思います。 >プログラマになった後もプログラムについて研究や勉強をしているのでしょうか? もちろんです、仕事にしてからの習得量のほうがはるかに上ですよ。 その会社のライブラリとかもあるだろうし。
その他の回答 (6)
- jacta
- ベストアンサー率26% (845/3158)
#4です。 どうもうまく伝わっていないようなので、念のため補足します。 > そうですね、パッケージや組込系やWeb系等があると聞きました。 それらは全て「ソフトウェア業」の範疇です。私が前回書いた選択肢はもっと広く、例えば「工場で生産管理の仕事をやっています」という人が、外注管理や工程管理のプログラミングを自分でやってしまうケースも少なくないということなのです。他には、「不動産の仲介業をやっています」という人が、顧客管理用のデータベースや、ローンの返済計画などを自分でプログラミングしてしまうこともあるということです。 それらは全て業務として行っているプログラミングであり、いわゆるアマチュアではありません。そして、パッケージや組込系やWeb系等といった括りではなく、自分の本来業務の効率化のためのプログラミングなのです。 > C言語も歴史をさかのぼればFORTRAN,ALGOL、B言語、C言語ときてC++、VC++、C#なんてどんどん変わっているから勉強をやってもやっても終わりが来る事は無さそうですね そういった言語そのものの変遷もあります。しかし、例えばC++に限っても、日進月歩なのです。 具体的には、標準化以前の1990年代はどんどん新しい機能が追加されていきました。1998年の標準化で一応仕様は凍結されましたが、標準規格に完全準拠した処理系はほとんどなく、いろいろな処理系がばらばらのペースで規格に追随しています。そんな状況で、移植性を保ちながらC++のプログラムを書こうとすると、多くの処理系について深い知識と経験が必要になるわけです。そして、年月とともに規格自体も改定されますから、さらに複雑な状況になっていきます。 まして、多言語、多分野となれば、もっとすごいことになるでしょう。 質問者さんがどんなプログラマになるのか現時点ではわかりませんので、こうあるべきとは今の時点ではいえません。 いろいろな言語を広く浅く習得するのも一つの選択肢なら、限られた言語を他の追随を許さないぐらい窮めるのも、また一つの選択肢です。 特に将来独立するような場合、広く浅く習得している場合には、仕事は得やすいですが単価はどうしても安くなります。逆に、限られた言語を窮めた場合には、仕事を得るのは難しいですが、単価はかなり高くなります。ですから、サラリーマンとは当然戦略が違ってきます。
- PG_RankB
- ベストアンサー率40% (12/30)
メインPG兼、ソフトウェアエンジニアをやっております。 ほぼ回答が既出ですが、初めに一言申し上げておくと、プログラマになった後に勉強無しでやっていける可能性は0と思った方が良いです。 広義の視点でのお答えは揃っている様なので、少し具体的にお話しします。 プログラマ。と言っても、能力はピンキリ、本当に千差万別ですよ。 オープンソースの世界で活躍する素晴らしい方達もいれば、プロの世界で5年経っても、肩書きはプログラマでも、やっているのはほとんどテストやサーバのメンテ。と言う方もいますし、入社2年程度でアプリ開発してる人もいます。 これらに関しては、本人の能力の問題もありますし、就職先に恵まれたかどうかの問題もありますね。 そう考えるなら、VB等で何となく動く物を作れるようになり、手当たり次第に就職活動すれば、プログラマにはなれますよ。 そのレベルのプログラマである事に納得するかどうかは、当人次第です。 あなたの望む"プログラマ"が、先端技術に触れ、規模のある仕事でのメインプログラマとして、様々な案件の開発をバンバン任される。と言うレベルなのであれば、話は変わってきます。 別に毎日血眼になって勉強する必要は無いですが、案件は会社の都合で回ってくるので、自分の好きな仕事を選ぶ事は基本的に出来ません。 Cなら出来ると言って入社したら、最初の仕事はCか、それに近い環境でやらせて貰えるかも知れません。 素養を見る。教育をする。と言った意味合いで。 ですが、3ヶ月後には見たことも無いPHPでのモジュール開発を頼まれたりする事もザラです。 僕はネットワークとかDBとか、WEBとかは苦手なので。と言うのは通用しません。 かと言って、学生の内に世にある全ての言語を覚える訳にもいかないですよね。と言うかムリでしょう。 僕から言える、プロ世界で必要なスキルの一つとして、一つの言語(に限らず、何か)を100%完璧にマスターしようと思ってはいけない。と言う事があげられます。 (突き詰めるのは、趣味でやった方が良いです) No.4の方が仰られている様に、単体言語を9割方マスターするまでは、そんなに時間はかかりません。 頑張れば1年。タラタラやっても3年あれば十分でしょう。 その9割から、100%にするまでには途方も無い時間がかかります。よく3年やって完璧に極めた。と言っている人がいますが、その人の技法や素養を見ると、やはり3年程度だな。程度の物しかありません。 構造体やらポインタ、マクロやらアロケートやら、そんな知識を徹底して詰め込むだけなら、1年あれば、割と誰でも出来ると思います。 ですが、細かい機能に拘る人程(昔の自分)、フレームワーク、構造化技法、デザインパターン等には目もくれない傾向があります。 特に、いかに見やすく整然と構造化(発展してオブジェクト指向)してコードを構築出来るかは、知識ではどうにもならず、経験が一番の糧になります。 逆に、そういった外面から形を整える事に拘り過ぎた人間は、繊細なアルゴリズムを作ったり等、細かい処理に弱い事が多いです。 ボトムアップも、トップダウンも、長所短所があり、その両方の性質を見極め状況に応じて使い分ける能力が必要であるのに、何か一つの方向性を妄信してしまうケースはどの世界にもよくある事です。 現状の僕の話をするならば、まず、触れた事の無い言語があるとして、その言語を8割程度習得するのにかける時間が1日あれば十分。と言う状態にはならないと、苦労すると思いますよ。 その日の朝出社したら、PHPで明日の午後までにやっておいて。等、よくある事です。 PHP知りません。と言っても、じゃあググって調べれば?と言う感じなので。 マスターするなんて1日ではムリですが、業務レベルでソツなく使える様になる程度なら、プログラムと言う物をそれなりに理解していれば可能な範疇ですし、そもそも、"プログラマ"であるなら出来て当然です。 今は考えられないかも知れませんが、その内普通に出来る様になるので、心配はいらないですよw 尚、僕自身はCが一番長いですが、Cを深くやってたおかげで、他を習得するのは楽でした。 Cを中途半端にしか知らない方は、オブジェクト指向はCには無い。等と仰いますが、ソレはCを、ひいてはプログラムを体系的に理解出来ていない証拠です。 また、二つ以上の言語を、いわゆる9割方マスターしている場合、次の言語を8~9割レベルで習得するまでが格段に楽に、かつ早くなります。 半日もあれば十分になってきますので。 それと、プログラムするなら、言語だけ知っていてもダメですよ; 例えば、あなたが現代文の文法が得意で、ペンで字を書く事に関しては超一流。しかし車の事は全く知らない。その状態で、車についての論文を書けますか? 現代文法は=プログラム言語の機構 ペンで字を書く=キーをタイプするスピード 車の知識=ソフトが持つ目的の機能 になります。常に、自分とは全く専門外で、"なんのこっちゃ?"と言う様な内容を迫られ、それに関しても即座に何らかの対応を出来る能力が必要になります。 私は車に疎いし、フェラーリなんて全く詳しく無いですが、フェラーリの良い紹介文を英語で作り、何かフェラーリの写真を使って、ダミー的に凝ったHTMLページ作って欲しい。と言われ、困った事があります。 英文と写真があるなら、ソレをHTMLに乗せるのは我々からすれば安易な事ですが、そこで終わらせてくれないのが実社会です。 顧客は、プログラマが何なのかを詳しくは知らないので、どうしても言ってくる事が理不尽、我侭になる物です。 そこでどう対処するかは、その人自身にかかっています。こういった、およそ技術とは関係無い、人間力的な能力も必要になるので、プログラマは~が出来れば良い。と言う安直な意見は申し上げられません。 長くなりましたが、参考までに。
- charmer29-2
- ベストアンサー率25% (41/159)
--No.2の回答から ある程度まで覚えると全く新しい機械が導入されるまで特に勉強をしなくても良い仕事だったので飽きてしまう状態でした。 -- まさに、仕事に使われちゃっている状態ですね。 本当に他にすることはないのでしょうか? #例えば工数ノルマのある工員だとそれを考える余裕もないのかもしれませんが。
補足
正確には勉強していたのかもしれませんがそれを勉強していると思えない程度の物だったと言う事です。
- jacta
- ベストアンサー率26% (845/3158)
> そこで質問なのですがプログラマになる為にはどの位のスキルが必要なのですか? ごく簡単でもよいので、プログラムを書けることができれば、それでプログラマにはなれます。 ただし、それはあくまで最低限のレベルで、「いわゆる素人に毛が生えた程度」ということです。 プログラマといっても、いわゆるソフトウェア業に従事する人ばかりではありません。製造業で工作機械や工程検査機等のプログラミングをする人もいれば、事務職や医療関係者などで業務効率化のためのプログラミングをする人もいます。もちろんアマチュアの方もいます。 「後にSE」と書かれているので、おそらくはソフトウェア業に従事することを想定されているかと思いますが、プログラマになるには他にもいろいろ選択肢があるということです。 > また、プログラマになった後もプログラムについて研究や勉強をしているのでしょうか? 例えば、C/C++に限った場合でも、95%ぐらいまではマスターできても、残りの数%を埋めるのはなかなかできません。その上、いろいろと新しい技術も出てくるので、その都度研究や勉強が必要になります。 「プログラムについて」ということでしたが、もちろんプログラム以外のところでも、いろいろと研究・勉強は必要ですよ。
お礼
>プログラマになるには他にもいろいろ選択肢があるということです。 そうですね、パッケージや組込系やWeb系等があると聞きました。 C言語も歴史をさかのぼればFORTRAN,ALGOL、B言語、C言語ときてC++、VC++、C#なんてどんどん変わっているから勉強をやってもやっても終わりが来る事は無さそうですね
- charmer29-2
- ベストアンサー率25% (41/159)
SEを目指すのであれば、一般常識を含めた広範な知識を持つことをお勧めします。 そんなものを微塵も持たないSEもたくさんいますが、それでは他人に使われるだけで終わりかねません。 勿論技術を身に付けるのも大切ですが、一人でできることは高が知れています。 その点では、できるだけ多くのプロの書いた良質なコードに触れると善いでしょう。 処で、就職してから勉強しなくていい職業なんてありませんよ。 就職までの高々数年で、その後の数十年分の勉強ができると思ったら大間違いです。
お礼
プログラマの仕事は1人でやるのではなく何人かのチームで仕事をすると聞きました。 そうなるとプログラムの知識だけでなくコミュニケーション能力も必要になると思いました。
- galluda
- ベストアンサー率35% (440/1242)
がると申します。 極論からいえば「未経験者歓迎」とかいう雇用形態もありますので。単純にお仕事をなさるだけなのであれば、金額待遇その他を無視すれば、かなり低いスキルでも「プログラマになる」事は可能かと。 ただ、#1さんもおっしゃってますが。その後のスキルアップのほうがはるかに分量は多いですし、重要かと思われます。 そのあたりを踏まえたうえで。C言語をしっかりやって、その上でC++ないしJavaあたりを多少なりと触っておくと、後々有利になることは多いかと。 Web系であればPerl、PHPという方向性もありです。 技術職は多分「死ぬまで勉強」なので。これが面白いと思うか大変だと思うか、ってのが分かれ道のような気がしています。
お礼
ご回答有難う御座います。 やっぱりC言語を勉強してからC++やJavaの勉強をした方が良さそうですね、 私の場合ある程度C言語を覚えた状態でC++の勉強を始めたので解らない所が出てくるとC言語の参考書を見て復習してからC++の勉強に戻る事があるのでもう1度C言語のプログラムをもっと理解してからC++の勉強を始めようと思います。 >技術職は多分「死ぬまで勉強」なので。これが面白いと思うか大変だと思うか、ってのが分かれ道のような気がしています。 「死ぬまで勉強」と聞くとかなり大変に思えてきますが私がやっていた仕事はある程度まで覚えると全く新しい機械が導入されるまで特に勉強をしなくても良い仕事だったので飽きてしまう状態でした。 でもプログラマさんは常に勉強しているようなので仕事に飽きることは無い様に思えました。
お礼
素早いご回答有難う御座います。 基本が出来ていれば問題無いと聞いて少し安心しました。 仕事にしてからの習得量の方がはるかに上というのはかなり大変な仕事なのかも知れませんが常に色々な事を勉強して習得してととてもやりがいが有りそうですね