エンジニアハック https://media-architect.co.jp/engineer 初心者エンジニア・プログラミング学習者向けの日本最大級のプログラミングメディア Thu, 28 Mar 2024 14:54:38 +0000 ja hourly 1 https://wordpress.org/?v=5.7.11 https://media-architect.co.jp/engineer/wp-content/uploads/2019/11/engineers-hack-1-150x150.png エンジニアハック https://media-architect.co.jp/engineer 32 32 【無料あり】エンジニアが解説!プログラミングスクールおすすめ5選 https://media-architect.co.jp/engineer/about-programming-schools/ Thu, 28 Mar 2024 14:54:13 +0000 https://media-architect.co.jp/engineer/?p=505 プログラミングを学ぶにあたり、プログラミングスクールを検討している人は多いのではないでしょうか。

独学で勉強する方法もたくさんありますが、プログラミングは学び方がわからないとなかなか前に進むことができず、止まってしまう人も少なくはありません。

そんな時、もしプログラミングスクールに通っていれば、学びたい言語を短期間で集中的に学ぶことができ、わからないところはすぐに質問することができます。

現役のエンジニアが教えてくれるところも多いので、即戦力として採用される技術を身につけることができるのもプログラミングスクールの大きなポイントです。

とはいえ、プログラミングスクールに通うと、その分時間も料金もかかってしまうので、簡単に決断するのは難しいものです。

 

あなた
たしかに簡単には選べないよね…

 

今回は、そんなプログラミングスクールにどのようなものがあり、どう選ぶのがいいのかを紹介していきたいと思います。

少しでも、プログラミングスクールに通うかどうか悩んでいる方の後押しをできれば幸いです。

プログラミングスクールでの学び方を決める

プログラミングスクールでの学び方

プログラミングスクールにはオンラインで受講できるタイプと実際に教室へ通うタイプの2種類があります。

オンラインで受講できるタイプ

オンラインの特徴としては、インターネット環境があればどこでも受講でき、自分の都合にあわせて学習することが可能なことです。

地方で、近くに通える学校がない人や、働いていて時間があまりとれない人にはオンラインがおすすめです。

実際に教室へ通うタイプ

教室へ通うタイプは、いわゆる専門学校のように実際に通学して勉強するタイプです。

講師とその場でやり取りができるので、聞きたいことをすぐに解決することができますし、同じ目的を持った仲間が一緒ですので、モチベーションを維持しやすくなります。

プログラミングスクールによっては、オンラインと教室型の併用をしているスクールもあります。

自分の環境と勉強方法に適したタイプを選択するようにしましょう。

プログラミングスクールでどんな言語を学ぶのかを決める

プログラミングスクールで学ぶ言語

WEBデザイナーを目指すのであれば「HTML/CSS」「JavaScript」、WEBのアプリを作りたいのであれば「PHP」や「Java」「Ruby」などが有名です。

システム系エンジニアになりたいのであれば「Java」「C言語」「Linux」などが中心の言語になりますし、あるいはAI技術や人工知能などの最先端技術を学ぶという道もあります。

プログラミングスクールは、プログラミング言語一種類から受講できるタイプと、総合的にいろいろ学べるタイプと、選択肢は幅広くあります。

自分が目指す方向性と全く関係のない言語を学んでも、時間と料金だけがかかってしまう結果になります。

自分の学びたい言語が何なのか、どういうエンジニアを目指しているのかを考えた上で、コースを選択することが大切です。

 

あなた
ただ最初は言語とかちんぷんかんぷんだと思うから、まずは無料体験に行ってみるべし…

 

プログラミングスクールのおすすめ5選

おすすめのプログラミングスクール

ではここからは、オンライン型と教室型の実際のプログラミングスクールを5校紹介します。

TechAcademy

オンライン完結タイプのプログラミングスクールです。

プログラミング・アプリ開発・デザインなど豊富なコースが準備されていて、セットで受けられるコースなどもあります。

1週間の無料体験があったり、エンジニア転職保証コースという就職に特化したコースが準備されていたりしますので、プログラミングスクールでも上位人気を誇っています。

CodeCamp

オンラインに特化したプログラミングスクールで、その中でもめずらしくマンツーマンレッスンを採用しています。

7時~23時40分まで年中無休でレッスンを受講することができるので、働きながらでも、自分に合った時間で学習することができます。

会員登録(無料)をすると、無料体験が受けられますので、一度試してみるのもいいでしょう。

>>無料体験可能!
まずは説明会に申し込む<<<

TECH::CAMP

教室とオンラインを併用しているタイプのプログラミングスクールで、大阪・東京・名古屋に拠点を持っています。

忙しくてなかなか時間が取れない方や、短期集中で学びたい方におすすめで、1日10時間 ×7日間でプログラミングをマスターできる短期コースなども準備されています。

TECH BOOST

東京の渋谷にある教室と、オンラインを併用しているタイプのプログラミングスクールです。

毎日解放されている教室に通いつつ、かつオンラインで質問可能という学習方法が魅力のスクールです。

特定の言語について学ぶのではなく、3ヶ月の学習カリキュラムのなかで、前半にWEBアプリ、後半にIoTなどの最先端技術に触れるという構成になっているので、講座を受けると最終的に最先端技術を経験できるのが大きな特徴です。

人材紹介サービスを提供している会社が運営しているので、エンジニアの転職にも成果が出ています。

DMM WEBCAMP

受講生全員に転職保証をしてくれる、教室とオンラインを併用しているタイプのプログラミングスクールです。

受講完了後、3ヶ月以内に転職・就職できない場合は全額返金してくれます。

東京・渋谷と大阪・難波にある教室に通い、そこでオンラインで自主学習を行います。時間も11時から22時までと長く使えるので、社会人や学生の方にも通いやすいスクールです。

プログラミングスクール解説のまとめ

まとめ

いかがだったでしょうか。

自分自身の生活スタイルと勉強のスタイルに合った形でどの言語を学びたいかによって、選べるスクールは変わります。

無料体験があれば参加してみて、必要な料金・かかる時間を考慮しながら、自分の目的と自身の方向性にあった言語を学べるスクールを選びましょう。

]]>
Webアプリ・Webサービスのセキュリティ対策の基本を解説! https://media-architect.co.jp/engineer/about-web-security/ Thu, 28 Mar 2024 14:52:56 +0000 https://media-architect.co.jp/engineer/?p=205 WebアプリやWebサービスは手軽であるために多くの利用者がいますが、外部に対して公開されている以上、悪意をもってアプリやサービスに攻撃が行われる場合もあります。

Webアプリやサービス、そして利用者をサイバー攻撃から守るために、アプリやサービスの開発側で行うべきことを紹介します。

Webアプリやサービスで生じやすい脆弱性

セキュリティと脆弱性

Webアプリやサービスではさまざまなトラブルが発生しますが、特に生じやすい脆弱性についてはセキュリティに直接関わらないとしても知っておきましょう。

SQLインジェクション

お問い合わせフォームなどに悪意のあるSQL文を挿入する攻撃で、意図しないコマンドが実行されたり、データへの不正なアクセスが行われます。

セッションハイジャック

個人のWebページの利用を追跡するためのセッションの仕組みを利用し、他人に成りすましてログインが必要なページを閲覧したり、操作を行う攻撃です。

