検索結果

There are 31 results found.

LPI WDEを使いこなす #5: データベースとNode.jsによるサーバーサイドプログラミング

このシリーズの前回の記事では、ウェブページをダイナミックにし、エンドユーザーとのインタラクションを可能にするフロントエンド・プログラミング言語、JavaScriptについてお話した。 JavaScriptは長年にわたってサーバーサイドの機能も拡張し、バックエンドのプログラミングに応用されてきた。 そこでNode.jsの出番となる。 バックエンドプログラミングのためのNode.js Node.jsは、JavaScriptで書かれたプログラムを実行することで、ウェブサーバーで受け取ったリクエストを処理できる実行環境だ。 Node.jsは、もともとクライアントサイド言語であったJavaScriptを、他のプログラミング言語と同じようにブラウザの外で実行できるようにした本格的な開発プラットフォームである。 本来はブラウザーの中だけで実行されるはずだった言語が、今ではブラウザーの外で実行されるのだ。 このことから、以下のような多くの利点が生まれる: 学習が容易: すでにJavaScriptに慣れ親しみ、クライアント側のプログラミングに取り組んできた開発者は、サーバー側のアプリケーションを開発するために別のプログラミング言語を学ぶ必要はない。 すでにJavaScriptをマスターしているフロントエンド開発者は、それほど苦労することなく、アプリケーションのバックエンド部分に簡単に取りかかることができる。 完全かつ機能的なアプリケーションを作成する能力: JavaScriptという1つのプログラミング言語の知識だけでも、クライアントサイドとサーバーサイドの両方の開発に精通したフルスタック開発者として働くことが可能です。 これにより、包括的で完全に機能するアプリケーションを作成することができる。 様々なアプリケーションを作成可能 JavaScriptコードを実行できる環境があれば、ウェブブラウザに依存しないスタンドアローンプログラムを作成することができます。 これにより、さまざまなタイプやシナリオのアプリケーションを作成する可能性が広がる。 しかし、なぜNode.jsはこれほどまでに開発者に愛されているのだろうか? 前述の利点に加え、Node.jsはオープンソースでクロスプラットフォーム環境であり、世界中の開発者の大規模なコミュニティを誇っている。 さらに、非同期、ノンブロッキング、シングルスレッド、イベントドリブンI/Oモデルに基づいており、高いパフォーマンスと優れた実行速度を保証します。 クライアントからのリクエストを効率的に管理する。 Linux Professional Institute (LPI)のWeb Development Essentials認定資格は、このシリーズのコンテンツに特化しており、簡単なNode.jsアプリケーションの作成を段階的にガイドしています。 さらに、HTML、CSS、JavaScriptを使用してウェブページを作成したことがあれば、アプリケーションのバックエンドロジックの構築を開始し、特定のユーザーリクエストに対してサーバーがどのように応答すべきかを定義することができます。 アプリケーションの強化方法 Node.jsプロジェクトでは、他の開発者によって作成されたさまざまな無料のリソースやツールを利用して、追加機能を組み込んだり、生産性を向上させたり、作業を容易にしたりすることができます。 npmはNode Package Managerの略で、Node.jsプラットフォームのパッケージ・マネージャーです。 コマンドラインインターフェイスを通じて、パッケージ(他の開発者が作成した、特定の機能を実装するビルド済みのプロジェクト)のインストール、削除、管理を行うことができる。 npmはNode.jsパッケージの大規模なオンラインリポジトリで、それぞれが独自の機能を備えていると考えてください。 数え切れないほどあるパッケージの中には、データベースとのやりとりに特化したものもある。 この連載の第1回で述べたように、バックエンド・プログラミングは、データベースとの統合を含め、エンドユーザーから直接見えないすべての側面を包含する。 アプリケーションが外部データにアクセスする必要がある場合、ほとんどの場合データベースを通じてアクセスすることになる。 LPIのWeb Development Essentialsでは、リレーショナルデータベース管理システム(RDBMS)を実装したソフトウェアライブラリであるSQLiteを特に取り上げています。 このタイプのデータベースでは、データは相互に接続されたテーブルに格納され、シンプルで直感的なクエリを使って照会することができる。 データベース照会 リレーショナル・データベースを自由に使えるようになったとき、そのデータベースに対してどのような操作を行なえばよいのか悩むかもしれない。SQLはStructured Query Languageの略で、リレーショナルデータベース内のデータを操作するためのクエリ言語です。 非常に人気があり、ユーザーフレンドリーな言語である: テーブルの作成と削除 スキーマと呼ばれる、各テーブルで使用可能なフィールドとデータタイプを定義する。 テーブルのデータを更新する テーブルの行の挿入と削除 情報の取得 データベースの保守と最適化 これで、リレーショナル・データベースがSQLデータベースとも呼ばれる理由が明らかになった! 開発者がSQLを使うのは、SQLがさまざまなプログラミング言語と非常にうまく統合できるからだ。 例えば、Node.jsでSQLiteを使うには、先に述べたnpmパッケージ・マネージャーを使ってモジュールをインストールするだけでよい。 これをインストールすると、リレーショナル・データベースの作成と保守を可能にする一連の関数にアクセスできるようになる。 関連するテーブルに情報を格納するリレーショナル・データベースに加え、NoSQLデータベースとも呼ばれる非リレーショナル・データベースもある。 これらはより柔軟なスキーマを持ち、バックエンドアプリケーションでも同様に使用できる。 非リレーショナル・データベースは、特定のアプリケーションと格納されるデータに最適化されたストレージモデルを使用する(例えば、情報は単純なキーと値のペアとして格納できる)。 この種のデータベースは、開発が容易で高性能、優れた柔軟性と拡張性が特徴である。 以下の表は、バックエンドアプリケーションで一般的に使用される、最も一般的なリレーショナルデータベースと非リレーショナルデータベースの一覧です: SQL Database NoSQL Database Microsoft SQL Server MongoDB SQLite CouchDB MySQL Redis MariaDB PostgreSQL   SQL言語とSQLiteデータベースに慣れたら、練習がてら非リレーショナル・データベースでデータを操作し、その長所と短所を発見してみよう。 次はどうする? 今回と前回の連載では、WDE認定資格でカバーされる主な技術(HTML、CSS、JavaScript、Node.js、SQL)と、Web開発者としての第一歩を踏み出すためのプログラミング環境について分析してきました。 まだ解明されていないのは、どの学習リソースが実際の認定試験に最も適した準備ができるかということだ。 これからの連載では、Web [...]

