ソフトウェアの開発はIQを向上させますか?

ソフトウェアの開発はIQを向上させますか?

はい、プログラミングソフトウェアはできます IQを部分的に上げる, IQテストで評価される論理数学および創造的知性に直接利益をもたらすからです。

プログラマーの頭脳

ただし、ソフトウェアの開発は私たちの認知能力に有利に働くことを覚えておくことが重要です 彼らがの環境で育てられている限り グッドプラクティスと継続的な学習.

あなたの考え方に影響を与える優れたソフトウェア開発慣行

ソフトウェアプロジェクトの開発経験がすでにある場合は、 私たちはすでに、理想的なソフトウェアプロジェクトが何であるかについてのメンタルモデルを構築しました。 しかし、 ソフトウェアプロジェクトを正しく開発するためにどのように行くのですか?

今日、インターネット上で方法論に関する豊富な情報を見つけることができるので、それほど複雑ではないように思われるかもしれません。 SCRUMやエクストリームプログラミングなどのプロジェクトの開発用。 どちらも、組織を保証するために、プロジェクトの開発サイクル中に従わなければならないガイドラインを提供します。 観察、時間の見積もり、および/またはチームワーク。

優れたソフトウェア開発プラクティス

私たちの観点から:

整理する(生産性を高める)ことは、プログラミングを学ぶよりもはるかに難しい場合があります (始めたばかりの人のために)、または新しいテクノロジーを習得する、本当に難しいのは構造化されたプロジェクトを開発することなので、 正確で何よりも、読みやすい方法。

アルバートアインシュタインはかつて言った:

簡単に説明できないと、十分に理解できません。 Albert Einstein

これは、特にソフトウェア開発など、学習のあらゆる分野に当てはまります。 コードを単純化できず、サードパーティがプロジェクトを理解できるようにコードを整理できない場合は、 私たちはそれをうまくやっていない。

この意味で、実践を通して、私たちは達成しなければなりません 私たちの考え方や行動を形作る. さらに、ガイドラインとさまざまなフレームワークによって提供されるガイドラインを考慮に入れてください。 私たちのプロジェクトに適用される専門家の方法論および/または推奨事項。 ただし、そのようなガイドラインに従うことはお勧めできず、効率的でもありません。 私たちは柔軟でなければならず、厳格ではありません.

スポンジボブとパトリックのプログラミング

次に、2について説明します 優れたソフトウェア開発プラクティス あなたが考慮に入れなければならないこと あなたのプロジェクトを実行するとき、そして私はあなたの考え方を変えることになると確信しています。

Simplicity

コードをできるだけシンプルにしてください!

それを言うのはニュースではありません コンピューティングにおける最大の問題の1つは、複雑さです. したがって, シンプルさは、ソフトウェアの世界でおそらく最も重要で価値のある品質です.

時が経つにつれ、コンピュータは私たちの生活に欠かせないものになり、社会に非常に重要な変化をもたらしました。 つまり、コンピューターは、より少ないリソースでより多くのことを実行できるため、つまり、より少ない人的資源で多くのタスクを実行できるため、便利です。

ある人が、コンピューターが1年間に行うすべての操作を実行したいとしていると想像してみてください。 おそらく、彼が彼の人生を去るのに何年もかかるでしょう、そしてそれはコンピュータの本当の価値がそのスピードと正確さであるということです。 そしてそれは素晴らしいです!

しかし、コンピューターには大きな欠陥があるため、これほど完璧ではありませんでした。常に欠陥があります。 おそらく、彼らが通常ソフトウェアの欠陥を持っている回数をまだ認識していません。 頻繁に使用するものがコンピューターのように故障していたら、今ではそれを取り除いていただろうと思います。

コンピューターの障害

すべてではないにしても、私が知っているほとんどの人は、週に少なくとも1回の被害を経験していますが、それ以上ではありません。 少なくとも週に一度は何らかの失敗に見舞われたか、友人や 同僚も同じことを約10年間経験しています。

私たちが数えると、私の経験では、480の異なる形式の故障があります。そして、それはクールではありません。

なぜコンピュータはこれほど継続的にクラッシュするのですか?

ソフトウェアに関して言えば、唯一の理由があります。それは悪いプログラマーです。

