「ポートフォリオ」の価値

  

 最近感じておりますが、2019年までIT業界は若手エンジニアの売り手市場となり「プログラマー=稼げる業種」という認識広まりました。

 以前はプログラミングの習得方法と言えば、プライベート、大学・専門学校の情報系授業、入社後に研修やOJTで身につけるというのが主流でした。

 しかし2018年頃から プライベート、大学・専門学校の情報系授業 では「教える側の質(スキル)」と「教材の質」が問題となり、プログラミング学校ブームがおきスクールから卒業された生徒の売り手市場で数年にぎわいました。が最近はコロナもあり需要と供給バランスが崩れ、需要である 未経験エンジニア があふれている状況へと変わってきております。高度スキル者を採用側が選べるほどの競争業種へと変わってきました。このような状況下、今回のブログは未経験エンジニア達へ競争へ勝ち抜くための「作るべき自主制作物(ポートフォリオ)」についてお話させて頂きます。

 自主制作物とは何か

 各個人で自主的に行っているプログラミングであり、実際のソースコードや設計書をGitHubなどに載せて職務経歴書にURL記載の上で提出するものを指します。未経験エンジニアの場合は学習評価レポートといったところになります。

 私はIT歴ほぼ40年でスタートアップ企業からメガIT企業まで経験し役員経験も3社あります。採用からとプログラマーの立場の両側からの視点で今回は整理してみました。

企業側採用担当は自主制作物で採用までもっていきたい

 エンジニア採用担当からすると未経験者採用に対して興味がないわけではありません。コロナ不況より団塊の世代の40代、50代の自主退職希望より社員はスリム化となっている実情があります。「未経験者で良い人が居れば」と将来へ望みを繋ぎ採用する企業はあります。

 しかし現実としてプログラミング学校出身者が非常に多いので「○○スクールを卒業しました」だけだとどのくらいの実力がついているのか、適性があるのかさっぱり分からないという問題があります。

 プログラミングスクールや専門学校などで「課金しただけ」の人材もいるということであり、課金した先によってフィルタリングするのは本質ではありません。しかしそれを批判できないくらいには多いです。

 加えて起きている状況として、2020年3月頃に「折角目を掛けて採用し、教育してきた未経験者が一年で自社メディアに転職したり、フリーランスになった」という会社さんの声がいくつか聞こえてきました。元を辿っていくと一部プログラミング学校のLPや、エンジニアになるための情報商材が「1年でフリーランスになれる」と謳っていたことに行き着きます。それを忠実に実行して転職・退職していった諸先輩が居られるという話です。非常に残念な話ではありますが、市場はウイルス以外の要因でも荒れていると言わざるを得ません。

 不景気と荒れた市場が現実として立ちはだかる今、IT偏差値より入試のように必死に勉強し偏差値をアップできた実力とポテンシャルを示すための自主制作物が最も重要視されているのです。

採用担当は同じポートフォリオのレビューに飽きている

 プログラミング学校の教材のパターンとして基礎的な項目を実施した後に最終課題が出されます。その最終課題がそのまま自主制作物として企業に提出されるという流れがあります。これは2013年頃にブームがあったAndroid職業訓練校から見られる手法です。

 プログラミング学校卒業者の方は非常に多いので、結果として最終課題で溢れることになります。端的に言うと飽きています。スクールの最終課題では逆に評価が低い場合もあるのです。

・Twitterクローン
・Instagramクローン
・某フリマアプリクローン
・架空の会社のコーポレートページ
・ポートフォリオサイトという名のLP
・Todo管理や掲示板など

採用担当者の願望:自主制作物でここを見たい

 採用担当が見たいものは何かをざっくりとまとめると下記のようになります。

・プログラマとしての適性/素養
 −丁寧さ
 −きちんと入れられたコメント
・論理的思考力
 −条件分岐
 −ロジック
・自走できるか
 −教材にはない要素を自分で探して組み込めているか
・継続性
 −GitHubのブランチの枝分かれ具合
 −プログラミング卒業後も継続してプログラミングをしているか(好きで実装をしているか)

採用担当者が見たくないもの

・教材のコピペ
 −通称、写経
