文系プログラマの雑記

文系プログラマの考え、プログラミングの紹介

プログラマーの向き不向きを知る

f:id:ShotaNukumizu_1000:20210710112239p:plain

おはようございます。Shotaです。

突然ですが、プログラマーと聞くと皆さんはどのようなイメージを持ちますか?

「すごい向き不向きが出そう!」

「専門職過ぎて自分には無理...」

という人も多いでしょう。

ところが、プログラマーの適性について具体的にわかりにくいと思います。

そこで、今日の記事ではプログラマーに向いている人とそうではない人について具体的に紹介します。

今日の記事を読めば、プログラマーの向き不向きを理解できます。

これからプログラマーを目指す人や興味を持っている人はぜひ最後まで読んでください!

それでは早速、本題に入りましょう!



プログラマーに向き不向きはある?

f:id:ShotaNukumizu_1000:20210614074705p:plain

プログラマーという職業は、向き不向きが顕著に出やすい職業です。

プログラマーに向いている人は、特に挫折することなくプログラミング学習をすすめることができます。一方で、向いていない人は一つ一つのエラーに引っかかって苦戦します。

この成長速度の違いが、向いている人とそうではない人の差と言えます。

しかし、自分がプログラマーに向いているかどうか具体的にわからないですよね。そこで、次章からプログラマーに向いている日と塗装ではない人の特徴を紹介します。


プログラマーに向いている人は?

f:id:ShotaNukumizu_1000:20210722172609p:plain


エラーを分析できる

プログラミングはエラーとの戦いと言っても過言ではありません。

どのようなベテランのプログラマーでも全くエラーを出さずにプログラムを組むのは簡単ではありません。エラーに対して、「エラーの原因」「エラーが出ないプログラムの組み方」を冷静に分析できる人は成長が速いです。

プログラマーにとって、エラーは仕方がないことです。

最初から完璧にプログラムを組むことを考えずに、エラーが出た際にどのように処理するかが問われます。エラーばかり出てもイライラせず、冷静に対処できる問題解決能力の高い人はプログラマーにふさわしいと思います。


コミュニケーションが得意

プログラマーは、大半の場合は「チーム開発」で作業を行います。

チーム全体で連携をとって作業をする必要があるのでコミュニケーションは欠かせません。チーム内のコミュニケーションを円滑に回せる人がいると、作業効率が爆上がりしチームの雰囲気も良くなりますよね。

プログラマーはある程度の実務経験を積んでいくとプロジェクトを任されるようになります。その際には、コミュニケーションは必要不可欠です。

コミュニケーションが得意なことはプログラマーにとって大きな強みになるでしょう。


自分の課題を見つけ自主学習できる

プログラマーが成長するためには、自分で勉強する必要があります。常に目標を持ち、自分の課題を把握できる自己管理能力の高い人はプログラマーに向いています。

IT業界はトレンドの移り変わりが非常に早い特徴があります。

常に最新情報にアンテナを張り、新しい技術をキャッチアップする必要があります。効率的に勉強できる積極性のある人はプログラマーにふさわしいと思います。


プログラミングそのものを楽しいと思っている

これは至極当たり前のことですが、プログラミングが楽しいと思えることが前提条件です。

プログラミングが好きな人は、平日休日関係なくコーディングをしたり、新しいプログラミング言語を勉強します。好きな人は勝手にどんどんスキルを上げていきますので、差が開くのは当然ですよね。


プログラマーに向いていない人は?

f:id:ShotaNukumizu_1000:20210811161733p:plain


自主性が低い

優秀なプログラマーは自主学習をしています。何か課題があっても、問題解決のために自ら考えて行動できます。

IT業界はすぐにトレンドが変わるのでどんどん新しいことを取り入れる必要があります。ところが、自主性の低い人は現状に満足しており、自分から行動や環境を変えようとしません。

なにか課題を見つけても、理由をつけて後回しにしてしまう人はプログラマーに向いていないでしょう。


細かいことを気にしない

プログラマーにとっては、コードをいかにシンプルにわかりやすく書くかが重要です。

「とりあえず動けばいい」「自分さえわかっていれば大丈夫」

というような考えでコードを書いてしまうと、エラーの原因特定に時間を要してしまいます。プログラマーにとって、エラー処理は主要業務の一つです。また、プログラミングはチーム作業です。

自分だけが良ければよいという考えは、チームワークを乱す要因になりかねません。

さらに、コードを書く際は細かいルールがたくさんあります。プログラマーは、ルールを遵守しながらコードを書く必要があります。

