投稿

できる人とできない人の違い

イメージ
ホーム ブログ Firebase情報 できる人とできない人の違い 2022年1月19日 できる人とできない人の違い いろいろな分野で、「できる人」と「できない人」がいますが、その違いをご存知ですか?色々あると思いますが、その中でも大きな部分を占めるあるポイントについて紹介します! 「できる」ための二つのポイント この連載はプログラミングに関する話題を中心にお届けしていますが、プログラミングに限らず色々な分野で、「できる人」と「できない人」が存在します。もちろん、「できる」のには理由がありますし、「できない」のにも理由があります。 その二つとは: やり方がわかる 必要な事を練習する この二つが揃うとできます! やり方がわかるというのは、「何を」「どのような順番で」「どうやってやるか」を理解しているという事です。そして二つ目が、「どうやってやるか」を実際に練習して上手にできるようになるという事です。この連載で何度か書いていますが、「知っている」だけでは実際にはできない場合が殆どです。できるようになるためには、やる事を練習するという過程が必要になります。 つまり、できるようになるには「やり方がわかって」「練習する」とできるようになるという事です。 「できない」理由は? では、できない理由は何だお分かりでしょうか? 逆を考えれば良いので: やり方がわからない 練習をしていない という事です。シンプルですよね? つまりできるようになるために必要なことは、「何がわからないかをハッキリさせる」事がまず最初に必要です。そして、やる事が分かったら「練習」すればできるようになります。 ところが、そうは簡単に行きませんよね? 実は、「何がわからないか」がハッキリすると問題の90%は解決したようなものです。 あとは、練習をすれば確実にできるようになるので、ゴールが見えているので殆どの人は頑張れます! では、「わからない」時はどうしますか?最初にやるのは調査です。人に聞いたり、本で調べたり、インターネットで検索したりします。 もう少しわかりやすい例を挙げるならば、例えば「カレー」を作りたい場合には、カレーの...

JavascriptとTypescript

イメージ
ホーム ブログ Firebase情報 JavascriptとTypescript 2022年1月18日 Javascript と Typescript Web 開発では、Javascript は欠かせませんが、最近では Typescript も注目されています。Typescript を勉強しておいた方が良いのか迷う場合も多いと思います。どちらが良いのかを考えてみました! Javascript は必須 Web 開発をする場合、バックエンドは別にしてもフロントエンドの Web ブラウザで動作するプログラムは Javascript になります。したがって、フロントエンドに関わる開発では Javascript は必須のプログラミング言語という事になります。 そうした、理由もあって Javascript を学習する人はたくさんいますが、最近では企業のある程度の規模の開発では Typescript が使われるケースも増えています。そうなってくると、Typescript を学習しておいても損はなさそうな状況になりつつあります。 ところで、Web 開発者を目指してプログラミングを学習する人の場合はどうでしょうか? この連載で既に書いてきたように、「今必要な事に絞って学習する」ことで、学習を効率よく進めて短期間で成果を出すという考え方で言えば、Javascript でプログラミングを書ければ、Typescript はなくても良い事になります。 そう考えると、Typescript を初心者が学習するのは後でも良いという事になりそうです。 Typescript の正体とは? ところで、Typescript の正体をご存知ですか? 一言で言うならば、Typescript は Javascript をベースに、変数の型や初期化などをより厳格にしたプログラミング言語です。 Typescript で書いたプログラムを Javascript に変換して、実際のプログラムは Javascrip として Web ブラウザで動作しています。 つまり、一手間、プログラミングの手間を増やしたと言う事になります。 なぜこのよ...

コンピュータの得意な計算と苦手な計算