クロスサイトスクリプティング

ブラウザ上でスクリプトを実行し、セッションハイジャックやwebサイトの改ざん、悪意のあるサイトへのリダイレクト(転送)などを行う攻撃です。

オブジェクト直接参照

サーバーにアップされているデータやオブジェクトを直接参照します。

適切なアクセス権限や公開範囲が設定されていない場合に生じます。

クロスサイトリクエストフォージェリ

ユーザからの正当なリクエストとして認識されるようなリクエストをブラウザに生成させ、ブラウザの利用者(=被害者)が意図しない処理を実行させる攻撃です。

Webアプリやサービスにおけるセキュリティの基本テクニック

テクニック

上記のようなトラブルを防ぐための基本的なテクニックの概要を紹介します。

通信の暗号化

WebアプリやWebサービスは、クライアント(利用者)とサーバー(サービス提供側)における情報のやり取りによって機能します。

両者の間で通信が行われることで処理や表示が行われますが、この通信の過程で攻撃者の侵入が生じます。

通信方法をSSLで暗号化することで盗聴や改ざんを予防できます。

特殊記号をエスケープする

SQLインジェクションやクロスサイトスクリプティングなどの攻撃は、ブラウザで表示される入力フォームや通信におけるリクエスト情報に、<script>のタグや、プログラムが入力データを識別するための「’」や「;」といった記号が不正に入力されることで生じます。

これらをエスケープ(別の文字列への置き換え)をする仕組みを備えることで対策を施します。

開発用のフレームワークにはこうした機能が標準で設定されているものが多いです。

入力規則によるサニタイズ(無害化)

挿入される情報に入力規則を設け、不正な入力を防ぐと共にスクリプトが機能しないようにする方法も有効です。

<a href=””>ならhrefに入力できる内容は「http」あるいは「https」から始まるようにする、<script>タグが機能しないように「<」「>」を「&lt」「&gt」の表記にエスケープするなどの方法があります。

CookieやセッションIDのランダム生成

個人の通信の状況を識別するためのCookieやセッションIDが一定の規則のもとで発行されていれば、知識のある人であれば簡単に他の人になりすましてサービスにアクセスできます。

そのため、これらをランダムで生成したり、使用できる期間を短くして再発行させるなどの対策をとります。

WAFを利用する

WAFはwebアプリケーション用のファイアウォールで、不正な通信や振る舞いを検知してアクセスを遮断するための装置です。

物理的に装置を設置する場合もありますが、最近はクラウドでサービスが提供されているものもあります。

Webアプリやサービスのセキュリティは多層防御が鉄則

多重防御

Webアプリやサービスにおけるセキュリティ対策は、実にさまざまな要素を含んでおり、ひとつの方法で完全な防御ができるわけではありません。

いわゆるセキュリティソフトと言われているソフトも、現在はウイルス対策だけではなく、不正なデータの入出力の検出や、ファイアウォール機能、不正プログラムの動作の検出などさまざまなセキュリティ技術が複合的に提供されています。

Webアプリやサービスにおいては、サービスを提供するサーバーのセキュリティを固めるだけでなく、ユーザーとのやり取りに必要な通信(ネットワーク)におけるセキュリティや、ユーザー側での操作における入力情報からのトラブルを防ぐための仕組みも必要です。

また、問題が発生した場合に備え、重要なデータはなるべく公開されているサーバー上に残さないようにしたり侵入を許したアカウントの特定やロックができるようにするなどアカウントの管理や、ファイルやディレクトリに対するアクセス権限の適切な設定などサーバー管理も大切になります。

当然、OSやセキュリティソフト、各ソフトは脆弱性に備えて最新の状態を保つことが必要不可欠です。

Webアプリやサービスを安全に提供するためには、多層的なセキュリティ対策を考えて実装していくことが大切で、全体を俯瞰してどこにどれだけの対策を施すべきかをよく考えましょう。

Webアプリ・Webサービスのセキュリティ対策まとめ

まとめ

Webアプリやサービスは外部に公開されている分、攻撃を受けやすい側面があります。

サービスの利用を便利にするためのさまざまな機能が悪用されることで大きなトラブルになりますので、ポイントをしっかりと押さえて基本的な対策を施しましょう。

セキュアなプログラミングだけでなく、ネットワークやサーバーなどのセキュリティも考慮して、多層的な対策を行うことが大切です。

]]>
【初心者向け】Reactの特徴と向き・不向きを解説! https://media-architect.co.jp/engineer/about-react/ Thu, 28 Mar 2024 14:42:50 +0000 https://media-architect.co.jp/engineer/?p=496 Reactは現在人気のJavascriptフレームワークのひとつで、Facebookが開発しオープンソースとして無料で提供しています。

多くのパーツが世界中で開発されており、それらを組み合わせることで簡単にWebアプリを開発することが可能です。

Reactをまだ使ったことがないユーザーのために、Reactの特徴や基本的なことについて紹介します。

Reactとは

Reactとは

Reactは、Facebookによって提供されているオープンソースのJavascriptライブラリで、React.jsやReact.JSと呼ばれることもあります。

基本的にはシングルページのアプリケーションやモバイルアプリを想定して作られています。

洗練されたUIを簡単に導入することができることや、多くの機能をプラグインとして追加することができるため、同じく人気のフレームワークであるAngularと比較すると導入が容易で学習時間も短く済むという利点があります。

特に、純粋なJavaScript技術者にとってはReactの方が受け入れやすいという声が多いです。

本記事執筆時点では、reactの最新バージョンはv16.8.6です。

Reactは頻繁なバージョンアップが行われており、バージョンによって機能の互換性がない場合もありますので、情報を参照する場合はバージョンには注意しましょう。

最新バージョンは以下の公式サイトから確認できます。

参考:React公式サイト

https://ja.reactjs.org/

Reactの特徴や利用シーン

Reactとは

Reactの特徴や利用シーンについて概説します。

ちょっと試したい人はオンラインエディタがある

Reactをちょっと試してみたい人は、Codepenなどのオンラインエディタでも試してみることが可能です。

ある程度大きな規模のページを作ることになると動作が遅くなっていきますので、簡単なテストページ程度にとどめておきましょう。

JSXによるスクリプトとマークアップの一体化

JSXというReactで利用されているJavascriptの拡張では、スクリプト中にマークアップを記述していくことが可能です。

これにより、スクリプトを搭載したパーツをそれぞれ設計し、コンポーネント化して組み合わせることでページ作成が可能です。

また、このような形で記述することにより、Javascript内に悪意ある形でコードを記入されることを防ぎますので、既存サイトのセキュリティ強化などにも利用できます。

仮想DOM

Reactでは仮想DOMとしてメモリ上にDOMの状態をキャッシュし、差分だけえを計算して反映させる仕組みをとっています。これにより、変更が必要な部分だけを効率的に描画することが可能です。

しかし、差分が大きくなるとそれだけキャッシュが圧迫されることになるため、内部の描画が大きく変わるようなサービスではメモリ消費量が大きくなる可能性があるのて注意しましょう。

基本的にどんなWebアプリにも適用可能

