月曜日, 10月 25, 2021
ホーム プログラミング

プログラミング

コンピューターでのプログラミングは何をするかで難易度が大幅に異なります。マシン語は難易度が相当高く、Cはかなり高く、Pythonはそれほどでもなく、ノーコードは簡単というようなイメージですが、どのくらい難易度が高いのかはプログラミング未経験者の方には全く理解出来ないと思います。 他の世界の難易度と比較してみます。 プログラミングの分類はイメージで実際とは異なる事があります。 料理の難易度車を作る難易度服を作る難易度マシン語魚を釣りに行く、動物を育てる、野菜を種から育てるところから始める鉄、原油、ゴムなどの車に使う素材を探すところから始める綿花、蚕、原油などから素材を作るところから始めるC言語、C++さばいていない魚、ほとんど加工されていない肉の塊、野菜は畑からとってくるなどして、自分で加工して料理をする素材業者に車用の素材を発注して車用の素材を作る糸を編むなどして布にして、染色などは自分で行うJava、C#、Swift魚の切り身、加工後の肉、使いやすいようになっている野菜などの半加工品を買ってきて、自分で暖めたり、味付けなどして自分で作る棒状や板など、ある程度加工されている素材を、自分好みのサイズなどに切るなど、細かな加工をして車に仕上げていく好みの生地を選んで、裁断、縫うなどして服の形にするPython、JavaScript冷凍、レトルトなどから自分で解凍などして並べるパーツを組み合わせて乗りたい車を組み立てる服を加工してオリジナル感を出したりするノーコード並んでる物を選ぶカフェテリア好みのエンジン、シート、色などを車屋に伝えて注文する店で選んで買う使うだけの人お母さんが作ったものを食べるお父さんの車に乗るお母さんが買ってきた服を着る マシン語、機械語 プログラミングでマシン語は、CPU、メモリなどそのコンピュータを全て理解していないと利用出来ませんし、全て1から行わなければならないので、他の難易度で言うと素材集めから始めなければならないような状態です。このレベルになると、専門業者の中のその中の専門家が行うような事になります。プログラミングでは、一般のソフトウェア開発者の場合、ソフトウェアエンジニアリング関連の授業でやったことがある方がいるくらいでしょうか。このあたりを理解している人が本物です。 C言語、C++ ある程度素材が集まり、他の分野なら、専門の業者が行うような事を自分でできるくらいになると、かなり尊敬されるレベルなのではないかと思います。一般的に高速な処理が必要な場合にはこのあたりから行うことが多いです。素材からこだわるプロの料理人、レーシングカーを作るようなレベルになるとこのあたりからでしょうか。車や料理についてある程度わかっていないと、形にもならないように、プログラミングもコンピュータの事を理解していないと出来ないです。 Java、C#、Swift
プログラミングの勉強は本だけでも出来ますし、スマートフォンやタブレットでも出来ます。 しかし、実際にプログラムを作って、その結果を確認するというような事は、パソコンを使わないと出来ません。 このため、パソコン自体の使い方をある程度覚える必要があります。 決して細かなところまですべて覚える必要はありませんが、パソコンで何をするとどうなるのかは理解しないとプログラミングは出来ないです。 プログラミングの勉強をする前に、パソコンの基本的な操作は出来るようにしておきましょう。 特に必要なのはパソコン無いのファイルやフォルダの構造、プログラムのスタートのさせ方、インストール方法といった基本的な事です。 パソコン教室ではWordやExcelの使い方などを中心に教えているようですが、そのような使い方はプログラミングではあまり役に立ちません。WordやExcelで利用出来るVBAでプログラミングの勉強は出来ますが。 自己流で結構ですので、プログラミングの勉強をする前に、パソコンをある程度使えるようにして、プログラミングの勉強している間にもパソコンの機能自体がどうなっているのかある程度理解しておきましょう。 プログラミングを勉強する上でパソコンの使い方、パソコンの機能を知ることは、プログラミングを理解する助けにもなります。
JavaScriptフレームワークやライブラリは日々進化しています。 これらのフレームワークやライブラリを活用することが当然となりつつありますが、数ある中で何を使うかは非常に重要です。 その中で、これだけは押さえておけば問題ないという物をリストアップしました。 これ以外にも多数ありますが、自分の利用用途、ドキュメント類の豊富さなどから自分に合った物を選びましょう。 MVC (Model View Controller)系 Backbone.js Knockout.js Angular.js DOM (Document Object Model)系 jQuery Prototype Zepto.js 次点分など Underscore.js three.js D3.js YUI Library