ホームページ  >  記事  >  バックエンド開発  >  WEBエンジニアとして長期的な視点で見た場合、どの言語がより深く学ぶ価値があるでしょうか?

WEBエンジニアとして長期的な視点で見た場合、どの言語がより深く学ぶ価値があるでしょうか?

WBOY
WBOYオリジナル
2016-12-01 00:01:161467ブラウズ

独自の技術スタックを構築したいと考えています。現在検討している言語は、PHP、JavaScript、C++、Ruby go です。何か良い推奨事項があれば、教えてください。
長期的な視点で分析して理由を説明してください、ありがとうございました!
返信内容:

1. プログラミング言語は単なるツールです。まず、習熟する言語を選択してください (Python、PHP、Java など)。

2. Web 開発には JavaScript が必須です。1 のいずれかに習熟していることが前提です。JavaScript は問題なく、すぐに習得できます。
3. フロントエンドとバックエンドの両方の Web 開発。フルスタックエンジニアになりたいのでなければ。
4. ここが重要なポイントです。バックエンドの場合は、分散、高い同時実行性、データベースのマスター/スレーブ、読み取りと書き込みの分離など、さらに多くのことを勉強する必要があります。 。 Nosql、キャッシュ、API開発、全文検索、運用保守など
まずプログラミング言語を選択し、その言語に習熟してください。現時点では、詳細な学習のために Python を選択するのが良い選択肢の 1 つです。 言語戦争に巻き込まれないでください。

誰かがどの言語を学べばよいかと尋ねられると、私はいつも次のように答えます:

あなたの周りにJAVAを知っている人がいるなら、あなたはJAVAを学びに行きます、
あなたの周りにPHPを知っている人がいるなら、あなたはPHPを学びに行きます、
周りの人が知っていることを学びましょう。知らない場合は、聞いてください。

彼はあなたを無視しますか?
彼をディナーに招待しましょう!

次に何を学ぶべきかについても教えてくれます。

テクノロジーではなく人をフォローしてください。

周りにプログラミングできる人がいない場合はどうすればよいですか?
会いませんでしたか?
私に従ってフロントエンドを学びましょう! 勉強やプロジェクト、仕事を探している人にはJavaがおすすめです! Python を 1 年間使用しましたが、さまざまなメソッド、ライブラリ、フレームワークの呼び出しに慣れてきたことを除けば、あまり進歩していないように感じます。思い切って Java に切り替えます。

Python メモリはどのようにリサイクルされますか?
参照カウント。
それでは?
わかりません...

Python パラメーターは値渡しですか、それとも参照渡しですか?
何?

Python の同時実行性について話してもらえますか?
いいえ、GIL があることだけは知っていますが、他は何も知りません...

Java はどのようにメモリをリサイクルしますか?
まずはJavaでメモリをヒープ領域と仮想マシンのスタック領域に分割して…
到達可能性解析を使って… 安心して… シリアル、パーニュー、パラレルスカベンジ CMS… メモリ保証…

やってみよう同時実行性について話します
そうですね、オフセット ロック、軽量ロック、重量ロック... volatile キーワードのセマンティクス...

Java のオーバーロードと書き換えについて話していただけますか?
オーバーロードの最下層は静的マルチディスパッチを使用し、メソッドのどのバージョンがコンパイル時に決定され、オーバーライドでは動的だが単一の割り当てが使用され、関連するメソッドが選択されます。受信者のタイプ...

必要ありません Python を学ぶのは良いことではありません。言語に良い悪いはなく、適切な、より適切な言語があるだけです。代わりに、C/C++、Java、C# などの静的型付け言語で比較的強力な基礎を身につけてから、Python などのスクリプト言語を使用して、半分の労力で 2 倍の結果を得る必要があると感じています。 。スクリプト言語を初めて学ぶのは非常に無駄に感じます。

WebをやっているのでJavaをお勧めします。 Java を学習する利点は、Java が多くの企業で使用されており、必要に応じてさらに学習できることです。スクリプト言語は一流の専門家ではなく、API を調整することしかできません。基礎となるメカニズムについては、段階的に学習できる関連情報はほとんどありません。ソースコードを直接見ろとは言わないでください、私たちは皆普通の人間です。偉大な神ではありません。

上記は単なる私の意見です。 英語。 Web 開発は非常に複雑で骨の折れる作業であり、ほとんどの場合、HTTP プロトコル、データベース リンク文字列、CSS、HTML、JavaScript 構文、開発ワークフロー支援、Angular、jQuery フレームワークなどのさまざまなルールの処理が必要になります。 ..

それを学び終えることはできません。それを学ぶのにたった2年しかかかりませんでしたが、es6がjQueryを搾り出し、typescriptがcoffeescriptを搾り出し、nodeJS、PHP、 elixir、f#、Ruby、julia、Python が同じフィールドで戦闘および近接攻撃します。

経験者としてアドバイスしたいのは、

コンピュータをLinuxに変更し、C言語を使用して静的ファイルサーバーを実装し、JavaScriptを使用してログインできるシステムを作成することです。コメントが動的に更新される小規模な Web サイトにアクセスし、クラウド サーバーを購入して一度デプロイします。

最も独創的な方法を使用し、フレームワークを使用しないようにしてください。このプロセスが完了すると、少なくともスケルトンが完成します。

なぜ Linux システムなのか? オペレーティング システムがどのように動作するかをよりわかりやすく示しています。

なぜ C 言語なのか? 物事がどのように行われるかをより直接的に示します。