約5年前、私はその理由が悪いプログラマーであると疑っていました。しかし、よくわかりませんでした。 IT分野での数年の経験と、出版物を通じて多くの専門家に相談したことで、私はもはや疑いを持っていません。

私は、悪いプログラマーが無数のコンピューターの故障のせいになっていると完全に言うことができます。

数え切れないほどのコンピューターの不具合

悪いプログラマーとは何ですか?

ソフトウェアプログラマーを非難するのは少し不公平に思えますが、 私が知っている大多数の人々が高レベルのソフトウェア開発に専念しているときはなおさらです 論理的思考をかなり発達させた専門家です。

プログラマーの大多数が非常に論理的な人々である場合、なぜこれほど多くのバグを持つソフトウェアがあるのでしょうか。 コンピュータエラーの主な理由は 複雑.

コンピューターの構築は、おそらく私が知っている中で最も複雑なプロセスです。なぜなら、1秒ごとに経過するからです。 何百万ものタスクを実行できます。 さらに、同期して動作する必要のある何千ものパーツがあります。 コンピュータが単独で使用するオペレーティングシステムは、数千万行のコードで構成されています。 Windows 10だけが、400万を超えるファイルと50万を超えるフォルダーを持っています。これの証拠は、次のキャプチャです。

Windows10コードの行数

さらに完全なアイデアを提供するために、以下で詳しく説明します。 オペレーティングシステムごとのコード行数:

Operating system コード行
Linux 3.1 Kernel 15 millions
Windows XP 40 millions
Windows 7 40 millions
Windows Vista 50 millions
Debian 5.0 (base code) 67 millions
Mac OS X «Lion» 85 millions

私はあなたに追加情報を残します:

Facebookには約6,100万行のコードがあり、Googleには約20億行のコードがあります. もちろん、グーグルが提供する多数のサービスはそれを正当化します。

GoogleとFacebookからのコードの行数

コンピュータが動作するソフトウェアは非常に複雑であるため、おそらく誰もコード全体を理解することはできません。

したがって、プログラミングは、複雑さを軽減して単純さを実現しようとする環境に存在する必要があります。 このようにして、並外れた才能を持たないプログラマーがアプリケーションで作業を続けることができるようにします。 そうしないと、コードが非常に複雑になり、作業がほぼ不可能になる可能性があります。

要するに、それがプログラミングのすべてです。「複雑さを単純化する」。

優れたプログラマーになるには?

優れたプログラマーは、理解しやすく、保守しやすく、バグを見つけやすいものを作成します。 ただし、単純さをコード行の数の減少と混同したり、最新のテクノロジーを使用しなくなったりしないでください。 コードを単純化すると、コードの行が増える場合があります。必ず文書化してください。

一般に、より高度なテクノロジーや最新のテクノロジーは、当然、単純化する傾向があります。 あなたはそれらを正しく使う方法を学ぶ必要があるだけであり、それはしばしば挑戦です。

男プログラミングソフトウェア

単純化された方法でプログラミングするのはもっと難しいですか?

一般に、単純化された方法でプログラミングすることは、迅速に行うよりも時間がかかると私たちは考えています。 たとえば、仕事のいくつかのタスクを実行する必要がある場合、私たちは通常、考えたり計画したりすることをやめることなく、迅速にそれを実行しようとします。 これ以上間違いはありません!

最大限の理解を求めて問題について考えることに多くの時間を費やす方が効率的です このようにして、ソリューションの作成をすばやく開始してから停止するよりも、簡略化されたソリューションを提案できます。 実装が不必要に複雑になったことを認識してください。

ソフトウェアプロジェクトの計画

あなたはただあなたの周りを見て、COMPLEXITYがソフトウェアプログラムで起こっている大きな問題に気付く必要があります。

恐ろしいものに新しい機能を追加しようとすると停滞している多くのアプリケーションがあります、 彼らがなった巨大で複雑なコードの怪物。

単純化されたプログラミングの基礎と方法についてもっと知りたい場合は、次の本を読むことをお勧めします。 私はそれが好きだった!

コードのシンプルさソフトウェアの基礎

コードのシンプルさ:ソフトウェアの基礎 , written by Max Kanat-Alexander.

GoogleのCodeHealthの最高技術責任者であり、Bugzillaプロジェクトの元チーフアーキテクト。 彼は8歳からコンピューターを修理し、14歳からソフトウェアを書いています。