一つ一つの細かいことに注意を払えない人は、プログラマーに不向きでしょう。


まとめ

今日の記事では、プログラマーの適性について紹介しました。

プログラマーは将来的にも需要の高い職業です。しかし、離職率も高く明確な目標がない人には難しい職業でもあります。

将来性で選ぶのではなく、目標でプログラマーを目指せば未経験からでも優秀なプログラマーになれます。

今日の記事はこれで終了です。

【参考サイト】

www.sejuku.net

pro-web-engineer.com

JavaScriptのフレームワークReactとは?特徴を徹底解説

f:id:ShotaNukumizu_1000:20210614080252p:plain

おはようございます。Shotaです。

現在のWeb開発では、JavaScriptフレームワーク選択は非常に重要な要素になっています。高速で、使いやすいUIを短期間で開発する必要があるからです。

しかも、JavaScriptフレームワークが特に多いので迷ってしまいますね。

そこで、今日の記事ではJavaScriptフレームワークの中でも人気で主流となりつつある「React」について解説します。

ちなみに、今回の記事はこちらの記事の更新版になっております。よければこちらも確認してください。

shotanukumizu-1000.hatenablog.com



Reactとは

f:id:ShotaNukumizu_1000:20210917150231p:plain

Reactは、Facebook社が開発したJavaScriptフレームワークです。2013年にリリースされ、年々どんどん人気が上がってきているフレームワークです。

Reactのプログラムはオープンソースとして公開されているので、様々な改良が日々行われています。Facebook社が開発を行っていますので、改良も早く品質も高いのですごく信頼性の高いフレームワークと言えます。


Reactの特徴

f:id:ShotaNukumizu_1000:20210917150327p:plain


UIが作りやすい

UI(User Interface)とは、ユーザとコンピュータが情報をやり取りするための操作画面や操作方法のことを意味します。

Webアプリでいうと、画面のボタンやメニュー、入力フォームなどユーザが操作する部分のことを主にUIと呼んでいます。

ReactはUIの機能追加に特化しており、ユーザが使いやすいUIを作りやすくしてくれます。また、効率よく開発を行い、できるだけユーザが操作にストレスを感じないように高速で動作するようになっています。

Reactは、Webアプリのパフォーマンス改善にも活用できます。


コンポーネント指向

Reactでは、「コンポーネント指向」という概念が用いられています。コンポーネント指向というのは、UIを部品化して管理を行いやすくし、再利用をしやすくする設計方法の一つです。

それにより、Reactは複雑なUIの管理を簡単にします。複雑なUIでも、それぞれのUIの状態を個別で管理できるので、自由に開発できます。


1回学べばどこでも使用できる

Reactは、開発の途中から利用されることを念頭に置いて作られています。

そのため、新しい機能を追加する場合でも、既存のコードを書き換える必要がありませんので、その部分だけをReactを使って開発できます。

どのようなWebアプリにもすぐに導入できる手軽さも、Reactの大きな特徴の一つです。


Reactはどのようなアプリに適している?

f:id:ShotaNukumizu_1000:20210724075200p:plain

Reactは、画面遷移が少なくてユーザが使いやすいと言われている「SPA(Single Page Application)」の開発に向いています。SPAはWebアプリの中でもUIの使いやすさを挙げるために、JavaScriptを駆使する必要があるので、UIに特化したReactは非常に向いていると言えます。

それだけではなく、iOSAndroid向けのモバイルアプリが開発できる「React Native」というフレームワークも提供されています。

Reactは高速で動作するので、SwiftやJava、Kotlinを使って開発された専用アプリと遜色ない動作をすることで注目を集めています。


まとめ

今日の記事では、Reactについて簡単に解説しました。

Reactは、非常に使いやすい手軽なフレームワークです。

WEBアプリにとどまらずに、モバイルアプリまで手掛けることができるので、幅広くJavaScriptを活用したい人はReact.jsを学習することをおすすめします。

今日の記事はこれで終了です。

【参考サイト】

www.sejuku.net

【毎週日曜更新】本の要約・考察第26回~『嫌われる勇気』~

f:id:ShotaNukumizu_1000:20210818060718p:plain

おはようございます。Shotaです。

今日は日曜日なので、本の要約・考察記事を書いていきます。

今日取り上げる本は『嫌われる勇気』です。

今日の記事は、5ヶ月以上前に投稿した記事の更新版になっています。ぜひ確認してください。