LPI WDEを使いこなす: 教材、練習、シミュレーション

これまでの連載では、Linux Professional Institute (LPI)のWeb Development Essentials認定資格でカバーされている主要な技術について、フロントエンド側(HTML、CSS、JavaScriptなど)とバックエンド側(Node.jsやSQLなど)の両方について見てきました。 これまで見てきたように、HTMLを使ってウェブページをセマンティックに構造化し、CSSを使ってスタイルを適用して視覚的にアピールし、JavaScriptを使ってユーザーとのインタラクションを可能にしてダイナミズムを加え、Node.jsを使ってサーバーサイドのロジックを実装し、SQLを使ってリレーショナルデータベースに問い合わせることができる。 この時点で、「WDE試験の準備はどうすればいいのだろう? 参考資料はありますか? どうすれば試験のシミュレーションができますか? この記事では、こうした疑問やその他の質問に答えていく。 LPIのWDE認定試験の準備はどのようにすればよいですか? LPIのラーニング・マテリアルは、最初の参照ポイントです。 Linux Professional Institute (LPI) ラーニングポータルは、Linuxおよびオープンソース認定試験の準備と学習のための自然な出発点です。 学習教材の各セクションは、理論パートと解答付きの練習問題2セットという、教室での使用を意識した構成になっている。 これらの教材は継続的に拡大・更新されており、生徒と教師の双方にとって大いに役立つものである。 したがって、Web Development Essentials認定証の準備をするには、その認定証のために特別に書かれた学習教材から始めることをお勧めします。 最新版(試験コード 030-100)に更新された試験目標と、各目標について、その範囲と比重に応じて1つまたは複数のレッスンが用意されています。 各レッスンは1~2時間の正面授業で、理論的な部分と、習得した知識をすぐに実践で試すことができる実践的な部分が含まれている。 最後に、提案された問題に対する解答を読むことで、自分の練習が正しいかどうかをチェックすることができ、ほとんどの場合、さらなる研究のための追加的な洞察を得ることができる。 この教材が持つ大きな可能性は明らかだろう。プログラミングの世界に踏み込もうとする誰もが無料で利用できるリソースであるだけでなく、学習の終わりに資格取得の道そのものに踏み出そうとする人にとっても有効な参考資料となる。 他の学習教材と同様、Web Development Essentials 認定証に関連する教材は、教科書や実習に代わるものではなく、他の学習ソースを補完するものであることを忘れないでください。 練習は? 理論的な観点から主な試験トピックを学んだら、練習が必要です。 HTMLに関する最初の投稿で説明したように、あなたのコンピューターにすでにあるテキストエディタの一つを使ってウェブページを作ることから練習を始め、ここで提案したような少し高度なもの、あるいは本格的なIDE環境に移行することができる。 これらのプログラムのすべての機能を発見することは、プロとしてやりがいのある経験となる。 学習の過程でより効率的なプログラマーになることで、生産性を向上させることができます。 他にもお勧めの資料がある: Mozilla Developer Network:すべての開発者が利用できる正確な wiki。 初心者に理想的なツールであると同時に、すでに経験豊富でスキルアップを目指す人にとっても優れたツールである。 無料コードキャンプ:実際のプロジェクトを完成させることでプログラミングを学ぶことができる非営利コミュニティ。 学習プラットフォームでプログラミングを学んだり、出版物を読んだり、技術フォーラムで質問について議論したり、その他いろいろなことができる。 Web Development Essentials試験シミュレーション Web Development Essentials認定資格は、ウェブの世界での第一歩を踏み出すことを可能にします。 この試験は、他の必須資格と同様、60分間に40問出題される。 実際の試験をシミュレートするために、私はLPIパブリッシング・パートナーとして、「Web Development Essentials Practice Exams」というリソースを発行しました。 これは、試験を受ける前に自分の知識と技能を試すことができるシミュレーションの本である。 本書には4つの模擬試験とエントリー・テスト、合計170問と解答が収録されている。 各問題には、正しい答えと、その問題が言及している一般的な文脈を示す徹底したコメントが添えられている。 いくつかの問題には、テキストエディタで再現して正解を見つけることができるコードスニペットが含まれています。 さらに、このコードを修正してみることで、学習に役立つ別のシナリオを作ることができる。 始まりに過ぎない 試験に合格したからといって、プログラマーのエキスパートになれるわけではないことを忘れないでください。 試験は出発点であり、目的地ではない。 優れた開発者は、日々知識を磨き、時代についていかなければならない。 新しいライブラリ、フレームワーク、プログラミング言語を学ぶ必要があり、何よりも情熱を注ぐ必要がある。 この情熱は、プロとして自分を向上させるために日々育まれなければならない。 孔子が言ったように: 好きな仕事を選べば、一生働く必要はない。 << このシリーズの前回の記事を読む

LPI WDEを使いこなす #4: JavaScriptを使ったWebインタラクション