・著作権違反
・フロントエンジニア志望だがHTML/CSSしかないサイト
・見せることを意識していないサンプル実装

 著作権違反というのは、例えば某有名フリマアプリを再現した自主制作物というのを複数見たことがありますが、バナーから商品画像まで丸パクリでした。中の人に連携しましたが、社会人としてどうなの?という話なので表に出すのは辞めましょう。公序良俗に反するものも同様です。

 フロントエンジニア志望の場合、動的なサイトを作る必要がありますが、「なんだか小奇麗なサイト、コダワリはCSS」という方が非常に多いです。それはコーディングであってプログラミングとは言い難いです。デザイナー職に応募してみてはどうでしょうか。

 下記のようなものが割と見るパターンですが、提出物なので見せることを意識したものをお願いしたいです。ソースコードもそうですが、サンプルで入力したデータにも配慮が必要でしょう。

自主制作物に含まれていてほしいこと

 主にWEB系企業に応募するにあたり、自主制作物に含まれていることが望ましい項目についてピックアップします。

・フレームワークの利用
・条件分岐
・基本的なDBの操作
・継続したGitHubへのcommit

 ソースコードとあわせて提出していただきたいのは下記です。

・特に頑張ったソースコードへのリンク
・設計書

・Herokuなどで良いので動作確認ができるURL

 GitHubのURLを頂くことは先に話したように一般化していますが、殆どの方がオープンライブラリとセットでアップロードされているので「どのファイルを頑張ったのか」が分かりにくいということがあります。「このファイルを見てくれ」というのを注力したポイントとセットで書類に記載するべきでしょう。

 実際に動作するURLをHerokuなどにアップロードしておくのも重要です。動くのかどうか分からないソースコードのレビューもコストがかかるのでセットで提出していただきたいところです。ただ結構な割合で500とか404が返ってくるケースが多く、心象がよくありません。提出後は緊張感を持ってテスト実施しておきましょう。

私が考える、こんな自主制作物がお勧め

 特定の分野への就職に拘りがある場合は、その分野のサービスを実装するのが良いでしょう。そうでない場合は、汎用性の高い自主制作物を作っておく必要があります。私がオススメしたいのはアルバイトシフト管理システムや、勤怠管理システムなど実業務で汎用的に展開できるシステムです。

 何故このシステムをオススメするかというとTwitterやInstagramクローンで作る業務は普通ありませんが、業務系とも言われるシステムであれば自社メディア、SIer、SESのいずれであっても存在する業務なので、より実務に近いアウトプットであると言えます。何より要素が複雑に絡み合うことで上記にある条件分岐も自然と満たされていくことになります。使う側に立ったシステム作りを心掛けましょう

 アルバイト側と店長側でセットで実装しましょう。機能のイメージとしては下記のようになります。

アルバイト側のイメージ

・ログイン
・スマホ対応
・スケジュール画面
・シフト申請画面
・就業履歴確認
・欠勤申請

店長側のイメージ

・管理者ログイン
・従業員管理画面
 新規従業員追加、削除
・承認画面
・従業員スケジュール画面
・ある期間からの昇給/減給
・早朝手当、深夜手当
・欠勤処理
・各種設定画面
・月末締め処理
・給与明細の発行

 サンプルで入力したデータが一桁という人は多いですが、具体的にどういうふるまいをするのか分かりかねるため、サイトの内容にもよりますが100件程度のデータ入力は実施しておくと更に良いでしょう。アルバイトのシフト表や理容店の予約管理などはあらゆる業務分野へ展開できる業務です。これらも推しですね。

 自身で経験してきた業態に特化するのが生のエピソード込で評価が高いと思います。

まとめ

 今回紹介したものはあくまで一例でありますが、世に転がっているポートフォリオよりもぐっと転職合格へ近づけるものと考えています。是非ポートフォリオを考える際に一読をお願いできればと思います。

 MENTAなどよい先生へ出会えて完成させてくださいね。

windows10 ポート番号を使用しているプロセスを終了させる手順

Windowsコマンドプロンプト

OS:WIndows10

使用ツール:コマンドプロンプト

特定のポート番号を使用しているプロセスの確認

以下のコマンドを実行する。 ポート番号が8080の場合は

