検索結果

There are 44 results found.

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の学習教材をご覧ください。 このシリーズの次の記事を読む>>  

LPI日本支部「OSC 2023 Online/Kyoto」でプレゼンテーションを実施

当日の録画はこちらからご覧ください。 Linux Professional Institute (LPI) Japanは、2023年6月17日に開催される Open Source Conference 2023 Online/Kyotoに参加し、Webinar講演することをご案内します。 オープンソースの祭典、Open Source Conferenceは、オープンソースに関する最新情報を提供し、コミュニティ内のオープンソース組織のエキサイティングなグループを紹介するものです。 7/29 12時からの上本 盛至様のセッションでは、「絶対合格しようシリーズ Web Development Essentials Node.js サーバープログラミング 応用編」を紹介します。 参加登録はこちらから

LPI日本支部「OSC 2023 Online/Hokkaido」でプレゼンテーションを実施

Linux Professional Institute (LPI) Japanは、2023年6月17日に開催される Open Source Conference 2023 Online/Hokkaidoに参加し、Webinar講演することをご案内します。 オープンソースの祭典、Open Source Conferenceは、オープンソースに関する最新情報を提供し、コミュニティ内のオープンソース組織のエキサイティングなグループを紹介するものです。 6/17 12時からの野沢 哲郎様のセッションでは、「絶対合格しようシリーズ Web Development Essentials  Node.js サーバープログラミング 編」を紹介します。 参加登録はこちらから    

Linux Professional Institute Web Development Essentials

Web制作の第一歩を踏み出す 現代のソフトウェアアプリケーションは、Web用に開発されるのが一般的です。Linux Professional Institute (LPI) の Web Development Essentials プログラムは、ソフトウェア開発の最初のステップをサポートします。このプログラムには、トレーニングおよび自習に適した学習教材が含まれています。Web Development Essentials試験に合格すると、スキルを証明する認定証が授与されます。 プログラムの目的は、Web開発の最も重要な側面をカバーしています。特に、簡単なWebアプリケーションを実装するために必要なすべてを含むように設計されています。このため、Web Development Essentialsは、実践的なコースやトレーニングに最適です。自己学習では、受験者は最初のプロジェクトの実装ですぐに成功を収めるために必要なすべてを見つけることができます。 現行バージョン: 1.0 (試験コード 030-100) 試験範囲(Objectives): 030-100 受験資格: この試験はどなたでも受験可能です(受験に必要な資格や実務経験はありません) 認定要件: 40問あり、60分以内に完了する必要があります。 有効期限: 永久 費用: あなたの国での試験価格はこちらをご覧ください。 VUEテストセンターで受験可能な言語: 英語、日本語、ドイツ語 OnVUEでオンライン受験可能な言語: 英語、日本語、ドイツ語 Web Development Essentialsの認定を受けるには、以下の条件を満たす必要があります。: ソフトウェア開発の原理、HTML、CSS、JavaScript、Node.js、SQLを理解していること。

Web Development Essentials試験対策その3:データベース編

この記事で、Linux Professional Instituteの認定資格に最近追加されたものについての連載を終了します。Web Development Essentialsです。最初の2つのパートでは、フロントエンドとバックエンドのプログラミングについて紹介しました。最後に理解しなければならない主要な技術はデータベースです。 データベース ほとんどのアプリケーションは大量のデータを扱っており、サーバーのメモリやファイルに保存することは現実的ではありません。MySQLやPostgreSQLのようなリレーショナルデータベースは、ほとんどの場合、Webサービスが動作している場所で見つかります。例えば、音楽サイトでは、訪問者が作曲家、タイトル、ジャンル、日付から音楽を検索し、データベースから結果を提供することができます。 リレーショナルデータベースは、SQL(Structured Query Language)を使ってリクエストを受け付ける。SQL の詳細はデータベースエンジンによって異なりますが、ほとんどの Web アプリケーションで必要な SQL は非常に基本的で、すべてのデータベースでほとんど同じように動作します。作曲家とタイトルの組み合わせで検索したり、新しい情報をデータベースに格納したりすることは、基本的な操作です。 Web Development Essentialsでは、ノートパソコンで簡単に実行できるSQLiteを学ぶとよいでしょう。仕事ではより高機能なデータベースに出会うことになりますが、SQLiteで学んだことはそちらにも応用できます。 Node.jsなどのプログラミング言語やフレームワークには、データベースにSQLを送信し、その結果を解釈するためのインタフェースが用意されています。例えば、検索で75件ヒットしたら、一度に10件ずつ検索して、訪問者に表示するように整形する練習ができます。データベースの練習をするときは、おもちゃのアプリケーションを考えるのではなく、大きなデータセットを扱って、その要件を理解する必要があります。 ウェブ開発への包括的なアプローチ 仕事では、特定の技術に特化することになるでしょうが、Webが何を提供し、大規模なWebサイトがどのように機能しているかを、上から下まで理解する必要があります。 この連載をきっかけに、Web 開発の本質を考え、ここに挙げた技術を習得していただければと思います。Webのための基本的なプログラミング技術は、プログラミングの学問や専門的な訓練を受けたことがなくても学ぶことができます。そのため、コンピュータの世界でキャリアを積みたいのであれば、Web制作は格好のスタート地点となります。そして、さらに学問的、専門的な知識を身につければ、ウェブ開発の知識はこれからも役に立ちます。ウェブデベロップメントは、長い間、ずっと存在し続けるのです。 先に説明したように、実際のWebサイトを使った経験は、試験合格のために貴重なものです。しかし、その教材は書籍やビデオなどで多くの資料が用意されています。LPIが独自に作成した「Learning Materials for Web Development Essentials」は、現在9ヶ国語で提供されていますので、ぜひご一読ください。