これまでの連載で、HTMLとCSSがフロントエンド・プログラミングの2大基本言語であることを見てきた。 HTMLはウェブサイトを構造化し、CSSはその視覚的な外観をカスタマイズすることができます。 このタイプのプログラミングを分析するために必要な最後の要素は、JavaScriptだ。 このクライアント側スクリプト言語は、ダイナミックでインタラクティブなウェブページを可能にする。 JavaScriptは実際のプログラミング言語である 当初はMochaと呼ばれ、後にLiveScriptと改名されたJavaScriptは、エンドユーザーとのダイナミックなインタラクションを作成するためにウェブ開発で使用されるプログラミング言語である。 この言語は当初Mochaと呼ばれ、LiveScriptと呼ばれる段階を経た。 ECMAScriptという気の利かない名前で標準化されたが、今では誰もがJavaScriptと呼んでいる。 JavaScriptがなければ、ウェブページはHTML、CSS、そして含まれる画像やその他のメディアだけで構成され、その結果、基礎となるロジックのない静的なページとなり、フォームを介したユーザーとのインタラクションも最低限になります。 JavaScriptは理想的な言語である: ユーザー/ブラウザーのインタラクションに基づいて、HTMLページ内の任意の要素を動的に変更する。 ユーザー・フォーム内の情報の検証 ユーザーが生成したイベントに反応して特定のアクションを起こす ダイナミック・コンテンツの追加と削除 JavaScriptは、ウェブページの背後にある実際のエンジンです。 ウェブサーバー上で実行されるPHPなどの他のスクリプト言語とは異なり、JavaScriptはブラウザで直接実行されるため、クライアントサイドの言語となります。 一般的なプログラミング言語と同様、JavaScriptでも変数の定義、条件文の作成、ループによる繰り返し処理、関数による他のコードの呼び出しが可能です。 Linux Professional Institute (LPI)のWeb Development Essentials認定資格は、このプログラミング言語を基礎から学び、中程度に複雑なオブジェクトや関数の作成まで、段階を追って指導します。 その機能を学ぶことで、JavaScriptがHTMLやCSSとどのように統合してウェブサイトを視覚化するのかを完全に理解することができます。 この道は、プログラミングの知識がない人がプロのプログラマーになるための素晴らしい方法だ。 DOM: CSSを介したJavaScriptからHTMLへの橋渡し DOMはDocument Object Modelの頭文字をとったもので、JavaScript言語とHTML/CSSをつなぐ架け橋だ。 DOMはW3C(ワールド・ワイド・ウェブ・コンソーシアム)の標準規格である。 JavaScriptのようなスクリプト言語が、基礎となるドキュメントにダイナミックにアクセスするためのインターフェイスを定義している。 DOMは文書を階層的なツリー構造で表し、使用するプラットフォームやブラウザに依存しない。 ウェブページ制作者には欠かせないツールだ。 ウェブページがブラウザに読み込まれると、ページのDOMが作成される。 例えば、図1はパラグラフと見出しだけの初歩的なウェブページのDOMを示している。 各ノードはドキュメントの一部を表すオブジェクトとみなされる。 [caption id="attachment_19710" align="aligncenter" width="1024"] 図1:DOMは、ウェブページのオブジェクトとその関係を記述する規格である。[/caption] JavaScriptとDOMを通じて、以下のことが可能である: HTML要素の内容を変更する HTML要素の属性値を変更する HTML要素の追加と削除 CSSカスタマイズの適用 ユーザーによるウェブページへのアクションを含むイベントを処理する。 DOMはHTML、CSS、JavaScript間の共通リンクとして機能し、ウェブ開発者がHTMLページ内の各要素のグラフィカル・プレゼンテーションやコンテンツさえも動的に更新することを可能にする。 HTML、CSS、JavaScript、DOMはすべてW3C標準であることに注意することが重要だ。 しかし、混同してはいけない: DOMはJavaScriptの一部ではなく、JavaScriptはDOMにアクセスするための手段なのだ。 JavaはJavaScriptではない! JavaScriptに加え、Javaも聞いたことがあるだろう。 混同しないように注意してください: JavaはJavaScriptの略称ではない! Java」という言葉を共有しているにもかかわらず、この2つの言語は無関係である。 (この名前にまつわる歴史はこうだ: 両言語はサン・マイクロシステムズというコンピューター会社で開発され、同じような目標を目指していたため、経営陣はJavaとJavaScriptに似た名前をつけることにした) これまで見てきたように、JavaScriptはオブジェクトベースのスクリプト言語である。 ソースコードは解釈され、ブラウザによって一行ずつ実行される。 一方、Javaはオブジェクト指向のプログラミング言語である。 このコンパイル言語では、ソースコードは実際に実行される前に、より効率的な形式のコードに変換される。 JavaScriptのプログラムは、他のインタプリタ言語と同様、Javaで書かれた同等のプログラムよりも遅い。 しかし、JavaScriptの方がより柔軟で、修正も容易である。 最後に、JavaScriptはブラウザでウェブページやアプリケーションに使われるクライアントサイドのプログラミング言語であることを忘れてはならない。 [...]

LPI WDEを使いこなす #2: HTMLとウェブの基本

