ITエンジンニアになるというと~
なんかプログラム言語を勉強しないとダメだろうなぁ~っとか思ってしまいますよね。
私もpython言語を勉強してます。
これって次の自分のライフワークへの懸け橋にする為なんですがね。
この言語の学習ってのは大工さんの仕事に当てはめると~
トンカチの使い方を勉強している事に他なりません。
トンカチが使えても家は建てられる様にはなりませんよね。
もっと経験から色んな事を学んでいかないと到底家を建てられる様になるまでには到達しません。
この事は分かっているのでね。
言語の勉強と並行して周辺的ってのでしょうかね。
今後必要になってくる筈のITスキルってのもググってみました。
そして、理解した事についてシェアしていきたいと思います~
この様な事が身についてないと実際に開発現場に入ってもついて行けずに
「かなりきつい!」っとか思ってしまう事になるかもしれません。。。
それではシェアしていきま~す!
ITエンジニアならフレームワークの使い方を知らないときつい。
フレームワークってのはご存知ですか?
私はpythonの勉強の中で知ったのですがね。
チョット一言では言い表し辛いのですが~
真似してもいい「枠組み」ってのでしょうか。
プログラミングってのは仕組みを設計して作っていくのですが~
画面からの入力や出力、それに画面の構成とかを細かく0から作っていくのはとっても大変ですよね。
その他にもデータベースへの入出力のし方を0から調べて自分で考えて書いていくとかね。
こんな事が実はとっても作業時間を使ってしまう事になります。
これは考えようによっては時間の浪費にもなる事があるんですね。
今までに世の中で既に作られてきたもので~
それを再利用できるのであればそれを利用した方がプログラミングの時間も大幅に短縮出来たりするでしょ!
そして、その真似しても良いやつってのがフレームワークってもの。
だから、そういったフレームワークって存在を充分知って覚えていかないと~
IT技術者としてのスキルは上っていかないし~仕事的にも辛くなってきたりするのですって~
仕事を受けて~
本来の役目を果たすべきプログラミングを書いていく時に~
何処にでもある様なロジックなどを0から考えて書いていると効率が悪いですものね~
無駄な時間が掛かり過ぎてしまう事になります~
大工さんの仕事で言ったら~
釘を打つのにトンカチをまづ発明しないといけないみたいな。。。
これはもう論外でしょ!
でも、こういった事が今まではプログラミングの世界では多く有ったらしいですね。
技術者は何でも0から作り出すべき~っという意識があったのでしょうか。。。
それとも技術内容を公表しない様にする為???
巷では、こういった「既に有るものなのに0から創り出す事」を
「車輪の再発明」とか云ったりするんですってね。
既に有るものをわざわざまた考えて作る。。。
考えてみればホントに無駄な時間ですなぁ~
これは私の様な老人にも「馬鹿じゃない?!」って事は分かります。
二度手間です!
こんな事を解決してくれるのが表題にも出てきた「フレームワーク」ってものです。
新しく0から作らなくっても「用意されている部品」を使って作業が進められる。。。
んんん~これいいですよね!
pythonだとdjangoとか有りますなぁ。
webアプリケーションをつくる時に使える便利なフレームワークですがね~
djangoを知らない方はどうかググってみてくださいませ。
いろんな方が分り易く説明してくれてますのでね。
ITスキルを身に付けるならネットワークの事を知っておかないときつい!
次に知っておきたいスキルの一つにネットワークがあります。
今後ITのエンジニアとして成長していきたいってあなたなら
今後は必ず作業の中でネットワークに関する事は何気に出て来るはずです。
だからこのネットワークについても概略だけでも知っておかないと~
作業に支障が出るっという事もあるでしょうね。
例えば打ち合わせなんかの時に~
皆は知っている前提の言葉だから細かい説明は無しで
どんどんとプロジェクト開発の話が進んでいく~っとかね。
自分はネットワーク技術者ではないから
ネットワークについては分りませーん!なんて通用しなくなります。
これも大工さんの仕事に例えてみましょうか。
(ちょっと強引ですけどもね。)
まあ、トンカチが上手でどんなものにも上手に釘が打てる様になった職人さんが
今度はビルの建設に関わる事になったらどうでしょうか?
ビルはコンクリートと鉄筋を使って作りますよね。
トンカチの出番はかなり限られます。
それでも、生活の為にはビルの事を知らないとお金が入ってこない事になります。
まだ、トンカチ1本で仕事をしようと思いますか?
思ったら~お仕舞です。。。(^_^;)
自分の出番も無くなるし~
持っているスキルだって何処で活かしていったら良いのかさえ検討が付きませんよ。
だからビルを作るのはどうやってやるのかと勉強をしないといけないんです。
プログラミングに当てはめてみると~
言語については細かな仕様とかも色々とよく知っていて~
それを駆使してロジックだって上手に作っていけるとします。
しかしながら~
ネットワークの事について理解が出来ていなければ~
ロジックどころか何も思い浮かびません。
データはどうやってやってくるのか?
そして、それをどうやって取り込んでプログラムは動いていくのか?
頭の中で理解出来ていない事まではプログラミング出来ません。
その為にもネットワークの知識は必要になってきますよ。
特に今の様ななんでもネットワークを使ってデータのやり取りをする状況では
プログラミング言語の知識だけでは到底仕事になりませんわ。
IT技術者(エンジニア)って言葉自体が
「Internet」というネットワークに関わっているエンジニアって事になりますからね~
ネットワークの知識は必須ですよね!
っという事で~
必要になる「プロトコル」の名前とか関連する技術用語を次に書いておきます~
ITエンジニアになる為にチェックしておくべきネットワーク技術用語はコレだ!
少なくとも以下の用語とかは調べて腑に落としておいた方がいいようですなぁ。
打ち合わせの時に不意に出て来て言葉の意味が分からないので
打ち合わせの内容がチンプンカンプンだった~っとかだとお話にならないのでね~
- TCP/IP
- SSL
- https
- サブネットマスク
- ピアツーピア(P2P)(peer to peer)
正確に細かなところまでは理解してなくっても良いとは思いますよ。
しかしながら、話についていける位には知識として持っていないと
どんどんと取り残されてしまうって事にもなりかねません。
自分がプログラムを書く時にはデータがどう入ってきてそれは何を使えば取り込むことが出来るのか?
その使い方はどうやるのかを知らないとプログラミング出来ませんよね。
キチンと自分がやらなけらばならない事を認識できる様になっておかないと~
作り込みってのは出来ませんから~!
新米だからっていっても付きっ切りで面倒を見てくれる程世間は甘くはないでしょうからね~
各用語の意味についてはググって頂きたいです。
そして腑に落としておきましょう~
この記事では意味までは書けないので宜しくお願い致します。
お互いがんばりましょ~!
↓↓↓↓↓↓ TCP/IPの事を調べたので~記事にしましたよ~ ↓↓↓↓↓↓
プロトコルの意味とはなんなの?
これはコンピュータが他所のコンピュータと通信を行う時に使われるルールなのだとか。
このルールってのも人の感覚だと分りずらいです。
他所の人に迷惑を掛けないっとかの感覚で行くと間違いますよ。
どちらかと云うと「お約束」とか「決まり事」みたいに思った方がいいかもですね。
コンピュータ同士が通信を行う場合にはただ線を繋ぐだけではなくって~
コチラから「こういう形でデータを送ります」っとか受信側は「こういう形でデータを受取ります」って予め決めておく必要があるんですね。
そして、データはその形に沿って運ばれて行くってな具合。
その送り側と受取り側でデータを読み違えないようにする為なんです~
その為の「決まり事」ってのがまあルールって言葉になるのですかね。
そのルールの事をプロトコルっていうのだそうです。
このプロトコルは何種類かあって~
違う者同士は繋がりません。
ってかデータのやり取りが上手くいかないって言った方がいいのでしょうか?
だからプログラムでもネットワークを介してやって来たデータはこんな形の筈だ~っとか思っても~
実際には違っていたら、プログラム中では本来の内容が受け取れなくなってしまうので~
プログラムは上手く動かないって事にもなりますよ!
その為にもこのプロトコルの事は知っておく必要があります~
プロトコルってのはイメージで捉えておくといいと思います。
プロトコルは7つの層に分類されてますね。
これはね機械的な接続部分からプログラムがデータを受け取れる部分までの仕組みを7つに分けているらしい。
OSI参照モデルというやつなんですってね。
「OSI参照モデル」
第7層 | アプリケーション層 | HTTP・SMTP・FTP・SMB・DHCPなど |
第6層 | プレゼンテーション層 | SMTP・FTP・TELNETなど |
第5層 | セッション層 | TLS・NetBIOSなど |
第4層 | トランスポート層 | TCP・UDP・NetWare/IPなど |
第3層 | ネットワーク層 | IP・ARP・RARP・ICMPなど |
第2層 | データリンク層 | PPP・Ethernetなど |
第1層 | 物理層 | RS-232・無線・光ケーブルなど |
っていう形になってるみたいです~
第1層に近づくにつれてコンピュータのハードウェア同士の機械的繋がりになっていくみたい。
第7層のアプリケーション層になって初めてプログラムでも扱えるデータの形になるみたいです。
まあ、こんな仕組み、お約束、ルールを決めておく事に依って
コンピュータ同士が通信を普通に行う事が出来るようになるという事でした。
上の第7層のHTTPってのはよくホームページとかブログのURLアドレスで見るやつですよね。
これもwebページの送受信で使われるプロトコルって事だったのですね~!!!
このプロトコルが一致しているからこそ
画面の向こう側にいる人やサーバーと通信がとれるって事なのでした~
このhttp等について知らないまま開発に当る事になると~
その言葉が出てきた打ち合わせの内容が理解できずに
作業に遅れや支障が出る事さえありますよね。きっと。。。
言葉の意味は後から調べる事は出来ますがね。
言葉の意味よりも
打ち合わせの内容が頭に入らなければ
仕事にはなりませんなぁ~
後はメンテナンスの時ね。
作ったプログラムやアプリケーションが動き始めた後にネットワーク障害なんかあった日にゃ~
原因がどこにあるのかを特定出来なくなったりして~
やはり作業の遅れ等が発生して、
時には重大な被害を出してしまう事も考えられます。
いつかの銀行オンラインのストップみたいなね~
あんな事起こったとしたらパニックですよね。。。
どうでしょうか?
ITエンジニアとして仕事をする上ではネットワーク関連の知識は必須といえるのが分かりますよね。
ITエンジニアを目指すのならセキュリティの事も知っておかないとね~
次がこちらです。
ネットワーク通信であちらもこちらも繋がっているのが普通になっている現在では~
データが簡単に行ったり来たり出来るようになってます。
データってのは別に見られてもどうでもいいデータもあれば
人には見られたくないものや知られてはまづいデータってのも有りますよね。
特に個人情報やお金にまつわる情報データなどは絶対に守りたい。。。
そんな時にはセキュリティの知識が必要になってきます。
この技術はネットワーク上で起こる抜き取りの技術に対抗して
どんどんと高度に変化していってますが、
どんなものが有るのかとかも知っていかないとなりませんね。
常に新しい技術が生まれているのもこの分野なんでしょうね。
止まらない向上心を持っていないとダメでしょうなぁ~
ITスキルとしてクラウドを開発環境として使う方法も知っておきたい!
このクラウドってのは雲って意味なんだそうですがね。
何となくイメージは沸きますよね。
(このイメージが沸くかどうかが現代技術ではカギになりますなぁ。)
自分のデータをクラウドという場所に置いておいて~
必要になった時にはどこからでもそこからデータを引出して使える技術です~
クラウドコンピューティングってのが正式な名称なんでしょうか?
(間違ってたらゴメンナサイ。。。(^_^;))
これってのもネットワーキングを使ったサービスになりますね。
ホントに雲を使ってる訳ではありません。
(そんな事は知ってますよね。。。(^_^;)タジタジ。。。)
これはインターネットを経由して
データベースとか
サーバーの記憶装置(ストレージ)を
利用出来る様にする技術ですね。
これが便利なのは~
さっきも触れましたがね。
自分が今居る場所だけではなくって~
どこか他の場所に居てもそのデータを利用できるって事になりますね。
あとは会社なんかの場合だと~
自分の社内にサーバを持たなくっても良くなるってのも有ります。
ネット環境を社内で構築して~
データを保存しておく場所も確保したりする事はお金も労力も掛かったりしますでしょ!
それが軽減されるってメリットもあるんです。
このクラウドの仕組みだけで一つのプロジェクトとかシステムを構築する事も多くなってる様です~
- AWS (アマゾンウェブサービス)
- Azure (アジュール)
- GCP (グーグルクラウドプラットフォーム)
等、
以上の様なクラウド環境で開発に携わる事も多くなっている様なので~
どうやって使うのかとかもある程度知っておいた方が良さそうです。
AWS(アマゾンウェブサービス)なんかはとっても沢山機能を持っているので~
クラウドエンジニアっていうクラウド専門の技術者も居る事があるのですってね~
しかしながらこのクラウドエンジニアってのは他の開発エンジニアが代行する事もあるそうです~
小規模な開発の時なんかは人件費掛けられないですものね。
そんな時にクラウドの知識があれば、とっても有利ですよね~
ITスキルとして、開発ツールは普段使わないものでも情報は持っておこう!
通常プログラミングをする時って~
いろんな開発ツールを使いますよね。
まるっきりのプログラミング言語だけで行う事は少ない筈です。
- Git(ギット) バージョン管理ツール
- VSCode(ブイエスコード) 開発エディタ
等
この他の開発ツールも使う事はあるみたいです~
すべてが使える様になんてのは無理ですが~
どんなものなのかとか情報を仕入れておくのは出来ると思いますよ~
チームでのプログラム開発の為にGitは最低限覚えよう!
なかなか自分だけで勉強って時には
このGit(バージョン管理ツール)ってのは使う機会も無いと思います。
だってプログラムが最新かどうかなんてのはあまり気にしてないからね。
まあ、出来上がったソースコード(プログラムファイル)は
日付とか名前の付け方を変えてとかでなんとかしちゃいますもの~
でも、チームで開発を行うとなればこのソースコードは最新なのかとかの
バージョン管理ってのは必要になってきますわな。
そして、案外重要な事ですよね。
このバージョン管理ってのも手作業ではなくて~
ツールの力を使えば間違いは無くなる筈。。。
だからそのGitの使い方位は覚えておかないと~
すんなりと開発作業には入っていけないかもしれません。
だから覚えましょ~!
システム開発する時にはVSCodeもよく使われているから覚える。
VSCode、これはソースコードを記述する事が出来て~
しかも実行まで出来るのだそうな。。。
(まだ、使った事は無いです。正直なところ。。。)
あのMicrosoftの製品なんで~信頼度も高いですよね。
プラグインなんかを入れると自分の使い易い拡張機能も使える様になるんですって~
それにデバッグ(修正、テスト、メンテナンス)に使う事も出来る。
しかもこんなに出来て無料です。。。
(ありがたい。。。m(_ _)m)
単なるテキストエディターではない所が
多くの人に使われている要因なのではないですかね。
私の場合は
テキストエディターはunixのviに似せた造りののgvimとかviviなんかを使ってますが~
VSCodeは覚えないといけないでしょうなぁ。。。
ATOM(アトム)ってのを使ってる人もいると耳にしたこともありますね。
こうしてみると普段使わないツールであっても~
大体どうやって使ったらいいのか位は~
チェックしておいた方が良いという事になりますか~
知り過ぎってのは無いと思いますのでね。
自分のスキルを更に伸ばしていく事を忘れないでおきたいですよね~
今回の記事はただ単なるITエンジニアとしてお金を稼げる様になりたい!
って事を目的としたものではなくって~
自分をITエンジニアとして変化させて成長していくには~!的な内容になりました~
もし貴方のお役に立つ事があれば幸いです。
っという事で~今回はこの辺に致しますね~(^O^)/
ここまで読んで頂きまして誠に有難うございました。
嬉しい楽しいついてます。
感謝
泉水善光