これらは、プログラミングに不慣れな場合に知っておくべきコンピュータサイエンスの上位用語です。

簡単な英語で説明されている重要なCSの用語と概念

CS以外のバックグラウンドを持つ多くの友人や家族から、さまざまな用語や概念について質問されるので、次のコンピュータサイエンスの概念を可能な限り簡単な言語で説明しようと思います。

このクイックガイドでは、各用語/概念の意味、それが重要である理由について学習します。

  • バックエンド開発
  • フロントエンド開発
  • プログラミング言語
  • アルゴリズム
  • API
  • バグ
  • オープンソース
  • クラウドソース

この記事の最後に、詳細を学ぶためのリソースもいくつか紹介します。

バックエンド開発

「バックエンド開発」という言葉がよく使われるのを聞いたことがあるかもしれません。特にLinkedInをぶらぶらしている場合は。

この場合の「バックエンド」とは、テクノロジースタックのレイヤーを指します。これには主に、データを保持するためのデータベースを使用したWebサービスの作成または保守が含まれます。

多くの場合、バックエンド開発は、Java、Scala、Python、DynamoDB、MongoDB、nodeJS、MySQL、MapReduceなどのテクノロジーに関連付けられています。

これは、ユーザーインターフェイス(UI)レイヤー、または機能の顧客向けの側面を指すことが多いフロントエンド開発とは対照的です。

何でこれが大切ですか

フロントエンド開発とバックエンド開発の違いを理解することで、将来アプリの開発を開始する前に、どのコンポーネントについて検討する必要があるかを知ることができます。

フロントエンド開発

フロントエンド開発では、多くの場合、WebページやiOS / Androidアプリなどの顧客向け機能に取り組む必要があります。

ここには、HTML、CSS、JavaScript、jQuery、React、Angular、Swiftなどさまざまな種類のテクノロジーが関係しています。

私がそれらをプログラミング言語でなくテクノロジーと呼ぶ理由は、これらのいくつかは、ベースのセットアップとプログラミング方法のガイドに役立つフレームワークであるが、それ自体はプログラミング言語ではないためです。これらの例は、ReactとAngularです。

プログラミング言語は、人間がコンピューターと通信するための単なる方法です。HTMLはプログラミング言語であると主張する人もいるかもしれません…それは別の日のトピックだと思います。?

どうしてそれが重要ですか

フロントエンドの開発は、以前はHTML、CSS、JavaScriptだけでした。今日では、独自のテクノロジースタックとビルドツールを備えた、それ自体が獣です。フロントエンド技術は驚異的なスピードで進歩しています。今日のプログラミングの世界で何が起こっているのかを理解できるように、フロントエンドツールを学ぶことを強くお勧めします。

プログラミング言語

コンピューターは、指示されたコマンドの実行に非常に優れています。私たち人間がコンピューターと通信するためには、理解可能な言語の共通セット、つまり人間とコンピューターの両方が同意して通信できる一連の命令が必要です。

人間の世界では、英語、北京語、スペイン語などの言語を使用してコミュニケーションを取ります。

コンピュータに関して言えば、私たちはそれをプログラミング言語と呼んでいます。プログラミング言語は、人間とコンピュータが通信することを可能にします。プログラミング言語の例としては、Java、C ++、Pythonなどがあります。

どうしてそれが重要ですか

プログラミング言語を学ぶことで、インターネット上で見たものが内部でどのように機能するかを理解できます。これは、車がどのように、なぜ走るのかを知るようなものです。エルボーグリースを使用すると、キャンディークラッシュやツイッターなどの独自のアプリを作成することもできます。

アルゴリズム

計算またはその他の問題解決操作で、特にコンピューターが従うべきプロセスまたは一連のルール。—グーグル:)

コンピューターは命令の実行に優れており、ソフトウェアエンジニアとして、コンピューターが実行する命令を作成します。このアルゴリズムは、ある特定の問題を解決するために、コンピュータの有無にかかわらず実行することができるステップまたは命令のリスト。

コンピュータサイエンスの学生として私たちが最初に学ぶ問題の1つは、並べ替えの問題です。その本質は、最も効率的な方法でアイテムのセットまたはコレクションを並べ替えることです。

並べ替えには多くの方法があります。人気のあるものはバブルソート、別名「比較ソート」です。これには、2つの項目のうち大きい方を比較して選択し、すべてが最終的にソートされるまで他のすべての要素について繰り返すことが含まれます。その他には、挿入ソート、マージソート、その他多数が含まれます。

アルゴリズムの魅力的な入門書であるため、それらを探索することを強くお勧めします。ソートアルゴリズムの詳細については、Youtubeのビデオをご覧ください。

どうしてそれが重要ですか

アルゴリズムはコンピュータサイエンスの中核です。アルゴリズムとは何か、アルゴリズムがどのように機能するかを理解することで、より優れたソフトウェアエンジニアになります。限目。

API

API、別名アプリケーションプログラミングインターフェイス、別名情報源。もっと具体的に言えば、家にレモネードがあったと想像してみてください。あなたの隣人はあなたのレモネードをよく飲みたいと思っていますが、あなたは井戸が汚染されることを望んでいません。だったらどうしようか?

あなたは家の外の小さなホースに接続するホースを作ることにしました。あなたの魔法のレモネードを味わいたいすべての隣人が並んで、あなたのレモネードにアクセスするためにホースを開きます。これはすべて、井戸に近づくことなく、いつレモネードを汲み上げるか、いつか井戸が枯渇した場合にレモネードを交換するか、レモネードをたくさん飲む人に請求するかを制御することもできます。

