見出し画像

ITの仕事やりたい…(1)-PC,windows,そしてプログラミング言語のあれこれ

前書き

インターネットをみるとプログラミングスクールの広告もたくさん目にするでしょう。「プログラミングを勉強したら色々メリッドがあるので、自分も勉強したい」ってなった時、やはり「でも、自分は向いてるかなあ。。。」と迷う方も少なくないと思います。

もちろん、いろいろ考えて躊躇ってやってなくて後で後悔するよりは、「とりあえずやってみて失敗しても後で悔しない!」のがいいと思いますが、でも決して安くはない料金なので、プログラミングスクールに行く前に、すこしでも自分が向いてるかどうかの「適性検査」はしてみたいもんですね。

このシリーズは何回書くかは分かりませんが、ざっくりIT業界ってなんだ?なにやってんだ?どうやってんだ?難しい?俺もできるだろうか?などなどの疑問に答えができたら、と思っております。

本シリーズでは、筆者(権威ではありませんが)がIT業界で仕事してきた知識をベースに色々書きたいと思います。

まずは、

ITってなに?

ITって、英語のInformation Technologyの略称、つまり「情報技術」のことですね。

情報技術
出典: フリー百科事典『ウィキペディア(Wikipedia)』

情報技術(じょうほうぎじゅつ、英: information technology、IT)とは、情報に関する、特にコンピュータなどの技術(の総称)に関連した表現である。また、通信を含めて情報通信技術(じょうほうつうしんぎじゅつ、英: information and communication(s) technology、ICT)という表現も使用されている。

米国のITAAの定義では「コンピュータをベースとした情報システム、特にアプリケーションソフトウェアやコンピュータのハードウェアなどの研究、デザイン、開発、インプリメンテーション、サポートあるいはマネジメント」である。

情報(information)といえば、まあ。。。世の中のなんでもかんでも全部「情報」だと言えますね。

貴方のお名前、電話番号、住所等は「個人情報」になりますし、
電話する時、回線で流れるのは「音声情報」、
テレビ回線で流れるのは「デジタルビデオ情報」、
旅行する時乗る飛行機の「出発到着時刻情報」、
長年に渡った地球の温暖化などの「監視情報」、
。。。
なんでもかんでも全部が情報です。

こういう情報は、従事する従業者、管理する管理者などが必要になります。

昔々(大体1970年?以前。。。)は、その分野の従業者達が紙に(ずっと昔は紙も無かったのでその時は竹板に?、もっと昔は石の上に?、洞窟の壁に?)こういう情報を記録し、倉庫に保管したりしたでしょう。

こうだったのが、人類初のコンピュータが発明されてからは、徐々にコンピュータでそういうあらゆる情報を管理することになってきました。

紙に書いていたあらゆる情報をコンピュータで保存、管理、処理できる「データ(data)」に変換し、コンピュータで管理、処理ができるようになりました。

情報(information)」は、コンピュータで処理した後は「データ(data)」になります。

コンピュータに保存された「個人情報のデータ」、「音声データ」、「デジタルデータ」、飛行機の「時刻データ」、地球温暖化の「監視データ」。。。

データ」とはwikipediaを検索してみると、概念が凄く広いので一言で説明できませんが、狭義でいうデータとは、主にコンピュータ内に保存された情報のことです。

情報 Information」をコンピュータで保存、処理できるようになったので、コンピュータでこんな情報を管理、処理できるようにするための「技術Technology」も必要になります。

実際の概念はもっと広いと思いますが、主にはコンピュータで情報を処理する技術を「情報技術(Information Techonlogy, IT)」と呼び、その従業者をIT技術者と呼びます。

word, excel, pptなどのアプリを使って情報を保存、プレゼンテーションするのも、実は技術者と言えますが(少なくともパソコンを操作する技術を身に付けてる、パソコンに情報データを保存する方法を理解している)、今の世の中では主にプログラミングする人、アプリケーションの設計等を行う人…らをIT技術者と認めるようです。