netstat -ano | find "8080"
パラメータ用途
netstatホストのネットワーク接続状態やソケット/インターフェイスごとのネットワーク統計の確認など
(-a)現在のすべての接続を表示
(-n)出力をIPアドレスなど数値のみに抑制
(-o)プロセスIDを表示
findテキストの検索

プロセスを終了させる

taskkill /f /pid <プロセスID>
パラメータ 用途
taskkillタスクを終了させる
/f強制終了
/pidプロセスIDの指定

実行結果が

> netstat -ano | find "8080"
  TCP         0.0.0.0:8080           0.0.0.0:0              LISTENING       12345
  TCP         [::]:8080              [::]:0                 LISTENING       12346

だった場合は以下の通り

taskkill /f /pid 12345

40歳,50歳代での今までの経験を生かしキャリコンにかけてみてはどうか!

キャリアコンサルティングとは、専門資格を有した「キャリアコンサルタント」が行う面談で、面談対象者のキャリアを通じた将来目標を明確化することを目的として行う面談です。

「キャリアコンサルタント」というのは、平成28年4月より厚生労働省管轄により国家資格の扱いになっており「学費の最大70%が支給されます」

※ 職業訓練給付金制度に認定されているオンラインスクールが対象

キャリアコンサルタントの国家資格

厚生労働省へのリンク

https://www.mhlw.go.jp/stf/seisakunitsuite/bunya/koyou_roudou/jinzaikaihatsu/career_consulting.html

私のバイブルはシャープ MZ-40K【44年前】

私はプログラミングで飯を食べ始めて40年現役プログラマーです。

ふとしたきっかけでインターネット見てたら「MZ-40K」を見つけました。懐かしいなー。と思い私がまず最初に購入したパソコン(当時はマイコン)を紹介いたします

現在のパソコンは64ビットパソコンですが、下記のようにCPUの性能は一気に飛躍的に発展していきました

1971年インテル社i-4004  4bit MPU
1974 年モトローラ社MC6800  8bit MPU
1978年インテル社i-8086  16bit MPU

私は、9人家族で生活がすごく厳しい。極貧貧乏でした。

しかし、元気なのに仕事を休みがちで酒浸りで博打好きな父を見てきました。子供に食べるものも食べさせられない生活。いまでいうDVの生活でした。しかし当時のぼくはどん底だったからこそ、這い上がろうとしていまから仕事として伸びるプログラミングの分野で生きていきたいと確信させてくれたマイコンでした。小遣いのない私にとってMZ-40Kは当時確か25000円でしたのである筈もなく、早朝の新聞配達で買いました。私のバイブルマシンです。

プログラムというよりは、16進4ビットを入力しレジスタも2,3?個しかなかったが格納し音を出したりライト表示で感動したおもちゃでした。これをきっかけに偏差値の少し高い工業高校の電子科へ進みプログラムを本格的に学び始めました。

44年たったいまも当時に気持ちは忘れないです。

中学生には、このような簡単なプログラミングでも感動するのかなと思い出せてくれる出来事でした

さくらVPNでの最新git2【centos7】再インストール手順

目次 [隠す]

前準備

まず、すでに古いgitが入ってたら削除します。(さくらのVPSの場合デフォルトで1.8)

$ git –version
git version 1.8.3.1
$ yum -y remove git

次にgit2系用のリポジトリであるiusをインストールします。(qiitaの記事だとこれが古いパターンが多い)

git2.x用のリポジトリをインストールする。

# sudo yum install \
https://repo.ius.io/ius-release-el7.rpm \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

実際にgit2系をインストール

前準備でインストールしたリポジトリ指定でgitをインストールする。

$ yum install git –enablerepo=ius –disablerepo=base,epel,extras,updates

ちなみにこれだとgit-2.24がインストールされるようです。2021/1現在git2.2系の最新は2.29なのでちょっと古いです。

が、マイナーバージョンアップなので多分問題ないです。

ちなみに他にもgit2.3系~git2.9系もありますがいずれも2017年くらいで更新が終わっているので、主流は2.2X系みたいです。

なので単純にバージョンだけ見て『git2.9が一番新しいじゃん!これにしよ!』と飛びつかないほうがよいです。

