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

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

ただいまの
回答率

90.12%

プログラマになるために

解決済

回答 8

投稿

  • 評価
  • クリップ 1
  • VIEW 1,263

Kakky7s

score 108

前提・実現したいこと

私は現在高校1年生で、情報系の資格なし、C言語は入門程度、Javaはオブジェクト指向が修了したあたりです。HTML、CSSは書けますが、JSやPHPは未経験です。
プログラミングの参考書を読み漁ったり、自作に挑戦してみたりしているのですが、どうにも自分が仕事としてプログラミングをしている姿が想像できません。
......と、いうのも、ネット上(例えばこのサイトなど)のコードを見ていて、入門書などにある基礎をいくら学んでも、到底追いつけないなと感じるからです。
また、実務でどういったプログラムを書かされるのかを全く知らないということも要因の一つかもしれません。

グダグダになってしまいましたが、プログラマになるためには、どういった技術が必要なのでしょうか?
また、実務ではどのような種類のコードを書くことが多いのでしょうか?

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 8

checkベストアンサー

+2

プログラマになるためには、どういった技術が必要なのでしょうか? 

その業界の分野によって違うので、質問者の方がなりたい分野の技術が必要です。
ただ、今流行の技術も数年先に廃れているかもしれず、先回りしても仕様がありません。

そこで、数学と英語を中心に勉強するのが、損しない確率が高くてオススメだと思います。

まず、将来プログラマになるには、理系の大学を受験するのが一番無難な進路なので、
そこで数学と英語が試験に役立つし、かりに気が変わっても就職に役立ちます。

また、今どき変数名に「hensuu」なんてローマ字でつけず、プログラム自体に
英語は入っているし、海外のドキュメントを読んだりするのにも役立ちます。
さらに英語が公用語のIT企業だのオフショアだのもあるし、需要があります。

プログラマで一番人口が多いのは、ビジネスで使うシステム開発でしょうが、
業務知識に会計・金融・統計などが関係してきます。これも数学と親和性が高い。

組み込み系だと物理の知識が必要だったりしますが、それもやはり基礎は数学です。
あるいは、今人気の機械学習や関数型言語なども、数学との関係がとても深いです。
セキリュティの分野でも、暗号は数学を使ってますし、いろんなところで出てきます。

十年や二十年で数学と英語の構造が激変したり、需要がなくなってしまう、
ということはまずありえないので、身につけておいて損しないかと思います。

逆に、プログラミングだけはやたら上手いが、勉強がおろそかで大学に入れない、
といった場合だと、むしろそっちの方がかえって苦労しそうです。

プログラマと一口に言っても、エンジニアとハッカーではまったく別の道です。
個人的にはハッカーの伝記なんか読んでると、生き方が破天荒で魅力的です。

ただ一般的な人生設計としては、勉強して良い大学を出て、
エンジニア的なキャリアを目指す方が無難だと思います。

だから、現段階で実務とか変に心配するより、落ち着いて勉強した方が良いと思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+2

大事なのはプログラマになって「何をつくりたいのか?」だと思います。

また、実務ではどのような種類のコードを書くことが多いのでしょうか?

これは業種によります。ゲームだったり、工場のシステムや、銀行のシステムやコンビニのシステムだったり、
FaceBookなどのSNSだったりでコードや言語はかわります。

「どの言語を憶えるか?」はそれほど重要ではないです。
なぜなら時代の流れがありますので、今、習得した言語が、
将来も使えるとは限りません。
その都度、憶えていくことになると思います。

そのときに、作成するソフトに関する知識の「基礎」ができていることが大事です。
ゲームであれば、三角関数や物理の知識、
銀行のシステムであればセキュリティ、工場のシステムであればデータベースなど。
そういった基礎知識はプログラム言語が変わっても応用が利きます。

なので、冒頭にも言ったようにプログラムを習得して「なにをつくるのか?」を決め、
そこからどんな知識を習得すればいいのかを調べましょう。

そして実際に作成しましょう。
高校生でもアプリ作成は可能です。
WindowsでもAndroidでもiPhoneでもいいので、簡単なプログラムから作成してみるのがいいと思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/08/30 11:02

    ありがとうございます。
    手の届く範囲から頑張っていこうと思います。

    キャンセル

+1

私も経験は浅いですが、やってることは最初の頃と変わりません。
個人で作るなら、全体像を想像し細部を決めて作り始める。分からなかったら調べる。

数をこなしていくうちに、細部を決めるのがスムーズになったり、書くコードが後で見返しても読みやすくなっていたり、ぱっと見てコードの内容がなんとなく把握できるようになったりします。

実際に手を動かしていれば技術は伸びますので、今やっている言語がある程度出来るようになったら
他の言語をやったりして出来る範囲を少しづつ広げていくのもいいかもしれません。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/08/30 11:03

    まだまだ経験不足というのは実感しています。
    頑張っていきたいと思います。

    キャンセル

  • 2016/08/30 11:09

    補足として、コードの書き方について。
    書籍やWebサイトにはサンプルコードが載っていることがありますので、それらを参考にしてみましょう。
    Webサイトは「Java サンプルコード」とかで検索すれば出てきます。
    ただ、情報が古かったりしてそのコードをそのまま使うのは危険な場合もありますので、なるべく新しく信頼の置けそうなところを使うのがいいと思います。
    頑張ってください!

    キャンセル

  • 2016/08/30 11:10

    はい!

    キャンセル