Reactは、学習のための時間が短く済み、また最小構成からプラグインを追加していくことでさまざまな機能を追加し、大規模な開発案件にも活用可能です。

YahooやAirbnbなどもreactが使われています。

エコシステムが強い

Facebookが開発して提供していることもあり、Reactは非常に強いエコシステムを持っています。

世界中の多くの技術者やデザイナーがコンポーネントやプラグインの作成に取り組んでおり、より便利にReactを使うための環境が整っています。

Reactの苦手なこと

Reactの苦手なところ

Reactには多くのメリットがありますが、Reactが苦手にしている部分についても理解しておきましょう。

大規模かつ頻繁なデータの書き換えが生じるようなサービスでは不向き

仮想DOMの仕組み上、大規模で頻繁なデータの書き換えが必要になるようなサービスにはReactは不向きであると言えます。

キャッシュするデータ量が大きくなってしまい、メモリを大きく圧迫してしまう恐れがあるからです。

具体的にはゲームなどどんどん画面が切り替わるようなサービスでは不利です。

実際にはそういった種類のサイトはあまり多くありませんが、開発場面では出てくる可能性もありますので頭に入れておいた方が良いでしょう。

規模が小さいサービスでは十分に機能を発揮できない

構築が難しい、不可能ということではありませんが、Reactのメリットはある程度の規模のサービスになっても管理が容易にできるという点にあります。

逆に言えば、たいして大きくない規模のサービスなら、あえてコンポーネントを分けて独自の記法などを用いて管理する必要はないのです。

また、データ量も大きくないのであれば仮想DOMでなくとも表示速度には大差がありません。

規模が小さいサービスでは、従来通りのHTMLやJavaScriptを使って作成したり、他のJavaScriptライブラリを使った方が便利かもしれません。

サーバーサイド中心のサービスからの移行は難しい

従来、PHPやRuby、Node.jsを利用して管理していたようなサーバーサイドが中心になっているサービスを、Reactで実装したものに移行しようとすると難易度が高くなります。

Reactまとめ

まとめ

ReactはFacebookが作成し、世界中のコミュニティによって開発が行われているオープンソースのJavaScriptフレームワークです。

フロントエンド開発に特に強く、多くのメリットでWebアプリの開発を効率化してくれますが、一方でそのメリットを正しく理解して使わなければ機能をうまく活かすことができません。

学習難易度は低いため、早めに学習しておけば対応できる案件も増え、転職などの際にも幅が広がるでしょう。

]]>
プログラミング初心者必見!おすすめのテキストエディタ8選を紹介 https://media-architect.co.jp/engineer/about-text-editor/ Thu, 28 Mar 2024 14:27:13 +0000 https://media-architect.co.jp/engineer/?p=635 プログラミングをするうえで欠かすことができないツールの一つに、テキストエディタがあります。システム開発の現場では、専用のソフトやツールがあったりもしますが、まずはテキストエディタでコードを書く技術者が多いです。

そして、どのエンジニアも、大体お気に入りのテキストエディタを持っています。

今回は、そんなエンジニアに人気の、テキストディタをいくつか紹介していこうと思います。

テキストエディタとは

テキストエディタとは、文字情報ファイルを、作成・編集・保存するためのソフトウエアです。拡張子は「.txt」になります。

Windowsパソコンでは「メモ帳」、Macでは「テキストエディット」などがそれに当たります。すでにパソコンに入っているこれらのようなものを使用してもいいのですが、プログラムを書く上では、いろいろと機能不足な面があります。

そこでエンジニアが使用するのが、無料や有料のテキストエディタです。

使い勝手はいろいろで、人によって使いやすさが違いますし、使用する言語によって補完機能がどれだけあるかという点もエディタを選別するポイントになります。

プログラムを作るときは、効率的に作業行う必要がありますので、使いやすいエディタで作業をすることが大事です。

フリーテキストエディタおすすめ8選

では、エンジニアに人気のテキストエディタを紹介していこうと思います。

TeraPad

メモ帳に似たシンプルなデザインと多機能、特に動作が軽いという点で、プログラマーには人気があります。Windowsで動作します。行番号やタブ、空白の表示、HTMLタグが自動で色分けしてくれたりします。

ブラウザでのプレビューや、メモ帳とは違い元に戻すことが何度もできるので、やり直したい時にも便利です。

サクラエディタ

無料のWindows用の日本語対応テキストエディタです。

JavaやHTML、PHPなど、多くのプログラムに対応した色付き表示や、フォルダ内にあるテキストファイルすべてを検索できるGREP機能などもあり便利です。カスタマイズも豊富で、評判が高いです。

余談ですが、私もサクラエディタ愛用者です。

Visual Studio Code

Microsoft社が開発したテキストエディタです。「VSCode」と呼ばれています。

キーワードを一度入力すると、システムに記憶されているので、次に書くときにはコード候補として呼び出すことができます。VisualStudioのようにデバッグ機能もあるので、プログラミングをするうえで使い勝手がいいとされています。

ただ、ほかのテキストエディタに比べて重いのがデメリットです。

Notepad++

海外でも人気のオープンソースのテキストエディタです。日本語でのインストールができます。シンプルな画面や操作が分かりやすいということで、初心者にも使いやすいです。

コードの折りたたみ機能や自動バックアップがあるのもおすすめです。

秀丸エディタ

有料のWindows用のテキストエディタです。軽くて性能も高く、プログラマーからの人気があります。

最初は無料でお試し期間利用できます。

Windowsのテキストエディタではとても人気があるツールになっています。

Atom

Atomも人気があり、Windows、Mac、Linuxで使用することができます。

パッケージの種類が豊富なのが特徴で、パッケージをインストールするとブラウザとの連携も可能です。バージョン管理システムのGitも、パッケージをインストールすれば使用することができます。

初期は英語設定になっているので、まずは日本語化する対応が必要となります。

Sublime Text

MacでもWindowsでも使用することができる、有料のテキストエディタです。最初は英語版なので、日本語化する必要があります。動作が軽く、プラグインも豊富なので、プラグインを入れればHTMLの補完機能なども使うことができます。環境を気にせず使うことができるという点でおすすめです。

Atomと似ていますが、動きが軽いのが特徴です。

Vim

これまで紹介したエディタとは違い、画面はコマンドプロンプトのようになっており、キーボードのみで操作するものになります。Windows、Mac、Linuxで使えます。

動作や起動が軽く、快適に操作できるので、エンジニアを目指すのであれば一度は試してみたいソフトです。

統合開発環境のテキストエディタ

Eclipse(エクリプス)やVisual Studio(ビジュアルスタジオ)などのIDE(統合開発環境)と呼ばれるエディタがあります。

WEB系であればEclipse、C、C++、C#、VBなどはVisual Studioを使用して開発を行う場合が多く、Eclipseは無料、Visual StudioはExpress版が無料で使うことができます。

作成からビルド、実行、デバッグなど一連の作業をすべてシステム内で行うことができるので、現場で使用されることが多いです。キーワードの色分けや予測変換なども、多くの言語に対応しています。

先に紹介したテキストエディタよりは重くなりますが、テキストエディタにはない機能が豊富に搭載されていて便利なのが、IDEの特徴です。

まとめ:自分に合ったテキストエディタを見つけよう

いかがでしたか?

