私はもうすぐ30歳ですが、現在の仕事は公的機関の会計士なので、日常生活でプログラミングは必要ありません。
でも、高校時代にゲームに飽きて、HTMLとphpの作り方を少し勉強して、収入を得ました。私の純粋な興味は、おそらくセミプロの仕事に変わりました。 4、5 年経つと、以前は主に CMS と SEO に頼っていましたが、PHP は入門レベルではなかったので、ノートブックを構築することができました。
今、社会の発展が早すぎて、私はまだ少し興味を持っていますが、仕事の空き時間を使って言語をしっかり学びたいと思っています。一方で、それは私の興味を満たしますし、さらに重要なことに、それは準備にもなります。将来的に役立つかもしれません。どの言語を学べばよいかわかりません。
返信内容:
公的機関の会計士…公的機関の会計士が昔(2000年頃)に何を学んだかご存知ですか?
Visual FoxPro
以前は、多くの場合、必要に応じて自動処理スクリプトを作成する必要がありましたが、Visual FoxPro は非常に優れており、直感的でした。タイムリーなフィードバックが得られ、作業効率が向上しました(当時のxlsが簡単にインポートできました)。
以下の個人的な見解:
潜在的な仕事のニーズ: Excel の VBA (反復作業を大幅に軽減するツール)、Visual FoxPro (優先順位が低い、結局のところ、古すぎるが、存在するかどうかを言うのは難しい)これを必要とする古いデータに対処するため)
自分の興味や趣味の場合: Python を学んでクローラーを作成したり、Raspberry Pi をいじってスマート コントローラーを作成したり、携帯電話で簡単に実行できる小さなプログラムを作成したりすることは何でも可能です。自分自身で、記録するためにブログをいじってみてください。待て、待て、重要なのは、あなたが興味を持っていて、学ぶ意欲があるということです。