テスト

常にテストを実行してください。それらはオプションではありません!

実際には、それらはオプションであるべきではありませんでしたが、多くのプログラマーは、ソフトウェアテストを使用せずにアプリケーションを開発しています。 コードエラーはエンドカスタマーから報告されるためです。これは通常、平均的なフリーランサーに当てはまります。

テストなしのプログラミングは、シートベルトなしで運転したり、セーフティネットなしで空中ブランコスタントをしたりするようなものです。 現在、ソフトウェアを常にテストするというグッドプラクティスはまだ採用されていません。

テストなしでソフトウェアを開発することは、セキュリティなしでスタントを行うようなものです

ソフトウェアテストの不在または誤った使用が原因で発生したいくつかの前提条件を確認しましょう それは数百万ドルの経済的損失を引き起こし、場合によっては数十人の命を犠牲にしました。

ソフトウェアテストの不在または誤った使用が原因でコンピュータエラーが発生しました

下記のイベントは、ソフトウェアテストを反映し、より重要視するようになると確信しています。

ソフトウェアテスト
ミサイル探知機レーダーの故障。

それは、ソビエト連邦のミサイル検出警報システムが、米国が5発のミサイルを発射し、それらが進行中であると報告した1983年に起こりました。

幸いなことに、直感および/または基準による担当者は、それに応じて即時攻撃を命じませんでした、 彼らは攻撃が文脈から外れていて、ミサイルの数のために奇妙だと考えたので、 彼らは奇襲攻撃に一般的に使用されるものではなかったので。

数時間後、すべてがミサイルレーダーシステムのエラーによって引き起こされたことが確認されました。 システムが雲の中での太陽の反射を混乱させたため、その時点で検出するのがやや難しいエラー ミサイルで特定の位置に。 少しの間、第三次世界大戦を開始することになります。 ただし、次のことを徹底的に行った後は回避された可能性があります。

  • 環境の研究 アラートシステムが展開される予定だった場所
  • , と
  • すべてのタイプの入力変数の注入 システムに影響を与える可能性があります.

どちらもソフトウェアテストの一部であるプラクティスです。

米国のミサイルを発射
マリナー1号の破壊

1962年に発生し、約1,850万ドルの損失を引き起こしました。 マリナー1号は、残念ながら成功せずに金星上空を飛行しようとしたマリナー計画の最初のミッションでした。

離陸後293秒、 ソフトウェアのバグ 発見された。このバグはその軌道をそらしました。 数秒後、コマンドを送信して破壊し、落下によるさらなるダメージを防ぐ必要がありました。

エラーは後で決定されました:正しくプログラムされていないコード内の式。

宇宙ロケット爆発
Therac-25、放射線治療線形加速器

あなたは自問するでしょう, 放射線治療線形加速器とは何ですか? 線形加速器は、さまざまな角度から腫瘍に向けられたX線ビームを放出する機械です。 素晴らしいことは、これらのデバイスが周囲の領域に影響を与えることなく腫瘍の形状に合うようにX線をカスタマイズできることです。

1985年6月から1987年1月の間に、AECL(Atomic Energy of Canada Limited)によって製造されたTherac-25 放射線の過剰摂取による少なくとも6件の事故と3人の死亡の参加者でした。

Therac-25線形加速器

調査の結果、 セラック25の事故の主な原因は次のとおりです。:

  • 悪いソフトウェア開発慣行。
  • 不十分な要件分析。
  • 悪いソフトウェア設計。

そして、それだけでは不十分な場合、Therac-25が実行されたソフトウェアは、特定することがほとんど不可能な方法で開発されました。 バグやエラーを自動的に修正します。

見つかったその他の原因:

  • AECLは、ソースコードをレビューするために独立したエンティティを送信したことはありません。
  • リスク管理に関連する機能は設計で考慮されていません。
  • システムは、センサーの正しい動作を検証することを許可しませんでした。
  • 定数値を保持する代わりに値を変更するフラグ変数がありました。
  • 変数「class3」がオーバーフローしました。
  • とりわけ。
Class3変数オーバーフロー
ヨークタウン(CG-48)とそのゼロ除算を出荷します