テキストエディタは個人個人によって使いやすさが違いますので、まずはフリーの色々なテキストエディタを試してみて、自分に合ったものを見つけることをおすすめします。

現場で使用されているテキストエディタがあれば、それを使用しなくてはいけないこともありますが、ツールによって仕事の効率が大きく変わりますので、可能であれば使いやすいエディタを使用できるのがうれしいですね。

それぞれのエディタの特長を見て、ぜひ自分に合ったエディタを見つけるようにしましょう。

]]>
OSS(オープンソースソフトウェア)とは?具体例とメリットを解説 https://media-architect.co.jp/engineer/about-oss/ Thu, 28 Mar 2024 13:06:17 +0000 https://media-architect.co.jp/engineer/?p=124 ソフト開発、システム開発の現場において、注目が集まっているのがオープンソースソフトウェアです。

無料で利用できるものも多く、また世界中の多くの技術者たちによって絶えず改良が続けられているため、上手く活用することによって短時間で高品質な開発を行うことが可能になっています。

この記事では、開発に携わる人であれば知っておきたいオープンソースソフトウェアについて解説します。

OSS(オープンソースソフトウェア)とはどんなもの?

OSSとは

オープンソースソフトウェアとは、ソースコードの使用、調査、再利用、修正、拡張、再配布などが可能なソフトウェアを総称する呼び方です。

一般的にプログラムやそのソースコードは、著作権の保護対象にあたりますが、あえてそれらをオープンにして利用できるようにすることで、ソフトウェアの開発を容易にし、またデバッグ作業を世界中の多くの技術者によって絶えず行うことができるようにしています。

オープンソースソフトウェアの動きが始まった頃は、関係団体が独自にライセンスを作成していたため混乱もありましたが、現在はGPL、MIT、MPL、APGLなどの主要なライセンスが整理されてきています。

また、ソースコードの管理などもGitなどの技術が登場したことにより、バージョンをさかのぼって利用したり、また最新のコードの把握が容易になりました。

オープンソースソフトウェアは、しばしばフリーソフトと混同されますが、オープンソースソフトウェアの定義はソースコードの使用上の定めによるものであり、費用の有無によりません。

また、使用などがフリーである一方で、著作権を完全に放棄しているわけでもないことに注意が必要です。

有名なOSS(オープンソースソフトウェア)

有名なOSS

オープンソースソフトウェアには様々なものがありますが、代表的なものをいくつか紹介します。

WordPress

企業サイトから個人ブログまで、数多く使われているブログシステムの定番です。

フリーで活用ができるだけでなく、随時更新が行われたり、世界中の技術者やデザイナーによってプラグインやテーマ、テンプレートの作成が行われています。

Linux

サーバーOSとして有名なLinuxは、オープンソースソフトウェアの代表格です。

以前はUNIXの代替としての役割を求められていましたが、現在は独自の地位を確立しています。

フリーで使える他、軽量で動作が早いことから、IoTにおけるOSとしてもよく利用されています。

Apache

フリーで構築できるWebサーバーと言えばApacheで、長年その地位を保ってきました。

近年はシェアは減っているとは言え、非常に多くの需要があり、世界中で利用されています。

Nginx

Nginxはエンジンエックスと読みます。

Apacheと同じくwebサーバーソフトであり、近年急速にそのシェアを伸ばしています。並列処理や動作速度などに強みを持っているのが特徴です。

Mozilla

オープンソースのプロジェクトとして始まったMozillaは、現在もファンの多いブラウザ「firefox」などを開発しています。

軽量で高速なブラウザであり、またOSに依存せずに使えることから、様々な機器においても活用されています。

MySQL

データベースソフトとして広く活用されているMySQLもオープンソースソフトウェアです。

特にweb上で動作するアプリケーションやサービスで多く利用されています。

PostgreSQL

MySQLと並び、広く利用されているPostgreSQLもオープンソースソフトウェアです。

データベースを必要とするサーバーで利用されることが多いリレーショナルデータベースシステムです。

TensorFLOW

TensorFLOWは、googleが提供している機械学習のオープンソースソフトウェアです。

機械学習に必要な機能を網羅して搭載しており、学習からビジネスにまで幅広く活用できる性能を有します。

OSS(オープンソースソフトウェア)を使うメリット

オープンソースソフトウェアを使うメリットを簡潔に紹介します。

信頼性が高い

オープンソースソフトウェアは、世界中の技術者たちの目にさらされながら鍛え上げられてきたソフトウェアであるため、信頼性が高いソフトです。エラーやバグなどもすぐに報告されるため、デバッグなども十分に行われています。

動作・セキュリティ上の安定感がある

オープンソースソフトウェアは、専門家たちに絶えずレビューされているため、動作上のエラーやセキュリティ上の脆弱性があればすぐに修正が行われるため、安定した動作を期待することができます。

応用しやすい

オープンソースソフトウェアは、国際標準規格にのっとって作成されているものが多いため、システム間の連携やプラグインの開発などが比較的容易になっています。

また、ソースコードが公開されているため、必要な部分だけを修正、改良して自社の製品やシステムに応用できます。

コストが安い

オープンソースソフトウェアは、フリーのものが多く、また有料になるとしても企業のライセンスでガチガチに固められたソフトなどと比較するとずっとコストが安く済みます。

製品開発の期間も短縮できるため、人件費を含め研究開発費を節約することができます。

開発速度が早まる

何かシステムを作る際に、一から設計や開発を行う必要がなく、モジュール化されたオープンソースソフトウェアを組み合わせるだけでも実用に耐えうるシステムが作れる場合もあります。

どんなソフトがどこにあるかさえ知っていれば、微修正を行う程度で、劇的に開発スピードを速めることができます。

欧州やイスラエルなどではオープンソースの利用が特に進んでおり、高速なソフトウェア開発が行われています。

OSS(オープンソースソフトウェア)についてのまとめ

OSSまとめ

オープンソースソフトウェアは、使用や修正、再利用などが自由になっているソフトウェアで、私たちの周囲にも多くが活用されています。

そして、利用には先述の通り多くのメリットがあります。

上手く活用することで、システムやソフトウェアの開発効率を高めたり、コストダウンにも活用できます。

ルールを正しく理解して、業務や学習に活用しましょう。

]]>
Gitとは?活用して効率的なファイル管理をしよう https://media-architect.co.jp/engineer/about-git/ Thu, 28 Mar 2024 12:39:26 +0000 https://media-architect.co.jp/engineer/?p=109 最近のWebサービスやアプリケーションは、リリースした後も頻繁にその内容がアップデートされていきますが、バージョン管理はリリース前から様々な点で必要になります。

特にサービスの規模が大きくなり、複数人で作業をするようになるとバージョン管理は煩雑となりますが、それを効率的にするためにGitが使われています。

この記事では、そんなGitについて概要から学習方法までを解説します。

「Git」とはどんなもの?

Gitとは

Git(ギット)とは、プログラムソースなどの変更履歴を管理する分散型のバージョン管理システムのことです。

元来、オープンソースのOSであるLinuxの開発チームが使用していて、それが世界中の技術者に利用者が拡大し、現在にいたっています。GitはLinuxのコマンドにもなっています。