インターネットを閲覧するとき、私たちは1つのウェブページから別のウェブページへと移動し、無数の種類の情報を引き出したり、さまざまなサービスを利用したりする。それは、まるで巨大なバーチャル図書館を閲覧しているようなもので、各書籍はネットワーク上の他のページと相互接続されたウェブページに例えることができる。 ウェブページとは、エンドユーザーがアクセスできる様々な情報を含むデジタル文書である。しかし、どのようにしてこのような文書を作ることができるのだろうか? HTMLの重要性 すべてのウェブページのベースにはHTML言語がある。80年代後半に生まれたこの言語は、HyperText Markup Language(ハイパーテキスト・マークアップ・ランゲージ)の頭文字をとったものだ。HTMLは、ウェブページ内にどの要素を表示し、どのように配置するかを意味的に指定できる言語です。この言語を通して、私たちは以下のようなテキストを使ったリッチなユーザー体験を作り出すことができる: テキストの書式設定(タイトルや段落の作成、単語やテキストの一部を太字や斜体にする、など) 番号付きリストと番号なしリストの作成 リンクの挿入 埋め込みコンテンツ(画像、音声、動画)の挿入 ユーザーが記入して送信できるフォームを作成する テーブルの作成 各ウェブページは明確に定義された構造に従っており、それを構成する個々の部分には特定の意味があります: タイトル、段落、リスト、表、太字や強調の言葉は、適切なタグやラベル、つまりタグの内容をどのようにフォーマットして表示するかをブラウザーに指示するHTMLマーカーによって指定されます。 簡単な例です: <p> Hello LPI! </p> このようにして、ブラウザに表示される段落を定義する。段落要素の作成をブラウザに指示する対応するタグは "p "で、この場合、"<p>"が開始タグ、"</p>"が終了タグです。タグはウェブサイトの訪問者には見えませんが、開始タグと終了タグの間に含まれる「Hello LPI! ご心配なく!最初は、HTMLで書くことは少し奇妙に思えるかもしれません。それでも、この言語に慣れてくると、簡単な文章を書いているように自然に感じられるようになります。何事もそうですが、とにかく練習あるのみです! Linux Professional Institute (LPI)のWeb Development Essentials認定資格の学習では、ドキュメント内の重要な要素を定義する主なタグ、その意味、およびそのタグが参照する要素の詳細を指定するのに役立つ主な属性を理解することで、Webページを作成し、フォーマットする方法を学びます。 さて、何から始めようか? HTML言語を学ぶことは、しばしばウェブ・プログラミングの世界への第一歩と考えられている。HTMLページを書くのに複雑なツールは必要なく、古典的なメモ帳のような一般的なテキストエディタ(FOSSでありたいならvimやKate)があればいい。 以下のようなツールもあります: Visual Studio Code: デバッグ、コード補完、バージョン管理などの追加機能を備えたマイクロソフトのシンプルなソースコードエディタ。自由にダウンロードでき、クロスプラットフォームで、柔軟性があり、ニーズに合わせて機能を拡張できる多くの拡張機能がある。初心者に最適。 Komodo Edit: フリーでオープンソースの、非常にパワフルでカスタマイズ性の高いテキストエディタ。自動補完やインデントなどの古典的なコードエディター機能を備えていますが、残念ながらデバッグはサポートしていません。 Sublime Text: マルチプラットフォーム、マルチ言語のソースコードエディタ。多数のプラグインを備えているため、汎用性が高く、あらゆるニーズに対応できる。期間無制限で無料で使用できますが、無料版では頻繁にアラートメッセージが表示され、プロ版への切り替えを促します。 こうすることで、主要なタグとその属性に慣れ、知識をできるだけ定着させることができます。HTML言語に慣れたら、今述べたようなテキストエディタを使って、その機能を探求することができます。このようなエディタの機能を発見することは、あなたの学習の道にとって非常に興味深いものになるでしょう。 マイクロソフトのVisual StudioやアップルのXcodeを聞いたことがあるでしょう。繰り返しになるが、FOSSの代替ツールはたくさんある: Eclipse、MonoDevelop、Apache NetBeansなどだ。 また、社会に出れば間違いなく出会うことになる、より洗練された完全な開発環境もある。これらは統合デスクトップ環境(IDE)と呼ばれ、開発者の生活を楽にし、1つのプログラムでサポートされながら、より効率的に作業できるように設計されている。統合開発環境は、プログラマーにテキストエディタと、ソフトウェア開発プロセス全体をカバーする多かれ少なかれ洗練されたツールを提供する: コードの作成と自動化、インテリジェントな補完、コンパイル、テスト、およびデバッグは、生産性を向上させ、より効率的なプログラマになることを可能にするIDEが提供する機能の一部です。 図1に示すように、コード・エディタの機能はIDEの機能のサブセットです。 次のステップ 前回の記事で説明したように、HTMLはCSSやJavaScriptと並んでフロントエンドのプログラミング言語であり、ウェブサイトのエンドユーザーから見える部分を作成し、クライアントサイドで処理するためです。ウェブページの構造と基本的な要素が定義されたら、グラフィックの観点からカスタマイズする必要があります。これを実現するのがCSS言語です。CSSは美的観点からウェブページをデザインし、表示する役割を担っており、HTMLを補完するものです。詳しくは次回のエピソードで。 << このシリーズの前回の記事を読む

LPI WDEを使いこなす #1: 驚異的なウェブサイト制作への道

