• ベストアンサー

センスってありますか?

こんばんはtomojyuuです。 現在悩み中なので、また質問させてもらいますが、 質問タイトルのままですが、センスってあるのでしょうか? 私、学校も文系ですし、半年かかって1冊の基礎の本 を理解できた所で、昔3年間ほどプログラマーしていた のですがC++は難しすぎます。Cも知らないので、オブジェクト志向の考え方以外Cを勉強しているようなものです。 プログラマーの時は、感じなかったのですが、言語の 勉強は、非常に特殊な事のように思えてきたのです。 (私が煮詰まっているからなのですが) 文法とメモリの動きがわかればなんとかなると思った のですが、どうにもなりません。 やはり素質がないと職業プログラマとして やっていけないのでしょうか? ちなみに私が転職した理由は、拘束時間の長さと月給の 安さでプログラマーとして挫折したわけではありません

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

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.8

補足質問に対して及ばずながら回答させて頂きます。 >時間かかってもcから始めたほうがいいのでしょうか?。 Cの基本的な事で覚える事ってかなり少ないです。 基本的には、文法、ポインタ、関数定義、標準関数、プリプロセッサぐらい。 ですので遠回りとは思いませんし、それらはC++でもベースにもなる共通の知識です。 (C++の場合、C標準関数についていえばなくても出来ますが知らないのは変かも・・・) できればC++を学習する前にqsortと同じ関数を自分で作れるになっていれば心強いです。 ちなみにC++でできるけどCでは出来ないってものはありません。 (最終的にはマシン語になるだけなので) C++になると範囲が広がります。 C++はCに加えてクラス、テンプレート、STL、etc・・・ そういう意味で私は範囲をしぼったプレーンCを勧めるのです。 STLだけでも分厚い本があったりします。 >メモリの動きがわかればなんとかなると思った >のですが、どうにもなりません。 これは重要です。C++のクラスがどういう形でメモリ内に収まっているか をイメージできる事はバグの軽減に繋がります。 しかしCの構造体がどういうメモリ配置なのかを知らない人がC++の クラスの配置をイメージできないでしょう。 >CからC++に移行するのは難しいという意見があったのですが 構造化プログラミングに慣れたらオブジェクト指向が出来なくなると その人は考えたのでしょうか。 オブジェクト指向はマクロ的な考え方で、 局所的(C++であれエントリポイントは一つ)にみれば構造化プログラミングです。 (最終的にマシン語に置き換わる以上そうなります。) またもしも新しくオブジェクト指向の考え方に変わる新しい手法のプログラミングスタイルが 考案されたとき、それに対応できないのは問題です。 プログラマのセンスというのは柔軟で合理的な思考ができる事だと思います。 あと楽しむ事。

tomojyuu
質問者

お礼

補足質問回答ありがとうございます。 >Cの基本的な事で覚える事ってかなり少ないです。 基本的には、文法、ポインタ、関数定義、標準関数、プリプロセッサぐらい。 ほんと、クラスの定義以外これを勉強していました。 >できればC++を学習する前にqsortと同じ関数を自分で作れるになっていれば心強いです qsort...なんでしょうか?勉強します。 >C++になると範囲が広がります。 私には範囲が広すぎて、なにかプログラムを作ろうと 思ってもそれがC++で作るのに比較的簡単なのか難しい のかさえわかりません。 >Cの構造体がどういうメモリ配置なのかを知らない人がC++のクラスの配置をイメージできないでしょう。 わかりません。勉強します。 >プログラマのセンスというのは柔軟で合理的な思考ができる事だと思います。 あと楽しむ事。 ある程度はC++をわかっていないと出来ない、逆に わかればセンスは後から身につくということでしょうか。 最後の楽しむ事は大事ですよね。忘れていたような気がします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (8)

  • togino
  • ベストアンサー率75% (97/129)
回答No.9