Gitでは、自分のパソコンなどのローカル環境に、全ての変更履歴などの情報を含んだリポジトリの複製が作成されます。

従来のサーバーを使ったファイル管理では、サーバー上にあるひとつのリポジトリを皆で共同利用していましたが、利用者が増えることで変更内容が衝突したり、整合性を維持するのが難しい事情がありました。

Gitでは、ローカル環境で変更したファイルの状態を更新履歴として好きな時に残すことができ、前のバージョンとの差分を確認したり、また以前の状態にロールバックすることが容易にできるようになっています。

また、古いファイルでサーバー上にある他の人が編集したファイルを上書きしようとするとアップロードの際に警告が出るなど、変更を正しく管理するための工夫が施されています。

簡単にまとめると、Gitとは、ファイルのバージョン管理を便利にするツールなのです。

「Git」を使うメリットとは?

メリット

Gitを使う上でのメリットについても理解しておきましょう。

多くのエンジニアの間で使われていることもあり、メリットは多数存在します。

ファイル管理が楽になる

ひとつのファイルを複数人で共有したり編集したりする場合には、更新状況などをしっかり管理し、最新の状態を正しく維持する必要があります。

そのためにファイル名などに工夫をしていると思いますが、Gitを使えばシステムが管理してくれるのでファイル管理が楽になります。

差分・変更履歴が確認できる

ファイルのバージョンが変わったと言われても、更新をした当人以外はどこがどう変わったのかわからない場合も多いです。

また、コメントを残すにしても元のファイルがコメントだらけになって見づらくなってしまう場合もあります。

Gitなら、前バージョンとの差分や変更履歴が自動的に記録されるので、変更箇所の確認が容易になります。

また、バージョンごとの記録が残っているため、簡単に前のバージョンに戻すこともできます。

ローカルで環境を保持していても作業できる

Gitでは、対象となるファイル群をローカル環境に保持し、ローカルで作業をしていても、アップロード時に適切に更新されるようになっています。

一般的なファイル管理の仕組みでは、サーバー上のファイルを直接操作するか、もしくはサーバー上のファイルのバージョン管理を自分で行った上でアップするしかありませんでした。

Gitはこうした作業から作業者を解放し、ローカルの使いやすい環境での作業を可能とします。

「Git」初心者の始め方

初心者

Gitをこれから使い始める人は、次のようなツールで学習していくのが良いでしょう。

具体的なツールについてお伝えさせていただきます。

GUIが良い人は「SourceTree」がおすすめ

Gitは実はCUIで動くツールです。

つまり、コマンドプロンプトなどのコマンド操作になりますので、普段GUIしか使わない人には敷居が高く感じるかもしれません。

SourceTree はGitを簡単に使えるようにしたツールで、GUI形式なので視覚的にクリックなどで操作ができるようになっているツールです。

無料で、日本語対応もしているので安心して使えます。

コマンドラインで操作したい人は「TortoiseGit」

Gitをコマンドラインから操作してみたいという人は、TortoiseGitなどのCUIベースのソフトをインストールして使ってみると良いでしょう。

こちらも無料で、日本語にも対応しています。
Gitのコマンドはそれほど多くありませんし、また紹介しているサイトも多いので検索するとすぐに出てきます。

書籍も充実しつつある

インターネット上にはGitに関する情報がたくさんありますが、初心者が始める場合は書籍学習をおすすめします。

比較的つまづきやすいポイントから、実際の利用シーンを想定した操作まで網羅しているものが多いので、一冊を丁寧に実践していけばGitの基本的な使い方が身につきます。

「Git」と「Github」は何が違う?

誤解

Gitと誤解されやすいのがGithubです。

GitHubは、このGitの仕組みを利用して、誰でもプログラムコードやデザインデータなどを保存・管理することができるようにしたウェブサービスです。

運営しているのはGitHub社(日本法人はギットハブ・ジャパン合同会社)で、無料プランと有料プランがあります。

無料と有料の差は、保存できるファイルの容量や、完全に個人使用の(オープンにしない)リポジトリの数や共有のためのアクセス管理機能などです。

多くの人が利用するファイルの情報を、自分なりに分化させて管理していったり、アップされている情報にマージしたりすることができるなど、ビジュアルや使い勝手が高くなっており、世界中の多くのユーザーが学習用やビジネス、コミュニティ運営のために使っています。

Gitについてのまとめ

まとめ

Gitは煩雑なバージョン管理を容易にしてくれるツールです。

プログラムのソースコードだけでなく、ライターの原稿管理やデザイナーの制作管理など、様々な用途で活用されています。

特に複数人でプロジェクトを進める際のファイル管理が格段に楽になりますので、作業効率を高めるためにも是非活用していきましょう。

]]>
VPNとは?使用するメリット・デメリットを解説! https://media-architect.co.jp/engineer/about-vpn/ Thu, 28 Mar 2024 12:26:05 +0000 https://media-architect.co.jp/engineer/?p=145 情報セキュリティを考えることは、企業活動のみならず日常生活でも当然のことになりつつありますが、情報がネットワークを流れる間にも盗まれたり改ざんされる場合もあります。

こうしたトラブルを未然に防ぐための技術がVPN(Virtual Private Network)です。VPNの仕組みや使い方について紹介します。

VPNとはどんな技術?

VPNとは

VPNとは、仮想的に(virtual)プライベートネットワーク(Private Network)を作る技術で、離れた拠点間でのセキュアなネットワーク通信を行うことを可能にします。

ブロードバンド化が進む前は拠点間通信に専用線と言われる専用の回線が引かれていて、距離が長くなるほど大きなコストとなっていました。

現在のVPNは、高速化したインターネット網を利用する「インターネットVPN」と、通信業者が提供する閉域網を利用する「IP-VPN」に分かれます。

「インターネットVPN」は一般的なインターネットを利用し、その中でSSLを利用した「SSL-VPN」とIPsecを利用した「IPsec-VPN」などの手段でVPNを構築します。

対して「IP-VPN」では、通信業者が契約者に対して手持ちの回線から他に利用者のいない回線を割当てます。

IP-VPNはインターネットVPNよりも割高になりますが、セキュリティ上も安全性が高く、また暗号化が不要で高速・安定した通信が可能です。

VPNでは、通常、拠点間のトンネリングが行われ、その中をカプセル化されたデータが通ります。

この時、外部からの改ざんなどを防ぐため、VPN装置による認証と暗号化が行われていますので、情報を覗かれたり盗み取られるリスクが少なくなりますが、一方でデータに暗号化のためのデータが付加されたり、拠点間の認証の処理などのために通信速度は低下します。

VPNを使うメリット

メリット

VPNを使う最大のメリットは「拠点間の通信ができる」ことです。

インターネットを通してアクセスできるのは通常はWebサイトなどの公開されている範囲までですが、VPNを使うことによってさらにプライベートアドレスが利用でき、通信先のネットワーク内にある機器への通信が可能になります。

具体的には、社内にサーバーのある社内専用の営業データベースや経費入力データベースに社外からアクセスできるようになります。

また、「通信の安全性が保たれる」こともVPNの持つメリットです。外部から拠点内のネットワークに接続することは、それだけセキュリティ上の問題がありますが、VPN回線や、認証や暗号化などの仕組みによって通信の安全性を高めることができます。