狭義でいう「IT技術者」とは、主にパソコンを使って情報データを処理する方法を身に付けている者だと思います(word, excelなどは情報を保存するのみ)。

では、どうやってパソコンに情報データを処理させるかというと、(もちろん日本語、英語でパソコンに向いて話しても、パソコンは理解できないから)パソコンが理解できる言語で「まずはこうやって、後はそうやって」とちゃんと教える必要があります。

そうするためには、

先ず「パソコンに何をどういう順番でどう処理させるのがいいか?」を自分の頭の中で考えて(これは「プログラム設計」、考えたものを紙に書くと「プログラム設計書」)、

考えたものをパソコンが理解できる言語(これは「プログラミング言語」)で最初から最後まで全部箇条書きで書いた文章を作って(文章を作るのは「プログラミング」、出来た文章が「プログラム」)、

この文章をパソコンに渡せば(これは「プログラム実行」)、パソコンが理解し、書いてる通り作業してくれるようになります。

IT技術者というのは、基本は
プログラムを設計したり、最適なプログラミング言語を選んでプログラムを書いて(プログラミング)、パソコンに実行してもらう」といった作業を日々行っている従業者です。

このような従業者になりたいためには、もちろん最初の一歩は「プログラミング言語を勉強する、プログラミング方法を勉強する」でしょう。

これが退屈だといえば、確かにずっとパソコンに向いて話しているような感じなので退屈かもしれませんし、逆に面白いといえば確かにパソコンが自分の指示通りに作業してくれるので面白いかもしれません。

退屈か、面白いかは自分の個性、習慣、興味、趣味次第です。自分で実感するしかありません。

プログラミング言語にも種類がたくさん(数百?)あるので、全てを勉強するのは無理です。今の時代に合ったプログラミング言語を幾つか必要な数分だけ選んで勉強した方がいいですね。

PC、windows、そしてプログラミング言語

IT技術者になるためには、先ずはプログラミングを勉強する必要があります。もちろん、プログラミング勉強のために欠かせないのは、パソコン(PC)です。

パソコン(Personal Computer、パーソナルコンピュータ)とは、個人によって占有されて使用されるコンピュータのことである。

なので、パソコンも実は「コンピュータ(Computer)」ですね。

IT専門用語的には、「コンピュータ」を多用します。

コンピュータ(英: computer)は、数値計算や、数値計算に限らず、情報処理データ処理と呼ばれるような作業、すなわち、文書作成・動画編集・遊戯など、複雑な任意の(広義の)計算を高速・大量におこなう計算機械である(呼称については後述)。

現代ではプログラム内蔵方式のデジタルコンピュータの中でも、特にパーソナルコンピュータやメインフレーム、スーパーコンピュータなどを含めた汎用的なシステムを指すことが多い。
(出典: フリー百科事典『ウィキペディア(Wikipedia)』)

大まかにいうと、コンピュータでは「なんでもできる」。
コンピュータに作業させるためにはプログラムを書いて渡す必要がある。
プログラムを書く作業がプログラミング。
プログラミングする人達をプログラマーと呼ぶ。。。
のような感じです。

プログラミング勉強を開始する前に、もう一つ理解しておく必要のあるのはオペレーティングシステム(Operating System, OS)です。

オペレーティングシステム(英: Operating System、略称:OS、オーエス)とは、コンピュータのオペレーション(操作・運用・運転)を司るシステムソフトウェアである。
(出典: フリー百科事典『ウィキペディア(Wikipedia)』)

分かりやすくいうと、OSは人間がコンピュータを自由自在に操る為に提供された中間人のような存在です。

OSがないと、コンピュータはただの鉄の塊(IT専門用語では「ハードウェア(Hardware)」)にしかなりません。

ハードウェア (hardware) とは、システムの物理的な構成要素を指す一般用語である。日本語では機械、装置、設備のことを指す。ソフトウェアとの対比語であり、単に「ハード」とも呼ばれる。
(出典: フリー百科事典『ウィキペディア(Wikipedia)』)