僭越ながら少し意見を述べさせていただきます。 僕は大学の学部生時代、ACM というコンピュータの 国際学会が主催する大学対抗プログラミングコンテストにて 日本代表として勝ち抜き、世界のプログラマーと 勝負したことがあります。 そこで感じたのは、優秀なプログラマーというのは 「自分のやりたいことを如何に分析し、どうすれば解決できるのか」を 論理的にすばやく組み立てることができるという事です。 あとは自分がどれだけコンピュータになりきれるのか、 コンピュータの気持ちになれるのか、ってことですね(^^;) プログラムっていうのは、コンピュータに指示している 訳ではありません。自分がすることをメモしているにしか 過ぎないのです。 あれしてこれ保存して、それとりだして・・・ さて、ここまでの話に「コンピュータ言語」という単語は 出てきていません。優秀なプログラマーっていうのは 解決するのに一番適切な言語を選択できる人なんですね。 それぞれの言語には特徴があり、得意不得意っていうのが あります。どんな言語でもがんばれば何でも出来るもの ですが、やっぱり既存のライブラリーであるものを利用 した方が、早く確実に作ることができるものです。 そして、その言語の特徴をつかむためには、その言語が もっている命令(関数・機能)を手当たり次第実行させて みることです。僕が最初に BASIC を勉強した時、辞書 のようなリファレンスを買って、ABS(絶対値を計算) 命令から順番に実行させていったものです(笑) 最近では、どんな言語でも Web にサンプルプログラムが ころがっています。手当たり次第実行させてみて、その 中でなにやっているのか調べると、とても実力がつきます。 概念なんかは後からついてきます。まずは実践あるのみ。 1,1,2 という数字の列を見て法則がわかりますか? 分からないですよね。では 1,1,2,3 では?、まだ分からなければ 1,1,2,3,5 分からなければ 1,1,2,3,5,8 それでもダメなら 1,1,2,3,5,8,13 分かるまで、増やすしかないのです。いつの日か 「ある数字は、前2つの数字を足したもの」って事に 気がつくはずです。 プログラム言語も同じで、カプセル化や継承やオーバーライドや って概念を理解する為には、あれこれ試さないとダメです。 本を読んでいるだけでは身につきません。 --- 長くなりましたが、tomojyuu さんはまず下記のことを 試してみてください。 ■ C++ のサンプルプログラムをいっぱい実行させてみる ■ C++ 以外の言語もやってみる ■ プログラムは自分がコンピュータになって読む でこれらをやってみて楽しく思えないのであれば、 たぶんプログラムって世界に向いてないんでしょうね。 理系文系なんて関係ないです。ようは楽しめるかどうかでしょう。 長々と失礼しました。なにかお役に立てれば嬉しいです。

tomojyuu
質問者

お礼

回答ありがとうございます。 >長くなりましたが、tomojyuu さんはまず下記のことを 試してみてください。 ■1 C++ のサンプルプログラムをいっぱい実行させてみる ■2 C++ 以外の言語もやってみる ■3 プログラムは自分がコンピュータになって読む でこれらをやってみて楽しく思えないのであれば、 たぶんプログラムって世界に向いてないんでしょうね。 理系文系なんて関係ないです。ようは楽しめるかどうかでしょう。 ■1...忘れてしまった事もあるので復習してみます。 ■2...C++で手一杯なのですが、興味のあるWEB系の言語を勉強してみます。 ■3...コンピュータが好きでないと出来ないですね、 私に出来るでしょうか?がんばります。

全文を見る
すると、全ての回答が全文表示されます。
  • n-before
  • ベストアンサー率50% (3/6)
回答No.7

今プログラマとして足りないものが何か、 ということを理解されているので、素質はあると思います。 今自分が何ができるかを正確に把握していない人には、お仕事をお願いできませんね。 あとは、読みやすいプログラムを書ける人でしょうね。 これは経験がモノをいいます。 色んな人のプログラムを見ますけど、C++とかいってCと全然変わらないものが多いですね。(画面のプログラムは、VisualBasicになってしまいますし。) 煮詰まったときは、自分に何ができるかを考えます。 大抵そういうときって、1つ2つしかできることないんですよね。それを全力でやってみればいいと思います。 ちょっと精神論みたいになってしまいましたね。

tomojyuu
質問者

お礼

回答ありがとうございます。 >煮詰まったときは、自分に何ができるかを考えます。 大抵そういうときって、1つ2つしかできることないんですよね。それを全力でやってみればいいと思います。 先に進もう進もうとあせってはいけないという事ですね。 今できる事をやってみます。

全文を見る
すると、全ての回答が全文表示されます。
noname#30727
noname#30727
回答No.6

職業にするなら向き不向きはあるでしょう。 ですが、C++は間違いなく難しいです。センスがあろうとなかろうと、ある程度使いこなせるようになるには、相応の時間が必要です。 C++に敷居の高さを感じたとしても、素質が無いように思うのは飛躍しすぎで、応用力を問われる以前に、基本パターンが身についていないだけの事です。 それなりのコードが書けるようになるまで、3年くらいかかると思って間違いないです。 それでも、ここを乗り切れれば、その他の言語は1ヶ月もあれば実用レベルまでいけるようになります。