なぜ JavaScript、その膨大なオープンソース コード、nodeJS のシンプルな哲学が、これらのゲームのルールとプレイ方法をより正確に示すことができるのか。 (まず、大文字と強迫性障害患者への配慮に注意してください...)
検討している言語から始めましょう:


PHP: バックエンドルート選択、小規模に適していますインターネット企業は、敷居が低く、急速な開発に適していますが、パフォーマンスは平凡です(PHP7はWeb向けに設計された言語としては近年それほど活発ではありません)。幸いなことに、JS と Python は高い市場シェアを持っていますが、敷居が低いため、ますます多くの人が学習しており、競争は徐々に激化しています。(質問に答えるとき、PHP を詳しく学ぶことはお勧めしません)
JavaScript: フロントエンドとバックエンドのルートは必須であり、現在フロントエンドに従事している場合は非常に人気があります。 JavaScript を深く学ぶことはできません。経済的自由を達成しましょう。しかし、欠点は、知識システムがますます大きくなり、より多くのブランチと無数のフレームワークを学習することがほとんど不可能になっていることです。良い。バックエンドでも JS を習得する必要があります。そうしないと、JS が普及している今日の世界では、バックエンドの JS を理解していないと、フロントエンドと通信することが困難になります。 JS は、単純な Web スクリプト言語からフルスタックの Web 開発言語に変わりました。現在、JS コミュニティだけでなく、Facebook のようなシリコンバレーの企業も、JS にオープンソースで貢献することに熱心です。さらに、非同期のために生まれた Node.js や、ネイティブ アプリ開発の分野に参入した React など、あらゆるオープンソース テクノロジーは、どの言語でそれができるのかを敢えて問いかけます。 ? (深く学ぶ学習意欲のある開発者にお勧めします)
Python: バックエンドと運用保守は選択科目と言われていますが、実際には受講しないと基本的に不可能です。ある観点から見ると、Python は PHP によく似ていますが、Python は非常に多くのことができるので、私は Python をスイス アーミー ナイフに例えます。 PHP はそれには程遠いです。効率性には 2 つの側面があります。パフォーマンスの点では、言語自体のパフォーマンスは平均的ですが、開発の点では非常に効率的であり、これが人気の重要な理由でもあります。 WEBに関しては運用保守の方向性もあり、特にPythonは重要視されていますが… もちろん、運用保守をやりたいわけではないでしょう。 Python を深く学ぶと、よりオタクになり、仕事がより自動化されます。優れた Python の仕事は、多額の給与も支払われます (すべてのエンジニアが深く学ぶことをお勧めしますが、必ずしもこれだけに重点を置く必要はありません)。 (2016.11.15追記: Python の優れたパフォーマンス ソリューションは PyPy の実装です。正式版との調整が必要ですが、Python とそのパフォーマンスに興味がある場合、その基礎となる実装を理解したい場合は、PyPy をよく勉強してください)
C++ : 低レベルのエンジニア向けの必修コースです。Web エンジニアが C++ を詳しく学びたい場合、彼が自分自身を酷使する傾向がある可能性を排除しません。私の学部の EE はハードウェアに関するもので、C++ は Web サーバーなどの低レベルの開発を追求する場合に詳しく学ぶことができます。サーバー用の C++ は基本的にゲームの分野です。とC++は難しいので数年勉強しても何も分かりません。広い意味でのWeb開発に携わるなら、他の勉強をしたほうが良いでしょう。もの。 (推奨されません)
Ruby: 個人開発者向けの選択科目です。イーグルスの「ホテル カリフォルニア」について聞いたことがありますか?この曲はあまりに有名だったので、イーグルスの他の素晴らしい曲の輝きが失われてしまいました。 Ruby といえば、RoR フレームワークが有名なので、Ruby に他の期待を抱くのは難しいでしょう。しかし、Ruby には他に何があるのでしょうか。はい、そしてルビのような文法です。 Ruby を書くのは非常に楽しく、やりたいことは何でもできますが、残念ながら、自由すぎることが開発に必要なものではない場合もあります。 Ruby を学ぶことができます。個人の開発者向けの選択コースだと私は定義しています。おそらく、この言語の方が起業家精神に適しています... もちろん、シリコンバレーでは Ruby が非常に人気があると言うでしょうが、ここは中国です。もう 1 つのポイントは、Ruby は結局のところ島国で生まれたということです。日本語が十分に話せなくても、それでも島国のコミュニティに溶け込みたいと思うでしょうか。 (非推奨)
Golang: 低レベルのエンジニア向けの言語です。正しく分類すると、C/C++ と同じで「システム プログラミング言語」と呼ばれます。 ?結局のところ、彼は新しい時代に生まれ、優れた並列プログラミング能力を持って生まれました。2016 年 10 月の TIOBE ランキングでは Go が強い勢いを示し、Go を学ぶ人は一般的に Google のラップを受け入れたがります... Go Like Swift,これも勢いが増しているので、まだ心配する必要はなく、様子を見る必要があります。 (ガイダンスなし) (2016.11.15追記: 現在、Goの成熟したWebフレームワークにはゴリラとドメスティックビーゴが含まれており、自分で検索して学ぶことができます。)

丫、検索した後、私は知りませんでしたJava、ネットワーク プログラミングについて言及します。これは人生の頂点に達するための重要な方法の 1 つです。戦略的にそれを無視していますか? 言語を学ばないでください。
フレームワーク、ツール、そして最も重要な原則を学びます。 これは単なる好みの問題です。
js Python Ruby go のステータスは上昇し、php は低下し、Java は変化しません。
何でも学ぶことができます。 JSのシンプルさは美しい 学びに終わりはない!複数のテクノロジーと複数のパス!
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。