信じられないかもしれませんが、ヨークタウンシップは、戦闘における卓越性、特にその技術設備で数え切れないほどの賞を受賞した軍艦です。 ソフトウェアエラーのために牽引されてしまいました。

1997年9月、乗組員がデータベースフィールドにゼロを入力したため、システムは内部でゼロによる除算を実行しました。 これによりバグが発生し、最終的にバッファオーバーフローが発生し、最終的に船の推進システムに障害が発生しました。

ヨークタウン船
スプリットエラーのあるIntelPentiumプロセッサ

1993年、Intelは誤算のある新しいプロセッサをリリースしました。 気付くのは非常に困難でしたが、エラーを確認するには、かなり正確な結果を必要とする操作を実行する必要がありました。

それにもかかわらず、Intelは約3億5000万ドルの損失を被りました。これには、定量化が困難なイメージへのダメージは含まれていません。

IntelPentiumプロセッサ

私があなたにちょうど言及した5つのケースは残念ながら持っている無数のコンピュータエラーのほんの一部です 人命を犠牲にし、正しいソフトウェアを書く必要があることの明らかな証拠です。

ソフトウェアエンジニア、および構造エンジニアや土木エンジニアは、次の方法でデモンストレーションできる必要があります。 必要な機能の信頼性と実現。

お気づきかもしれませんが、テストはあらゆるプロジェクトの基本的な部分です。それらはオプションではありません!

彼女の本のIleneBurnsteinによると: “実用的なソフトウェアテスト”, ソフトウェアテストには、3つの主要なプロセスがあります。

  • テストケース開発
  • テストケースの実行
  • 結果の分析

テストケースを作成するのに時間がかからない場合、それは正しく行われていません。 できるだけ多くのケースをシミュレートするさまざまなシナリオでテストケースを構築することが重要です。 運が悪いことに、シナリオを100%シミュレートすることは不可能です。

Well said Edsger Dijkstra:

テストでは、プログラムにエラーが存在することは示されますが、エラーがないことは示されません。 Edsger Dijkstra (1972年のチューリング賞)
ソフトウェアテストが実際にどのように見えるかのステージング

しかし、誤ったテストの実行によって引き起こされるコンピューターエラーの多くのケースがあるように、賞に値するサクセスストーリーもあります。

完璧に近いソフトウェアの例

今日では、自動化能力の向上に伴い、他の製品と同じくらい信頼性の高いソフトウェアを開発することが可能です。

パリのメトロの14号線は完全に自動化されています。列車は無人運転で、ソフトウェアで運行されています。この列車路線は1998年に運行を開始しました。

パリメトロ14号線

それは事実ですが、その完全性を保証することはできず、数十年が経過し、障害は検出されていません。 徹底的なテスト作業のおかげで、テストプロセスで約8万6千の命令を実行することになりました。

一般に、一部の国では、人的損失を引き起こす可能性のあるシステムに対してのみ、完璧なソフトウェアを保証できる厳密なテストプロセスが必要です。

ソフトウェア会社の大多数は、コストが高いため、このような厳格なテストプロセスの実装を拒否しています。 これは、そのようなタスクに十分なトレーニングと経験を備えたテストに専念する専門家を見つけることが難しいことを意味し、また、 ソフトウェアテストプロセスの実装には、ソフトウェア自体の開発と同じかそれ以上の費用がかかる可能性があるためです。

もちろん、「あなたは自分の番になるまで学ばない」、INTELの場合のように、 プロセッサソフトウェアの計算エラーのために約3億5000万ドルを失う必要がありました。 ソフトウェアテスト研究の予算が最も高いIT企業の1つになった原因となった間違い。

ソフトウェアテストのコスト

ソフトウェアテストの現在の状況はどのようなものですか?

ソフトウェアプロジェクトを開発するためのパスは、明確に定義された3つの段階で構成されます。

  • Specifications
  • 設計とコーディング
  • 検証

検証段階では、担当のエンジニアがソフトウェアが仕様で計画されているものに準拠していることを確認します。 彼らがそれを行う方法は「テスト」によるものです。

ソフトウェアが検証されると、すべての仕様を満たしていると見なされ、検証サイクルが最後に繰り返されます。 正しい検証を検証するため。

ソフトウェアテストの重要性

上で説明したことには、矛盾という大きな問題があります。以下で説明します。

今日のソフトウェアテストのエラーと矛盾