Web Development Essentials試験対策その2:フロントエンドとバックエンド

この記事では、Linux Professional Instituteの認定資格に最近追加されたものについてシリーズで紹介しています。Web Development Essentialsです。前編では、Web開発者になるためのスキルを紹介しました。今回は、図1に示すWebエクスペリエンスの各パーツに必要な技術について見ていきましょう。 図1:Webサイトを構成するソフトウェア要素。 ユーザーエクスペリエンス(フロントエンド) 私たちが日常的に使っている魅力的なWebアプリケーションは、ブラウザに機能が追加されることで徐々に実現されていきました。HTMLの拡張とともに、CSSやJavaScriptという新しい言語が追加され、あらゆる効果やレイアウトに対応できるようになったのです。 CSSとは、Cascading Style Sheets(カスケーディング・スタイル・シート)の略です。この「カスケーディング」という言葉が重要で、あるルールが他のルールより優先されることを表しています。HTMLのレベル(実体、ID)ごとにどのように効果を適用するか、どのルールが他のルールを上書きするかを知っておく必要があります。また、位置決めも必要です。例えば、順序付きリストの中の箇条書きを、順序なしリストの中の箇条書きとは異なるものに見せることができます。CSSはHTMLと密接に連携しています。 JavaScriptは、ブラウザ上で動的な効果を実現するために発明されました。ページ上でマウスを動かすとダイアログが表示されたり、単語をクリックすると段落に展開されたりするのは、JavaScriptを呼び出しているためです。JavaScriptは、今日のコンピュータ界で最も広く普及し、最も重要な言語の一つです(他の言語のファンからは、しばしば嘲笑されますが)。 JavaScriptを使うには、ウェブのドキュメント・オブジェクト・モデル(DOM)を学ぶ必要がある。これは複雑ですが、練習すれば理解できるようになります。Web Development Essentialsに合格するためには、Webページ内のさまざまな要素の見た目を変えるなどのエフェクトを行う方法を学びます。 ブラウザのデバッガの使い方を知っておくとよいでしょう。各ブラウザにはデバッガがあり、JavaScriptが実行される様子や、その際に発生するエラーなどを確認することができます。 また、コマンドラインツール「npm」をインストールし、JavaScriptのライブラリの取得方法を学んでおく必要があります。 CSSは、JavaScriptと密接に連携しています。例えば、クリックすると段落が表示される「詳細」ボタンがあるとします。クリック後に段落を貼り付けるために、JavaScriptを単独で使うこともできます。しかし、ウェブページがブラウザに送信されるときに段落を含めておき、CSSで段落を「非表示」にする方が、おそらくより効率的でエレガントな方法です。JavaScriptはCSSと連動して、クリック後に非表示を解除することができます。 ここまでくれば、パソコンでの簡単な練習にとどまらず、実際に体験することができるはずです。数十ページ、数多くの要素を持つサイトに取り組むことができれば、この記事で取り上げた技術の威力を実感し、それぞれの技術の最適な使い方を理解することができるでしょう。このような環境で働くには、NPOや友人のホームページの制作やメンテナンスをボランティアで請け負うのがよいでしょう。 サーバーサイドプログラミング HTML、CSS、JavaScriptはブラウザの中で動作するため「フロントエンド」と呼ばれ、Webサーバーやデータベースは「バックエンド」と呼ばれます。フルスタックプログラマーになるには、バックエンドにも同様に精通する必要があります。サーバー上で動作するプログラムを書いたり、データベースとの間でデータの読み書きをしたりすることになります。 幸いなことに、Node.jsというJavaScriptのフレームワークのおかげで、バックエンドでJavaScriptを使ってプログラムを書くことができるようになりました。Node.jsの上に他の多くのフレームワークが構築されており、Web Development Essentialsでは、人気の高いExpressフレームワークを学習する必要があります。 本番環境では、独自の管理ニーズを持つ高度なウェブサーバーを採用しています。Expressの便利な点は、さらにソフトウェアをインストールして設定することなく、デスクトップまたはラップトップでサーバーを実行できることです。これがWeb Development Essentialsの試験準備と受験の方法です。 HTTP で Express サーバーと通信する HTML フォームをいくつか作成する必要があります。いくつかの単語よりも複雑なデータを送信して返すには、JavaScript のサブセットである JSON を使いこなす必要があります。 クライアントからサーバーにリクエストが来ると、サーバーはそのリクエストを処理するために Node.js プログラムを呼び出します。リクエストに含まれる引数(ユーザーデータ)を解凍し、引数に悪意のある内容が含まれていないことを確認し、結果をHTMLとして返す必要があります。 Expressでは、一貫性のあるHTMLベースのページを簡単に作成するためのテンプレートが提供されています。Web Development Essentialsでは、Expressのテンプレートにある程度慣れていることを前提としています。 次回は、図1の最後の部分であるデータベースについて説明します。