プログラミングは一度覚えれば完全には忘れない?

Solo Life Design|ひとり人生設計

昔かなり使っていたプログラミング言語でも、何年も触っていないと忘れてしまう。

変数の書き方。

関数の名前。

データベースへの接続方法。

エラー処理。

細かい文法。

久しぶりにコードを見ると、

「こんなに忘れていたのか」

と思うことがある。

では、プログラミングは長い間やらなければ完全に忘れてしまうのだろうか。

最近、昔覚えた技術について考えることが増えてきた。

そこで今回は、

プログラミングは一度しっかり覚えれば完全には忘れないのか?

ということを考えてみたい。

文法はかなり忘れる

これは普通にあると思う。

何年も使っていない言語なら、細かい文法は忘れる。

例えば昔は何も考えずに書けていたコードでも、

「ここはどう書くんだっけ?」

となる。

関数名が出てこない。

引数の順番を忘れている。

記号を忘れている。

昔なら数分で書けた処理に時間がかかる。

だから久しぶりにプログラミングをすると、

「もう全部忘れてしまった」

という感覚になりやすい。

しかし、本当に全部なくなっているのだろうか。

コードを見ると少しずつ思い出す

面白いのは、昔使っていた言語のコードを見ると、

「これ知っている」

という感覚が出てくることだ。

自分でゼロから書けなくても、読めば意味が分かる。

さらに少し調べると、

「ああ、そうだった」

と思い出す。

完全な初心者なら、その知識を初めて理解しなければならない。

しかし経験者の場合は、

新しく覚えるというより、昔の記憶を呼び戻している

ような状態になることがある。

ここはかなり大きな違いだと思う。

プログラミングの考え方は残りやすい

細かい文法以上に残りやすいのが、プログラムを作るときの考え方ではないだろうか。

条件によって処理を分ける。

同じ処理を繰り返す。

データを変数へ入れる。

処理を小さく分割する。

入力された値をチェックする。

エラーが起きる可能性を考える。

データを取得して加工する。

結果を画面やファイルへ出す。

言語が変わっても、こうした基本的な発想はかなり共通している。

昔覚えた言語そのものを忘れていても、

「プログラムはこういう順番で考える」

という感覚は残っている可能性がある。

別の言語を覚えるときにも経験が使える

例えば昔Visual Basicを使っていた人がPythonを勉強するとする。

当然、書き方は違う。

最初は戸惑う。

しかし、

変数とは何か。

条件分岐とは何か。

ループとは何か。

関数とは何か。

配列やデータ構造とは何か。

こうした基本概念を一から理解する必要はない。

「Pythonではどう書くのか」

を覚えればいい部分も多い。

これはプログラミング経験者の大きな強みだと思う。

昔の知識がそのまま使えなくても、昔の経験が新しい技術を理解する土台になる。

デバッグの感覚も残る

プログラミング経験で意外と重要なのが、

うまく動かなかったときに何を疑うか

という感覚だ。

プログラムが動かない。

初心者のころなら、

「なぜ動かないのか全然分からない」

となる。

しかし経験を積むと、

入力値がおかしくないか。

条件式が間違っていないか。

変数に想定した値が入っているか。

処理がそこまで到達しているか。

データが取得できているか。

など、順番に確認するようになる。

これは特定のプログラミング言語だけの知識ではない。

問題を切り分ける経験だ。

こういう部分は、何年プログラミングから離れていても比較的残りやすいのではないかと思う。

「忘れた」と「経験がなくなった」は違う

ここを分けて考えたほうがいい。

文法を忘れた。

関数名を忘れた。

開発環境の使い方を忘れた。

だからといって、

過去のプログラミング経験そのものがゼロになったわけではない。

例えば自転車に何年も乗っていなかった人でも、久しぶりに乗れば最初は少し怖い。

しかし初めて自転車へ乗る人とは違う。

完全に同じではないが、プログラミングにも似たところがあるように感じる。

一度身につけた考え方は、再開したときの助けになる。

もちろん昔の知識だけでは足りない

一方で、

「昔プログラミングをしていたから、今でもそのまま何でもできる」

と考えるのも違う。

技術は変わる。

開発環境も変わる。

昔は一般的だった方法が、今では使われなくなっていることもある。

新しいツールや考え方も増えている。

だから過去の経験は、

現在の勉強をしなくてもいい理由ではない。

むしろ、

現在の技術を覚えるための土台

として使うのがいいと思う。

AIがあると「思い出す勉強」がしやすい

今は昔と大きく違うものがある。

AIだ。

昔なら、分からないコードがあれば本を探したり検索したりしていた。

今なら、

「このコードは何をしている?」

「昔のVisual Basicではこう書いたけど、Pythonならどう書く?」

「このエラーはどこを確認すればいい?」

と聞ける。

もちろんAIの回答が常に正しいとは限らないので確認は必要だ。

それでも、昔の知識を思い出すための補助としてはかなり便利だと思う。

忘れている部分だけを質問できるからだ。

最初から全部覚え直そうとしなくてもいい

久しぶりにプログラミングを始めると、

「基礎から全部勉強し直さなければ」

と思うかもしれない。

でも、経験があるなら必ずしも最初から全部やる必要はない。

まず昔のコードを見る。

簡単なプログラムを書いてみる。

分からないところだけ調べる。

少しずつ触っていく。

すると、

「ここは覚えている」

「ここは忘れている」

という境界が見えてくる。

そのあと、忘れている部分を重点的に勉強すればいい。

この方法のほうが効率がいい場合もありそうだ。

20年前の経験でも完全なゼロにはならない

ITの世界では20年という時間は長い。

使われる技術も大きく変わる。

それでも、

プログラムを考える。

エラーを探す。

データを扱う。

処理を分ける。

結果を確認する。

こうした経験まで全部消えるわけではない。

だから昔の技術しか経験していないからといって、

「もう意味がない」

と決める必要はないと思う。

昔の経験の上に、新しい知識を少しずつ追加していけばいい。

まとめ

プログラミングは一度覚えれば絶対に忘れない、とは言えない。

細かい文法や関数名は普通に忘れる。

長期間使わなければ、コードを書く速度も落ちる。

しかし、

プログラミングをした経験まで完全になくなるわけではない。

コードを見たときの感覚。

処理を組み立てる考え方。

エラーを切り分ける方法。

データを扱う感覚。

そうした部分は残っていることがある。

そして再び触り始めると、忘れていた知識が少しずつ戻ってくる。

だから、

「昔やっていたけど、もう忘れたから無理」

と最初から決めなくてもいい。

完全にゼロから始めるのではない。

昔作った土台の上に、もう一度積み上げていく。

そう考えると、久しぶりのプログラミングも少し始めやすくなる。

コメント

タイトルとURLをコピーしました