ソーシャルメディア、オンライン情報源、あらゆる種類のアプリケーションが充実した現代社会において、ウェブサイトはあらゆる組織にとって基本的な要件である。ウェブサイトによって、企業自身は、その事業内容を詳しく説明し、サービスを詳しく説明し、顧客を見つけ、維持し、オンラインで販売し、競争力を高めることができる。 ウェブは企業にとって好ましいコミュニケーション手段のひとつであると同時に、一般ユーザーにとっては、最も多様なコンテンツを見つけ、アクセスし、同時にニーズを満たすための基本的なツールである。 ウェブに関する絶え間ない技術革新は、より充実した機能を備え、視覚的に魅力的なウェブサイトの作成を可能にしている。しかし、ウェブサイトを作成する必要がある場合、何から始めればいいのでしょうか? Linux Professional Institute (LPI)は、Webサイトを作成するための基本的なツールやアイデアを段階的に学ぶことができるWeb Development Essentialsという新しい認定資格をデザインしました。この投稿では、資格取得までの道のりをできるだけスムーズにするために、試験の目的を通して一緒に旅をしましょう! 開発者のための資格... ウェブデベロッパーの目標は、プロジェクトの仕様に準拠し、可能な限り最高のユーザー体験を提供する機能的なウェブサイトやウェブアプリケーションを作成することです。 ウェブデベロッパーの資格取得までの道のりでは、インターネットを構成するコンクリート、レンガ、鋼鉄と考えられるものへの対処法を学びます。シンプルで魅力的なウェブサイトを作成するための基本を理解し、学ぶとともに、プロとして成長し続けるためのさらなる洞察と深い知識を身につけます。 この資格でカバーされる主な技術は以下の通りです: HTML CSS JavaScript Node.js Databases HTMLとCSS HTML(HyperText Markup Language)の頭文字をとったもので、ウェブサイトの構造とコンテンツを定義するために使用されるため、この種の認定パスの出発点としては自然なものである。HTMLはカスケーディング・スタイル・シート(CSS)と密接に関連しており、ウェブページにスタイルを適用して視覚的に魅力的なものにするために使用される。 JavaScript、Node.js、およびデータベース JavaScriptは、ウェブページをダイナミックにし、ユーザーがウェブページと対話できるようにするスクリプト言語である。JavaScriptはもともと訪問者のブラウザで実行されるように設計されているが、Node.jsはサーバ上でJavaScriptを実行するランタイム環境である。Node.jsは、特にリレーショナル・データベースや非リレーショナル・データベースとの統合を扱うことができる。 この認定パスは、Web開発者、つまりWebサイトやWebアプリケーションの設計、開発、管理を目的としたプログラミング言語のエキスパートになりたい人に最適です。 しかし、それだけではない! この資格は、ウェブサイトを作成するチームを編成するために不可欠な基本的な技術知識を身につけることができるので、ビジネスのより経営的な側面を扱う場合にも役立ちます(私自身はプログラマーではありません!)。さらに、ウェブ環境における知識とスキルを向上させることができます。このようなバックグラウンドは、仕様や採用技術の定義からプロジェクト自体の構築や展開に至るまで、あらゆるプロジェクトのライフサイクルにおいて非常に役立ちます。 ITマネージャーやプロジェクトマネージャーは、プロジェクトの各フェーズにおいて技術チームを適切にサポートし、プロジェクト実現のための最適なタイミングや最適な戦略を定義できるような知識ベースを持っている必要があります。また、そのような知識を持っているマネージャーは、プロジェクトの開発中であっても、プロジェクトのタイミングや仕様を再定義し、発生する可能性のある問題を解決するための最適なソリューションを提案する傾向が自然と強くなります。 フロントエンドとバックエンド、そしてフルスタック開発 ICTの仕事の機会は常に増え続けており、専門職の支払いもますます多くなっている。Webプログラマーとしての仕事を探したことがある人なら、フロントエンドプログラマー、バックエンドプログラマー、フルスタックプログラマーといった言葉を目にしたことがあるはずです。 混乱しないでください。これらのカテゴリのいずれかに属するプロフェッショナルは、いくつかの基本的な知識を持っています。 フロントエンド・プログラミングという用語は、エンドユーザーから見えるウェブサイトの一部を作成し、クライアント側のブラウザで処理することを指します。そのため、フロントエンド・プログラマーは、HTML、CSS、JavaScriptの各言語を熟知し、グラフィカルな視点とコンテンツの視点の両方からウェブサイトをデザインし、エンドユーザーがシンプルかつ直感的な方法でウェブサイトを操作できるようにする必要があります。 フロントエンド開発者のための追加知識には、React、Angular、VueJS、jQuery、Bootstrapなどの特定のフレームワークやライブラリが含まれます。Web Development Essentials認定資格には直接含まれませんが、フロントエンド・プログラミングに特化したい人にとっては、それらを習得するための基礎となります。 一方、バックエンド・プログラミングは、サーバー・サイド、つまりエンドユーザーに直接見えないすべての側面を指します。このタイプのプログラマーは舞台裏で働き、アプリケーションの機能ロジックを作成します。データベースとの統合、セキュリティ、データ保護は、バックエンド開発者が考慮しなければならない基本的な要素のほんの一部に過ぎません。 前述のNode.jsに加えて、バックエンドプログラマが知っておくべきプログラミング言語には、PHP、C#、Java、Pythonなどがあります。これらの言語はWeb Development Essentials認定資格ではカバーされていませんが、バックエンド開発者としてのスキルアップに役立つ知識です。 フルスタック開発者は、フロントエンドとバックエンドの両方のプログラミングの知識を持っています!このタイプのプロフェッショナルは、サーバーサイドとクライアントサイドの両方に関する広範な技術トレーニングを受けており、完全なウェブサイトやウェブアプリケーションを設計、開発、配布することができます。 あなたの立場は? つまり、フロントエンド・プログラミングに特化するか、バックエンド・プログラミングに特化するかということです。どの道に進むにしても、プロジェクトを成功させるためには、コインの両面を知ることが不可欠であることを覚えておいてください。したがって、フロントエンド開発者は、データベースとのインタラクションを含め、アプリケーションの機能ロジックにも精通していなければなりません。同様に、バックエンド開発者は、構造的、視覚的な観点と、ユーザーとのインタラクションの観点の両方から、ウェブページを作成するための基本を知っていなければなりません。フロントエンドとバックエンドのプログラマーは、実際、すべてのプロジェクトのフェーズで互いに協力し合わなければなりません。基本的なプログラミングの側面のひとつに知識のギャップがあると、協力が難しくなり、プロジェクトの成功が損なわれる可能性があります。 フロントエンドとバックエンドの技術を同等に操ることができれば、フルスタックプログラマーとして働くことができます。前述の2つの役割の技術的スキルを持つことで、ウェブサイトやウェブアプリケーションを実現するためのプロジェクトのあらゆる側面を、簡単かつ自然に担当することができるようになります。 今述べた知識の種類を図1にまとめました。これは、フルスタックデベロッパーが、フロントエンドとバックエンドの両方の技術的知識を取り入れた完全なプロフェッショナルであることを示しています。 [caption id="attachment_18725" align="aligncenter" width="1024"] 図1:フロントエンド、バックエンド、フルスタック開発者のナレッジグラフ[/caption] このシリーズの今後の記事では、前述のフロントエンドとバックエンドの各言語とツールについて簡単に説明し、それらの機能の概要を提供し、基本的なテキストエディタからインタラクティブなウェブサイトを作成する方法を紹介します。

LPI Media Partnership of UCIENCIA ’23; Jon ‘Maddog’ Hall Online Talk

September 27-29, 2023 Linux Professional Institute (LPI) is Media Partner of the 5th International Scientific Convention UCIENCIA, to be held from September 27 to 29, 2023, at the Meliá Internacional Varadero Hotel, Cuba. LPI presents Jon 'Maddog' Hall Online Talk Why Free and Open Source Software, Open hardware and Free [...]

AI 技術の進化による開発者への影響:未来を形作るテクノロジー