現在の検証方法「テスト」で最も重要な問題は、ソフトウェアが 仕様書に記載されています。 これは、仕様の起草が自然言語で行われ、用語は常に個別に解釈される傾向があるためです。 これは、プロジェクトの最後に確実に気付くであろう曖昧さを生み出します。

2番目の問題は 考えられるすべてのケースをテストすることはできません. 次のような小さなソフトウェアがあるとします。

  • 入力として任意の数値を受け取ります,
  • 10を追加して
  • 結果として合計の値を返します。

入力データは無限であるため、考えられるすべてのケースをテストすることは不可能です。 そのため、ソフトウェアテストは、選択されたケースのサンプルでのみ実行されます。これは、非常に小さなサンプルである場合もあります。 これらの悪い慣行の理由は、財政的および時間的制約によって正当化されます。 結論として、そのような主張の証拠が不十分であるため、テスト段階を完了した後のソフトウェアが正しいとは言えません。

私たちが論理的であろうとする場合(私たちがコンピューティングの分野に専念している場合のように)、ソフトウェアが正しいことを確認することによって テストフェーズを完了し、エラーが見つからなかった後、次のようなものが発生します。 “無知の誤謬への呼びかけ”.

論理的には、無知への呼びかけとしても知られている無知に訴える論争、または無知に訴える論争、 は、反対の証拠がないと主張する命題の真実(または偽り)を維持することにある誤謬です。 または、反対の説得力のある証拠を提示することを相手にできない、または拒否することを主張する。 あいまいさに対するこの焦りは、しばしば次のフレーズで批判されます。 「証拠の欠如は欠如の証拠ではない」、つまり、この誤謬は犯されている 命題についての既存の無知に基づいて、命題の真偽が推測される場合。 無知の誤謬への呼びかけ

お気づきかもしれませんが、ソフトウェアテストを従来の方法で何度も適用すると、多くの間違いを犯します。 これによって発生するコストについては認識していません。

あなたにアイデアを与えるためだけに:

  • ソフトウェアテストの従来の方法は、ソフトウェアの欠陥を検出することを含みます。
  • 続いて、デバッグフェーズに入ります。つまり、障害の原因を理解するためにコードを確認します。 そして最後にソフトウェアの欠陥を修正します。
  • このように作業することで、プログラマーは平均して49.9%の時間を自分のエラーのデバッグに費やします。
  • これは、年間1,560億ドルの世界的な支出を意味します。
ソフトウェア開発の構造におけるコスト
一貫性のないソフトウェアテストに対する提案されたソリューションとしての正式な開発

すでに見てきたように、主な問題の1つは、仕様のあいまいさです。これは、自然言語で表現すると、 正確さと論理的な数学的意味が欠けています。 1つの解決策は、あいまいさの余地がない形式言語を使用することです。

ソフトウェアプロジェクトの開発に形式手法を使用することにより、 ソフトウェアの特性および/または機能の確実性は、控除、言い換えれば数学(p-> q)によって保証されます。

この形式手法は、仕様の作成にはるかに高い精度が必要であり、コードを作成するときに仕様に基づいて信頼性を実証できるように、あいまいさを排除する必要があるため、準備にはるかに多くの時間と予算が必要です。

高品質のソフトウェアを作成するためにこの需要の限界に達することは、現実からかなりかけ離れているように思われます。 ただし、現在、システムを正式な開発に基づいている企業があります。通常、小さなエラーが人命の損失を即座に意味する可能性がある重要な領域に専念している企業があります。

ただし、小規模では、このようなレベルの需要は有益ではありません。少なくとも、従来のテストに準拠する必要があります。

以下に、質の高いプロジェクトの開発を検討している場合に見逃してはならない一連のグッドプラクティスの出版物を紹介します。

Programación y más

グッドプラクティスの出版物

継続的な学習は私たちの脳にどのように役立ちますか?

学習は私たちの脳の燃料のようなものです。

大学では、継続的に勉強することを犠牲にしてきましたが、それだけでは十分ではありませんでした。 なぜなら、あなたが学んだキャリアに関係なく、新しい情報を渡す毎分が出てくるからです。

常に新しいことを学ぶことがあります。

覚えておくべきことは、私たちが学習しているとき、私たちの脳は神経構造の変化の影響を受けるということです。

