質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • JavaScript

    20417questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

プログラミング 才能

受付中

回答 22

投稿

  • 評価
  • クリップ 7
  • VIEW 4,985

furuta

score 14

20歳プログラミング初心者です
エンジニアとして働きたくて勉強してるのですが、プログラミングには才能がいると言う情報をよく目にします。
堀江貴文さんが、プログラミングはできる人はできるけどできない人はできないと言っていました。どんな分野でも才能というものが存在するのはわかるのですが、世界のトップレベルになるとかではなく、普通にプログラマーとして会社で働いたり、フリーランスエンジニアとして働くのにも才能が必要で、努力だけではやっていくのは難しいのでしょうか?
それと、プログラミングができない人というのはどれくらいできないものなのでしょうか?
ご意見いただけると嬉しいです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 22

+13

 努力型と才能型

「才能」という言葉でひとくくりにするのは私はあまり好きではないのですが、

  • 才能がある人間は少ない努力でコードを作成できる
  • 才能がない人間は才能がある人間より多くの努力をしてコードを作成できる

ただ、これだけだと思います。
逆に見れば、努力型の人間も多くの時間を払えば同じレベルに到達できるという事ですから忍耐の問題だと思います。
あまりにも長時間努力しないと達成できない人は難しいと思いますが、そこは実際にやってみれば大体わかります。

 プログラマの三大美徳「怠惰」「短気」「傲慢」

よくいわれることですが、この三大美徳は私は当たっていると思います。
特に「怠惰」が好きですね。

  • 掃除するのが嫌いだから「ルンバ」を買おう
  • 折り畳み傘を常時携帯しているが、重いものを持つのが嫌だから軽量な傘を買おう
  • スマートフォンの充電忘れが嫌だから家と会社の両方に充電機を置いておこう

楽な方に楽な方に流れる仕組みを考える人はプログラマに向いているといえます。
また、こういった仕組みづくりは努力型の人間には必須だと思います。
自分が楽になる仕組みは、幾分か自分の欠点を補えるものです。

「プログラマの三大美徳」の二面性

「怠惰」「短気」「傲慢」は言葉通りに受け取るとただの駄目人間ですが、その言葉の裏の意味を汲み取るとプログラマに必要な要素がわかります。

  • 怠慢だから怠ける為の仕組みを考える事を惜しまない
  • 短気だからいい加減な動きをするプログラムにイライラする
  • 傲慢だから自分自身で完璧なプログラムを作り上げようとする

まとめると「勤勉で完璧主義者で効率を何よりも重視する人物」というところでしょうか。
全てを兼ね備えた人間は相当偏屈な人になりますが、長所が短所を遥かに上回っていれば我慢出来る程度のものです。
ただし、最低限のコミュニケーション能力はどんな仕事でも必要だとは思います。

余談ですが、Appleの共同設立者の一人であるスティーブ・ジョブズは 「プログラマの三大美徳」を全て兼ね備えた人物であったと私は思っています。

 更新履歴

  • 2016/09/21 11:14 「プログラマの三大美徳」の二面性を追記

