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

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

ただいまの
回答率

87.51%

出来るプログラマーになるために

受付中

回答 9

投稿

  • 評価
  • クリップ 3
  • VIEW 1,846

score 19

新卒でプログラマーになったんですが、同期と比べても正直全然出来ないほうの部類に入る者です。

出来るプログラマーの定義は難しいんですが、とにかく仕事が速くて正確で飲み込みが速いです...。

具体的に自分が出来ないと感じるところは、例えばタスクを割り当てられたときに、同期の出来るやつは自分の2-3倍くらいこなしてしまいます。さらにその人からのコードレビューではするどい指摘をよく受けます。もちろん同じことは言われないようにしています。

この繰り返しで日々、足を引っ張ってしまっていると感じて辛いです。

使っている言語はPHPです。本は、初心者向けのアルゴリズムの本やweb+db等読んでいます。

出来るプログラマーになるにはどうすればいいでしょうか。才能...とか言われると辛いので何か具体的なヒントを頂ければ嬉しいです。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 9

+9

才能のある無いはしょうがないです。特にコーディングに関しては努力で埋められない差が出ることがあります。

また、出来る人の2〜3倍程度の差であれば足を引っ張るどころか普通に貢献出来ていると思います。

その程度の差はよくあることであるし、出来る人だけでやるには仕事は多すぎるのです。

さらに、仕事上で必要とされる能力はコーディングの能力ばかりでは無いです。コーディングにかけられる時間は多くても全体の3・4割り程度です。

コーディングで負けたくないのか、単純に同時にスタートして差をつけられて悔しいのかを見極める必要があります。

その上で、コーディングで負けたくないのであれば、Java・Ruby・Lispなど色々な言語を習得し、リーダブルコードなどコーディングに関する技術を身につけましょう。複雑なシステムはわかりやすいコードをかける人が大事になってくるし、才能より知識が大事になる分野でもあります。(手に馴染んだ知識なので、いわゆる頭でっかちなものと違いますが)

コーディング以外で差を着けられれば良いのであれば、ヒアリング・仕様書・説明・テスト・進捗管理・チームメイク・DB・その他ミドルウェアなど色々な能力を必要とされる分野があります。”コードをきちんと読めて”、他のことで圧倒できるなら、コーディングが得意な人も「あいつには敵わない」とつぶやくでしょう。

他の10倍の仕事をこなすのはすごく難しいですが、自分含め10人を協力させることは努力でなんとかなるものです。出来るプログラマーは非効率が嫌いです。自分の才能のある場所を伸ばすとよいと思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+8

やはり何事も練習と経験が必要です。
才能の問題などほとんど問題にならないと思います。
何事にも言えることですが、好きなことであれば探究心
も高まり、理解が早くなり上達するのです。

投稿者のfugaaaさんは少し自信を失われているように
見受けられます。まずは限定された範囲で良いので
得意な分野を作っていけばその内容に関しては他の人
からの要求に対してレスポンスが早くなると思います。

何事も努力と継続が必要です。
一見、要領良く振舞っているような人でも人の知らない
ところでもの凄く努力をしている人は多いです。
現在の周囲の人もそうなのかもしれませんよ。

例えば100メートルを9秒台で走るとか世界レベルの話で
あれば少しは才能は関係があるかもしれません。

が、今回は誰でもがやっているエンジニアとしての
ワークです。できないのを才能のせいにするのはやめた
方がよいです。「必ずできる、誰でもできる」と信じて
頑張って見てください。

fugaaaさんは何かまずは自分の興味がある分野で良い
のでそれを誰にも負けないくらいに究めていかれると
自信ができるかと思います。

書籍に関しては興味のあるものからどんどんと読んで
いかれれば良いと思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+7

同期と比べても

入社前からプログラミング歴が長い人とは、
かんたんに何年も差が付いていますから。
直接プログラミングしてなくても、理系教科が得意とか。

ですから、他人と比較せず、過去の自分と比較して、
そこから進歩できたかどうかを見てください。


足を引っ張ってしまっている

図太く開き直って、勉強の時期と前向きに考えてください。

じつはもし、たとえば周囲に優秀な人がいなければ、
現在は安穏と過ごせても、将来的にはまずいかもしれません。
ピンチはチャンスで、引っ張られて成長するチャンスです。


出来るプログラマーになるには

プログラミングの話でしたら、
問題をパターン化して、分割統治するのが王道です。
それにはまず、パターンのイメージ力を養いましょう。

制御文(if文、for文)とフローチャート
(理想的にはOOPとUML)のイメージが直結すると、
コーディングもリーディングも早くなると思います。

英語で言うと、五文型など構文が把握できている感覚です。
構文で大意が取れてれば、読み書きも早くなります。


それから、コンプレックスを消すためには、
全体的にT字型でスキルを伸ばしましょう

上司から怒られない程度に短所は底上げしつつ、
小さなことでもいいので長所を伸ばしていきます。

この「小さな得意」を武器に、壁に風穴を開けると、
希望の風が吹いてきて、心の風通しも良くなるでしょう。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+4

まあ、仕事が速いに越したことはないのですが、速くてもバグだらけなら使い物になりません。多少遅くても確実なソフトのほうが良いのです。ただ遅くてバグだらけならどうしようもありませんから、まずは確実にタスクをこなすことが重要です。

物事の飲み込みが速い人は確かにいます。回転が速い人ですね。ただ気をつけないといけないのは、回転が速すぎて間違った方向に行ってしまうこともあるので、そこは注意しないといけません。
どうやったら回転が速くなるかということですが、一概には言えませんが、そういう人は複数のフレームワークやパターンを持っているということです。問題や課題を自分の持っているあるいは知っているフレームワークへの当て嵌めがうまいので、回転が速いように見える。一種のパターン認識なのですがそれが得意なのでしょう。今それが出来てなくても、訓練すればできるようになります。