次に python を学びます。なぜ最初に Python を学ぶのでしょうか? そのモジュールは完成度が高く、「すぐに結果が得られる」からです。
それでも「最下層」を探索したい場合は、C に進みます。 C++ に騙されないでください。楽しみのために C++ を学ぶのは問題ありませんが、それは大きな罠です。
C の「モジュール」や「基礎」も非常に成熟しています...しかし、一般的に、C を学習しても「結果はすぐには出ません」。なぜなら、C の「基礎」はオペレーティング システムのカーネルだからです。 C の「API」は基本的にシステム コール (つまり、「Unix 環境での高度なプログラミング」) です。この時点で、C コンパイラによって吐き出されたアセンブリが何であるかを理解できる必要があります。次に、オペレーティング システムのカーネル、コンパイラ、バイナリ ツールなどに問い合わせて、これらの「低レベル」のものがどのように機能するかを理解します (「プログラマの自己修養」、「コンピュータ システムの深い理解」、「Linux デバイス」を参照)ドライバー") "、"Linux カーネルの設計と実装"、"Linux カーネルの深い理解"、"Linux カーネル アーキテクチャの詳細"...)。このように、C の罠は実際には非常に大きいです (C++ にそれを奪わせないでください。それが意味するところです。C の哲学は、基本的にすべてが乾いたものです。噛むことができる限り... C++、これです)そうではないかもしれません。時間を費やすよりも、C++ での派手なトリックをすべて無駄にするよりも、無味乾燥なものを食べたほうが良いでしょう)... なぜなら、カーネルのソース コードを読む場合は、Makefile、シェル スクリプトなどを理解する必要があるからです。リンカー スクリプト、ASM、そしてもちろんハードウェア アーキテクチャなどについても少しは知っていますが、いずれにしても、カーネルの作成に関する書籍で言及されているので、関連する知識ポイントを自分で確認できます。それは時間の問題です。
また、もちろん、データ構造とアルゴリズムの基礎をここで確立する必要があります。データ構造は、バイナリ ツリー、赤黒ツリーを検索し、グラフを構築するために少なくとも作成できます。アルゴリズム、基本的な並べ替え、マージ 並べ替え、クイック 並べ替え、順列と組み合わせを生成するには、DFS と BFS のこれらの基本的な検索を理解する必要があります。
C すぐには効果がありません。一般的に、しばらくは Web クローラーについては絶対に書きません。しかし...もしかしたらそれだけの価値があるかもしれません。
Cの再帰をクリアします。関数スタック フレームを作成および破棄する方法、それをアセンブリ コードに変換する方法、再帰をスタック構造 + ループ不変式に変換する方法。次に、任意のループは再帰によって表現できるが、再帰はスタック構造のないループでは表現できないという結論を導き出すことができます。つまり、再帰は (スタック構造のない) ループよりも強力な計算能力を備えています。再帰関数の計算能力はチューリング マシンの計算能力と同等です。さて、私たちはここにいます - 伝統的に言えば、私たちはコンピューターサイエンス/アートの扉に入りました。
始めたら気軽に遊べます。
最初にインタプリタを作成して遊んでみることができます。このためには、オートマトンの基本的な理論的知識 (「オートマトンの理論、言語、および計算入門」) を準備し、次に読むためのコンピレーション本 (「コンパイルの原理」) を見つける必要があります。1 冊では不十分な場合は、追加してください。もう少し (「コンパイルの原則」、「原則と実践」、「コンパイラのアーキテクチャ」) を参照すると、おそらく完全に説明されます。 「Homemade Programming Language」など、インタプリタの書き方を学べる別の本を探してください。次にコピーします。コピー後、コンパイル原則を読んで再度コピーしてください。このようなもの。
これは、趣味が悪くても、実装が不十分であっても、十分に複雑なコンピューター言語を自分で作成できることを意味します。
それからカジュアルにプレイしてください。
たとえば、Lisp システムを使用している場合は、最初にスキームを試してみることをお勧めします。
Prolog、Haskell、Ruby、io、Erlang、... 時間があるときに遊んでください。
とにかく、現時点ではどの言語を学ぶにも、一般的にはそれほど時間はかかりません。ただ始めたいだけであれば、現時点では言語を学ぶ必要はありません。一時的に学習してスタイルを真似すれば、基本的にはまともに書けるようになります。つまり、これが本当の遊びなのです。
とにかく、言語は自分で書くことができます。この時は「味覚」を養うことです。
それでは、たとえばカーネルについてはあまり熟練していないとしても、コンパイル理論でコードの特定の部分を探せば、そのコードがどこにあるのかを見つけることができます。実際には、より一般的またはより洗練されたものを書くことができます。特定のデータ構造とアルゴリズムの実装は、それをどのように書くかを考え、他の人が書いたものと比較するのが非常に興味深いです。
そうですね、実際には、どれだけ楽しく遊んでも、それだけでは十分ではありません。このレベルでは、非常に低いとは言えませんが、おそらくそれほど高くはありません。まだまだ未知のことがたくさんあります。しかし、人生の喜びはそこにあるのかもしれない。 パイソンをお勧めします
php、java、python、javascriptなどの言語を学ぶことはお勧めできません。専門的なソフトウェアとして仕事を見つけたい場合、これらの言語が良くないというわけではありません。エンジニアであれば、これらの言語を学ぶしかありません。多くの企業があり、仕事は簡単に見つかります。
ただし、質問者は会計士であり、私は主に仕事への興味と実際的な助けのためにプログラミングを学んだので、Windowsを学ぶことをお勧めします システムの下にある .net テクノロジー システムと、.net プラットフォームの下にある優先言語 c#
.net プラットフォームと c# を学ぶ理由
質問者は、プログラミングを学ぶ理由の 1 つは興味のためだと言いました。 興味があるので、就職を考える必要はありません。最もクールで強力な言語を学ぶのが最適です。ソフトウェア開発業界には非常に多くのプログラミング言語があります。最もクールな構文、最も便利で最も強力な機能を備えた言語を見つけたいなら、それは C# です。
もちろん、現在の関数型プログラミング言語の一部は構文の点で C# を打ち負かすことができますが、それらは実際にはプロ以外のプレイヤーが遊ぶのには適していないと思います。関数型プログラミング言語を学ぶことは、学ぶことよりも難しいことです。通常のプログラミング言語は非常に大きいので、単純なものを完璧にするためにこのエネルギーを使う方が良いのです。結局のところ、プログラマーではない人の主な仕事はプログラミングではありません。ただし、関数型プログラミングに興味がある場合は、.net プラットフォームの f# も良い選択です。
2 番目のポイントは、役立つ必要があるということです。対象者はもう30歳で、長年経理の仕事に就いていますが、転職してプログラマーになるのは不可能だと思います。 つまり、IT 業界で最も人気のある言語を学ぶ必要はありません。 実践的な学習を選択することです。C# が第一の選択肢であることは間違いありません。 Microsoft テクノロジーを使用したソフトウェア開発の特徴の 1 つは、異なるプラットフォームであってもプログラミングの概念が同じであることです。つまり、C# を使用して Web サイトを開発できるようになれば、C# を使用した Windows クライアントの開発にスムーズに移行できます。ターミナル アプリケーション、Windows10 uwp アプリケーション (Windows を含む) さらに驚くべきことに、Microsoft の .net に加えて、C# を使用して Android および iOS アプリケーションを開発することもできます。と C#、誰がそれを行うことができますか? .net と C# を学んでいれば、将来どんなソフトウェアでも開発できますし、仕事ができるふりをすることもできます。
Python と Java が .net よりも多くのライブラリを持っている可能性があることは否定できませんが、.net がデフォルトで提供するライブラリのほとんどは、想像できるあらゆる関数を開発するのに十分です。何年もの間、ライブラリが不足するという問題に遭遇したことはありません。 さらに、Python と Java ライブラリの最大の問題はバージョンの問題です。Python と Java を使用する過程で最もよく遭遇する問題は、オンラインでダウンロードしたライブラリのバージョンがローカルにインストールされている動作環境と一致しないことであり、その結果、さまざまな問題が発生します。不可解な数秒のエラー、これらの問題は .net では発生しません。また、.net のドキュメントも非常に充実しており、どんなに些細なことでもすべて msdn に記録されています。
もう 1 つの問題は開発環境です。他の言語でプログラムを開発する場合、実行環境、IDE、サーバー、さまざまな設定など、たくさんのものをインストールする必要があります。これはプロのプログラマーにとっては重要ではありません。質問は初心者ではありませんが、それでもこれらのことを行うには多大なエネルギーが必要です。ただし、.net インストール環境は非常に使いやすく、インストール パッケージを 1 つ実行してマウスをクリックするだけで、必要なものがすべて揃って使用できます。 さらに、他の言語を学習する場合、Linux の使用方法を学習する必要があることがよくありますが、専門家ではない人にとってはさらにプレッシャーになります。.net と C# の使用方法を学べば、この点に関して心配する必要はありません。 Windows PCと何ら変わりません。
最後に、コードを書くには経験も必要であり、コードを入力するのにも精力が必要です。したがって、どの IDE を使用するかが非常に重要です。市場の IDE について議論するとしたら、世界でナンバー 1 は Microsoft の Visual Studio でしょう。コーディングとデバッグを使用するのは他の IDE の追随を許さないほど楽しいです。
それでは、ためらわずに .net と C# の学習を始めてください
私は議論するためにここにいるわけではありません...英語を勉強することをお勧めします... 私は今 Python コードを書いています。実際、どの言語を使用するかはあなた次第です。PHP の知識がある場合は、PHP を続けることがより適切です。 最下位レベルが好きなら、C とアセンブリを学習してください。マイクロコントローラーの開発版、回路設計の本を数冊、コンポーネント、はんだごて、オシロスコープを購入すれば、いくつかのガジェットを作ることができます。 (安全性に注意)
SchemeやHaskellなど、より高度な関数型プログラミングを学びましょう。しっかり学べば、機能愛好家たちのハイエンドの輪に加わることができます。
js と py を学ぶ方がより実践的です。 Web サイトを構築するには、クローラーを作成するだけで十分です。
本当に理解できない場合は、C++ を学びましょう。

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

WebStorm Mac版
便利なJavaScript開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。