このハードウェア(ハードディスク、メモリ、キーボード、プリンター、スキャナ、マウス、モニター等)を人間が簡単に操作するために、作られたのがオペレーティングシステム(Operating System, OS)です。

OSは、ハードウェアを操作するために作られたソフトウェアです。

ソフトウェア(英: software)は、コンピューター分野でハードウェア(物理的な機械)と対比される用語で、何らかの処理を行うコンピュータ・プログラムや、更には関連する文書などを指す[1]。

ソフトウェアは、一般的にはワープロソフトなど特定の作業や業務を目的としたアプリケーションソフトウェア(応用ソフトウェア、アプリ)と、

ハードウェアの管理や基本的な処理をアプリケーションソフトウェアやユーザーに提供するオペレーティングシステム (OS) などのシステムソフトウェアに分類される。
(出典: フリー百科事典『ウィキペディア(Wikipedia)』)

OSにも色々ありますが、一番多く使われているのがマイクロソフトという会社が作成したMicrosoft Windowsでしょう。

我々が将来作成するプログラムは、必ず何等かのOS上で動作するものになります。

なので、プログラミングを勉強する前に「どこで動くものを作りたいのか?」を先に決める必要があります。

画像2

筆者は今までずっとwindowsを使ってますので、下記に主にMicrosoft Windowsに関する歴史とプログラミング言語の誕生に関する流れずを作成しました(そういう感じか、程度でいいです。もちろん見なくてもプログラミング勉強には問題ありません)。

PC-windows流れ

□ 初代コンピュータは1946年に誕生。
□ マイクロソフト会社は1975年に誕生。MS-DOSというOSを開発してたんですが、1990年代のWindows 3.1で大成功し、Windowsシリーズが今まで続き、現在はWindows 10。
□プログラミング言語でいうと、
 1972年: C言語
 1983年:C++
 1990年:HTML 
 1995年:Java,  JavaScript, PHP, Python1.0
 2002年:C#, VB.net
 2014年:swift

上記は凄くざっくりです。プログラミング言語は今でもよく使われる言語を例に挙げております(プログラミング言語は上記以外にも数えきれないほどたくさんあります)。

こんな感じなので(OSも何種類かあるし、プログラミング言語もたくさんあるし)、プログラミングを勉強する前に、

先ずは、「将来どの分野のプログラミングをやりたいのか?」を決めてから、その方向に合ったプログラミング言語を勉強する必要があります。

例えば、

①「iPhoneのアプリ、ゲーム等作りたい」ってなった場合は、パソコンは必ずアップル社のマク(Mac)を買って、携帯は必ずiPhoneを買って、プログラミング言語はC, Objective-C, swift等を選んで勉強しなければなりません。

②「アンドロイドアプリ、ゲーム等作りたい」ってなった場合、パソコンはマクでもwindowsでもよいので自分が好きなものを買って、携帯は必ずアンドロイド携帯(中にandroidという名前のOSが動いている)を買って、プログラミング言語はJava, Kotlinを勉強しなければなりません。

③もちろん、「上記①、②全部やりたい」ってなった場合は、それぞれ別々に作るか、またはマイクロソフト会社のxamarinというクロスプラットフォームを使って、C#で開発する方法もあります(マイクロソフト会社凄い!)。

以外にも、windows上でのみ動くアプリ(Windowsアプリ)インターネット経由し動くウェブアプリ(Webアプリ)、実行画面もなくただ裏側で実行しているバックエンドアプリ等、色んな種類のアプリがあります。

ITって言ったら、一言でいうと「コンピュータを使って、我々の実際の問題を解決する」ということです。

その「我々の実際の問題」の中身が膨大な量なので、ITでやるべきこともついてに膨大な量になっちゃいます。