人と比べて自分は劣っているとか負けてるとか、そう思う人は多いですが、人はみんな同じではありません。同期といっても単に同じ時期に入社したからというだけ。入社以前の生活環境や考え方、どんなことを学んできたかなど自分とは全く違うはずです。だから、比較することに意味はありませんし却って自分を惨めな立場に追い込むだけで良いことは何もありません。

そういう回転が速くてできる人を利用する手もあります。「ここはどうやったら良いんだろうか?」とか「ここはこう考えてるんだけど間違ってないよね?」とか、積極的に聞いて教えてもらうんです。恥ずかしいとか自分のプライドがなんて考えはクソみたいなものなんで捨てないとだめですよ。聞かれた方は、特にできるやつは大体は教えることが好きなはず。教えることで自分の優越感に満足しているのですがそんなものは知ったことではないので知らんぷりしておきましょう。(ただ、いやみったらしく言ってくる場合はやめた方がいいですが)
そうやって、知識を持ってる人から教えてもらう、それが一番早い。自分で調べることも大事ですが、わかっている人から教わるのもためになります。

まあ、とにかく頑張ってみることです。同僚とは競争するのではなく協働するんです。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+2

僕も最初はそうでした。
初心者の時代に読めと言われた本はほぼ役に立ちませんでした。
たとえば、いきなりデザインパターンの本を読まされてもそのままコードに活かせるわけもなくレビューで指摘をうける毎日でした。

業界でたまに聞く話ではありますが、他の人が書いたソースコードを10万行読めばその言語がわかってくると言われています。
この10万行読むという経験がコードの使い回し(著作権に注意)、デザインパターンの理解、など色々なことにつながっていき効率がだんだんと良くなっていきます。

また、僕はストーリーを理解してプログラムを書くことを心掛けています。
自分が組んでいるモジュールは大きなプログラムのどの部分なのか、誰がなにをそのプログラムに望んでいるのかを考えます。
その裏をとったうえでその部分も実装していくようにしています。(必要かどうか確認せずに勝手に実装すると逆に非効率だったりするので。)

さらに、机に座った瞬間、プログラムを書き始めることができるように、今日はどんな作業をするのか、どのように実装するのか、ということは机に座ってから考えるのではなくて通勤中や寝る前などに考えておきます。

僕がそうだったように、どこまでプログラムに時間を捧げるかは自分次第ですが、自分が非力と思うのであればやってみるべきだと思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+2

(仕様書がバグっていても)仕様書通りに作れる人がプログラマだと思います。

質問者さんが目指そうと思っているプログラマは

・コーディングやバグ取りのスピードが速いプログラマ?
・(次に修正する人が)修正しやすいコードを作るプログラマ?
・仕様書のバグも見抜ける気のきくプログラマ?

上記以外でも構わないので何か目標を持ったらいかがでしょう?

負けたくないとか迷惑かけないようにするのも結構ですが、
ご自身の目指すプログラマになれるようにお仕事をなされてはどうでしょうか?

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+1

よく言われることですが、何か一つ誰にも負けない得意分野を持つといいと思います。
OSでもDBでもプログラミングでもインフラでもなんでもいいと思います。

そうすると、それに関連して困ったことがあると周りから頼られるようになるし、
それを軸に他のことを学ぶのも早くなると思います。

何を選ぶかは、自分が好きなもの・興味があるものでいいと思います。

自分の場合は、最初はOSでしたね。
自宅のPCはLinuxにして、カーネルをコンパイルしてみたり、いろんなディストリビューションをインストールしたり、どのように起動するかを調べたりして、遊んでました。だいたいうまくいかないことが多くて、試行錯誤しているうちに力がついてきます。関連する書籍を読んだり、若いうちは資格を取るのも悪いことではないと思います。

DBなら、仕事で使うものを自宅にも入れて、集計SQLを書いてみたり、設計について勉強したりすればいいでしょう。プログラミングなら、オープンソースのアプリなどやフレームワークをインストールして、コードを読んだり、改造してみると勉強になると思います。

あとは、どの程度コツコツと継続的に、新しいことを学び続けられるかだと思います
※それもある種の才能なのかもしれませんが

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

0

正直なところ、小中学生からプログラミングに触れている層がある程度いますから、そういう人らに特に感性の部分で追いつくのは厳しいでしょうね。
ゴルフでもファーストティプログラムなど、体系・系統だって組織的・システマチックに育成されたジュニア出身者がプロゴルファーのほとんどを占めているのと同じようなものです
大学からとかではさすがにいろんな意味で遅いと思います

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

0

プログラミングに特化した質問ですよね?
設計とかテストとかそういうのは含んでいないですよね?
という前提で。
プログラミングのセンスがある人は、初めての局面でもロジックが浮かび、スラスラと書けますね。
そうではない人、これは経験しかありません。
この処理はあの処理と一緒、こっちの処理はあの処理を流用すれば作れる、などたいていの場合は過去に経験したものの流用・組み合わせでなんとかなります。
ということで質問者様の場合、仕事以外でも日常的にプログラミングをする、また他の人が作ったコードを読みまくる、これしかありません。
本を読むのなんかどうでもいいです。
とにかくコードを書きまくってください。
そうこうしているうちに才能が開花して、初めての局面でもロジックが浮かぶようになってくるかもしれません。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

  • ただいまの回答率 87.51%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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