月別アーカイブ: 2018年1月

データベースを設計する仕事

WEBの仕事の投稿でも書きましたが、一般的にWEBサイトを構築する仕事をする場合データベースの知識が不要ということはありえません。みなさん必ずデータベースの勉強はしています。
ある程度の規模のプロジェクトの場合、DB設計はその担当者が行い、WEBアプリ開発者は、サーバ上で実行されるプログラムと画面上で実行されるJavaScript部、および画面の開発をします。
サーバ上で実行されるプログラムの主要部は、データベースを内容を読み込んでクライアントに送る画面内容作る処理と、クライアントから送られてきた情報をデータベースに登録する形に編集してデータベースに登録するという処理になります。
したがってWEBアプリ開発者はデータベースの操作ができることが必須の条件となわけです。

一方で、データベースのテーブルやテーブル内のカラムをどう設計するかは、特に大規模なシステムになるとなかなか難しく、高度な知識や経験がものを言います。システムの運用を始めたころはサクサク動いたが、ある程度のデータ量になってくるとシステムが重すぎるというような場合、データベースのインデックスを見直したりします。そうしたことを最初から見込んでDB設計する必要もあります。こうした高度なデータベース技術を持つデータベース設計、チューニングを主とした仕事とするデータベース技術者も存在します。
データベースを保守運用するという観点でのDBA(データベース管理者)という言葉もあります。
DBスペシャリストという意味でDBAという言葉が使われる場合もあります。

WEBサイト開発の仕事のごく大まかな分類

このブログもWEBサイト上にあるわけで、WEBサイトとはどんなものかの説明などそもそも必要ないでしょう。
WEBサイトといっても各サイト目的はさまざまで、非常に大がかりなサイトや、こじんまりした小規模なサイトもあります。

WEBサイト開発に必要な要素は以下のように分けられると思います。
まずは、WEBサイトのプログラム(ソースを書くもの)としてはこんな分類になります。
・表示される画面のデザイン
・クライアント上で動作するプログラム
・サーバ上で実行される処理

それ以外に必要な仕事だと
・データベース設計
・サイトの構築

(サイトのデザイン)
これはブラウザ上に表示される画面のレイアウト、画像などの見た目の話で、
処理に関係しない本当に見た目の部分は専門のデザイナに任せる場合があります。

(クライアント上で動作するプログラム)
特に画面が狭いスマホの場合など、ハンバーガーメニューをクリックするとメニューが展開されるもののようにクライアント上で動作する部分。JavaScriptが使われます。

(サーバ上で実行される処理)
クライアントからの要求を受け取り主としてDB内容を変更する。
DB内容を編集し、クライアントへ送る。
ここがWEBアプリの中心です。

(データベース設計)
WEBアプリが用にDBを設計します。

(サイトの構築)
サーバを準備し、WEBアプリが動作する環境と整えます。
レンタルサーバを借りたり、DBやWEBサーバをインストールしたり、SSL環境を整えたり。そんな仕事です。

小規模なWEBサイトの場合、すべてを一人で行うケースもあります。こうした場合は、その人はソフトウェアの専門家で、デザイナーでない場合が多く、デザインでけっこう時間がかかったりします。

自分には合わない仕事にあたってしまうこともある

IT業界と一口にいっても様々な分野があります。
WEBサイトの開発、スマホアプリの開発、別な観点だと、病院などの医療系のシステム、宅配などの流通系のシステム、AIBOなどのロボット、カーナビ、果ては原発や加速器など、非常に多彩なシステム開発があります。
なんとなくIT業界と思って就職、転職してみたら、非常に高度な数学的、物理的言葉が飛び交う現場で自分には合わないという結果になることもありえます。
IT会社に勤めているなら、そうそうできるはずもない仕事を任されることはないはずです。しかし、自分の仕事は高度な数学的、物理的意味がわかっていなくてもできる内容に整理された形で与えられるとしても、そうした高度な雰囲気にどうしてもなじめないということはありえます。
就職、転職する先の会社でどういう仕事をすることになるのか、可能は限り情報を集めてから、就職、転職するのがよいでしょう。なじめない雰囲気の仕事にあたってしまった場合は、ストレスで健康が損なわれてしまっては困りますが、あまり早々にそこをやめてしまうと自分の経歴としてあまる見た目がよろしくないことになるので、可能範囲でがんばり続けることが必要です。

いまどきのIT業界とSNS

昨今はSNSが発達しており、IT業界に就職、転職するにも既存の求人サイトだけではなく、facebookなどのSNSもさかんに使われるようになってきました。
日々の業務の中でも、各種連絡はEメールではなく、LINEなどのSNSを使うところも増えてくました。
これからIT業界を目指そうという若い世代の方は、SNSに十分慣れ親しんでいることでしょう。
PCは使いこなせるけど、SNSはねぇという中高年世代の方でも、一歩自社の外に出て、派遣先で働かなくてはならない状況になると、こうした今時のツールから逃れることはできないと考えたほうがよいでしょう。
facebookは、実名登録が原則なので、これはどうしてもやりたくないという方はあると思います。そういう方でも、ツイッター、LINE、インスタなどのSNS文化に触れておくことは、今後のIT業界を生き抜いていくために必須になっていると思います。臆せずにどんどん使っていきましょう。

IT業界と英語力

IT業界では絶対に高い英語力が必要かといえばそうではありません。
さほど英語力がない知人がIT系で開発の仕事をしていることが多くあると思います。
そうはいってもIT系の技術は主として英語圏からやってきており、飛び交う言葉は英語そのものという状態です。
英語の意味がわかっていないがゆえにやるべきことを誤解してしまうということは実際にありえます。打ち合わせしていて、互いに認識があっていると思っていても誤解することがあります。
したがって、英語力はあるべきです。
そうはいってもそんなに優れた技術者はそうそうのぞべくもなく、自分は英語力はないと思っていてもITで開発がやりたいなら、その道に進んでなんら問題ないと思います。
問題はIT系の仕事にめでたく従事できるようになった後で、日々の仕事のなか、できるだけわからない英語を調べて自分の身につけていくことです。
漫然とせずに、自分のペースで無理なく徐々に習慣として英語を調べ、拒否反応をなくしていくことです。

テスターとは

テスターとはテストする人のことです。テスト計画を立てる人ではなく、テストを行う人です。
開発者がテストする役割も兼ねることが多いです。
テスト工程には、デバッグを除くと、単体テスト、結合テスト、システムテスト、統合テストなどどいう区別があります。
単体テストレベルまでは、主に開発者みずから行う場合が多く、それ以外は、別の人がおこなうことも多いです。
結合テスト、システムテスト、統合テストなどは解釈が違う場合もあると思いますが、いづれもモジュール分割されたソフトウェアを結合し、全体としてのシステムの挙動をテストするものです。
各テストは、さらに細分化されます。
システムで行う業務を模擬してテストシナリオを用意してテストするテストはここに含まれます。
こうしたテストは、テストの場合だけアルバイトなどでテスト担当者を増員しておこなったりする場合があります。
テストを管理、計画する担当者は、こうしたアルバイトなどの開発したシステムに明るくない人にやり方を正しく伝え、管理する仕事があることになりますので、コミュニケーション能力も必要になります。