▼過去の記事

shotanukumizu-1000.hatenablog.com

本書は「心理学の三大巨頭」の一人アルフレッド・アドラーの考えを、「青年」と「哲人」という二人の対話という物語形式を用いてまとめた一冊になります。アドラーが生み出した心理学は欧米で絶大な人気を誇っており、「どうすれば人は幸せに生きることができるのだろうか」という哲学的な問いに極めてシンプルかつ具体的な答えを提示します。

今回の記事では、特に管理人が重要だと感じたポイントを厳選して要約・解説していきます。全部を紹介することは困難なので、詳細を知りたい方は是非ご自身でご購入して読んでみてください。

それでは早速、本題に入りましょう。



新しい「ライフスタイル」に変える


人は常に、「変わらない」という決心がある

アドラー心理学では、その人の人生における思考や行動の傾向そのものを「ライフスタイル」と呼んでいます。私達の大半は、もともと備わっている気質や性格は自分の意志とは無関係に備わっていると思います。ところが、アドラー心理学ではライフスタイルは自分で選び取るものであると考えます。

言い換えれば、「不幸である」と考えるのもひねくれた性格も自分の手で選んだものであると同じ意味になります。しかも、このような選択には人間関係や家庭環境のような外的要因、人種や国籍も大いに関係しています。

もちろん、私たちは生まれた場所や時代、親を選ぶことはできません。しかも、それらはかなりの影響力を持っています。不満もありますし、他の人を見て「あんな境遇に生まれたかった」と思う気持ちも出てくるでしょう。

しかし、そこで終わってはいけません。問題は過去ではなく、現在の「ここ」にあります。この先どう行動するかは私たち自身の責任です。これまでどおりのライフスタイルを選び続けるのも、新しいライフスタイルを選び直すことも、全て私たちにかかっています。

私たち人間は常に自分のライフスタイルを選択しています。今すぐ変わりたい、現状をなんとかしたいと思っても変われずにいる人は結構います。それはどうしてでしょうか?それは、私たちが変わらない決心をしているからです。

もし「このままの私」であり続けるなら、目の前の出来事にどのように対処するべきか、そしてその結果どのようなことが起こるのか経験から推測できます。一方、新しいライフスタイルを選んでしまうと新しい自分に何が起こるのかわからないし、目の前の出来事にどのように対処すればいいのかもわかりません。つまり、人はいろいろと不満はあったとしても、「このままの私」でいることの方が楽であり、安心だからです。

本書では、アドラー心理学は新しいライフスタイルへ「変える」ための「勇気」にまつわる心理学であることを強調されています。


全ての悩みは対人関係


自分が嫌いな理由

私たちは、つい自分の短所ばかりが目について、なかなか自分を好きになれないことがよくあると思います。どうしてそのようなことが起こるでしょうか?本書では、それは私たちが他者から嫌われ、対人関係の中で傷つくことを過剰に恐れているからであると主張されています。そのような事態に巻き込まれるくらいなら、最初から誰とも関わりを持たないほうがマシだと考えることもあります。言い換えれば、「他者との関係の中で傷つかないこと」が目的になっているのです。

そのような目的を叶えるのは非常に簡単で、自分の短所を見つけて自分を嫌いになり、対人関係に踏み出さない人間になってしまえばいいのです。しかし、対人関係の中で傷つかないなど、基本的にはありえません。


人生は他者との競争ではない

様々な競争や比較にさらされる現代社会ですが、アドラー心理学では「誰とも競争することなく、ただ前を向いて歩いていけば良い」ということが強調されています。言い換えれば、他者と自分を比較する必要がないということになります。

アドラー人生は誰かと競争するためにあるのではなく、今の自分よりも前に進もうとするためにあるものであることを強調しています。

逆に言えば、対人関係の中に「競争」があると、人は対人関係からの悩みから脱却することができず不幸から逃れられません。これをわかりやすく言えば、TwitterなどのSNSで赤の他人のツイートに「あの人と違って自分はだめだ...」と落胆することは、執着にとらわれてしまい不幸から解消されなくなってしまうことになります。

競争が激しくなると、いつの間にか、他者全般のことを、ひいては世界のことを「敵」だとみなすようになってしまうのです。競争の恐ろしさはここにあります。


他人の課題を切り捨てる


「あの人」の期待を満たすために生きてはいけない

アドラー心理学は、他者から承認される必要はない、つまり「承認欲求」を否定します。

