好きなおでんの具材ドラフト会議しましょう

・普段からプログラミングを継続してないと忘れていきますか?


・毎年、毎年、バージョンアップする度に新しい仕組みを勉強する必要がありますか?

A 回答 (7件)

> 普段からプログラミングを継続してないと忘れていきますか?



何を忘れる話ですかね?
各言語の「基本文法」や、「プログラミングとはそもそも何か」、「オブジェクト指向とは何か」、とかであれば、忘れません。(元々記憶力に難のある人の場合は不明)

「こういう時に使う関数名はなんだっけ?」とか、「この関数の引数の1番目の型は何だっけ?」的なものは、1つの言語しか今後ともやらないと決めている人なら覚えようとするかもですが、5~10個の言語を平行して使っていれば、それほど覚えようとする気にはならないです。ほぼ同じ機能の関数・メソッドでも言語により名前が違ったり、引数も違ったりするので、必要な都度、公式リファレンスを見ます。
「私は一度覚えたことは絶対忘れたことない」という人なら覚えようとするかもですが。
非常に頻繁に使う関数・メソッドは、自然に覚えるし、おそらく忘れません。

そういう意味では「公式リファレンスの見方」も一度覚えると忘れることは無いと思います。(元々記憶力に難のある人の場合は不明)

> ・毎年、毎年、バージョンアップする度に新しい仕組みを勉強する必要がありますか?

言語自体のバージョンアップですよね?多くの言語では、毎年のバージョンアップ程度だと、古いバージョンをベースで作ったプログラムが新バージョンでもそのまま動くという、互換性を保ったままバージョンアップするので、新機能や変更点を全く調べなくても多くの場合はなんとかなります。が、新機能を使うと、速くなったり、書くのが簡単になったりするかもなので、バージョンアップによる変更点一覧は、チェックするに越したことはないです。

たまに、互換性の無いバージョンアップもありますが、多くの場合は、
ver12まで使えてた機能が、ver13とver14では警告メッセージが出るようになり、ver15では使えなくなるというような、移行プランが用意されていることが多いので、変更点をチェックし漏れても、警告メッセージをちゃんと気にしていれば、それから調べればなんとかなります。
もしくは、Python2 → Python3 など、「別の言語になった」と思った方が良いかもというバージョンアップもあります。こういうのは10年20年に一度くらいか。別言語なので、当然、ちゃんと勉強します。
    • good
    • 0

> 普段からプログラミングを継続してないと忘れていきますか?



うん。忘れる。
と言うか、「何らかの書き方のノウハウ」とか、継続してないと「あれ、アレってどう書いたっけ?」とか、勘が鈍ったりする。

> 毎年、毎年、バージョンアップする度に新しい仕組みを勉強する必要がありますか?

これ、多分用語整理する必要があるかな。
バージョンアップ、に関してはソフトウェアレベルでしょ?
プログラミング言語実装もソフトウェアなんで、バグフィックスとかさ。そういうのはあるけど、そうそう「機能の追加」って実は無いんだよ。あるかもしんないけど(笑)、大体、「ライブラリ関数が追加されました!」って程度でそこまでシリアスじゃない。
問題はそっちじゃなくって「仕様の変更」とか「仕様の追加」、要するに「仕様の改訂」だよな。
これは「勉強する必要がある」。

その前に。
プログラミング言語には「仕様がある言語」と「仕様がない言語」の二種類があるんだ。
例えばPythonは「仕様がない」。キチンとした言語仕様が「文書として」提示されてる言語じゃないんだ。
一方、Rubyは「国際標準仕様」(ISO)と「日本産業規格」(JIS)の仕様がある。

そして「仕様がある」言語でも「権威ある仕様書」がある言語とそうじゃない言語がある。
JavaはOracleが言語仕様を公開してるけど、Oracleの都合で「いきなりそれが変わる」可能性がある。
一方、C言語は「国際標準仕様」(ISO)と「日本産業規格」(JIS)の仕様がある。

いずれにせよ、「公的な」「標準がある」仕様は改訂の度に学び直す必要はあるね。C言語ユーザーはなんかは、言っちゃえばおっさんユーザーばっかなんで、いまだ日本国内ではANSI Cと言う「既に標準でも何でも無い」規格を基準にして書いてて、全く仕様改訂を学ぼうとしないユーザーの方が多いんだけど、一方、C++ユーザーは割に最新仕様をキチンと学ぼう、って人が多い。
一方、「キチンとした言語仕様がない言語」、代表的なのはPythonか、の場合は、ヴァージョン番号が上がる度に「新機能がないか」リファレンスマニュアルをチェックする必要が出てくる。何がどう変わるのか、全く予測が付かないから、だ。
とは言っても、例えばISOみたいな「規格」だと改訂は大体10年以上かかるかね?「仕様のバグ」ってのがあって、そのバグフィックスも大体5年前後かかるわけ。いろんな人の思惑がある「委員会」が改訂するんで、時間がかかるんだよ。結果「毎年更新します」なんつーのはまず無いかな。
じゃあ、ここのカテゴリであるJavaScriptはどうか。実はJavaScriptにも国際標準規格があって、それをECMAScriptと言う。うん、JavaScriptの正式名称はECMAScriptと言って、JavaScriptはECMAScriptの「Mozillaに拠る実装名」みたいなモンなんだ。
んで、ECMAScriptだけど、こっちはISO主導じゃなくってECMA internationalって言う団体が決めた国際規格で、ISOよりちょっと緩いのね。結果として、2015年以降ほぼ毎年「改訂」が入ってる。
この辺JavaScriptはムズいトコなんだよ。ISOでも仕様は制定されてるんだけど、ECMA internationalと足並みは揃ってない。ISO版だと大体5年周期ってトコか。現行だとECMAScript 2018ってのが恐らくISOでの最新仕様、ってことになってると思う。
まぁ、ECMAに合わせるかISOに合わせるのか、ってのは好みだけれど(しかもJIS規格だと恐らくいまだECMAScript第3版が標準かもしれん・・・)、いずれにせよJISあるいはISO/ECMAが「仕様を改訂しました」と言った場合はその仕様を勉強するのは必要にはなると思うね。