VPNを使うデメリット

デメリット

VPNを使うデメリットでは、「通信速度が遅くなる」ことがあります。

VPNではカプセル化や暗号化用のパケットの処理が必要になるため、通信データも大きくなり通信に時間がかかります。

また、コストがかかるのも大きな問題です。

処理能力の高い機器や高速回線を使うほど、VPNにかかる費用は大きくなりますので、利用シーンを考えながらサービスを選ぶ必要があります。

VPNは採用する方法によっては、各端末に専用のアプリをインストールする必要があるため、そのための手間や使い方を覚えるための時間がかかる場合もあります。

VPNは個人には必要ない?

VPNは企業ならともかく、個人ユースの範囲では必要ないのではと考える人も多いのではないでしょうか。

しかし、最近はネットワーク上でのパケットの盗み見などが事件になることもありますので、セキュアな手段で通信を行うことは決して無意味ではありません。

特に、不特定多数の人が利用する公衆のWiFiスポットを利用する場合は、VPNを使うことを薦める専門家も多いです。サービスによっては無料で使用することも可能になっています。

実は、動画などの大きなファイルをダウンロードしている時、インターネットサービスプロバイダ(ISP)は通信内容をモニタリングし、一部のユーザーによって回線が圧迫されないように調整しています。

VPNを利用することで、通信内容がISPからもわからなくなり、速度調整をされることなくダウンロードできる場合もあります。

その他、アクセス元のIPアドレスによるフィルタリングを回避するためにも利用できます。

サイバー攻撃対策に、特定の国からのアクセスを避ける仕様のWebサイトなどにアクセスできない場合にも利用することができます。

VPNが中国で規制されている

規制

少し前に、中国で無料のVPNを提供していたアプリ(Webサービス)が禁止になったというニュースがありました。

中国では届け出をして許可された事業者しかVPNを提供できないことになっています。

中国では国としてサイバー攻撃などを防ぐための情報統制を行っており、国内から外に出る情報や、国外から入ってくるアクセスに対しては全て検閲が行われています。

VPNは、ビジネス上の機密保持などの理由で、中国国内の検閲を回避するための手段として使われていました。

しかし、反体制派などが国外とのやり取りに利用することもあったために、禁止に踏み切ったようです。

VPNについてのまとめ

まとめ

VPNは仮想的なプライベートネットネットワークを構築することで、離れた拠点間を安全に接続してやり取りするための技術です。

使用目的によって導入方法を正しく選べば、今はそこまで高コストではありません。

業務の効率化やセキュリティ強化などを目的に利用している企業も非常に多くなっています。

]]>
レンタルサーバー「クイッカ」の評判と使い勝手 https://media-architect.co.jp/engineer/quicca/ Thu, 28 Mar 2024 11:49:49 +0000 https://media-architect.co.jp/engineer/?p=1537 レンタルサーバーとして有名なサーバーの一つに、「クイッカ」があります。

名前は聞いたことのある人も多いのではないかと思いますが、今回はこの「クイッカ」について、料金やスペック、評判などを見ていきたいと思います。

レンタルサーバー「クイッカ」の基本情報

レンタルサーバーに関する知識がどれだけあるか、あるいは作ろうとしているホームぺージサイトの規模、あとはそのレンタルサーバーがどのような機能を持っているか金額はどのぐらいかかるのかなどで、選択するレンタルサーバーは変わります。
では、クイッカはどのような料金形態なのかを見てみます。

エントリープラン ライトプラン スタンダードプラン プレミアムプラン
初期費用 926 926 926 無料
月額費用 90円/月(12ヶ月1,080円) 230円/月(12ヶ月2,760円) 450円/月(12ヶ月5,400円) 900円/月(12ヶ月10,800円)
CMSインストール ×
メールアドレス 5アカウントまで 10アカウントまで 30アカウントまで 無制限
共有SSL
MySQL × データベース5個まで   データベース20個まで 無制限

クイッカは、6ヶ月契約と12ヶ月契約が選べるので、自分の希望する月単位で契約できるのがポイントです。とりあえず半年使ってみて様子見、ということも可能です。また、12ヶ月契約にすると月々の費用がかなり安くなりますので、長期契約をすればそれだけお得になります。
一番高いプレミアムプランでも、月額1,000円を超えないという価格設定は、クイッカだからこそです。

私は、短期間だけ使用する期間限定の会員用サイトで使用しました。スペックも使用するにも特に不具合はなく、快適に使用することができました。WordPressを使用したかったので、ライトプランでしたが、6ヶ月契約で1,932円(税抜)ですからそれなりにお得に使用できたのかと思います。

レンタルサーバー「クイッカ」の特徴

レンタルサーバーのクイッカは、とにかく金額が安いことはポイントのレンタルサーバーです。
最安値のプランは月額90円で、1年間でも1080円です。これだけの金額は、どこのレンタルサーバーを見てもありません。
ただ安いので、使える機能には制限がありますが、機能についてはクイッカのプランとスペックと料金で確認をしてください。

ライトプラン以上であれば、ほかのレンタルサーバーの方がどうしても機能がよく見える点も多いと思いますが、それでも個人でホームページを作りたい方で、複雑な機能を利用しない方には、格安のプランでクイッカを選択するといいのではないでしょうか。

メールプランだけで利用したい場合や、はじめてホームページを作成する方、スモールスタートで最低限の機能だけで始めたい方などに、気軽に使える金額でサービスを提供しているのがクイッカです。問い合わせはメールだけですが、サポートもしっかりとしてくれると評価されていますので、初心者には悪くないサーバーだと思います。

使わない機能はあっても本当に使わないので、そのあたりはすっきりしているクイッカはいいですね。

レンタルサーバー「クイッカ」の評判と感想

個人的に使用してみた感想ですが、一番安いエントリープランでも、速度は全く気にならないレベルでした、全体的にシンプルで使いやすいというのが、印象です。使用したのは、それほどアクセスがあるわけではない会員サイトで、アクセス人数もそんなに多くないので、負荷というほどものもなかったのかもしれませんが。

個人的にうれしいと思ったのは、バックアップ機能です。
毎日バックアップを取得して、直近1週間は残してくれる上にそれを復元するのはいつでも無料というのは、何かあったときに安心できます。特にお客様がつくったホームページなどは、突然操作を間違って消してしまったり消されたりということもあるので、バックアップが常に取られているのはいいですよね。

バックアップを戻すのは無料というのもうれしい機能です。

バックアップもそうですが、クイッカの特徴として言われているのが、オプションサービスの種類が豊富なことです。各プランの機能を最低限にして、必要なものをオプションで付けるのがクイッカの特徴になります。

オプションとして付けれるものには以下のようなものがあります。

転送量増加
※月の転送量制限「31GB」を「62GB」に増加
232円/月
バックアップ取得
※直近1週間分のバックアップを取得・保持(1日1回取得)
185円/月
CRON設定 93円/月
CRONジョブ

 

全部つけると、結局他のレンタルサーバーと変わらなくなるかもしれませんが、必要なサービスだけでいいという方にはいいのではないかと思います。