テクノロジー業界では、2023年に入り既に23万人以上が人員削減の憂き目にあった。 このような幅広いレイオフ、暗号資産の価格崩壊、そしてシリコンバレーバンク(SVB)の破綻などを受け感じているのはシリコンバレーという黄金の風船が弾けたという感覚だ。一方で、AIに関係する雇用機会は増加し、AI技術の急速な進化は、様々な産業に置いて大きな変革をもたらしている。この予測困難な時代の中で、開発者はどのようなキャリア戦略を考え、AIを学習していけばよいのか、考察する。   IT業界で急増するレイオフとその背景 上述の通り近年、IT業界においてレイオフ(人員削減)の動きが増えている。いくつか理由があり、一つはパンデミックによる需要の拡大と、その後の需要の落着きだ。そこに加え、AIが業務の自動化や効率化を実現したことで、一部の開発者の業務が置き換えられてしまったこともある。ただし、レイオフはネガティブな側面だけでなく、企業体質の改善や株価上昇などの側面があることも忘れてはならない。一つ言えることは、AI技術の発展は同時に新たな機会をもたらし、開発者たちはその変化に柔軟に対応する必要があるということだ。   現在を生きる開発者の今後のキャリア戦略 現在の開発者は自身のキャリアを守るために、適切な戦略を立てる必要がある。新たな技術トレンドへの対応やスキルの継続的な学習が不可欠だ。AI技術の進化をキャッチアップし続け、開発者はAIに関連するスキルや知識を習得することで競争力を高めることが求められている。また、技術力だけでなくどの分野のスキルや知識を学んでいくかという選択も重要で、他業界や社会全体、経済等にも精通することでより強固なキャリアを築く事が可能だ。    AIスキルの市場価値 AIスキルは現在、市場価値が急速に高まっている。例えば、日本ではAIシステム市場の成長率は年間25%を大きく上回っている。AI技術の需要はさらに拡大しており、AIスキルを持つ開発者は将来性のあるキャリアを築くことができる。データによれば、日本でIT人材の年収が下がり続けた2018-2021年の間もAI人材の平均年収は上がり続けている。これはAIスキルを持つ開発者が非常に需要が高いことを示す。したがって、AIスキルの習得は開発者にとって有望な選択肢と言えるだろう。   開発者はどのようにAI技術を習得していくか? AI技術の習得は、基礎知識の獲得と実践的な学習の両方が重要だ。まずはオンラインコースやトレーニングプログラムを活用することで、効果的にAI技術について学ぶことができる。また、AIコミュニティへの参加や情報共有も積極的に行うと良い。さらに、自身のプロジェクトや実践的な経験を通じてAIスキルを発展させることも大切だ。幅広い学習リソースを活用しながら、自身のスキルを磨くことが重要だ。   開発スキルを学んできたことは無駄なのか?開発スキル×AIスキル習得することの利点および必然性 開発者がこれまで学んできた開発スキルは決して無駄にはならない。開発スキルとAIスキルは相互補完的な関係にあり、共存することでさらなる価値を生み出すことができるからだ。開発者がAIスキルを習得することで、開発プロセスの効率化や新たな創造性を生み出すことが可能となるだろう。開発スキルとAIスキルを組み合わせることで、多角的な視点から問題解決に取り組むことができるため、ますます重要性が高まっていくと予想される。   ノンプログラマーは、ウェブ開発を学ぶことで、プログラミングやAIのキャリアへの扉を開くことができる。HTMLとCSSからJavaScriptプログラミング言語、そしてNode.jsやExpressなどのより複雑なバックエンドライブラリへと、Webサイトを作成するために必要なスキルは、プログラミングへの簡単なステップを提示する。これらの技術は、LPIのWeb Development Essentials認定資格の中核を成す。   ウェブのためのプログラミングは、ウェブのユビキタス性から、どの分野でも価値のあるスキルですが、この学問は、他の言語やAI開発にも応用できるプログラミング・マインドセット(考え方)を学習者に与える。   AIがプログラムを書けるようになれば、人間がプログラミングを学ぶ必要はなくなると考える人もいる。しかし、プログラミングにおける人間の重要性がすぐになくなることはない。AIは、ゴール、アーキテクチャ、ユーザーエクスペリエンス(UX)、セキュリティなど、プログラムのさまざまな側面を考えるという、より高いレベルでのプログラミングを支援することができる。   まとめ AI技術の進化は開発者に大きな影響をもたらしていますが、それによって生じるチャンスも存在する。開発者は自身のキャリア戦略を見直し、AIスキルの習得や新たな技術トレンドへの対応を進めることで、未来を形作るテクノロジーに対応していくことが重要だ。開発スキルとAIスキルを組み合わせることで、より幅広い価値を提供することが出来る。今後もAI技術の進化に注目し、開発者が自らのスキルをアップデートし続けることにより、より良いキャリア構築を導くだろう。 << このシリーズの前回の記事を読む

社員育成のためのWeb Development Essentials