【参考】https://mirrors.edge.kernel.org/pub/software/scm/git/

このままだと依存関係のエラー発生

libsecret と pcre2 追加します。

$ yum -y install libsecret pcre2


$ yum install git –enablerepo=ius –disablerepo=base,epel,extras,updates

これでバッチリインストールできました。

まとめ

ポイントは不足しているパッケージを個別にインストールしてください。

2021.11.16現在ですが将来は、パッケージの組み合わせで異なってくるとはおもいますが、参考までに!

mac/windowsが影響を受けたはるかに古い無料OS:Unixの歴史

Unixの産声

Unixは1969年AT&Tベル研究所にて、ケン・トンプソンデニス・リッチーらが開発を開始した。当初はアセンブリ言語のみで開発されたが、1973年にほぼ全体をC言語で書き直した。C言語を開発した デニス・リッチー は私が最も尊敬する人物です

wikipediaよりリンク

※こちらの本は、ご本人が改版されたすばらしいバイブル本なのでぜひ手元に置いていただきたい本です。

独占禁止法でUnixがフリーとなった

しかし、AT&Tは通信会社です。Unixは素晴らしいものであり1企業では、独占禁止法に触れると訴えられたので。そこで世界の発展のため無料で公開を行ったことより大学や研究所などの教育機関で広範囲に採用されました。特にカリフォルニア大学バークレー校は改良を行いBSD系統が誕生しました。逆にAT&Tの流れを受け継ぐ UNIX System V は「伝統的なUNIX」(traditional Unix)とも呼ばれる。

現在では多く使われているUnixとしてはmacOSAIX(IBM)HP-UX(Hewlett-Packard)Solaris(SunMicroSystem)などがある(いずれも商用)。また認証を受けていないUnix系としてはLinux(派生OSにAndroid他)やMINIXBSDの派生OS(FreeBSDNetBSDOpenBSDDragonFly BSDなど)があります。

しかし、Unixは肥大化してしまいワークステーションなどの高価なマシンでしか動作しないOSとなっていったのが歴史があります。

パソコンでUnix動かしたいという思い!Linux誕生

そこで、1991年に、当時フィンランドヘルシンキ大学の学生であったリーナス・トーバルズは、当時 Intel 80386 CPU を搭載した32ビットPC/AT互換パーソナルコンピュータが登場していたため、Unixをこの非力なマシンで動作できないかカーネルと呼ばれるコアな部分の実装を行ったのです。

Linuxカーネル・メーリングリスト (LKML) が登場し、だれでもが開発に携われることとなっていき一気に非営利へのパソコンの利用ということで開発が加速されて行きます。

Linuxのフリーを守るためにGNUが発足

LinuxをUnixのように商用とならないようにリチャード・ストールマンは、GNUプロジェクトの最初の声明を1983年9月に行いました。“GNU”という名前は、いくつかの必要に適合するために選ばれました。第一に、それが“GNU’s Not Unix”の再帰頭字語であること。第二に、それが現実の言葉であること。第三に、それを言う(またはうたう)のがおもしろいこと、です。

“free software”(自由ソフトウェア)の“free”は自由に関連していて、値段には関連しません。GNUソフトウェアを入手するのに、代価を払うこともできますし、払わないこともできます。どちらにせよ、いったんあなたがソフトウェアを手に入れてしまえば、それを使う上で4つの特定の自由を享受できることになります。

(1)望むままプログラムを実行する自由。

(2)プログラムをコピーしそれを友だちや同僚にあげる自由。

(3)ソースコードへの完全なアクセスを持ち、プログラムを望むように変更する自由

(4)改良されたバージョンを配布し、それによってコミュニティを建設する自由。(ただでコピーを配ってもよいのです。)

GnuがOSSの普及へ貢献されたことは大きな出来事だったのです

現在のLinuxでの活躍

レンタルサーバでは無料であるLinuxサーバが活躍しております。

世間のインターネットで動いているサーバのOSはLinuxなのです。開発環境もDockerが多く使われます。こちらもLinxであり無料で勉強できますよ

プログラマーであれば、Linuxを使いこなせるスキルが必要ですので、身近に感じて取り組まれてくださいね