イメージ
ホーム ブログ Firebase情報 コンピュータの得意な計算と苦手な計算! 2022年1月17日 コンピュータの得意な計算と苦手な計算 プログラムを書く場合、性能も大切な要素です。実はコンピュータには得意な計算と苦手な計算があるのをご存知ですか?この記事では、コンピュータの得意な計算と苦手な計算について紹介します。 コンピュータがやっている事は大きく分けて三つです コンピュータの頭脳は CPU と呼ばれる部品です。プログラムではこの CPU を使って必要なデータ処理を行なってきます。細かく分けると色々分ける事ができますが、大まかに CPU がやっている事を分類すると三つのグループに分ける事ができます。 メモリアクセス 計算 プログラムの実行の順序の変更 です。メモリアクセスは、コンピュータのメモリから処理するデータを CPU の中に持ってくる処理です。その持ってきたデータを計算(演算)します。また、別のメモリアクセスは、計算結果をメモリに書くと言う処理もあります。 最後のプログラムの実行の順序の変更は、プログラムは基本的にメモリに入っている「命令」を順番に実行しますが、条件によって処理の内容を変えたり、ループを作ったりする際は実行の順番を変える必要があります。その順番を変更する命令のグループがあります。 細かく分けるともう少しいろいろな機能がありますが、基本はこの三つの機能という事になります。 得意な計算と苦手な計算 コンピュータは「計算(演算)」が得意なのですが、実は得意な計算と苦手な計算があります。 これは意外に知られていませんが、簡単に言ってしまうと、足し算や引き算、ビットをシフトしたり、論理演算と言われる「AND」「OR」「NOT」などのような計算は得意です。 一方で、掛け算や割り算は基本的に苦手な計算です。 そんな馬鹿な!と思うかもしれませんが、計算にかかる時間が違います。 掛け算や割り算は、足し算や引き算に比べると数倍の時間がかかります。要は計算にかかる時間の違いの事をこの記事では、「得意」と「苦手」という言葉を使って表しています。 どれくらいの計算をするか? 実際に...

プログラミングの型は同じ!

イメージ
ホーム ブログ Firebase情報 プログラミングの型は同じ! 2022年1月16日 プログラミングの型は同じ! プログラミングの型は同じ! プログラミング言語はいろいろな物がありますが、実際のプログラミングの型(スタイル)は殆ど同じです。これが二つ目以降のプログラミング言語の習得は簡単だと言われる理由です。プログラミング学習で大切なのはこの「型」の使い方をマスターする所にあります。 プログラミングの型とは? プログラミングの「型」とは、基本的なプログラムの書き方です。 いろいろなプログラミング言語がありますが、この書き方の基本は似ています。 もう少し詳しく書くと、プログラムの「流れ」を決める書き方と、プログラムの中で利用するデータの形は余りプログラミング言語による大きな違いはありません。 プログラミング学習の「本質」は実はこの二つの型(スタイル)を理解して使いこなす事にあります。従って、特定のプログラミング言語に固執して学習する必要はないのですが、一つプログラミング言語を選んで実際にプログラムを書いて、実行することで理解を深める方が効率が良いので、基本はプログラミング言語を選んで学習するケースが多くなっています。 プログラムの流れ プログラムは基本的に、上に書かれた記述から下に向かって順番に実行されます。 ただし、処理によっては、条件によって実行する内容を変えたり、同じ処理を繰り返したりする必要があります。最近のプログラミングの言語の場合、以下に上げるような3種類の流れでプログラムを書きます。 上から下に 条件によって処理を変える 繰り返し(ループ) 実際には、特定の場所にジャンプ(go to)すると言う流れがありますが、プログラムの見通しを悪くしたり、流れを追跡するのが面倒になるので基本的には使わないと言うのが、最近のプログラムの書き方の流れになっています。 「上から下に」は、普通にプログラムを上から下に処理の順番に従って書くという一番基本の流れです。「条件によって処理を変える」と言うのは、「if/else if/else」と言う形で処理を分けて書く場合と、「switch」で...

オープンソースの活用

イメージ
ホーム ブログ Firebase情報 オープンソースの活用 2022年1月13日 オープンソースの活用 オープンソースのモジュールを利用すると、自分でコーディングする部分が少なくなるため効率的に開発ができます。 オープンソースの活用 インターネットで簡単にモジュールを公開できるようになったおかげで、活用可能なオープンソースも豊富になって、最小限のコーディングで高機能なアプリを簡単に開発できるようになっています。 色々なアプリで共通に利用されるような機能の多くは、オープンソースで開発されたモジュールが公開されていて、使用条件によるものもありますが誰でも簡単に自分のプログラムに組み込む事ができるため、開発を効率化するのに役立ちます。 これも「やる事を減らす」方法の一つとして開発の際に利用できる項目の一つになります。 利用の方法はいろいろあります オープンソースの利用方法は、その公開方法によっていろいろあります。 広く利用されている GitHub などで全てのソースコードを公開している場合は、開発環境を自分の開発用の PC にコピーする事で、基本的にオリジナルの開発者とほぼ同じ開発環境を簡単に作る事ができます。 またモジュールの組み込みには、パッケージマネージャー(パッケージ管理アプリ)と呼ばれるアプリがいろいろ公開されていて、パッケージマネージャーを利用して、自分の開発環境に簡単に組み込めるような仕組みも発達しています。「npm」とか「pip」などは、よく利用されているパッケージマネージャーです。 オープンソース利用の利点 オープンソースなどの公開されているモジュールを活用すると、全ての機能を自分で作らなくても、高機能のアプリの実現が短期間でできるという大きな利点があります。 通常、プログラミング言語を学習しただけでは、基本的な機能のプログラムでも簡単には書けない場合が多いのが現実です。例えば、ネットワーク経由でデータを送ったり、受け取ったりするような機能を自分自身で実装する場合には、プログラミング言語だけではなく、ネットワーク分野の知識が必要になりますが、すでに書かれたモジュールを活...