・「遊びたい」という問題を解決するためには、PCゲーム、携帯ゲーム、VRなどをコンピュータで実現する必要がある;
・「外に出かけずショッピングしたい」という問題を解決するためには、ECサイト(Webアプリ)を作る必要がある;
・「会社の業務を簡単にしたい」という問題を解決するためには、その会社の業務に合ったサイトを作ったり、業務用アプリを作ったり 等

コンピュータはなんでもできる!

コンピュータにはこういう使命があるので、膨大な量の「我々の実際の問題」を全て解決するためには、結局やり方もものすごく複雑になりかねないし、それぞれのニーズに合ったプログラミング言語がどんどん誕生されることによって、結局プログラミング言語も数百種類になりかねないです。

。。。結局、コンピュータ技術はどんどん複雑になりかねません。

コンピュータの技術がどんどん複雑になっていくので、ITの仕事も凄く難しいことは想像できると思います。

IT従事者のなかで、「IT関連技術を全て分かっている」と、胸張って言える人は誰もいません。
IT関連技術も日々進化しているので、IT従事者達は常に新しいものを勉強し続けなければなりません。

一人でIT関連の全ての知識を全部勉強し、把握することはできません。

なので、これからITの仕事やりたいと思ってる方も、自分の将来の従事したい分野を見つけて、その分野で活躍するために必要な知識を中心に勉強する方法をお勧めします。

そうすると、時間と精力の無駄なく少しずつITの仕事ができるようになります。

iPhoneアプリ開発方法に関する技術を勉強し、自分でiPhoneアプリ、ゲームを作ってアップルストアで公開したり、このような業務を行っている会社に就職したり;

データベース知識、Webアプリケーション開発知識を勉強し、自分でWebサイトを作ってインターネットで公開したり、インターネットでこんなサービスを提供しているIT会社に就職したり;

のような感じです。
ゲームが好きでない人は、ゲーム制作会社に就職出来たとしても辛いはずだし、

ゲームが好きで「自分でもゲーム作りたい」ってなってせっかくIT業界に飛び込んだものの、毎日データベースのCRUDやって、Webサービス作って、excelの帳票出して…のような業務アプリばかり開発していては退屈しすぎて死んじゃうかもしれません。

結局、自分の個性、趣味に合った、自分が本当にやりたい分野の仕事をやらないとなりません。どの業界でも同じだと思いますが、IT業界では特に重要になります(普段あんまり話さなくてパソコン向いてるばかりなのに、しかもぜんぜん興味ない仕事だとしたら、これより辛いことはないでしょう)。

IT関連仕事がやりたいと思っている方は、自分が興味を持つ分野を見つけて、その方向に行くために必要なIT関連知識をどんどん勉強することをお勧めします(ある程度できるようになったら関連会社に就職してみてもいいでしょう)。

将来の作業分野を決めたら、その分野に必要なプログラミング言語を教えてくれるプログラミングスクールに行くのもありだと思います。

まとめ

IT業界でやるべきこと、実際にIT技術者たちがやっていることなどを簡単に紹介しました。

OSにもwindows, macintosh(MAC), iOS, Unix, linuxなどいろいろある;どのOS上で動作するものを作るのか?プログラミングを勉強するといっても、先ずはどのOSを選ぶべきか?など。。。ちょっと考えたうえに、自分の興味・趣味に合ったITの道を選ぶ必要があるんだね。。。といったぐらいのマインドができたら幸いです。

「俺ぜんぜんITのこと知らねぇし、将来の分野とか何好きなのかも分かんね!とにかくITやりたい!」という方は。。。ん。。。

とにかく、ノートパソコン1つ買って(Macでもwindowsでもなんでもいいや)、
プログラミング言語は Javaか C#か どっちでもいいからとにかく1つ選んで勉強することをお勧めします。

↑はご参考までに。
でも、java, C#どちら選んだとしても、将来どの分野の仕事やるのかには関わらず、ここで勉強したことは決して無駄にはならない!と断言します。

では、バイバイ! Have a nice day!

この記事が気に入ったらサポートをしてみませんか?