私は契約更新をしなかったので問題なかったですが、評価として、契約期間の延長をする場合に自動更新の仕組みがなく手動更新なので、手続きを忘れると契約が切れてしまいますので注意が必要です。アカウントの有効期限が切れ、1か月のデータ保持期間が過ぎてしまうと、アカウントは自動的に削除されて戻すこともできないのが難点です。

まとめ:とにかく格安で最低限の機能を望む方におすすめ

いかがでしたか?
格安レンタルサーバーのクイッカについて、仕様とスペック、評判を見てきました。

結論としては、個人で簡単に使用する分には問題ないサーバーだと思います。企業向けとしては正直あまりお勧めできませんが、とりあえずホームページを試したい人や、急いで作りたい人、個人でホームページを作りたい方で、複雑な機能を利用しない方にはおすすめできるレンタルサーバーだと思います。

 

]]>
metaタグとは?役割と設定しておくべきmetaタグの種類を解説 https://media-architect.co.jp/engineer/about-meta-tag/ Thu, 28 Mar 2024 11:23:41 +0000 https://media-architect.co.jp/engineer/?p=222 Htmlファイルの冒頭に記述されるmetaタグは、昔はブラウザにさまざまな指示をして表示を適切に行ったり、キーワードや概要を示すなどSEO上も重要な働きをしていました。

ブラウザや検索エンジンが大きく進歩した現在、metaタグに求められる役割も変わりつつあります。

最近のmetaタグ事情について解説します。

metaタグの基本的な役割

metaタグ

metaタグは、htmlファイルにおいてユーザーに対しほとんど表示されない情報です。

metaタグの基本的な役割は、htmlファイルに関する情報を検索エンジンやブラウザに対して提供することにあります。

解釈に使うための文字コードの種類や、表示するべきタイトル、検索した人にページの内容を示すためのディスクリプション(要約・概要)、描写する画面幅などの情報を表します。

metaタグに現在求められていること

now

以前はmetaタグは、画面を正しく表示したり、SEO(検索エンジン最適化)のために重要でした。

しかし、ブラウザの性能向上やhtmlのバージョンの安定、検索エンジンの進歩などのさまざまな環境変化により、そういった必要性が薄れてきました。

KeywordsはSEO上はもう影響がない

昔はSEO対策といえばキーワード対策であり、metaタグにいかに該当キーワードを入れるかでした。

しかし、googleで約10年前、bingで約5年前にはこれらの影響がないことが明示されています。

参考:Google Webmaster Central Blog

Google does not use the keywords meta tag in web ranking (2009年)

参考:Bing Blogs:

Blame The Meta Keyword Tag (2014年)

この2つの検索エンジンでほぼ99%程度のシェアになるため、SEO上は記入の必要はないと言っても過言ではありません。

ただ、何を念頭において作成されたページかを示す意味はありますので、キーワードを確認したいという人のために書いておいた方が親切ではあります。

descriptionは今後も大切

検索エンジンの検索結果に表示される要約文はmetaタグのdescripitionから作成されています。

検索エンジンでの検索から内容を把握するために重要な内容でもあり、しっかり記述しましょう。

常に最適な文字数が議論になりますが、時期によって変わりますし、検索結果ではデバイスによっても文字数に違いがあります。

多くても100文字程度にとどめた方が良いでしょう。

SNS対策としてのmetaタグ

近年、metaタグに求められている大事な機能がSNS対策です。

TwitterやfacebookなどのSNSへの投稿時に、どのような画像が一緒に表示されるかはアクセス数を大きく左右します。

これを適切に表示するための「OGP」や「Twitter Cards」は、metaタグから設定を行います。

しっかり設定しないと、画像が表示されなかったり、予期せぬ画像が表示されたり、サイズが合わずに一部分だけが表示されたり、解像度の低い画像が表示されてしまうことがあるため注意しましょう。

複数デバイスにおける画面描写のためのviewport

metaタグでは、viewportによってwebページの描画領域のサイズを指定することができます。

複数デバイスにまたがっての閲覧を考えているwebページであれば設定しておいた方が無難です。

記述がない場合は、画面サイズからCSSでレスポンシブデザインを組まない限り、ページ全体が縮小表示されてしまいます。

viewportを指定することで、画像や文字を見やすいサイズで表示することができます。

必ず設定しておくべきmetaタグの種類とは?

設定

metaタグの中でも、必ず設定しておくべきものについて紹介します。

titleタグ

titleタグは独立したタグですが、metaタグと同じくヘッダー領域に記述されるためここで取扱います。

ブラウザにタイトルを表示するだけでなく、検索エンジンが表示する記事タイトルもこれが使われています。

近年は検索キーワードとの関連性や、正確性のある情報提供者が評価される傾向があるため、企業などはタイトルの後ろに組織名を入れることが増えています。

descripition

検索エンジンに対するSEOでのdescriptionの重要性は上で述べた通りです。

重ねて言いますが、ユーザーが検索した際に出てくる説明文がdescriptionの内容となります。

descriptionが検索後のクリック率に大きな影響を与えるため、しっかりと設定することが大事です。

charset(文字コード)

利用している文字コードを示すcharsetは、特に日本語表記のページでは重要です。

指定がない場合には文字化けが発生してしまうことがあります。

robotタグ

robotタグは検索エンジンなどが情報収集のために使うロボットの扱いをどうするかを示すタグです。

設定によっては検索エンジンにインデックスされないこともあります。

テストや非公開にしたいページでなければ特別に設定する必要はありません。

SNS用のタグ

「OGP」や「Twitter Cards」用のタグは、該当するSNSを利用するなら入れておいた方が無難です。

CMSから自動でSNSに投稿する場合、設定が行われていないことで今ひとつな画像やテキストが表示されることがありますので注意しましょう。

Viewport

Viewportの適切な設定もまた重要です。

CSSでレスポンシブデザインを組んでいるなら気にする必要はあまりありませんが、そうでなければユーザーエクスペリエンスを考えると設定しておきたい項目です。

SEO上もモバイルフレンドリーかどうかは重要視されていますので、ユーザーが拡大やページをめくるための手間を減らすような表示を心がけましょう。

metaタグ基本ポイントまとめ

まとめ

metaタグの基本的な仕事は検索エンジンやブラウザへの情報提供ですが、昔と今とでは、metaタグに期待される役割が変わってきています。

今後もどんどん変わると思いますので、定期的に動向をチェックして、webページが各所で正しく評価・表示されるようにmetaタグを設定しましょう。

]]>
目的で探す!おすすめプログラミング言語8選 https://media-architect.co.jp/engineer/about-programming-languages/ Thu, 28 Mar 2024 11:03:35 +0000 https://media-architect.co.jp/engineer/?p=803 IT技術やWebサービスは、日々進化しています。

それにあわせて、プログラミング言語も次々と新しいものができたり、既存の言語にも新しい機能が追加されたりしています。

たくさんあるプログラミング言語の中で、エンジニアとして学習するにはどのような言語を選ぶといいのか。

人気の言語から、最新の言語まで、目的別にわけてプログラミング言語を紹介していこうと思います。

何を作りたいか、目的を明確にする

どのプログラミング言語を学ぶかを考えた時に、大事なのは「何を作りたいか」です。
もちろん、とりあえずプログラムに触れてみたい、という場合もあるかと思います。