古くからある!オブジェクト指向の歴史【Javaが最初ではない!】

説明動画↓

ちなみに、「のらくろ」って気になった方はこちらをご覧ください

LaravelでSNS認証を作ってみた

Laravelにソーシャル認証用のプラグインSocialiteをインストール

composer.jsonを編集して以下を追加します。

config/app.phpを編集して以下を追加します。

この後、composer updateします。

うまくいかない場合は、

conposer.lock と Venderフォルダーを削除し

conposer install

したほうが早いかもしれません。

Twitter、Facebook、Googleの管理画面から、クライアントIDとシークレットキーを取得

Googleの場合、https://console.developers.google.com/apis/library から、プロジェクトを作成します。

Spring boot 使ってみた

Spring Tool Suiteのダウンロード

Spring Tool Suiteは64bit版のJavaを使用している場合32bit版では動作しません。下記URLのページのトップのダウンロードでは、32bit版がダウンロードされるので、「See all version」から64bit版を探してダウンロードしましょう。

【Spring Tool Suite ダウンロード先】
URL : http://spring.io/tools

解凍すると「sts-bundle」というフォルダができるので、その中の「sts-*.*.*.RELEASE」⇒「STS.exe」を実行しましょう。

今回は空きのあるDドライブとしました。

早速起動しました

aws ec2 への vim インストール方法

dnf install vim-enhanced

root@ip-172-31-56-20 html]# dnf install vim-enhanced
Last metadata expiration check: 0:49:55 ago on Mon 08 Jun 2020 11:01:08 PM UTC.
Dependencies resolved.
================================================================================
 Package         Arch    Version              Repository                   Size
================================================================================
Installing:
 vim-enhanced    x86_64  2:8.0.1763-13.el8    rhel-8-appstream-rhui-rpms  1.4 M
Installing dependencies:
 gpm-libs        x86_64  1.20.7-15.el8        rhel-8-appstream-rhui-rpms   39 k
 vim-common      x86_64  2:8.0.1763-13.el8    rhel-8-appstream-rhui-rpms  6.3 M
 vim-filesystem  noarch  2:8.0.1763-13.el8    rhel-8-appstream-rhui-rpms   48 k

Transaction Summary
================================================================================
Install  4 Packages

Total download size: 7.8 M
Installed size: 30 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): vim-filesystem-8.0.1763-13.el8.noarch.rp 352 kB/s |  48 kB     00:00
(2/4): vim-enhanced-8.0.1763-13.el8.x86_64.rpm  7.3 MB/s | 1.4 MB     00:00
(3/4): gpm-libs-1.20.7-15.el8.x86_64.rpm        349 kB/s |  39 kB     00:00
(4/4): vim-common-8.0.1763-13.el8.x86_64.rpm     22 MB/s | 6.3 MB     00:00
--------------------------------------------------------------------------------
Total                                            19 MB/s | 7.8 MB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : gpm-libs-1.20.7-15.el8.x86_64                          1/4
  Running scriptlet: gpm-libs-1.20.7-15.el8.x86_64                          1/4
  Installing       : vim-filesystem-2:8.0.1763-13.el8.noarch                2/4
  Installing       : vim-common-2:8.0.1763-13.el8.x86_64                    3/4
  Installing       : vim-enhanced-2:8.0.1763-13.el8.x86_64                  4/4
  Running scriptlet: vim-enhanced-2:8.0.1763-13.el8.x86_64                  4/4
  Running scriptlet: vim-common-2:8.0.1763-13.el8.x86_64                    4/4
  Verifying        : vim-filesystem-2:8.0.1763-13.el8.noarch                1/4
  Verifying        : vim-common-2:8.0.1763-13.el8.x86_64                    2/4
  Verifying        : vim-enhanced-2:8.0.1763-13.el8.x86_64                  3/4
  Verifying        : gpm-libs-1.20.7-15.el8.x86_64                          4/4

Installed:
  gpm-libs-1.20.7-15.el8.x86_64         vim-common-2:8.0.1763-13.el8.x86_64
  vim-enhanced-2:8.0.1763-13.el8.x86_64 vim-filesystem-2:8.0.1763-13.el8.noarch

Complete!
[root@ip-172-31-56-20 html]#