🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

解決済

5回答

1425閲覧

【現役エンジニアのプログラミングへの意識】

takabeee

総合スコア19

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

0グッド

2クリップ

投稿2019/12/29 10:50

編集2019/12/29 11:36

こんばんは。
将来エンジニアになることを目指しているプログラミング初学者です。
今回は技術的なことではなく意識的なことを、実際に前線で働いていらっしゃるエンジニアの方々にお聞きしたいなと思っております。

プログラミングを勉強していると多くの新しいことに直面すると思います。それらをすべて覚えるのはほぼ不可能なことだと思いますが、一方である程度覚えなければ後から苦労してしまうかもしれません。ネットでは「プログラミングは全部覚える必要は無い」だとか「実際のエンジニアでロジックを理解していなくても使っている人は多い」だとか聞きます。
私が聞きたいのは以下の2つです。
①新しいものに対してどれぐらいの理解を目標に勉強するのがいいのか
②またそれらを実際に扱うとなったときに、「理解していなくても使う」ということが本当にあるのか

ぜひ、暇つぶしでも良いので、ちょっと答えていただければ嬉しいです。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2019/12/29 10:54

「もの」によるとしか言いようがないです。
takabeee

2019/12/29 10:56

回答ありがとうございます。 「もの」とは例えばどのようなものでしょうか?
otn

2019/12/29 10:59

あなたのいう「新しいことに」や「新しいもの」は何をイメージしてのことでしょうか? プログラミング言語とか、フレームワークとか、CPUとか、DBMSとか、OSとか、、、、、
takabeee

2019/12/29 11:07

イメージとしては自分の分からなかったことすべてですね。 それらすべてに対して、最初は「これはこのくらいの理解にとどめて、先に進んだ方が効率が良いな」と言うことを見極めることは難しいと思います。そこである一定ラインに理解が達したら次に進もう、と言う基準がおそらく有ると思われますが、その基準をお聞きしたいです。 さきほど「ものによる」とおっしゃっていましたが、それはおそらく学ぶものに対して理解度の基準を変えておられるのだと思います。ものによって、これをどこまで理解すれば良いのか、と言う判断基準を教えていただけると嬉しいです。
m.ts10806

2019/12/29 11:18

つけられたタグとの関連が分かりません。 言語やフレームワークを限定するのであればそれに特化した質問内容であるべきです。
takabeee

2019/12/29 11:25

タグについては正直あまり考えていませんでした笑 私の質問についての意図がなんとなくでも理解いただけたら、是非曖昧な表現でもかまいませんので回答よろしくお願いいたします。(そもそも質問が個人の感覚による理解度、なので)
m.ts10806

2019/12/29 11:27

質問は編集できますので、適切なタグを探してつけてください。 https://teratail.com/help/question-tips#questionTips3-2 >正しいタグをつければ、その知識を持った人に質問が届きやすくなります。 逆にやたらに関係のないタグをつけても、適切な人に届かず気づかれなかったり無視されてしまいます。
takabeee

2019/12/29 11:32

ご指摘ありがとうございます。今勉強しているRuby言語について、タグを限定しました。 簡単にで良いので是非皆さん回答お願いします。
m.ts10806

2019/12/29 11:34

Ruby、ですか。 「プログラミング言語」というタグがあるのでそちらのほうが適切ではと。 https://teratail.com/tags/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E 私の主観ですけど。 色々検索してみてください。 https://teratail.com/tags 先に「言語やフレームワークを限定するのであればそれに特化した質問内容であるべきです。 」と書きましたが、RubyとするならRubyに特化した内容にしないとRubyで見に来る人が「????」ってなるだけですよ。
takabeee

2019/12/29 11:37

こんな便利なタグがあるとは笑 確かに様々な言語を扱う人から意見をお聞きしたいですね。 ありがとうございます。
meg_

2019/12/29 11:50

エンジニアならば”英語”が出来た方が良いです。ドキュメントは英語が多いですし、動画なども英語の良い教材が多いです。
takabeee

2019/12/29 11:56

初学者が何を偉そうにと思われるかもしれませんが、全く同意見です。恥ずかしながら、エラーが出たときの英文の解釈を間違えてしまって的外れな質問をしてしまったことがあります。。。(過去の投稿があるのでそちらの方をご覧いただければ。他にも経験者からすれば何言ってんだこいつ的な質問も多々有ると思います。。。なんせ消せないので笑)
takabeee

2019/12/29 12:04

あの恥ずかしい思いをした後から、google翻訳は何回も使わせていただいてます。笑 ありがとうございます。
takabeee