株式会社ARCは、Linux Professional Instituteがリリースした認定資格プログラム「Web Development Essentials(WDE)」を日本でいち早く導入し、日々のWeb開発業務に役立てている。なぜWDEに着目したのか、どのように業務に組み込んでいるのか、WDEを活用することでどのような成果が期待できるのか、株式会社ARCのイノベーション部マネージャーである村山 朋広氏にお話を伺いました。 WDEを導入し、獲得しようと思った理由は何ですか? 日本の多くの中小企業では、新入社員や中途採用者に対して、主にOJT(On the Job Training)を通じて技術者を育成しています。OJTは、現場で使われている技術に関する実践的なスキルを身につけるのに有効な教育プログラムであるが、OJTは体系的な学習には適していません。この問題は、雇用主が体系的な学習のためのシステムを導入していれば解決できます。しかし、多くの場合、組織にはそのような深い教育に必要な教育コストなどの負担をかける余裕がなく、体系的な学習の機会を設けることが難しいのが現実です。 むしろ、体系的に学ぶための最良の方法は、資格を取得することです。エンジニアが関連性のない資格を寄せ集めなければならない場合、そのプロセスには時間と経済的負担がかかります。 LPIのWDE資格は、HTML、CSS、Javascript、Node.js、SQLなど、フロントエンド・バックエンド開発に必要な基礎知識を1つの資格で体系的に学ぶことができます。WDEを学習することで、受講者は組織のウェブニーズに着手するために必要なすべての基本的な開発知識を短期間で習得することができます。ARCは、この包括的なアプローチがWDEプログラムの最大の利点であると考えました: このプログラムは、短期間で必要な知識を習得したいという企業の要望に応えるものでした。 どのようなトレーニング方法を使っていますか? トレーニング方法は100%オンライン。オンラインにした理由のひとつは、講師が関西におり、参加者が関東や東北など遠方にいたことです。 WDEを取得することで期待されるメリットは何ですか? WDE習得研修は、フロントエンド開発に関する基礎知識や技術を短期間で体系的に学べるというメリットがあります。これらの技術は、フロントエンドエンジニアを目指す学生だけでなく、バックエンドエンジニアやインフラエンジニアなどのITエンジニアを目指す学生にとっても価値のあるものです。Linux Essentialsと同様に、WDEが関連分野でのキャリアを目指す方々のデファクトスタンダードになることを願っています。 インストラクターとしてのトレーニングはいかがですか? WDEはARCで初めて導入された研修プログラムであり、インストラクターはオンライン講義の経験が浅い状況でした。対面式の研修に比べ、オンライン研修は受講者の反応が見えにくく、習熟度が測りにくいという独特の問題があり、苦戦する講師もいました。しかし、講師陣が協力し合い、研修の改善点をフィードバックしていきました。 研修は、WDEが扱う技術が多いため、演習を多く取り入れたカリキュラムにしたが、独自のテキストや教材を使用し、受講者が理解しやすい内容で実施しました。研修は、日頃の現場経験で技術を習得した講師陣が担当し、研修実施時には実際にWDEを取得していました。また、WDEを通じて基礎的な内容を体系的に学ぶことの重要性を体感しているため、実際に講師陣の現場への理解も深まっています。 学生たちの反応や評判は? 学習科目であるWDE自体は初歩的なレベルであるが、全体的な印象としては「難しい」というものであり、IT初心者にとっては妥当な難易度でした。その難しさは、暗記しなければならない専門知識の多さや、覚えにくい専門用語の多さによるもので、この印象はどの資格試験でも同じだと予想されました。しかし、研修内容そのものは半数以上の参加者が「わかりやすかった」と回答しており、研修の結果、習熟度や理解度が高まったといえます。アンケート結果によると、Javascriptのセクションになると急に難易度が上がり、多くの参加者がこの部分に苦戦していたようです。 LPIに期待することは何ですか? WDEは難易度も学習内容も中程度です。初級の開発エンジニアには最適な資格だと思います。認知度が上がり、デファクトスタンダードの資格になることを期待しています。 << このシリーズの前の記事を読む

最初のプログラミング言語を選ぶ(ウェブ開発向け)

最初のプログラミング言語を選ぶのは、9,000もの通路がある迷宮を進むような気分だ。そう、これはOnline Historical Encyclopaedia of Programming Languages(プログラミング言語のオンライン歴史百科事典)が報告した、世の中に存在するコーディング言語の驚異的な数だ。TIOBEが分析した265の言語に絞ったとしても、信じられない数字だ。おそらく、PyPlランキングのように、より消化しやすいトップ30まで絞り込むことができるのではないだろうか?それよりはマシだが、それでも選択肢のビュッフェに囲まれているようなものだ。 この記事では、TIOBEとPyPIインデックスが最も人気があると認めているものをもとに、その数を5つに絞り込みます。それでは皆さん、トップ5を発表しましょう: Python、JavaScript、C#、Java、そしてC/C++だ(そうそう、CとC++が実際には2つの言語であることは知っている-Bjarne Stroustrupに謝る)。 人気はインターネットの流行よりも速く上下するかもしれないが、自分自身に重要な質問を投げかけなければならない: 「自分は何をしたいのか?ウェブ開発の世界に惹かれているのか、モバイルアプリを作りたいのか、それともデスクトップ・ソフトウェアを作りたいのか。宇宙時代のソフトウェアの世界に飛び込んでみるのはどうだろう?それとも、AIやデータ分析、ゲーム開発といったスリリングな世界に飛び込んでみたい? プログラミング言語の選択は、あなたの願望と取り組む準備ができている複雑さのレベルに合わせるべきです。これが私のアドバイスだ: 自己反省、リサーチ、自己評価を、あなたの意思決定プロセスに健全に組み込んでください。つまり、理路整然としたアプローチをとることです。 私は何をしたいのか?- 方法論的アプローチ 最初の言語を選ぶ際の重要な質問に答えられるよう、評価アンケートを作成しましょう。プログラミングを学ぶ目的は何ですか?単に気軽な趣味なのか、退屈しのぎなのか、それともキャリアへの憧れなのか。 これらの要素を重要度順に並べましょう。プログラミングが仕事で重要な役割を果たすと期待しているのであれば5点、単なる小粋なパーティ芸であれば1~2点といった具合だ。対象とする業界で一般的に使用されている言語を調べます(例えば、データ分析ではC言語はあまり使用されませんが、その業務ではPythonが人気かもしれません)。 自分にとって重要な要素を検討し、分析に含める。学習ニーズは何か、学習にどれくらいの時間をかけられるか。あなたにとって意味のあるものはすべて含めて評価しましょう。 最終的には、あなたのコーディングの冒険を導く便利な調査ツールができあがります。最もスコアの高い言語が、あなたの完璧な第一候補となるでしょう。以下は、考えられる内訳です: あなたのプログラミング意欲 楽しさを求めるなら、Pythonがそのシンプルさと多様性でリードしている。JavaScriptは、ウェブ開発に最適な言語として依然として高い評価を得ている。Java、C#、C/C++はもう少し頭を使うので、楽しさの点数では低い。 興味のある分野: 言語によって輝く文脈は異なるので、何を専門にしたいのか、あるいはどんなプロジェクトに取り組みたいのかを考えてみよう。ウェブ開発、データ分析、テスト、それとも他の何か? あなたの言語学習ニーズ: 学習のしやすさを優先するなら、Pythonが再びトップになる可能性が高い。しかし、強力なコミュニティ、サポートネットワーク、豊富な学習リソースがあるJavaScriptも素晴らしい選択肢だ。仕事の機会については、どの言語も見込みがありますが、JavaScriptとPythonがトップに位置しています。 使える時間: 献身的に学べばどんな言語でも習得できるが、時間が限られている場合は、一般的にPythonやJavaScriptの方が理解が早い。 その言語に対する将来の需要: 将来はキーボードの上にいる猫のように予測可能だが、成長する言語はこの先も健全な雇用市場を提供する可能性が高い。 つまり、これらの要素(あるいはあなたにとって重要な要素)をすべて集め、数字を計算し、勝者を明らかにすればいいのだ。最もスコアの高い言語が、あなたのプログラミングの世界での最良の第一歩となるかもしれない。 評価アンケートのサンプル さて、方法論的アプローチに慣れていただいたところで、どのようなアンケートになるかの例を用意しました。 (私がつけた点数は主観的なものであり、厳格なルールというよりは柔軟なガイドラインとみなすべきものであることを心に留めておいてほしい。点数は私の個人的な経験と業界の知識に基づいています。この点数を考慮する際には、個々の状況や目標を考慮に入れることが極めて重要だ。たとえ他の人と同じ道を歩むことになったとしても、プログラミングの旅はあなただけのものであることを常に忘れないでください。) なぜプログラミングを学びたいのですか? 趣味としてプログラミングを学びたい方、個人的または仕事上の能力開発のために新しいスキルを身につけたい方、あるいはプログラミングの知識が何らかの役割を果たせるような職業に就きたい方。 学習のしやすさ - どれくらい初心者にやさしく、楽しく学べる言語か。 (Python: 5, JavaScript: 4, Java: 3, C#: 2, C/C++: 1) コミュニティ、サポート、優れた学習リソース - 強力で有用なコミュニティの存在と、質の高い学習リソースの利用可能性を評価する。 (JavaScript: 5, Python: 4, Java: 4, C#: 3, C/C++: 2) 就職の機会 - 就職市場におけるその言語の需要と、LinkedInや就職ポータルサイトなどのプラットフォームにおける豊富な求人情報を考慮する。 (JavaScript: 5, [...]