+1

teratailサイトの上部に「キーワードで検索」機能があります

ここに「プログラマ」という言葉を入れて検索すれば、過去に同じような質問を見つけることができます

個人の価値観、望むこと、抱えている問題や環境は異なるとしても、参考になる答えもあると思います

是非試してみてくださいね

(例)
プログラマーになるには (teratail)
プログラマーを目指す上でアドバイスが欲しいです。 (teratail)
読んでおいたほうがいい本(teratail)

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/08/30 11:21

    やってみます!

    キャンセル

+1

今までの生活の中で似たようなことをやったことがあれば、ある程度想像がつくので「自分でもできそう」と思えますね。
でも、どんな職業でも、この程度なら「追いつけそう」と思うのは慢心で、しかも目標が低いといえます。
もし本当に追いついた場合、相手は止まっているか非常に遅いペースでしか成長していないからです。

たとえばプログラミングの場合は、自分がいくら勉強しても、その間に技術そのものが進化してしまいます。
プログラマにもいろいろいますが、多くの人たちはみんな最初に覚えた知識や技術だけで仕事をしているわけではありません。
必要になったらその都度やったことのない言語を勉強したり、知らない部分を調べたりしながら「到底追いつけない」ものを追いかけ続けている状態なのです。

それができる人でないと取り残される世界です。

どういった技術が必要か、と問われれば、「常に向上心を持って新しいことにも取り組めるスキル」
でしょうかね・・・。

実務でどういったプログラムを書かされるかということですが、それはもうその案件次第です。
新規のプロジェクトであればその時点で言語の選定から始めるかもしれません。
要件によって、作らなければいけない機能も異なります。

実際の仕事では、「これから何を作るのかはっきりしないけど始めなければいけない」という状況がよくあります。だから今から、どんなコードを書くことになるのかなんて考えていてもあまり意味はありません。

案ずるより産むが易しといいます。
実務でどんなことをするのか、というのを知りたければ、インターンに申し込んでみるとか、エンジニアの勉強会に参加して話を聞いてみるとかするのが一番いいと思います。
学生で参加している人もときどきいますよ。
下記のようなイベント情報サイトで、興味のある言語の勉強会などを見つけてみてはいかがでしょうか。
connpass
dots

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/08/30 11:18

    そうなんですか。ぜひ試してみます!

    キャンセル

+1

実際のサンプルコードを読み込んだりして理解が深まれば
仕事でも使うイメージが湧くと思います。

最初は簡単なゲームなどのサンプルコードを理解してみては
いかがでしょうか?

仕事で使う場合は
・動的WEBサイトの構築
・組み込みCPUのプログラミング
・シミュレーションをするためのソフト開発
・通信やドライバなどの開発
等、色々なプログラミングの種類があります。

http://www.shuwasystem.co.jp/support/7980html/3071.html
の「じゃんけん」のプログラムは理解できますか?

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

0

実務ではどのような種類のコードを書くことが多いのでしょうか?

作る物によって違うので何とは断言できません。
ウェブ系、クラサバ系、組み込み系、ゲーム系、などなど。
対象とするプラットホーム(Windows、Mac、Linux、Android、iOS、Tronなど)によっても違ってきます。
また同じものを作る場合でも、会社ごとに得意分野がありますから、手法は変わってきます。
例えばウェブアプリを作る場合でも、LinuxをサーバーにしてJavaで構築するところもあれば、WindowsサーバーでASPで構築するところもあるでしょう。

仕事としてのプログラミングは想像してもあまり意味がなく不安になるだけなので、今できることをとにかくやるしかないでしょう。
ひとつのことを深くやるよりは、色々なことを浅く経験しておき、仕事をするときに「これ知ってる?」と聞かれてまったく知らないよりは、ある程度こういうものだというのを知っているといいと思います。
とは言っても何かひとつの言語について、それなりに書ける程度の技術があると他の言語に応用が利くのでいいですね。

到底追いつけないなと感じるからです

これは誰もがそうです。
日々新しい技術が登場しているので全てに追いつくのは不可能です。
相当なベテランプログラマーでも日々勉強です。

まだ高校一年生ということなので、大学卒業まであと7年、自分は本当にコンピューターを職業としてやっていけるのか、興味があるのか、楽しくやっていけるのか、色々考えてみてください。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/08/30 11:30

    そうですね。
    これから頑張っていこうと思います。

    キャンセル

-1

まあ、現実的にはプログラマになるための技術としては
「実現したいことを細かく分析して数値化して
コードを作成する(プログラミングする)能力」
ということになるかと思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2016/08/31 23:11

    前の回答の続きであれば、回答を編集して続きを書くようにしてください。teratailの使い方に慣れていない初心者でもない限り、露骨な回答数稼ぎをしているようにしか見えません。

    キャンセル

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

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