2019/12/29 12:09

さて、そろそろベストアンサーを決めなければいけないところだと思うのですが、皆さんの意見のどれもこれもが実際の現場を交えた知識から、またはそもそもプログラミング言語は「道具」など根本に迫る回答もあり、一生ものの知識となるものばかりだったと思います。本当にためになりました。この中からベストアンサーを決めなければならないというのは心苦しいですが、あれこれご指摘をいただいm.ts10806さんにベストアンサーを決めたいと思います。皆さんありがとうございます。
m.ts10806

2019/12/29 12:11

>そもそもプログラミング言語は「道具」など ここに補足すると、1つの目標を達成するための手段や手法は1つではないので「道具」とよく表現されます。 同じ言語を使っていても結果は同じになってもコードは全然違うとか、よくありますからね。 目的を達成するために、「何を」するのか「なぜ」するのかをきちんと考えられるようになる必要があります(「どうやって」はそれらがかたまってからです)
takabeee

2019/12/29 12:27

技術的な面だけでなく意識的な面も含めての回答、とても勉強になります。(このような質問はteratailでは非推奨となっていること知りませんでした。これからは気をつけます。。。) 目的をしっかりイメージ出来てから、過程を考えろと言うことでしょうか。急いで結果を出したいあまり、目的を見失ったまま、イメージ出来てないまま作業に取りかかろうとしていた面も思えば自分にもありました。見直したいと思います。
m.ts10806

2019/12/29 12:30

>目的をしっかりイメージ出来てから、過程を考えろと言うことでしょうか 雑に表現するとそういう感じです。 アプリケーション開発はウォーターフォールの場合は基本的に「要件定義」から入ります。 そこに「どうやって」は入りません(言語・フレームワーク選定くらいはあるかもしれませんが)。 基本設計、詳細設計とおりていくと「どうやって」部分の割合が増えてきます。 結構エンジニアって「どうやって」から考える人が多いので混乱しがちですが、 「何を」「なぜ」を突き詰めていくところからやっていくと混乱や大きな仕様転換は少なく済みやすいです。
takabeee

2019/12/29 12:40

プログラミング以外の勉強でも全体からつかんでから詳細に入っていった方が、詳細をつなげて全体をつかむより効率よく知識を吸収できることに似ていますね。 今はまだ経験が浅いので大規模な開発は当然縁もゆかりもないですが、より大規模な開発になるほど目的意識は重要になっていくと思います。それを今のうちから意識していけば習慣に出来そうですね。さっそく今のうちから取り組もうと思います。本当に勉強になりました。ありがとうございます。
guest

回答5

0

①新しいものに対してどれぐらいの理解を目標に勉強するのがいいのか

何ができて、何ができなくて、何をするときに利用価値が高いか、を理解するために情報収集します、ですかね。
言語にせよ技術にせよ、それらは道具であって、どんなときに使うものなのかを理解しなければ使いようがありません。紙を切るのに包丁は使わないですよね。逆に肉を切るのにカッターを使うこともありません。
道具とはすべからく使うシチュエーションに応じて選択するものであって、道具から選択したらダメなのです。よく言われるように「目的のために手段がある」のであって、「手段があって目的がある」のではないのです。

②またそれらを実際に扱うとなったときに、「理解していなくても使う」ということが本当にあるのか

上に書いたような情報を理解した上で、より詳しい部分を理解して無くても使うのか、ということでしょうが、これは対象の技術によります。
ただ、「何をしたらどう動くのかを理解しない状態では怖くて使えない」です。
詳しい内部構造まで理解する必要までは必ずしもありませんが(トラブルシュートの時などはそれらの意識も必要ですが)、インプットとアウトプットは知ってないと組むわけに行きません。変な相互作用が起きたら目も当てられません。

投稿2019/12/29 12:00

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

まずは基本を理解でしょうか。
言語であれば、基本文法と、主要な型(クラス)は、完全な理解・記憶が必要でしょう。
たまにこのサイトでも、演算子の意味を聞いている人がいますが、おそらく今まで物を学んだ経験がほとんど無いのではと思ってしまいます。
その上で、その言語が書かれているコードをどのように実行しているのかの理解。内部動作を細かくということではなくて、概念的・抽象的で十分です。例えば、変数へのオブジェクトの代入と、変数に代入されているオブジェクトの書き換えが理解できてない人もいます。