tomojyuu
質問者

お礼

回答ありがとうございます。 >職業にするなら向き不向きはあるでしょう。 ですが、C++は間違いなく難しいです。センスがあろうとなかろうと、ある程度使いこなせるようになるには、相応の時間が必要です。 私のC++の選択は間違っていたのでしょうか。難しいと わかっていたのですが、初心者用の本を勉強している時 楽しいと感じたのですが...

全文を見る
すると、全ての回答が全文表示されます。
  • matyrcry
  • ベストアンサー率47% (101/213)
回答No.5

>文法とメモリの動きがわかればなんとかなる これは真理だと思いますよ。 実際にCPUに与える命令パーツはどの言語でも同じ物を使うんですから。 言語移植をこなしてみれば実感できます。 実感が薄いなら、本当に底までは理解できていないという体の拒否反応じゃないかなぁ。 最近はCPUもOSもでかくなって中身がよく分からなくなってきたからなぁ。 >素質がないと 素質をどのようなものと捉えているのかがキーではないかと思います。 天賦の才は必要ないと思うのですが、日頃の訓練の蓄積は必要だと思います。 交差点を歩いていて、信号機を見ればすぐに点灯制御のロジックが浮かぶとか、 標準関数の仕様を眺めれば、内部の処理手順が浮かんで来るとか。 もっとも最近は標準関数の中の動きまで読み切る必要なんてないのかもしれないけど。 業界によるんで、自分のいる業界が自分の適正とあってないのかもしれませんね。

tomojyuu
質問者

お礼

回答ありがとうございます。 日頃の訓練の蓄積ですか。やはり努力ですかね。 様々な回答から、好きー>努力するー>スキルが身に付く。という事が頭に浮かんできました。

全文を見る
すると、全ての回答が全文表示されます。
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.4

センスが必要かという質問はこと仕事に関していえば無いです。 しかしプログラマーにセンスというものはあります。 一口にプログラマーといってもその実力は10倍以上の開きがありますし linuxやwinnyの開発者のような天才もいるわけです。 いきなりC++を学習するのはどうかと思います。 あくまで私の場合ですが最初は基本的なCを学習し Javaを学習して、その後C++を理解しました。 さらにWindows系の開発VisualC++を学習したのはその後です。 VBの知識しかないころ、ゲームを造りたくて DirectXとVisualC++の本を買ってきたのですが挫折した覚えがあります。 きちんと順序だって学習すれば効率があがるのではないでしょうか? まずは簡単な書籍を購入することを勧めます。 努力が必要なのは言わずもがなですが。 ちなみにC++ができてCができない人を私は知りません。 回答でオブジェクト指向を強調しCではなく C++のみを勧める人がいますが、それは不可能だと思います。 あと#1の方とかぶりますが楽しむ事も大切ですね。

tomojyuu
質問者

お礼

回答ありがとうございます。 >センスが必要かという質問はこと仕事に関していえば無いです。 しかしプログラマーにセンスというものはあります。 一口にプログラマーといってもその実力は10倍以上の開きがありますし linuxやwinnyの開発者のような天才もいるわけです。 よくわかります。凡人と天才って、ことプログラマーに おいてはいるんじゃないかと思います。 プログラマーしていた時感じました。

tomojyuu
質問者

補足

>いきなりC++を学習するのはどうかと思います。 あくまで私の場合ですが最初は基本的なCを学習し Javaを学習して、その後C++を理解しました。 さらにWindows系の開発VisualC++を学習したのはその後です C++の初級本はオブジェクトの考え方、文法以外 Cだと思うのですが、やはりC++を最初に学習する のは無理なんでしょうか?また胸をはってCができる と他人にいえるレベルまでどれ位かかるものなんでしょか? 私、社会人で仕事をもっているので、あまり時間が ないので、いきなりc++を始めたのですが、時間 かかってもcから始めたほうがいいのでしょうか?。 >ちなみにC++ができてCができない人を私は知りません。 回答でオブジェクト指向を強調しCではなく C++のみを勧める人がいますが、それは不可能だと思います どの言語にしようと思い悩んでいたのですが、CからC++ に移行するのは難しいという意見があったのですが、 なるほど、C++は知っていてCを知らない人はいない 真理ですね、 回答してくだされば幸いです。

全文を見る
すると、全ての回答が全文表示されます。
  • tak2003
  • ベストアンサー率32% (174/540)
回答No.3