開発したいものにどのような言語が使われているのか、どのようなものを開発したいのか。目的を明確にすると、学ぶべき言語と方向性が分かってきます。
この目的をしっかりと明確にしたうえで、プログラミング言語の学習を進めていくようにしましょう。

プログラミング言語おすすめ8選

どんなエンジニアになりたいか、どのようなものを作りたいか。
簡単にですが、目的別でまとめたプログラミング言語のおすすめを8個紹介していこうと思います。

スマートフォンアプリやゲームを作成したい

Java

Javaはオブジェクト指向型のプログラミング言語で、AndroidアプリやWebシステム、社内の業務システムなど、幅広く使用されている人気言語です。
需要も高く、エンジニアとして身に付けておいて損はありません。

Javaはフレームワークも豊富です。特定のフレームワークの使用経験を必要とする企業も多いので、言語だけでなくフレームワークも一緒に覚えることをおすすめします。
「Play Framework」「Spring Framework」「Apache Struts」などが有名なフレームワークです。
興味のあるかたは、ぜひ一緒に勉強してみてください。

C#

Microsoft社のフレームワーク「.NET Framework」上で動作するオブジェクト指向のプログラミング言語です。Windows系のアプリケーションのシステム開発によく使用されています。C#を知っていると、ゲーム開発プラットフォームの「Unity」での開発も可能です。

Windows向けアプリケーション開発用にMicrosoft社が開発したVisual Studio という統合開発環境を使うことで、比較的簡単にアプリケーションを開発することができます。
学習の難易度は高めですが、ゲームのプログラミングなどもできるので、まだまだエンジニアの需要は高いです。

理解しやすいので、初心者にもおすすめのプログラミング言語です。

Swift

「Swift」は2014年に開発されたiPhoneやiPad向けアプリ向けのプログラミング言語です。
もともと、iPhoneやiPadの開発には、Objective-Cという言語を使っていましたが、よりシンプルな開発を可能にするためにSwiftが作られました。
開発には、Appleが提供しているXcodeという統合開発ツール(IDE)を使うのがおすすめです。

まだまだ新しい言語なので、iOSの開発だとObjective-Cの需要が多いですが、今後間違いなく需要が高まる言語です。

WEB系のサービスを作成したい

Python(パイソン)

PythonはGoogleの三大言語の1つです。
FacebookやGoogleで実際に使用されており、シンプルで読みやすいコードが特徴です。
初心者にもとっかかりやすいので、まずPythonを学んでみるのもおすすめです。

Pythonは、Webアプリケーションの開発から、機械学習の開発、IoTシステムの開発など、幅広く使用されています。
将来的にさらに需要が見込まれる言語で、技術者人気も高いプログラミング言語です。

PHP

Webアプリケーション開発において主流ともいえるプログラミング言語です。
後述するJavaScriptやHTMLと組み合わせることで、WEBシステムの開発が可能となります。
無料のフレームワークも多く、「 Laravel(ララベル)」や「Symfony( シンフォニー)」「CakePHP(ケイクピーエイチピー)」などがよく使用され、人気があります。
初心者でも、「画面で動く」システムが作れるので、勉強していく過程で、面白さと挫折しにくさがある言語だといえます。

最近、多くの企業やブログで使用されているWordPressもPHPで作られており、PHPを学んでいるとWordPressの様々なカスタマイズができます。

ただ、案件数も多いですが、使用できるエンジニアも多いので、希少価値は低めです。

Ruby

Rubyは、日本で生まれたスクリプト型のオブジェクト指向言語です。
「Ruby on Rails」というフレームワークを使用して開発を行うことが多いので、あわせて学んでおくとベストです。

日本人が開発した言語なので、ポータルサイトが日本語だったり、参考サイトや資料も豊富なのが初心者にもおすすめのポイントです。

JavaScript

これだけで何かが作れるというものではありませんが、WEBシステムを作るのであれば欠かすことができないのがJavaScriptです。
ホームページでのマウス操作時のアクションやエラーチェックなど、動的な要素を与えることができます。

フレームワークであるjQuery、JavaScriptのアプリケーションプラットフォームであるNode.jsや、Google Mapなどで使用されているAjaxなど、色々な機能が存在しており、WEBシステムにおいては汎用性の高い言語です。

HTML&CSS

HTMLは、ホームページを作成している言語です。
様々なタグを用いてコードを記述し、CSSでデザインを整えます。
JavaやPHPなどと組み合わせて使用されることも多く、WEBシステムを作るうえで、デザインにこだわりたい場合は、必須の言語です。

現在の主流はHTML5とCSS3です。
最近はPC向けとスマホ向けでデザインを切り替えたりすることも多く、HTML5とCSS3のスキル習得は、アプリ開発でもWEBシステム開発でも欠かすことのできないものとなっています。
基本的な知識だけでも身に付けておくと、きっと役に立つこと間違いなしです。

まだまだ新しい最新言語

前置きでも述べましたが、IT業界は常に新しい技術が生み出されています。
その中で、新しいプログラミング言語も次々と作られていきます。
将来を見据えるのであれば、参考資料や情報が少ないというデメリットはありますが、まだ技術者が少ない新しい言語を習得してみるのも、自分の価値を高める方法の一つです。
では、そんな新しい言語を紹介していきます。

Go言語

「Go」は、2009年にGoogleが開発したオープンソースのプログラミング言語です。
シンプルで軽く、コンパイルも早いのが特徴です。
クラウドストレージサービスであるDropBoxやYoutubeなどで使用されています。

年収ランキングで1位に輝いたこともある実績もあります。
初心者向けというよりは、すでにプログラミング言語を学んでいる人向けの言語ですが、今後インフラ構築などでもニーズの高まりが予想されています。

Kotlin(コトリン)

2011年にJetBrains社が開発したプログラミング言語です。
2017年にGoogle社がKotlinを公式のAndroid開発言語として採用したことで、今後Androidoのアプリ開発を考えている人には、欠かせない言語になります。
開発ツールであるAndroid Studioにも組み込まれています。
Androidoアプリは、もともとJavaで作成されていますので、Javaとの互換性があります。Javaで動いているシステムを、Kotlinに移行させる手間も少ないですし、また併用して新機能追加をKotlinでやることもできます。

Kotlinの特徴としては、Javaよりもシンプルで分かりやすく、コード量が少なくなるのがメリットです。
今後需要が高まっていく言語の一つです。

Scala(スカラ)

「Scala」は、Java仮想マシンのJVMで動く静的型言語です。
TwitterやChatworkなどが、Scalaで作成されています。
Javaのコード20行が1行で書けたりと開発効率がよく、処理も早い特徴があります。

オブジェクト指向言語と関数型言語を融合した言語といわれていますが、どちらも理解していないと、初心者にはScalaの習得は難しいところがあります。
学習方法としてはJavaをまずは理解して、そのあとに習得すると役立つと思います。

まとめ:学ぶ言語について目的から考える

いかがでしたか?
最初に選ぶプログラミング言語が、まったく興味のないものだった場合、挫折して次に進むことが難しくなることもありますので、学ぶ言語については最初にしっかりと考えることをおすすめします。
エンジニアを目指している方やキャリアアップを考えている方の、少しでも参考になれば幸いです。

]]>