他者から認められることは、たしかに嬉しいかもしれません。他者から承認されることで、私たちは「自分は価値のある人間だ」と実感できるからです。しかし、アドラー心理学では承認欲求は必要ないと断言しています。

私たちはどうして他者からの承認を必要とするのでしょうか?それは、賞罰教育の影響を受けているからなのです。アドラーは、適切な行動をとったら、褒めてもらえる一方で、不適切な行動をとったら罰せられるという賞罰教育を厳しく批判しました。賞罰教育の先に生まれるのは、「褒めてくれる人がいなければ、適切な行動をしない」「罰する人がいなければ、不適切な行動を取る」という価値観です。

私たちは、「他者の期待を満たすためだけに生きているわけではない」ことを認識しておく必要があります。そもそも、他者の期待を満たす必要はないのです。

他者からの承認を求め、他者からの評価ばかりを気にしていると、最終的には他者の人生を生きていることに繋がります。それと同様に、他者も「私たちの期待を満たすために生きている」わけではありません。


まとめ

今日は『嫌われる勇気』を解説しました。(2回目)

今日の記事のポイントは次の通りです。

  • 自分の価値観を新しい価値観にアップデートさせる
  • 全ての悩みは対人関係にある
  • 人生は他人と競争するためにあるのではない
  • あの人の期待を満たすためだけに生きる必要はない


本ブログでは、普段はプログラミングに関する技術的な内容を発信していますが、毎週日曜日は購入した書籍の要約・考察を発信しています。

今日の記事はこれで終了です。

【参考図書】

SQLとは?初心者向けに概要やメリットを解説

f:id:ShotaNukumizu_1000:20210915064721p:plain

おはようございます。Shotaです。

皆さんは、SQLについて知っていますか?

SQLは様々なプログラム言語と組み合わされて利用され、世の中にあるシステムのほとんどがSQLを使っているので、必ず習得したいスキルの一つです。

今日の記事では、これからSQLを勉強しようと考えている人のために

  • SQLの概要
  • SQLを勉強するメリット


これらを中心に解説していきます。



SQLとは

f:id:ShotaNukumizu_1000:20210915072338p:plain

SQLとは、リレーショナルデータベースに蓄積したデータを操作したり定義したりするプログラム言語です。SQLを覚えると、データベースに保存されている大量のデータを効率的に取得・更新・削除・追加できます。

そして、SQLは国際基準化されているのでMySQLOracleなどのデータベースが変わったとしても同じSQLで操作可能です。


プログラミング言語との違い

SQLはデータベース内に保存されているデータを取得したり、検索したりする時に使う言語なので、プログラミング言語とは全くの別物です。

Excel内に保存しているデータを探す際は、Excelのフィルター機能を使います。このフィルター機能と同じような役割をするのがSQLです。

SQLでは、命令文を実行することで必要なデータを簡単に取得できます。


SQLでできること

SQLでできることは、データの取得・登録・更新・削除やデータを特定するための条件検索ができます。

リレーショナルデータベースでは、データをExcelのように表形式のイメージでデータを保存しています。そのため、行や列でデータベースを操作することができます。


SQLの種類

f:id:ShotaNukumizu_1000:20210915073133p:plain

SQLは大きく分けて3つの種類があります。

  • データを操作するためのDML(データ操作言語)
  • データを定義するためのDDL(データ定義言語)
  • データベースへのアクセス権の制御や管理をするためのDCL(データ制御言語)


主にデータベースを操作したり制御したりする時に使い分けられ、全て命令文で動詞と目的語を組み合わせた構文です。


SQLの特徴

本章ではSQLの特徴を2つ紹介しておきます。


一方的に命令する

SQLは、対話のように文をやり取りして命令します。

プログラミング言語ソースコードに命令を順番に記述して行いますが、SQLはシンプルな命令文を一方的にデータベースに送信するだけです。


SQL単体ではアプリを作れない

SQLはデータベースを操作するための言語であり、アプリケーションを開発したり操作したりする機能はありません。そのため、アプリケーションやシステムを開発するときには他のプログラムやプログラミング言語と組み合わせて使用します。

アプリケーションからデータベースを利用したいときは、アプリケーションにSQLの命令文を記述します。


非エンジニアがSQLを勉強するメリット

非エンジニアがSQLを勉強するメリットは、エンジニアに依頼せずに自分で必要なデータを抽出し、分析することです。

例えば、売上データを確認したい時にSQLを使えば、エンジニアにデータ抽出の依頼をせずに自分で行うことができます。