じつは私も煮詰まってます。 COBOLを教育受けているのですが、給与をもらいながらお勉強をさせてもらっているので、進み方がとても速いのです。 情報系の大学卒がたくさんいる職場で、皆さん基礎知識が豊富なので平気な顔でやられていますが、私は転職して1年生なのでかなり辛いです。 やっぱり基礎知識が必要なのでしょうね。 後は努力かなぁ。

tomojyuu
質問者

お礼

回答ありがとうございます。 >COBOLを教育受けているのですが、給与をもらいながらお勉強をさせてもらっているので、進み方がとても速いのです。 給与もらいながらお勉強できるなんて羨ましいですよ。 >やっぱり基礎知識が必要なのでしょうね。 後は努力かなぁ。 努力しかないんですかね。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

センスってあります。 ちなみに、文系・理系は関係ありません。 論理的思考の持ち主が適正があると言われています。 論理的思考とは、文系と理系を足して2で割ったというような感じです。 だからといって、素質がないとダメということはありません。プログラマーとして長年やっていけば、同じような要件が出てきたり、勘のようなものが身についていくと思います。机上の勉強は、眠くなりますから、実践で身につけるほうが効果的で進歩も早いと思います。

tomojyuu
質問者

お礼

回答ありがとうございま >センスってあります。ちなみに、文系・理系は関係ありません。論理的思考の持ち主が適正があると言われています。 論理的思考...あまり熱くなってはいけないのですね。 常に冷静でないとなんとなくわかります。

全文を見る
すると、全ての回答が全文表示されます。
  • YOSHIDAX
  • ベストアンサー率15% (5/32)
回答No.1

基本的にやる気の問題だと思います。確かに難しいジャンルなので覚悟は必要です。潜在的なセンスも確かにあると思いますが、むしろ経験の積み重ねによるセンスが重要だと思います。文系だの理系だのを気にする必要はないと思います。文系出身のプログラマの人も私の周りには結構います。そりゃWordやExcelに比べれば全然蒸すかしくて特殊ですよ。あとはプログラミングの仕事や勉強が苦痛に感じるか楽しく感じるかの問題でしょう。

tomojyuu
質問者

お礼