Re: yuuhi さん

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/09/20 23:44

    >>3大美徳
    まあ一般受けはしないですけどね。それどころか敵を作りやすく人間関係のトラブルに弱いなど、社会的にハンディを負っていることも否定できません。

    キャンセル

  • 2016/09/21 09:50

    >>3大美徳
    怠惰な人ほどプログラマに向いているって話をきいたことがあります。
    ルーチン作業が面倒だから、プログラムをつくって、ボタン1つで、
    作業を終わらせるようにするとか。
    さらに、優秀なプログラマはプログラムすることすら面倒になり、
    「いかに短いコードでプログラムできるか」を考えるようになる。
    結果、「優秀なプログラマほどプログラミングをしない」ということに…。

    キャンセル

  • 2016/09/21 11:19 編集

    親記事を追記しました。

    To: HogeAnimalLover さん
    どんな人間でも長所と短所があり、三大美徳は短所を強調する表現になっているのだと思います。
    とはいえ、多少、自分の気に入らない部分があっても我慢する忍耐強さはどんな仕事でも必要ですね。
    スティーブ・ジョブズのように自身がトップに立つという考え方もありますが、相当な努力(当人の才覚もあるでしょうが、努力は絶対に必要だと思います)が必要になるでしょうし…。

    To: jm1156 さん
    優秀なプログラマは「同じプログラムを何度も書かない」(Don't repeat yourself)のかもしれません。
    同じプログラムを何度も書く(車輪の再発明)のは苦痛なので、汎用性のある完璧なプログラムを一度作り、何度でも使いまわします。

    キャンセル

  • 2016/10/04 20:30

    自分はプログラマではないのですが、プログラムを始めたきっかけはまさに三大美徳に書かれた内容だったので、非常に共感できました。面白い話をありがとうございます。

    キャンセル

+8

なるだけなら誰でもなれる

才能の有無で言うと、僕も含めてほとんどの人間が無いので、
日本の中小企業で普通に働きたいだけだったら、そんなにハードルは高くないと思いますね。
つまり、才能が無くても普通のプログラマーとして働き始めることはできます。

ただ、向き不向きというのは確実にある職業

なれるけど続けれないのです。
もしくは、続けているけどそれが苦痛なこともあるでしょう。
向いていないからです。

10年選手の僕は、好きが半分、苦痛が半分ぐらい

技術が日進月歩すぎて、これからもずっと勉強し続けるのかと思うと億劫になります。
きっと根っからの技術畑ではないのでしょうね。そういう意味では向いていないのだと思います。
本物の技術者なら新しい技術に対してワクワクするものです。

では、何が僕を10年支え続けてきたのか?

たぶん、プログラマーにとって一番重要なものが、幸い僕には備わっていたんです。
才能もないし、地頭も良くないけど、これがあるから僕はやってこれましたし、
これからも苦痛ながらもやっていくのだと思います。
それは「探求心」です。

「探求心」があれば何とかなる

ただただ知りたいという欲求です。
僕は頭は悪いですが(謙遜でもなんでもありません)、知りたいんです。
知りたいと思うのは僕の勝手です。

なぜこれが動くのか?この1行は本当にいるのか?
これができるのであれば、こういうこともできるのじゃないか?

僕は納得できないものや、説明できないものを受け入れれない性格でして、
他人から見たらどうでもいいような些細なことでも、
自分が分からないのであれば、それを放っておくことはできないんです。

例えば、ループ変数で良く使われる、iという変数名。

iって何だ!?
なぜ、iなのか!?
iじゃなきゃダメなのか!?

おそらく Integer の頭文字なんだと思いますが、
僕がプログラムをやり始めたころは、こういうレベルでもがいていました。

「分かるまで」やるということではありません。
この業界分からない事の方が多いですし。
もちろん分かることがベストですが、少なくとも

「すごく色々な角度から調べてみたけど、分からなかった」
「確定はできないけど、たぶんこういうことなのだろう」
「今の自分で、やるだけのことはやった」

ぐらいまでは持ってこないと、気持ち悪くって夜も眠れませんw
一種の病気なんじゃないかと思うぐらいです。

共感いただけるなら、プログラマーとしてやっていけると思いますよ。

できない人というのはどれくらいできないか?

という質問があるので答えたいと思います。
できないプログラマーが1ヶ月かけてできないものを、
優秀なプログラマーは数時間でやったりします。

プログラマーの能力差は、大げさなしで2倍とか3倍とかの次元ではありません。
むしろ、優秀な人が1日でやるものを、3日でやれるのであれば、十分優秀な方だと思います。

優秀な人ってのは、本当に何か自分には超えられない壁のようなものを感じます。
もしかしたら、それが才能なのかもしれません。
ただ、そういう人たちもめっちゃくちゃ勉強してるので、
才能の一言で片付けれることでもないでしょうね。
ただ自分より頑張っているだけの人なのかもしれませんし。

まだ20歳

才能もない、頭も良くない、そのうえ探求心もない。
これは絶望的です。

ただ、「才能があるかないか?」「向いているか向いていないのか?」
というのはやってみないと分からないことですから、まずやればいいんです。
やる前にこれらを言うのは、ただの言い訳なので。
やるっていうのは勉強じゃなくて、実務経験を積むということです。

現在無職で、1人で黙々と勉強しているのであれば、さっさと就職しちゃってください。
現時点で何もできなくても、就職できますから。
学生さんなのであれば、とりあえず学校は卒業しましょう。
そしてすぐに就職しましょう。就職浪人とかもってのほか。

若い子たちが不安になったり、鬱になったりするほど、未来は厳しくありません。
才能がどうだ、学歴がどうだ、大企業がどうだ。
そりゃ有るにこしたことはないけど、どれも無くても、マジでどうとでもなります。
努力だけでやっていくのは難しくありません。

いつか、プログラマーとしてどこかで出会えればいいですね。
頑張ってください。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+5

プログラミング初心者と書かれているということは少しはプログラムを
作られているのですね。ということでしたらある程度おわかりかと思いますが、
プログラミングというのは結局ロジックの組み合わせで動作します。
正しく書けば正しく動作するし、ケアレスミスであっても間違っていれば
間違いなく100%”バグ”として現れるのです。コンピュータを相手にして
いる訳ですから全く容赦なく”バグ”は現れるのです。

プログラミングが好きor嫌いかで上達の早さは違うかと思いますが、
結局は努力の差が大きいと思います。できる人は努力をしているので
あってできない人は努力が足りないだけです。

ただ、好きであればこの”努力”をまるで遊んでいるかのように行える
のです。私も10代の頃、趣味でゲームのプログラムなどを作ったり
したものですが、仕事ではないのでまるで遊んでいるかのように
色々とプログラムを改良しました。その中で色々とスキルを学び
上達するのです。

確かに多少の才能の違いがある場合はあるかと思いますが、どう
頑張っても全くできない人などはいないと思います。

努力さえすれば誰でもできるのであってできないということは
単に努力が足りないだけです。

結局は論理の組み立てが表現できるかどうかの話なので中学や
高校で数学を学ぶのと同じようなものです。

従いましてご質問の内容は
「中学や高校で数学を学ぶにも才能が必要で、努力だけでは
やっていくのは難しいのでしょうか? 」と同じようなものです。

答えは
「努力さえすれば誰でもできます。」
ということだと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+4

才能というか資質・能力の問題だと思います。
・論理的に物を考えることが出来る能力
・細かいところまで正確に処理する能力
がないと、サラリーマンプログラマとしてやっていくのも難しいかと思います。
上記の能力が無い人が大人になってからの努力では身につけるのは難しいと思います。
「できる人はできるけどできない人はできない」ということです。

才能はサラリーマンプログラマなら必須ではないと思います。あれば昇格できるとかですかね。
言われた通りのことをやるだけでも給料をもらうのは可能。
フリーランスプログラマはよく分かりませんが、才能がないと仕事が来ないかと。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+4

プログラミングとは数学の問題を解くような物だと思っています。ただ、数学の試験と違って、答えは用意されていませんし、正答が一つは限りませんし、時には、答えが無い(つまり、原理的に不可能)という場合もあります。

「数学の問題」と言っても色々あります。「1+2=?」のような小学校の算数のように簡単な物から「x^n+y^n=z^n(x≧1,y≧1,z≧1,n≧3)が成り立つ自然数x,y,z,nの組み合わせが存在するか?」というような360年間誰も解けなかった難解な物まで様々です。プログラミングも同じような物ですが、たいていは学習し、ある程度訓練すればできるようになる物です。レベル的にはセンター試験ぐらいでしょうか。すぐにできるようになるに人、なかなかできるようにならない人、解くのが速い人、遅い人、そういった違いはありますが、努力でなんとかなります。センター試験レベルなら誰でも努力すれば満点を取れるでしょう。それと同じで、ほとんどのプログラミングは努力次第で、なんとかなります。

しかし、やはり努力ではどうしようもない難問があります。先ほどのフェルマーの最終定理ぐらいの難問は別としても、難解大学の入試レベルの問題はプログラミングにでも出会うことがあります。訓練である程度はできるかも知れませんが、このレベルになると才能の問題です。競技プログラミングの難解な問題とか見れば、どのようなものが難解が垣間見えると思います。ある程度は訓練でなんとかなりますが、難解大学の入試をさらさらと全て回答できるようになるには才能が必要なように、やはり難解なプログラミングをさらさらとできるようになるには才能の世界になるでしょう。

でも、安心してください。そういった才能ある天才プログラマーと言われている人は極わずかです。一つの小さなプログラムでも無い限り、プログラミングは分担作業です。ほとんどの人はそんな難問は解けませんが、プログラミングのほとんどはそのような難問ではなく、努力次第で誰でもできるような範囲です。プログラミングの中で、そのような難問に出会ったときにそのような才能ある人に聞けば良いのです。日常のほとんどのプログラミングでは、特殊な才能は必要ありません。

最後に、簡単な数学の問題でも、どうやっても解けるようにならない人もいます。同じく、プログラミングをどうやってもできるようにならない人がいます。そのような人はそれほど多くはありませんが、それはどうしようも無いものですので、プログラマーになることは諦めた方が良いでしょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

エンジニアといってもピンキリですし、
職場によっても求められるものは違ってきますね。
furutaさんが「どのへん」を目指しているかによるかなあ。
自分は学校ではプログラミングとかやってませんでしたが、
(もちろんプライベートでも同様です)
なんとかなりましたね。
最初がついていけなくて大変でしたけど。(^_^;
--- 追加 ---

プログラミングができない人というのは

例えば、プログラムのバグの原因を指摘するとして
「hogehogeがfugafugaになってるね」
といっただけでは理解できず具体的な対策に
落とし込んであげないとだめな人はいます。

まあ、なんでもそうだと思うんだけど、
結局はその仕事が好きになれるかどうかだと思う。
モチベーションと経験をうまく回していくのが
上達するポイントだし、他人からもいろいろと
吸収しやすいんじゃないかなあ。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

私も恐らくあなたと変わらないぐらいのプログラミング経験しかありません。
4月から始めたばかりです。
なので、あなたが欲しがっている回答ではないかもしれませんし、もっとプロとしてキャリアの積んだ方に対しての質問であるだろうとも思いますが、気になったので回答させていただきたいと思います。
私のプログラミング経験はたった半年です。
しかしこの半年は今までの人生で一番手ごたえのあった半年でした。
ただ、プログラミング自体の才能はあまり関係ないような気がします。
強いて言うならぶち当たった壁にどれだけクソ真面目に真正面から向き合ったかどうかだと思います。
それは恐らくどの世界でも同じなんだと思います。

一つ目の質問の会社に入れるかどうかですが
ちょっと努力する人は中の中ぐらいの会社に入れるでしょう。
具体的に週に5時間ぐらいかな?
そこに対人能力があれば中の上ぐらいの会社に入れる人もいます。
めちゃくちゃ努力するひとはそれに見合った会社に入れるかもしれません。
具体的には週に20時間ぐらい。
ただ、対人能力がなければ一社も受からないかもしれません。
才能のある人はそのめちゃくちゃ努力したと思った人が努力と思った部分は
面白いと思って乗り越えていける部分だと思います。
その人たちは週に40時間ぐらいやってるんじゃないですかね?
ただ、それは結局どれだけプログラミングをしたかどうかに過ぎないと思います。
プログラマーになりたいと思ってきちんとすれば、どうせなれるんですから結局はプログラマーと言われるようになってから、安心して落ち着くのではなく今と同じぐらいのペースで勉強していく必要があると思います。

二つ目の質問のフリーランスになれるかどうですが、プログラミングの技術はもちろんだと思いますが、それよりも人脈であったりコミュニケーション能力であったり、営業がどれだけ出来るかではないでしょうか?

三つ目の質問の努力でなれるかどうかは、先ほど答えた通り努力を努力と思わない期間がどれぐらいかどうかだと思います。
水泳でも、腕を動かして泳ぐより、潜水を長くした方が記録は出ます。
泳いでる期間が努力の期間だとすれば潜水の期間が興味があって努力を努力だと思わない期間だと思います。同じ目標まで達成するとしても潜水を長くしていた人の方が早く着きます。それが人から見れば努力の差に表れるんだと思います。

4つ目の質問の出来ない人はどれくらい出来ないのかという質問ですが近くに同じぐらいの期間勉強している知り合いがいますが、正直天と地の差だと思います。
しかしその差はどれだけプログラミングしたかどうかの差でしかないと思います。

以上が私の意見です。
長文失礼しました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

プログラマをやっていると、この人は明らかに才能が違う!みたいな人と
ちょいちょいお仕事する機会に恵まれます。
バグったり、困ったことが起きたりした時に、正解までたどり着くのがものすごい早い。
でも大多数の人はそうじゃなくても仕事できてるわけですから
才能がなきゃ出来ない仕事って訳でもないような気がします。
あえて書いてしまうと、思考の負荷に耐えられるぐらいの忍耐力…

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

あるレベルまで出来るようになるのに、センスがあれば早いしなければ遅い、
センスがないのであれば、その分努力すれば早いし、努力しなければ遅いということだと思います。
センスがあって努力すれば一番早い、センスが無くて努力しなければ一番遅い。
程度の問題かと思います。

普通の人が、普通に(趣味レベルで)プログラミングの習得を目的として学習すれば、
1ヶ月(20〜30時間)もあればなんらかの言語の基本的な文法は取得できるかと思います。
それを目安にしてみてください。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

プログラミングには才能がいると言う情報

結論から言いますと、
プログラミングに才能は要りませんが、
プログラマーに才覚は要ります


プログラミングを読み書きするのに才能は要りません。
なぜかというと、プログラミング言語は言語だからです。

日本人と日本語で話す、外国人と外国語で話す、
その延長線上に機械に命令し動作させるための
プログラミング言語があります。

言葉は(健常者なら)誰でも話せます。
才能がないから話せない、などということはありません。

もちろん、プログラミング言語は人間の母語ではなく第二言語ですが、
努力すれば英語の読み書きができるくらいにはできます。


ただし、特殊な領域は才能が必要かもしれません。

たとえばコードゴルフみたいな競技系プログラミング。
あるいは数学的なアルゴリズムが必要な分野。

これを言語で言うと、俳句のような創作や、
法律の文章は難しいようなものでしょうか。


ですから、プログラミングに才能は不要です。
しかし、(職業)プログラマーには才覚が必要です。

ここで言う、才能と才覚はぜんぜん違います。

極端な例では、ご存じのように、ゴッホは偉大な芸術家ですが、
生前は(商業的に)評価されませんでした。
すなわち、多大な才能はあるが、才覚はありませんでした。


努力だけではやっていくのは難しいのでしょうか? 

職業としてやろうとすると、市場競争になりますから、
何らかの才覚が必要になります。それは、技術力に限りません。

たとえば、企画力や営業力、交渉力などの対人力、事務力、
場合により数学力や英語力……など、いろいろあるでしょう。

「努力」といったときに、技術力を高めることだけ、
それも自らが認めた特定のジャンルの技術だけを、
努力とみなす視野狭窄に陥らないよう、注意が必要です。

「努力だけではやっていくのは難しい」という思いの裏面に、
「なぜ、やっていけるような努力をしないのか」という疑問が残ります。

「やっていけるような努力」をできるのは、才能ではなく才覚です。
才だけでなく覚(自覚や覚悟)が必要です。この道を模索してください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

自分は元々文系、そして30代からプログラムを始めた者で、今は主にPHPを使ったオープン系のウェブプログラムを制作、納品しています。確かに、才能の違いとかを垣間見たことは多々ありましたが、デザイナー系に比べたら、遥かに努力と好きこそものの上手なれの精神でカバーできる業種だと思います。自分も当初はユーザー定義関数の理屈すらなかなか理解できないほど思考が頑固だったのですが、経験でそれもどんどんほぐれて行って、今は、まだまだ半人前ですがフロー図を頭で描いてプログラムを組めるぐらいになっています。

ただ、以下に挙げる条件に当てはまる人は向いていないかもしれません。

  • バグやエラーが出るとすぐ嫌気がさす人
    プログラマーは組立半分、バグ半分というぐらい、バグとの戦いです。バグやエラーが出ても、解決の喜びと経験を糧にできる人でないと、多分前に進めないと思います。幸い、今日だと色んなウェブサイトから情報を収集しやすいのですが、躓いたときに質問ばかりせずに、自分で情報を極力収集し、解決、そして記録していける能力は求められると思います。
  • 進取的、柔軟じゃない人
    特にweb系は、ニーズがどんどん変化し、それに伴い技術が目まぐるしく変わります。ここ10年でもAjax、jQuery、Bootstrapなどなど…。なので、常にアンテナを張り巡らせる必要があります。また、環境によっては枯れた技術を活用が求められるなど、常に柔軟に情報と技術を駆使する能力は必要だと思います。

あと、文系出身だから思うのかもしれませんが、読解力なども必要だと思っています。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

(これは直接的な答えではありませんが、他回答で触れられていない話題提供として)

プログラミングには才能がいると言う情報をよく目にします。
プログラミングができない人というのはどれくらいできないものなのでしょうか? 

プログラミングの教育に関して、2006年に発表された有名な論文 "The camel has two humps" があります。「ふたこぶラクダ」理論と呼ばれます。大まかに言うと、プログラミング学習者はその母集団の特性によらず、出来る集団・出来ない集団が大きく割れてしまい、平均的な"中間層"はむしろ少ないという調査結果です。(そしてその分布をグラフ化すると、ふたこぶラクダの背中ように見える)

この論文はタイトルの話題性とともに有名になり、時には「プログラミングの素質は生来の能力である」など拡大解釈されることも多かったためか、著者(Richard Bornat)自身により「結論としては言い過ぎであった」と2014年には撤回されています。


体感的には苦手・得意という個人差はあるでしょうが、平均的に見れば「生まれつき素質が有る・無い」という問題ではなく、学習や経験により一般的に要求される水準には到達できると思います。ただし、本当に苦手な場合は学習そのものが苦痛ですし、長期的に続けることは困難でしょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

才能は多少は必要です

とはいえサラリーマンでやっていくなら、べらぼうに必要ではありません
普通にプログラムが組める程度は必要ということです
入門本を読んで理解して、プログラムが組める程度の才能があればやっていけるでしょう
そこから先は論理的思考ができるかとかの話になってきますね

できない人はどれくらいできないかというのはなかなか難しいですね
=が代入であることが理解できない人もいます

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

あるユーザーのシステム部門の新人教育で Oracle SQL, PL/SQL を手伝ったことがあります。システム部だけで数百人の会社で人事部はそれなりに適性を考慮してシステム部門に配属したはずですが、10人か20人にひとりくらい落ちこぼれました。高卒、専卒、大卒、院卒はあまり関係なかったです。勉強しないでも卒業できる学校からは採用しなかったはず(たぶん)ですが、講習でわからないとこは終電まで付き合ってでも理解できた人は現場に配属されてからどんどん伸びたようです。理解できないことを翌日に回した人は他のところに配置変えになったり、辞めた人も数人いたでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

プログラミングから始めた先、何かしらの道が開けるかもしれないので、
興味があるならやってみるべきだと思います。
コードを書くだけが仕事ではないです。基本的には人とのやり取りなので交渉や提案も絡みます。
一つ言えるのは、「ここまで勉強したらあとは勉強が全く必要ないからやらない」のような考え方でやれる業界ではないことです。
勉強や情報収集がそんなに好きじゃなかったら向いてないかもしれません。

働くきっかけは人それぞれですし、未経験者でも雇ってくれるところはありますので、
後はそんな職場を見つけられる機会や運もあるかな、と。
(未経験者はまずバイトから、と言ってくる方が多いのが実情ですが…)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

かなり漠然とした質問ですので、もう少し具体的なビジョンを持ったほうがいいと思います。

自分はC言語に関してのみならば大体理解しているつもりです。C++やjavaもリファレンスを読みながらならば大体わかります。ただしRubyとかPerlとかになってくると自信がないです。もちろん、言語自体を理解していても非標準のライブラリの仕様は逐一調べなければわかりません。また、作成物によっては専門的な知見(例えばユーザインタフェース設計)も必要です。これらを全て包めての「才能」は存在しえないはずです(「決まり事」が多すぎる)。

一方、汎用的なデータベース設計、NW設計とかアルゴリズムに関するものであればある程度の数理的な「才能」という言葉は当てはまると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

プログラミングができない人というのはどれくらいできないものなのでしょうか?

プログラミングの出来ない人は、プログラミングを端から諦めている人ですね。プログラムと聞いただけで毛嫌いする人。こんな人は全くできません。(当然ですけどね)

プログラミング能力というのは、論理的に物事を考え、与えられた条件下で問題や課題を解決する能力です。どのような人でも、訓練を積めばある程度のレベルまでは行けると思います。
ただ、あるレベル以上になると、才能というか能力の有無が大きく左右すると思います。
どういう人がそういう才能に恵まれているかと言うのは難しいですが、プログラミングに触れた時に寝食を忘れて没頭したことがある人は、才能がある可能性があると思います。(絶対ではないですが)
また、プログラミング技術は日々進化してますし、プログラミング言語も多数存在します。そういう世界を常に追っかけて自分もついていく姿勢が自然とデキる人は能力があると思います。

プログラマーというのは、特殊な職業だと私は思います。0か1の世界である意味厳しいです。致命的なバグを出してしまって落ち込むことも多々あります^^;)。それでも、この世界が好きで続けられる人が生き残っていけるんだと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

私は22歳時にHTMLから勉強し、HTML,CSS,Javascript,PHPと学んで1年目にしてWEBエンジニアとして今では現場で働いています。プログラミング自体はたぶん半年も勉強していません。そして自分自体才能があるとは思いませんでしたが、毎日やっていればふとできるようになったりします。もう嫌だ!と思うときが必ずあります。それはどんな職種でもそうです。ですがやり続ければ、ある程度はできるものです。学校のテストみたいに100点は取れないけど、60~70点は頑張れば案外取れるみたいなものです。 まあプログラミングはまたちょっと違いますが、結論から言えばなれます。 頑張ってください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

"10x Myth"ってやつですね。

結論を先に言うと

  • 才能のないエンジニアが生計を立てられるかどうかはわからない
  • 半年で競技プログラミングの平均点を取れれば見込みがある

よく誤解されるのですが10x Mythは「才能がないと全く使いものにならない」というわけではなく「才能のあるソフトウェアエンジニアは才能のないエンジニアの10倍効率的である」という意味です。この仮説は"The Microsoft Way"でビルゲイツが9年前に言及しており、未だに議論されています(ちなみに先の回答にある"The Camel Has Two Humps"は統計もリファレンスも結構適当です)。この本には

  • 才能のあるなしはコーディングを始めて半年でわかる
  • 才能のないエンジニアが努力しても才能のあるエンジニアに追いつくことはない

と書いてあります。

この仮説が正しくても、正しくなくても、才能のないエンジニアが必要になるかどうかは業界の需要で決定します。なので才能のないエンジニアが生計を立てられるかどうかは、わかりません。

また2つめの「できないとは、どのくらいできないのか」という質問は「コーディング能力は測定可能か」という問題に置き換えられます。コーディングの能力を計測する手段はソフトウェアエンジニアを採用する会社で長年議論されていますが、現在のところホワイトボードコーディングという手法がメジャーです。

手軽に同様のテストを受ける方法として競技プログラミングが挙げられます。競技プログラミングは(プログラミングをはじめたい!という人がよく最初にやる)RoRでウェブサービスをつくるといった類のプログラミングとは大きく異なります。したがってそれなりにコーディングができる人間が集まっている場所だと言えます。国内向けのコンテストはAtCoderが有名です。

一方でコーディングに求められる能力は変化します。一昔まえまでは

  • アルゴリズムを組める
  • 最適化ができる

という能力がコンパイラやアルゴリズムの円熟によって

  • 効率よくリファレンスを探す
  • 仕様書を改善できる

などの能力が生産性に強く結び付くようになりました。こうなると英語ができないとソフトウェアエンジニアとして活躍できません。私が働いている会社ではすでにそのレベルも終わってしまい

  • 数学ができる
  • 未知分野の知識を高速で吸収できる

という能力がソフトウェアのアウトプットのメインファクターになっています。この二点についてもビルゲイツがすでに同著の中で言及しています。

最近ソフトウェアエンジニアが人気ですが、なんか儲かりそうだから、というモチベーションならオススメしません。経営学を専攻したほうが無難です。プログラミングが楽しくて夢の中でもプログラミングをしていたら仕事にするのもいいかもしれません。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

とてもかなわないと思うプログラミングの才能はあります。今までに出会った人のことを書きます。

A氏
メーカーで端末のOSを書いていた。海外に派遣され 新しいOSの開発メンバーとして活躍したことがある。c言語のコードを、紙に筆記体で記述していたが、消しゴムは持たなかった。ソースのPCへの入力は女性にやらせた。コンパイルはほぼ間違いなく通った。テストに対する考え方は徹底していた。コードを直せば必ず回帰テストを行った。システムへの造詣が深く、周りの尊敬を集めた。しかし女性にだらしなかった。エレベータの中で部下の女性に迫ってキスをしようとした。でも、私は今でもこの人を尊敬しています。

B氏
IT技術者の父からプログラミングの手ほどきを受け、中学生の時すでに1人前のプログラマーだった。eclipseを使っていた。キードードを打つ手の動きがものすごく早く、思考とPCの操作が完全に一体化しているかのようだった。常に学び、机の上に英語の本が積み重なっていた。あるメーカーのWebソフトのトラブルを短期間に解決したことで有名になった。

B氏の隣の机で、刻印のないキーボードを机の下に置き、猛烈な勢いでタッチしている奴がいた。

C氏
プログラマーではなくプロジェクト・マネージャー。眠ることで自分の考えをまとめた。自分専用の寝椅子を持っていたことがある。仕事の途中で眠りに落ちる。起きた瞬間に、部下に的確な指示をする。なぜそんなことができるのか不思議だった。

これ以外は、私も含めて凡人です。

最近、新人研修を担当するようになりました。文理関係なく、新人のうち10-20%は、教えなくても自然にプログラマーになれます。残りの人は努力するしかありません。素質のある人と素質のない人が同じ努力をしたとすると、両者の差はますます開きます。プロ野球、プロテニス、相撲を見ると、やはり人間には特別な素質や才能のある人がいるのだと思わざるをえません。

あなたは、どんなプログラマーになりたいですか。
・OSやコンパイラを開発するプログラマー
・ミドルウェアを開発するプログラマー
・アプリケーションを開発するプログラマー
・家電や自動車の組み込みソフトを作るプログラマー
・ゲームプログラマー
・学術、研究に必要とされる専門分野のプログラマー
・まだ社会的に認知されていないがある創造的な分野でのプログラマー

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

私も貴方と同じ、初心者です。
IT部門に移動になり、泣きながら勉強しております。
はじめる前は思い込みだけで難しいと思っておりましたが
いざやると案外頭に入ってきます。

私は凡才の中でも低い部類だと思いますので
才能より費やす時間が重要な気がします
(世界一とかを目指すのであれば別かもしれませんが)

一緒に諦めずにがんばりましょう!!!

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

-1

やってみないと才能ありかなしか、知りようがない。
以上

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • JavaScript

    20417questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。