プログラミング学習でやる事が増える理由

イメージ
ホーム ブログ Firebase情報 プログラミング学習でやる事が増える理由 2022年1月12日 プログラミング学習でやる事が増える理由 効率よくプログラミング学習を進める秘訣は「やる事を減らす」事と言う話を紹介しています。この記事では、プログラミング学習でやる事が増えてしまう原因について考えてみました。 困った時にどうするか? プログラミングの学習以外でも、新しいことを始めたり、困った事があると大抵は何らかの調査をします。 最近では、インターネットで検索をしたりする場合が多いと思いますが、後は本で調べたり、詳しい人に相談したりして学習の方法や方針、コツなどを決めて進めると言うような手順で行うかと思います。 実際に、殆どの情報はインターネットで見つける事が可能になっているので、独学でも余り問題なく学ぶ事ができるようになっています。 オンライン講座や学校に行けば、エキスパートに質問することもできるので、インターネットに余り情報が無い様なケースでもスムーズに先に進む事が可能です。 問題は何か? 学習していて困るのは、行き詰まった場合が多いのも事実です。そうした場合に、沢山ある情報ソースはとても有効です。 一方で考える必要があるのは、学習にかかる時間です。 情報が沢山あるので、簡単に方針や方向性が決められて、問題の解決も比較的簡単にできるので、効率が良さそうに見えます。 しかし、実際には、情報が多すぎる事が効率を落としてしまう場合があります。 一番の問題は、多すぎる情報で、やることも増えてしまう場合が多いからです。 やる事が増えれば当然、それに費やす時間も増えます。つまり、時間がかかると言う事です。 やると「役に立つ!」 プログラミング学習に限った事ではありませんが、色々な人に相談してアドバイスを受けると、大抵は、過去の経験などから色々なアドバイスをもらえます。一つ一つは、とても良いアドバイスで、「やらないよりはやった方が良い」事が殆どです。恐らくアドバイスをする方も、成功体験があって、真剣にアドバイスしてくれている訳ですから、何らかの良い点がある場合が殆どです。 ところが、同じ様な相...

PCのアップグレードで改善できる性能

イメージ
ホーム ブログ Firebase情報 PCのアップグレードで改善できる性能 2022年1月11日 PC のアップグレードで改善できる性能 プログラムの開発は、PC の性能を上げることで効率が上がる場合があるという事を前回紹介しました。そこで、どんな「性能」が改善できるのかをもう少し詳しく見てみました。 性能にも色々あります! PC の性能と一言で言っても色々な性能があって、PC などのハードウエアをアップグレードする際には、どんな性能を改善したいのかを考えて PC を選ぶと無駄なお金を使わないで済みます。 殆どの人が、PC の性能を言う時には、「速い」PC のような言い方をするケースが多いかと思います。 一体「何が速いのか」を余り深く考えずに、値段を基準に選ぶ事も多いのではないかと思います。 実際、高価なモデルを買えば、基本的に高性能の PC を手にする事ができます。そう考えると、「高価」「新しい(最新)」などを基準に選べは無難です。しかし、もう少し詳しく必要な性能を絞り込む事ができると、必要以上の PC を購入する必要がなくなります。 基本的な性能の分類 そこで、この記事では最初に一般的な PC に関連した性能の分類をしていきたいと思います。 一般的な性能は: 電源を入れると素早く立ち上がる アプリの起動が速い コンパイルやイメージのビルドが速い ディスプレイの表示が速い(特にビデオや3 D など) データの処理が速い(計算が速い) インターネットのアクセスが速い などになるかと思います。 この中で、多くの利用者が「速い」と感じる性能は、電源を入れると素早く立ち上がる(OS の起動が速い)やアプリの起動が速いと言う物です。あるいは、ゲームや3 D の CAD などを使っていると、ディスプレーの表示が速いのも体感できる性能の一つです。 逆に、コンパイルやイメージのビルドが速いとか、データの処理が速いと言うものは、前回紹介したような大きなプログラムをコンパイルしたり、処理に時間のかかる大きなデータを扱わないとなかなかその差を感じにくい傾向にあります。 インターネットのアクセスに関して...