ウェブ開発に欠かせないもの

2022年初頭、Linux Professional Institute(LPI)はWeb Development Essentials試験を導入しました。この投稿では、試験がこのような構成になっている理由、学習者と教師にもたらすメリット、学習者がソフトウェアとウェブ開発を始める際にどのように役立つかを説明します。 情報技術の分野では、システム管理とソフトウェア開発という2つの主要な分野が際立っています。LPIはシステム管理の側面に重点を置いていましたが、LPIコミュニティでは開発に重点を置いた認定証についての議論が続いていました。主な疑問点は、そのような資格は予備資格とすべきか、専門資格とすべきか、どのようなプログラミング言語とソフトウェア開発のエコシステムに焦点を当てるべきか、などでした。 専門的な領域では、すでにいくつかの資格が存在していました。専門的な試験では、特定の技術や、この場合はプログラミング言語に関する深い知識が要求される。この種の資格を提供するには、LPIが特定の言語を選ぶ必要があった。なぜなら、ソフトウェア開発の専門分野では一般的に好まれる言語が存在しないため、単一のプログラミング言語を選択すると、かなりの数の受験者が除外されてしまうからだ。 一般的にプログラミングを学ぶとなると、焦点は特定の言語から一般的な概念へと移る。これらの概念は、ほとんどすべてのプログラミング言語に共通するものです。これらの一般的な概念に焦点を当てた教育および認定プログラムは、2つのニーズを解決します。それは、新しい開発者に別の言語をさらに専門的に学ぶのに十分な知識を提供することと、LPIのLinux Essentialsプログラムをうまく補完することです。実際、Essentials プログラムを拡張することは、学生や学習者が IT の様々な分野への扉を開き、現在基本となっているスキルを取得できるようにする鍵であり、これらのスキルを伝えなければならない教師をサポートすることでもあります。 しかし、エッセンシャルズ試験といえども、コーディングするための言語が必要です。ソフトウェア開発を始めるための共通基盤を探したところ、新しいアプリケーションの多くが使用する技術群として、ウェブ技術が際立っていることがわかりました。すべてのウェブアプリケーションは少なくとも一部にJavaScriptを使用しているため、JavaScriptはすべてのウェブアプリケーションに共通するプログラミング言語です。したがって、JavaScriptが試験の開始言語となります。 試験内容は、理論的なコンセプトと実践的なスキルの適切なバランスを見つける必要があります。学習者は、試験の目的に基づいて小規模なプロジェクトを構築できなければなりません。そのため、試験では2つの方法でJavaScriptを扱います: 1つ目のトピックでは、条件やループなどの基礎と、WebサイトとのインタラクションのためのクライアントサイドJavaScriptをカバーし、2つ目のトピックでは、Node.jsを使用したサーバーサイドプログラミングをカバーします。 エッセンシャルズ試験は基礎的なトピックに重点を置いているため、非同期プログラミングのような高度な側面は、専門的な能力開発にとって重要であるにもかかわらず、意図的に除外しています。私たちの目標は、学習者がゲストブックや非常にシンプルなブログのような、小さいながらも機能的なアプリケーションを構築できるようになるのに十分な内容をカバーすることです。このアプローチは、学習者に実験を奨励する一方で、教育者にはコースの練習問題やプロジェクトを作成するのに十分なコンテンツを提供することを目的としています。 この学習をサポートするために、LPIはWeb Development Essentialsのすべてのトピックについて包括的な学習教材を提供しています。この教材は、learning.lpi.orgで10カ国語以上で無料で利用できます。これらの教材が、ソフトウェアとウェブ開発の学習や指導を始める学習者と教育者の双方にインスピレーションを与えることを願っています。 次週以降、LPIブログではWeb Development Essentialsの様々な側面を掘り下げていきます。来週は、学習に最適なプログラミング言語の選択についてです。また、LPIブログをフォローし、LPIの学習教材をご覧ください。 このシリーズの次の記事を読む>>