※: 言語仕様と「リファレンスマニュアル」は性質が違う。リファレンスマニュアルはいわゆる「ユーザーガイド」的なマニュアルだが、言語仕様はそのプログラミング言語の「設計書」に当たる。
    • good
    • 0

特定分野に特化したエンジニアを除けば、最近は、目的に応じて、複数のプログラミング言語を使い分けて使うのが当たり前ですし、オブジェクト指向と言っても、微妙に文法や、宣言の仕方などが違うので、忘れるというか、コンパイルエラーや文法エラーで「あ、これじゃないw」となることは、エンジニアあるある。

だと思います

Pythonは、気がつけばバージョンアップしてる感が否めないですし、過去の資産に関して、どこまで、バージョンアップに対して、キャッチアップをしていくかは、悩みどころでもあります

また、C/C++に関しては、3年ごとに仕様がアップデート(17→20→23→26)されるのもありますが、仕様のアップデートより、コンパイラ次第、gcc/g++, clang, cl(msvc)などでサポートされている、サポートされていないという事が多いので、その時に使い慣れているリファレンスが他のコンパイラでは使えないとなった時に、さて、どうしようかといった状況になるケースはありえます


プログラミング言語もそうですが、使っているライブラリやフレームワーク、また、SDKがアップデートされると、それにともなり、iOSやandroidのアプリも、コンスタントにアップデートしていかないと、セキュリティリスクが高まってしまうので、常にキャッチアップし続けていかないといけないのは、地味な作業ですが、ある程度、作業の自動化がされてなければ、それなりに大変だと思います
    • good
    • 0

忘れていきます。


ただ、それを必要とした時、ゼロベーススタートになるわけではないので、飲み込みは早いです。
仮にゼロベーススタートになるとしたら、それは当時も、何も理解していない場合です。

必要があるかどうかは現場の実情ではなく、ご自身のキャリアアップで考えることでしょう。
    • good
    • 0

毎年、バージョンアップする度に新しい仕組みを勉強するかどうかはエンジニアの所属している会社やチームプロジェクトによります。



何故かと言うと、個人の判断で勝手にアップデートすると同じチームのエンジニアは皆同じレベルで勉強しなければならない上に、不具合が起きると利用者やその取り巻きにまで影響を与えます。

だから、偉い人は基本的には昔ながらの信頼されている方法を好みます。

しかしこれがベストな方法というわけではありません。セキュリティの都合上から本来は寄り良い方法を都度選択する必要があります。

ただしこれはビジネスであるためにコストがかかり、それを嫌うお偉いさんは多いです。

この質問は、要するに
仕事での影響とプライベートの影響その両方を回答しなければならないかもしれません。

最新の情報を学ぶとしても、それがあなたに仕事として与えられたタスクになることはほとんどないでしょう。ならば、プライベートで学ぶ必要があります。
ただし、それは仕事ではないので、あなたの個人的な判断になります。
    • good
    • 0

忘れでも調べればでるのであまり重要では無いです


忘れては行けないことはメモります
    • good
    • 0

>>・普段からプログラミングを継続してないと忘れていきますか?



そりゃあ、しばらく離れていたら、忘れる部分はあるでしょう。
でも、必要があれば、もういちど専門書をパラパラ見るとか、実際のプログラムコードを見ていれば、思い出すことでしょう。
数学において、三角関数の公式を忘れていたとしても、学生時代にテストで95点だった人と10点だった人では、思い出し方に大きな差があると思いますが、それと同じでしょう。

>>・毎年、毎年、バージョンアップする度に新しい仕組みを勉強する必要がありますか?

バージョンアップに追随するための勉強の必要性は、それほど大きくはありません。
とはいえ、C#の最新バージョンは、現時点だと Ver.13です。
C#は、プログラマが便利で使い勝手のよい機能をちょくちょく追加しています。
なので、長くプログラミングから離れていたら、ソースコードを見て、「なんじゃこれ!?」って訳分からないことになっていたりすることもあるので、それなりに最新をフォローしておく必要はありそうです。

古いC言語についていえば、次期バージョンは、C23です。
いろいろと変わっているところがあって、驚かされます。
ただ、「最新のC言語を勉強しないと・・」という場面は少なそうな気がします。仕事でC言語に触る機会が発生したとしても、最新の機能は使わないはずだから。
最新の機能を使ったりしたら、職場のコンパイラーではエラーになるでしょうからね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A