もっとプログラミング言語を学ぶ必要がある理由

画像



翻訳者から:本日、開発者Akshat Giriの記事を公​​開します。AkshatGiriは 、プログラミング言語をどんどん学ぶ価値がある理由についての考えを共有しています。



私は4年間プログラマーとして働いています。 C#で開始し、ゲームを開発してから、Pythonと機械学習に切り替えました。 その後、フロントエンド用のJavaScriptとTypeScriptを学びました。 次のステップはモバイルアプリケーションの開発であったため、Ionic、React、React Nativeを取り上げました。 私はバックエンドに興味を持ち、Goで働き始めました。 少し後に、Dart、Java、およびPHPが私の言語とフレームワークのリストに追加されました。Facebookでの作業中は3つすべてが必要でした。



私が言及されているすべての言語の専門家だとは言いたくありません。 私は他の言語やフレームワークよりも、それらの経験があります。 なぜ選択が彼らにかかったのですか? まあ、彼らは他のものよりも多くを提供しているように思えました、それがそうである理由です。



Skillboxの推奨事項: 2年間の実践コース「私はPRO Web開発者です。



「Habr」の読者には、「Habr」プロモーションコードを使用してSkillboxコースに登録すると10,000ルーブルの割引があります。






しかし、なぜもっと多くの言語を学ぶようアドバイスするのですか? 事実、数年後には何がかかるか想像することさえできません。 また、適切な言語またはフレームワークを選択すると、特定の問題を解決する際の時間を大幅に節約できます。



最初の問題の解決策



簡単な例を挙げます。 数ヶ月前、私はBluetoothヘッドフォンを選びました。 AirPodsで停止しました。 私は他の多くを試しましたが、これらは可能な限り便利に思えました。 問題は、WindowsラップトップとAndroidスマートフォンで同時に使用したことです。 両方のガジェットが近くにあった場合、ヘッドフォンは電話に接続されましたが、ラップトップには接続されませんでした。 したがって、それらを手動で切断し、再接続する必要がありました。 毎日。



これは非常に疲れるので、必要なときにヘッドフォンをラップトップに接続する問題を解決するボタンを作成することにしました。



最初は、この問題を解決するためにPythonを使用することにしました。 Bluetoothデバイスを制御できるライブラリを簡単に見つけることができると思いました。 これは間違っていることが判明し、適切なライブラリが見つかりませんでした。



次のステップはNode.jsです。 コンピューターのBluetooth機能を制御できるJavaScriptライブラリを見つけることができました。 Node.jsでこのスクリプトを実行して、必要なものを達成しました。

// App.js const device = new bluetooth.DeviceINQ(); const airpodsAddress = "18:81:0E:B2:6B:A6" const airpodsName = "Akshat's Airpods"; device.findSerialPortChannel(airpodsAddress, function (channel) { // make bluetooth connect to remote device bluetooth.connect(airpodsAddress, channel, function (err, connection) { if (err) return console.error(err); console.log('YAY! Airpods Connected'); // Don't need a communication stream between the two // so let's just exit the stream. setTimeout(() => process.exit(0), 5000); }); });
      
      





わかりましたが、スクリプトを起動するボタンが画面に必要になりました。 最終的に、Windowsタスクバーに配置して、常に使用できるようにすることにしました。 私は、このタスクを完了するのに役立つと思われる別のスクリプトを作成しました。 しかし、いいえ、私はGolangに頼らなければなりませんでした。 彼は実行可能ファイルを作成し、Node.jsで以前に作成されたスクリプトを実行しました。

 / main.go package main import ( "fmt" "os/exec" ) func main() { output, err := exec.Command("npm", "start").CombinedOutput() if err != nil { fmt.Println(err.Error()) } fmt.Println(string(output))
      
      





すべてうまくいきました。 デスクトップのショートカットを作成し、タスクバーに移動しました。 すべてが正常で、すべてが機能します。







C#ではこの問題も解決できると思いました。 しかし、実際にはVisual StudioとIDEをインストールしたくありませんでした。



私の例では、さまざまな言語が最小限の時間で特定の問題に対するハイブリッドソリューションを見つけるのにどのように役立つかを示しています。 他にもたくさんの例がありますが、ポイントは明確だと思います。



それではなぜ他の言語を学ぶのでしょうか?



正直なところ、これは興味深いです。 さらに、それはあなたの地平線を広げ、あなたを快適ゾーンから連れ出します(トラブルを引き起こすことはありませんが、刺激を与え、新しい何かを学びたいという欲求を与えます)。

もう1つの理由は、1つの言語またはフレームワークの機能を超えることです。 オブジェクト指向言語は問題ありませんが、関数型プログラミングまたは手続き型プログラミングも学ぶ必要があります。



あなたが学ぶ最初のプログラミング言語は最も難しいでしょう。 2番目の方法は、最も可能性が高いと思われますが、さらに難しくなります。 しかし、さらに、新製品の研究は公園を散歩するように思われます。 わずかに異なる構文、いくつかの新しいもの、そしてそれだけです。 さらに、すでにマスターされている言語の専門的なライブラリとフレームワークを学習できます。



私には、他の言語の学習につながる可能性があるもう1つの理由はWASMです。 Web Assemblyを使用すると、ブラウザーで必要な言語を実行できます。



JavaScriptまたはPythonプログラマーの場合、低レベル言語をマスターする価値があります。 C ++またはCから始めることができますが、Golangをお勧めします。 Cファミリに特有の問題なしで、C ++のすべての高速機能を利用できます。



低レベル言語で作業する場合は、JavaScriptまたはPythonを試してください。 どちらも非常に人気があり、一般的です。 両方とも低レベル言語と組み合わせて使用​​できます。 Node.jsおよびPython用のC ++モジュールを作成できます。



コメントであなた自身の経験を共有してください:あなたはどの言語を知っていますか、何を学びたいと思っていますか、そしてなぜですか?

Skillboxの推奨事項:






All Articles