ライブラリ関数(メソッド)の機能はその都度リファレンスを見ればいいので、覚える必要ないですが(何度も読んでいるうちに自然に覚える程度でOK)、リファレンスを読んで理解できる基礎力が必要です。
エラーメッセージを読むのも、中学レベルの英語力だけでなく、基礎力が必要ですね。

リファレンスを読めて、エラーメッセージも読めるようになれば、言語をマスターしたと言っていいのではないでしょうか。

そこそこ大きいツールについても同じですね。設計思想の理解が必要だと思います。
これも細かい点は記憶する必要はないです。自分が記憶していないことだけ分かっていればいいです。記憶していないのに、うろ覚えで書いてしまうことが無いように。まあ、エラーになるような間違いなら大したことないですが。

フレームワークについても同じでしょう。

概念を理解していないものを使うというのは、暗闇の中を歩いたり自動車を運転するようなものです。
私も概念を理解していない状態で何かを使うこともありますが、その状態を意識しています。

投稿2019/12/29 11:43

otn

総合スコア85882

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

①新しいものに対してどれぐらいの理解を目標に勉強するのがいいのか

時間的な余裕とうるおいがあれば、「チョットデキル」を目指します。
ただ、一般的に時間に追われているので、「完璧に理解した!」状態を自覚しつつ実戦投入もままあります。

②またそれらを実際に扱うとなったときに、「理解していなくても使う」ということが本当にあるのか

大丈夫。「完璧に理解した」状態なので。
注)後で死ぬ。

参考:
https://www.twipu.com/ochame_nako/tweet/1115856885570314240

投稿2019/12/29 11:08

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/12/29 11:46

ちょっと補足。 実際には、「完璧に理解した」状態での実戦投入は大変危険なので、色々保険を掛けます。 例えば、テストを重厚に行うとか、コンサルタントの助言を受けるとか、他のレイヤでカバーしとくとか。
guest

0

①新しいものに対してどれぐらいの理解を目標に勉強するのがいいのか

対象の規模によりますが、数時間から100時間を目処に、基本を習得することを目指すとよいです。
(gettng stared やチュートリアルにあるサンプルコードを読むこと、それらをすこし変形して使える、debug できる)

②またそれらを実際に扱うとなったときに、「理解していなくても使う」ということが本当にあるのか
あります。

hhtps:/localhost/index.html というページを作成するのに、https の仕組み (http との違いや、各種設定の詳細) を理解している必要はないです。すでに確立されている方法に従って準備したうえで、html レベルの作業だけをしていくということと同じです。

ソート機能や正規表現を その数学的な特性を理解しなくても, 普通はなにも問題にはなりません。

投稿2019/12/29 21:41

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ネットでは「プログラミングは全部覚える必要は無い」だとか「実際のエンジニアでロジックを理解していなくても使っている人は多い」だとか聞きます。

「ネットでは」というか、特に前者は私もteratailで学習の仕方とか人生相談系の本来非推奨の回答にはよく書いてますね。
学校の試験や受験と違って別に覚えてなければ弊害がでるかというとそうではなく、
きちんと要求仕様通りに不具合なく動いていればお客さんにとっては誰がどう作っていようと関係ないわけですから。
(実際は営業や経営的な観点が入るので「誰が」というのが大事になる場面もありますけど)

ロジック理解せずに使っている人が多いかどうかは分かりませんが、
よほど上流工程の人がしっかりとした設計書を書いて「この通りのコードにして」という
状態にしてくれているんでしょう。それでもしばらくやっていればある程度ロジックも理解できてくるようになるとは思いますが。

①新しいものに対してどれぐらいの理解を目標に勉強するのがいいのか

その案件に「どういうフェーズから参画するか」にもよります。
全くみんな同じ状態から初めてで始まるのでしたら環境構築から入って基礎と簡単なアプリケーションをドキュメント確認しながらでも作っていけるようになる必要があります。
途中からであればひとまず少しでも早く立ち上がるために、現場のルールやコードを読んで理解できるくらいになるのを目指せばなんとかなります。
※いずれも別の言語がある程度できるようになっているのが前提。そもそも初めてのプログラミングならもっと基底から頑張るしかない

②またそれらを実際に扱うとなったときに、「理解していなくても使う」ということが本当にあるのか

「扱う」と言えるのは「理解している」ことが前提です。
理解してないものを扱う=コピペでなんとなくできた気になる となると思うので、非常に危ないです。
中にはそれでなんとなくやっていく人もいるでしょうが、本当に長くやっていけるのは最低限以上理解できている人だけです。

投稿2019/12/29 11:48

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問