これは、最近の多くの企業の背後にある考え方です。これらの企業は、貴重なデータの「井戸」を構築し、APIを介してそのデータにアクセスしたい他の企業に販売しています。

どうしてそれが重要ですか

今日のインターネットは、異なるサービス間のシームレスな通信に依存しています。このようにして、相互に通信するツール/ Webサイトを構築できます。APIは、すべての通信を可能にする基本的なレイヤーです。そのため、インターネットが通信にどのように、何を使用するかを知ることが重要です。

バグ?

ソーシャルメディアのウェブサイトで次のミームを見たことがあり、それが実際に何を意味するのか理解していない可能性があります。

バグは、プログラムが期待どおりに実行されないようにするコンピュータプログラムのエラーです。

たとえば、華氏の現地の気象温度を表示することになっている、コンピュータプログラムの一種であるiOSアプリケーションをダウンロードしたとします。ただし、iOSアプリケーションでは、予想した華氏ではなく、摂氏でのみ温度が表示される場合があります。

このような場合、プログラムは期待どおりに実行されておらず(摂氏ではなく華氏を表示するはずです)、エラーをバグと呼びます。

これは業界では非常に一般的であるため、ソフトウェアエンジニアはそれを内部のジョークに変えました。したがって、「これはバグではなく、機能です」というミームです。

なぜそれが重要なのか

バグは常に発生します。これを知っていると、インターネットをナビゲートし、何かが正しく機能していないのを見つけたときに指摘するのに役立ちます。次回は、「そこにあるものが正しくホバリングしない」ではなく、正しく「バグ」と呼びます。

オープンソース

私が考えた簡単な例えでオープンソースを説明しようと思います:)

あなたがレモネードスタンドの所有者であり、市内で最高のレモネードを作るための特別なレシピを所有していると想像してみてください。他の誰かがそれを受け取って顧客を盗むのではないかと心配しているので、秘密のレシピを誰とも共有しません。この場合、あなたの秘密のレシピは「クローズドソース」と見なされ、あなた以外の誰もそれへのアクセスを許可されません。

あるいは、レモネードのレシピをオンラインで自由に共有し、インターネットの力を利用してレモネードを改善し、誰もが可能な限り最高のレモネードを楽しんで利益を得ることができると想像してみてください。この場合、レシピは無料で利用可能であり、他の人が貢献、使用、変更する可能性があるため「オープンソース」と見なされます

この用語は、Facebookの台頭と、インターネットコミュニティが新しくエキサイティングなテクノロジーの開発に参加することを奨励するテクノロジー企業の波によって、はるかに人気が高まっています。

どうしてそれが重要ですか

オープンソースのおかげで、インターネットは過去数年間ではるかに速く進歩しました。それは革命であり、誰もが物事を無料で作って世界と共有することが理にかなっている理由を知っている必要があります。

クラウドソーシング

クラウドソーシング—通常はインターネットを介して、有料または無料の多数の人々のサービスに参加することによって(特定のタスクまたはプロジェクトへの情報または入力)を取得すること。

クラウドソーシングは、大勢の人々に共通の目的に貢献してもらうというアイデアです。

同じレモネードスタンドをもう一度走らせているとしましょう。あなたの顧客はあなたのレモネードが新しい味を必要としていると言っています。あなたはインターネットの力を使って、あなたが最高のレモネードレシピをブレインストーミングするのを手伝ってくれるよう人々に頼むことができることに気づきます。

その後、Twitterアカウントを開始して、世界中の人々に最高のレモネードレシピを提供してもらうことができます。これはクラウドソーシングと呼ばれ、人々に共通の目的(この場合はレモネード作り)に貢献してもらう行為です。

どうしてそれが重要ですか

インターネットは、全人口が団結し、世界で最も困難な課題のいくつかの背後にその最高の頭脳を置くことを可能にしました。クラウドソーシングにより、インターネットを介してシームレスにそれを行うことができました。それは人類にとって大きな前進だと思います。

推奨リソース

  • スタンフォード大学のオンラインCS101 —このコースでは、CSの用語、インターネットの仕組み、デジタル画像の形成方法と処理方法などの基本的な概要を説明します。何よりも、無料です。
  • Pythonクラッシュコース—Pythonプログラミングを始めるのに最適なリソースの1つ。プログラミングで手を汚したい場合は、Pythonと次の本から始めることをお勧めします。
  • Python、実用ガイド—これは、Pythonクラッシュコースを終了した後に入手できる興味深い本です。私はあなたが本なしでここでほとんどのことをすることができると想像します、しかしそれはあなたにそれをする方法についてあなたにもっと詳細な段階的な指示を与えます。模範を示して学ぶことを好む人に最適です。
  • アルゴリズムの概要—コンピュータサイエンスの中心的な信条であるアルゴリズムについて詳しく知りたい場合は、この本を強くお勧めします。これは、多くのCSコースの教科書。
  • コーディング面接の実施—これは私の個人的なコーチングコースであり、面接の準備方法、コーディング面接を実施するためのヒントとコツなどを紹介します。

Zhia Chongは、Twitterのソフトウェアエンジニアです。コードを投げつけない間、彼はテニスをしたり、記事を書いたり、Youtubeビデオを作ったりしています。

この記事を楽しんで、PDFでこのコピーを入手したい場合は、業界ニュース、プログラミングのヒント、インタビューのメモなどを共有するメーリングリストに登録することを検討してください。