現代の研究はそれを示しました 脳には恒久的に変化して変形する能力があります (可塑性), 子供だけでなく大人にも。

脳のこれらの変化は、 継続的な学習のグッドプラクティス, シナプス接続を再構築し、時には新しい接続を作成します。

以前は、人の脳が大きくなったり重くなったりするほど、知能が高くなると信じられていました。 ただし、最近の研究では、IQが高い人ほどニューラルネットワークの密度は低くなりますが、同時にはるかに組織化されていることがわかりました。

この調査では、IQは次の要因に基づいて計算されています。

  • 分析能力
  • 反射能力
  • 問題解決
継続的な学習が私たちの脳にどのように役立つか

問題の研究に関するもう少し情報があります:

インテリジェンスはニューロンの効率に基づいています - Erhan Genç

ErhanGençが率いるチームは、18歳から40歳までの259人の男性と女性の脳を分析しました。 大脳皮質の樹状突起、つまり、細胞が知能のパフォーマンスで互いに通信するために使用した神経細胞の拡張を測定するため。

研究の前に、すべての参加者はIQテストを受けました。樹状突起を研究した後、 IQが高いほど、大脳皮質にある樹状突起は少ないと判断されました。

Neural efficiency

言い換えれば、賢い人はニューロンが多いだけでなく、ニューロン間の樹状突起の接続も少ないと結論付けられました 認知時。つまり、ニューラルネットワークの密度が低くなります。

研究は500人のサンプルで検証され、同じ結論に達しました。

研究の筆頭著者であるErhanGençは次のように結論付けました。

インテリジェントな脳は、薄いが非常に効率的なニューラルネットワークを特徴としています。 これは、神経活動を最小限に抑えながら、高レベルの思考を実現するのに役立ちます。 Erhan Genç

プログラミングは私たちの精神的能力にどのように影響しますか?

前の段落ですでに述べたように、 プログラミングは、それを実践する人々の考え方に影響を与えます。 その意味で、それは私たちに直接影響を与えます 精神的能力.

But in what way does it do it? Let's see.

プログラマーは他の人とは非常に異なった考え方をします, 一般に、必ずしもそうとは限りませんが、平均よりも論理的で合理的である傾向があるためです。

私たちはプログラミングを学ぶことに決めたので、どの言語から始めるかを選ばなければなりません。 そのような選択は完全に真実ではありませんが、一般的に、大多数が ソフトウェア開発の世界に専念している人の中には、経験のない私たちの最初の言語を選択するか、課せられたプログラミング言語から始めなければならないという事実があります。大学および/または大学の教師による。

しかし、インターネット上で見つけることができる情報の量のために、そのような制限はますます頻繁ではありません 独学の学習の高いインセンティブと促進。

ジム・キャリーのプログラミングが速い

プログラミング言語のパラダイムはすでに多くの心を形作っています, 開始された言語によっては、他の場合よりも制限が多い場合があります。これはあなたの第一言語があなたの成功または失敗を定義するという意味ではありませんが、私は意味します プログラミングの世界で始まるパラダイムは、私たちの思考にパターンを挿入します.

COBOL、FORTRAN、またはPASCALを使用してプログラミングすることを学んだとしても、失敗する運命にあるという意味ではありません。 ただし、最新のテクノロジーとの非互換性、およびライブラリや機能の欠如により、学習と拡張が制限されます。

また、50年以上前のプログラミング言語が悪いことを意味するものでもありません。

銀行、年金基金マネージャー、保険会社の運用と取引のために設計された多くのシステムは、引き続きCOBOLを使用しています。 そして、彼らはこれから何年もそれを使い続けるようです。

Hello world with COBOL

私は、見た目と同じくらい信じられないほど、すべて真実であるといういくつかの事実に言及します。

ビジネスデータの75%はCOBOLで処理されます(出典:Gartner)。

世界中で1,800億から2,000億のCOBOL回線が使用されています(Gartner)。

15% of new applications are written in COBOL (Gartner).

ガートナーグループ

そして、COBOLから最新のテクノロジーシステムに移行するのにどれくらいの費用がかかりますか?

COBOLシステムの交換コストは1行あたり25ドルと見積もられており、数千億ドルにのぼります。 戦術戦略グループ

ビル・カーティスはよく言った:

銀行は、Javaなどの新しい言語で発生するセキュリティと開発の問題がないため、古いCOBOLアプリケーションを使用する必要があります。 Bill Curtis, CAST COO

以下に言及します プログラミングがあなたの脳に影響を与える3つの方法:

1. プログラムに使用するツールは、メンタルモデルに影響を与えます

私たちが始めたプログラミング言語は、あなたの考え方に直接影響を与えるパラダイムやイディオムを伴うツールにすぎません。何のためでもない、Edsger

分散プログラミングの確立のパイオニアの1人であるダイクストラは次のように述べています。

私たちが使用するツールは、私たちに深刻な(そして悪意のある)影響を及ぼします 思考習慣 と、 したがって、私たちの 思考能力. Edsger Dijkstra

私たちが始めるプログラミング言語がどれほど重要であるか、そして一般的にプログラミング時に使用するすべてのツールのセットがどれほど重要であるかがわかったので、最初のプログラミング言語を選択するときに最初に考慮することは快適さです。

始めたばかりの場合は、お金に夢中にならないでください。他の言語よりも高額なプログラミング言語があるのは事実ですが、お金を目標にするべきではありません。もしそうなら、私はあなたにCOBOL、PASCAL、FORTRAN、ドキュメントがほとんどなく、現在それを実践している言語がほとんどない言語でプログラミングを始めることをお勧めします、それが彼らが必要とされるところに非常によく支払われる理由です。

実際には、ソフトウェア開発に専念することは、思考習慣と認知スキルに利益をもたらすだけでなく、現在成長している非常に高給のセクターであるため、安定した経済的未来以上のものを保証することもできます。

十分に支払われたソフトウェアエンジニア

今日が始めるのに最適な時期です。理由を見てみましょう:

ITセクターが2021年に最も推奨されたものの1つであるのはなぜですか?

ラテンアメリカ・カリブ経済委員会(ECLAC)によると、ラテンアメリカ諸国は2020年の景気後退後に成長を開始します。

2021年には3.7%の成長が見込まれ、 主人公はデジタルの世界に専念している人たちです.

2. 脳にとって健康です

すでに述べたように、学習は脳にプラスの効果をもたらします。 この意味で、プログラミングは脳に直接有利な精神運動として数えられます。

脳の健康に対するプログラミングの利点を確認するいくつかの背景を確認しましょう。

1991年の調査では、コンピュータープログラミングが認知結果に及ぼす影響を調査し、次のように判断しました。 プログラミング関連分野の学生は、IQテストで平均より16パーセンタイルポイント高いスコアを獲得します.

1999年の別の大規模な研究では、知的に魅力的な活動が認知機能の低下に対して個人を緩衝するのに役立つことが確認されました。

2009年後半の研究によると、晩年に脳を刺激する活動に従事する人々は、リスクを低下させ、アルツハイマー病やその他のタイプの認知症の発症を遅らせることさえできることがわかりました。

3. プログラミング中、脳の最大5つの領域を刺激します

2014年にタイトルの研究 “ソースコードを理解する機能的磁気共鳴画像法で理解する” プログラマーがコードのビットを操作して理解しようとしたときに、機能的磁気共鳴画像スキャンを使用して脳の活動を観察しました。

脳の5つの領域が関与していると結論付けられました:

  • BA 6: 中前頭回(注意、言語、作業記憶)
  • BA 21: 平均側頭回(意味記憶検索)
  • BA 40: 下頭頂葉(作業記憶)
  • BA 44: 下前頭回(作業記憶)
  • BA 47: 下前頭回(言語、作業記憶)

参加者は20行のコードスニペットをレビューする必要があったことを覚えておく必要がありますが、これは大きな課題ではありません。そしてそれが、数学的計算に関連する脳の領域で活動が検出されなかった理由です。

気づいたのは、通常は言語処理、記憶、注意に関連する脳の部分の高度な介入でした。

プログラミングは、スーパーパワーを持つことに最も近いものです。 Drew Houston, DropboxのCEO
プログラミングは超能力を持つことに最も近いものです
上向き矢印
テストを受けます 瞬時にIQを評価してください!国際ICテスト。

オンライン知的係数テスト

Albert Einstein

あなたのIQは何ですか?

読み続けます ...

©2020-無断複写・転載を禁じます