また、追加で他のデータが必要になったときもエンジニアに依頼せずにすみます。


まとめ

今日の記事ではSQLについて解説しました。

SQLはデータベースに保存されている大量のデータを効率的に取得・更新・追加・削除ができるデータベース言語です。

今日の記事がSQLを理解する手助けになれば幸いです。

今日の記事はこれで終了です。

【参考サイト】

hnavi.co.jp

www.sejuku.net

Herokuとは?初心者向けにメリットを解説

f:id:ShotaNukumizu_1000:20210915061857p:plain

おはようございます。Shotaです。

プログラミング学習やWebアプリ開発をしている人の中には、このように思っている人も多いでしょう。Herokuは簡単にWebアプリを公開できる画期的なサービスです。

そこで、今回はHerokuについて初心者でも理解できるように解説していきます。



Herokuとは

f:id:ShotaNukumizu_1000:20210915062433p:plain

Herokuは簡潔に言えば「アプリケーションを実行するための環境」です。

アプリケーションを実行するためには、データを登録するためのデータベースや画面で操作した処理を動かすためのサーバなどの環境が必要です。Herokuではそれらを簡単に利用できます。


PaaSとは

f:id:ShotaNukumizu_1000:20210915062625p:plain

そもそも、HerokuはPaaS(Platform as a Service)と呼ばれる形態でサービスを利用できます。PaaSを簡単に言えば、アプリの公開に必要な手順を代行してくれるサービスのことです。

言い換えれば、これまでインターネット上でアプリケーションを公開しようと思った場合、次のような手順を踏まないとそもそもアプリケーションを作り始めることすらできませんでした。

  • サーバPCやルーターなどのハードウェアを購入
  • インターネットに接続し、ネットワークを構築
  • サーバの仮想化環境を整備
  • LinuxのようなOSをインストール
  • OracleMySQLPostgreSQLなどのようなデータベースをセットアップ
  • JavaRubyPHPなどのアプリケーション実行環境をセットアップ


ここまでやって、ようやくアプリケーションを公開する(デプロイする)ための環境が整ったことになります。

PaaSはアプリケーション公開にかかる様々な作業を代行してくれるサービスです。


Herokuを使うメリット

f:id:ShotaNukumizu_1000:20210729070911p:plain

前章では、Herokuを使えば環境構築をせずにアプリケーションを公開することを説明しました。

もちろん、Herokuを使うメリットは他にもあります。主に3点あります。


拡張機能が豊富

1つ目は、拡張機能が豊富な点です。

例えばアプリ開発を進めていくと、登録したユーザにメールを送信する処理を作るケースが良くあります。しかし、メールを送信するためにはメール配信用の環境が必要です。

Herokuは拡張機能を使うだけで簡単にメール配信用の環境を利用できます。Herokuはアプリ開発に必要な拡張機能が豊富なので、開発環境に煩わしさを感じません。


スケールアウトが簡単

2つ目は、スケールアウトが簡単な点です。

スケールアウトとは、システムを構成するためのサーバの台数を増やすことで、システムの処理能力を高める、言い換えればコンピュータの環境を増強する方法の一つです。

アプリを開発して公開したあと、スムーズに運用を進めるためには「最適な環境を維持すること」が必要です。

Herokuではダッシュボード画面で操作したり、簡単なコマンドを実行したりするだけですぐにスケールアウトができます。


運用をサポートするための標準機能が備わっている

3つ目は、「運用をサポートするための標準機能が揃っている」点です。

アプリは開発が終了したら、それだけで作業が終了するわけではありません。開発してアプリをリリースしたあと、アプリが正確に動作するように運用する必要があります。そのために必要な技術が、アプリが動く環境を正確に把握する技術です。

より具体的に言うと、アプリの状態を確認する「ログ」や、サーバの状態を確認する「パフォーマンスモニター」などをチェックし、状態を把握するスキルが必要です。

Herokuでは、ログやパフォーマンスモニターなどを確認できる機能があります。

それだけではありません。Herokuではデータベースのデータを守るためのバックアップ機能も備わっているので、運用にかかるコストも抑えられるのです。


まとめ

今日の記事では、初心者向けにHerokuについてかんたんに解説しました。

Herokuを使えば環境構築をせずにアプリを公開できるので、かなりの手間を省けます。

このような便利なサービスを上手に活用して、プログラミング学習やWebアプリ開発を効率的に進めていければ幸いです。

今日の記事はこれで終了です。

【参考サイト】

www.sejuku.net