回答ありがとうございます。 >プログラミングの仕事や勉強が苦痛に感じるか楽しく感じるかの問題でしょう。 楽しいと感じて始めたC++ですが、挫折しそうです。 楽しく感じるようになりたいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • プログラミングのセンスをあげたい

    C、C#、JAVAを勉強してきたのですが自分のセンスの無さに 愕然としています。授業ではJAVAで電卓を作っているのですが正直1人でできそうではありません。 それ以外にも自分で、仕様書などは作らずにオブジェクト指向言語で作っているのですができません。 最近作って挫折したのは小遣い帳です。 Excelで作ることは出来ると思います。 あと家にSQLサーバーが無いため、配列を用いてファイルに書き込むと言う手段を考えています。 プログラミングのスキルをあげるにはどうすればいいのでしょうか?

    • ベストアンサー
    • Java
  • C++かCの再選択 

    いつもお世話になっています。 c++の初心者ですが、煮詰まったので質問させてもらいます。 私はC++の入門書を理解し2~3個のコンソールプログラムを作った位のレベルです。煮詰まったのは、このままC++を勉強するかそれともCを勉強した方がいいのか迷っています。Cは知らないのでC++入門書を勉強した時、Cを勉強しているのと一緒なのですか(軽くSTL、オブジェクト志向の考え方を追加した感じ) Cのほうが文法、メモリの動きなどサンプルプログラム を作るにもクラスをつくる手間が省け簡単に書けますし 早く習得できると思うのですが。気になったのは ここの書き込みで、Cの拡張がC++とCとはC++ は異言語の意見があり、私にはわかりません。 ただ「C++がわかっていてCを知らない人はいない」との意見に納得した事もあり私の選択は間違っていた のかなと思ったのです。できればC->C++経験者と いきなりC++経験者のアドバイスが聞きたいのです。

  • プログラマーかグラフィッカー迷っています。アドバイスください。

    質問するところがどこカデゴリーかわからないのでここにします。来年進学のことで迷ってます、高校2年の文系なのですが、ごく最近からC言語、を勉強したのですが、ある程度はわかったのですがこんなんで本当にアプリケーションなどを作れるのかと思ってしまって今挫折気味です。まえまえから気になっていた、グラフィッカー(グラフィックを作る人)になりたいと思ってきました。そこでグラフィッカーになろうと思うのですが、今の時代グラフィッカーで本当に生活できるのでしょうか、あとグラフィッカーって競争率高いんですか?教えてください。やっぱしプログラマーで行ったほうが生活できるのかなぁ。

  • プログラマーの仕事について。

    プログラマーの人はなぜそんなにプログラムのことが詳しいのですが。  と言うのは、別に私はプログラマーになりたいとかはないのですが、HTML言語やパソコンに関することでもヒーヒー言っているのに、プログラマーの人はすごいなーっていつも関心します。  センスの問題でしょうか?  センスと言ってもやはり勉強は人一倍しているんですよね?素人の人でも勉強したらプログラマーになれるものなのでしょうか?  プログラマーの人の話やなった経緯など聞かせてもらえると嬉しいです。

  • C++の将来性・・・

    昨年まで、C++プログラマをしていました。しかし恥ずかしながらぜんぜんオブジェクト指向じゃないコードを書いていました・・・ いまJavaで仕事していて感じるのですが、C++にはガベージコレクションがないので、実はオブジェクト指向プログラミングがとてもやりにくい言語ではないですか? そうなると、C++の必然性がなくなり、C Java C# に取って代わられてC++は消え去っていく言語なのでしょうか。 「いやC++はすばらしいオブジェクト指向言語だ!」というお叱りを期待しています。

  • プログラマーと呼ばれる人は。。。

    (1)プログラマと呼ばれる人は、多くの言語に精通しているのでしょうか?(CもJAVAもできます、みたいに。。。) (2)また「Cプログラマ」というような言い方がありますが、この人たちは、Cだけできればいいのでしょうか? (3)CのほかにJAVAプログラマなんて言い方はあるのですか? (4)JAVAはオブジェクト指向に適しているといわれていますが、C++もですよね?Cはどうですか? (5)私はCをちょっとかじった者です。CをしておくとJAVAにとっかかりやすいというのは本当ですか?また、なぜですか? (6)貴方は何の言語に精通していますか?○○と□□と△△の3つです、という風に教えてください。。それから習得にかかった時間をよければ。。 (7)○○をするには何言語がいいよ、などということを教えてください(例:CGならC言語←適当) どれか1つでもかまいません。たくさんの回答をお待ちしております☆

  • 現役のプログラマさんやSEさんに質問です。

    私は現在プログラマ(後にはSE)を目指してC言語、C++、VCの勉強をしています。 そこで質問なのですがプログラマになる為にはどの位のスキルが必要なのですか? また、プログラマになった後もプログラムについて研究や勉強をしているのでしょうか?

  • プログラミングのセンス・技術とは.

    こんにちは.はじめて書き込みするtoroimoです. 私は,理工学系の大学院の修士課程に在学しています. 来春から社会人です. プログラミング暦は,研究に取り組んでから2年半たちます. 使用言語はCです. 最近,自分のプログラミングのセンスというか技術について 考えてしまいます. ある権威者の人は,プログラムは慣れであり,プログラミングは芸術といいます. 芸術であるがいえに万人が優れた美しいコードはかけないと… それを聞いてはじめは落胆しました. けれど,その後は少しでも優れたコードを書けるようにと 書籍・サイトを探り読んでいます. 私は,Cに関する初級本 改訂 新C言語入門 シニア編 など4冊,アルゴリズムに関しては,1冊. また,日経ソフトウエアやC_MAGAZINEなどをよんで知識の習得に 勤める努力はしています(実力として初級はクリアしてると思うのですが.). しかし,実際研究でコードを書くとなると アルゴリズムに悩む時間ばかり費やし手が止まってしまう状態です. こんな私に社会で働いている人(SEやプログラマ)や 学生の方から御叱咤・御忠告を賜りたいです. どうかよろしくおねがいいたします.

  • プログラマーになるには?

    現在高校1年生なんですけど、プログラマーになりたいなぁと思ってます。 理系、文系どちらに行けばいいのか? 英語や数学はどの程度できればいいのか? 入門書を購入して勉強をしようと思うのですがC、C++、javaなどたくさんあってどれを勉強していいかわかりません。 あと、プログラマーに向いているのはどのような人でしょうか? ド素人なもので用語なども全然わかりないのでわかりやすく教えて欲しいです。(このような質問をしている時点で向いてないのでしょうか? 質問が多くてすいません。

  • プログラム初心者です。

    これから、C++言語を用いてシステムを開発する、プログラマです。 質問内容は 1.CとC++の違いが良く分かりません。 2.オブジェクト指向プログラミングの意味がよく分かりません。「e-words」などで調べても文章の意味が良く分からず困っています。 以上、2点よろしくお願いします。