プログラムを打っていたらレイヤが下がっていった話

しがないベンチャー企業で働く筆者です。
職務内容は基本的にマネジメントらしいですが
一応プログラムの心得は持っているつもりです。

プログラムを勉強していた

さて、筆者はもともと、ERPエンジニアで
サポート部隊で働いておりました。
その頃の仕事内容は問い合わせがあって
システムの挙動を確認して
回答するといった感じでした。
どちらかというとプロダクトに関しては読むほうが多かったと思います。
プログラムを読むということですが
文系卒の筆者はプの字も知らないなかこの業界に入ったので
最初は全く仕事ができませんでした。
なので仕事ができるようになるためのはプログラミング言語を勉強しなければ
と思い立ち、当時仕事で使用していたVB.NETを勉強し始めました。

わかれば割と面白い

プログラムを勉強するにつれて書けるようになり
読めるようになりました。
また自宅で簡単なシステムを作れるようになり
例のごとく、プログラムにはまっていくのでした。
VB.NETだけによらず、JavaやらC#やらいろんな言語に手を出していきました。
筆者は何事も浅く広くなので、得意な言語は実は全くなく
HELLO WORLDくらいかければいいや精神でいろんな言語を学んでいきました。

動かす喜びより、なぜ動いているのかを知るという喜び

いろんな言語を学んでいくにつれてふと思いました。
プログラムってなんで動いてんだ?
というかプログラムを動かすOSもプログラムでできてるしそれって何なんだ!?と
まぁググれば一発で出てくるのですが、そう思って調べたときにC言語に出会いました。
C言語の悪名高き噂は聞いておりポインタが難しいと
筆者は割と馬鹿な人で、人間が理解できるなら自分も理解できるだろ
と思い、かの有名なプログラミング言語Cを買い読み始めました。

結果なんもわからん

さてプログラミング言語Cを買って読んでいた筆者ですが
何もわかりませんでした。そう何もね!!
ただ大きな収穫というのは、プログラミングというのは超ざっくり言うと CPUに命令を出すためにメモリに指示を格納するためのものだと学べました。
そこからというもの、プログラミングの見方、考え方が変わりました。
メモリに対してどのように指示しているかを考えれば
適切なプログラミング技法はおのずと導かれてきます。※自己満の世界ですが

キラキラしている世界よりも数字に近い世界へ

昨今Webエンジニアが人気らしいですし、そんなに強く思っていなくても Webエンジニアになれたらなぁと思っている人は多いと思います。
しかし、それはうまく言えませんが、表面的な世界の煌びやかな部分を見ているだけかもしれません。
レイヤが下がるにつれて地獄です。
よくわからない文字列がたくさん出てきて、CPUよりの考え方を求められます。
ただその下のレイヤがなければ、Webなどの表面のシステムは絶対に動きません。
システムとはレイヤを積み重ねたものだ
とよく言ったものです。
Webエンジニアをもし目指すのであれば、下のレイヤを気にするのも良いことだと思います。
きっと厚みのあるエンジニアになれるのではないかと思う今日この頃です。

プログラマになりたくて、プログラマをあきらめて、それでもプログラムを勉強しようとした話

プログラムとの出会い

どこかのベンチャーで一応エンジニアとして働いている筆者です。
筆者の経歴としては
文系の大学を卒業し
プログラムのプの字もしらない中で
ERPパッケージベンダーに入社しました。 4カ月ほどの研修で初めてJavaという言語に出会いました。

始めのプログラミング言語は全くの「?」状態で
さすがに変数宣言やらif文からLoopなどはわかったものの
メソッド?ナニソレオイシイ?クラス?シラン
状態で研修が終わりました。

さすがにプログラミングはできないし
企業訪問演習やら対人的な研修では割と良い成績だったので
配属は営業職だろと思っていたのですが
まさかのエンジニア職の配属でした。

やらなければならない。

配属当初全くわけのわからないプログラム・・・
後、配属された部署がサポート部隊だったので
他のプロジェクトベースでコーディングを学べる環境になく
クライアントの問い合わせに対して必要であればプログラムを読む
という部署でした。
簡単に言ってしまえばプログラムがわかる前提で仕事をしなければならず
プログラムについてはOJTコストをかけてくれるわけもなく
かといって仕事でコーディングにかかわれる機会もなく
回答に対してはスピード感が求められるのでシステムの仕様も知らない、プログラムも知らない
人間が仕事にかかわれる機会などなく、ほぼ雑務をこなした1年目でした。
さすがにまずいと思い、ここからプログラムを勉強し始めました。

プログラム勉強始める。

いろいろ必要に迫られて始めたプログラミング言語
初めて真面目に勉強した言語はVB.NETでした。
エンジニア界隈では悪名が高いVB.NETですが
パッケージ業界的には割と使われているような気がします。
余談はさておき、勉強するにつれ、まったくわからなかったことがわかるようになり
仕事も徐々に任されるようになり
良いモチベーションでプログラミング言語の学習はできていたのかなと思います。

プログラム好きになる。

良いモチベーションということはプログラムが好きになったということです。
ということで、いろんな言語に手を出しました。
すごい思い入れがあるのはCとC++でしょうか、
学べば学ぶほどレイヤが下になるのは筆者特有の現象でしょうか
マニアックな世界線に行きたいんですよね。
ということでプログラムが好きになりプログラマとして生きていこう
だからこそ学ぶこともできる限りのことはしようと思ったわけです。

井の中の蛙大海を知らず

さて、プログラムを勉強するにつれて
独学でもよかったのですが、やはり自分がやってきたことの証明をとりたいというか
基礎もくそもない人間なのでしっかりしたところで学ぼうと思ったわけです。
いわゆる学びなおしのコミュニティなのですがそこに通う人々というのは
本物のプログラマーが多く存在しておりました。
筆者が所属していた企業ももちろん、プログラマといわれる人は存在し
トッププログラマもいたわけですが、まぁくらべものにならなかったんですね。
その時のカンソウブンを言うと
- プログラムに対する考え方が違う
- オブジェクト指向に対する考え方というか土台が全く違うことを感じました。
- 技術に興味をもち、それに触れる機会を自ら作り出している。
- 筆者はプログラム楽しいウェーイ見たいな人間でしたが、ホントのプログラマーというのはプログラムが好き且つ技術が好きなんだということを感じました。

自分にはできないけどプログラマと名乗りたい。

いろいろ衝撃がはしってわかったことが一つだけあるんです。
自分はプログラマにはなれない
これは別にあきらめではなく、エンジニアとして生きていくためには
プログラムにこだわる必要がないということです。
筆者の考えとしてはいくら努力してもそれより努力している人には勝てないし
人間限界はあるし、モチベーションもあります。
そんな時に考えるのは大枠では同じことをして、細かくは別のことをする。
何が言いたいのかというと
エンジニアとしてプログラムがすべてではないということです。
システムを作る際、主人公は間違いなく プログラマ です。
しかし、プログラマだけでは完結できない小難しい社会が存在しています。
だから設計者が必要だったり、マネジメントする人間が必要だったりします。
筆者はそういうところで生きていこうと思っております。
プログラムが好きです。だからこそプログラミングという思想で物事を考え
エンジニアリングしていきたいと思っています。
コーディングしないプログラマーとして生きていくと思う今日この頃です。

古い本を読む価値

今これ読んでるといわれる一言

どんな社会人も日々研鑽をしていかなければならないものだと感じでおります。
ことエンジニアに関しては最新の技術を学ぶことに重きを
置かれるきらいがあります。

筆者も日々研鑽をしているエンジニアに比べれば微々たるものですが
それでも多少、技術を追っているつもりです。
そんな時
なんで今更そんな技術学んでいるの?
その本古くない?
といわれることがあります。

技術を勉強しているわけではないのです。

確かに、エンジニアにとって最新の技術を学ぶということは
重要です。しかし、それだけが必要なのでしょうか?
有名なT.wadaさんがおっしゃっておりましたが
技術を学ぶのではなく、技術の学び方を学ぶ
ものすごいメタ的な話ですが割とこの言葉は好きです。

温故知新という言葉がありまして、、、

この業界にいるとどうも最新の技術を追うことに傾倒してしまうことがあります。
文系の筆者としてはどうも違和感を覚えて仕方がないのです。 どの技術においても、進化というのは歴史があります。
新しい技術というのも急に出てきたわけではなく、ある技術を進化させたものです。
古い技術を学ぶというのは歴史を知れるということになります。
さて、歴史を知れるということは最新の技術の背景やそこに至った意味をを
知れる、つまりは身に着けられる技術知識の質が格段に違うのではないでしょうか? 少なくとも筆者はそう考えています。

どんな本でもいいから読めばいい

結局のところ、だれに何を言われようとも好きな本を好きに読めばいいと思うのです。
本を読んで誰かに迷惑をかけることでもないですし。 何より、その本で得た知識をつかって次につなげればよいのではないかと思います。
新しい技術を学ばなければならない場面が来たときに、筆者は古い技術の本を読んで、助けられたことは多々あります。
人が好きな知識をだれにも否定されることなく、好きに学べる環境が広がればと思う今日この頃です。

キャリアチェンジとプログラミングスクール

TwitterでTL流れてくるプログラミングスクールについて 少しばかり思っていることを書き散らしていきたいと思います。 ちなみに、あくまで何の統計もとっていない私のカンソウブンです。

Twitterで見かけたつぶやき

これ以外にもプログラミングスクールと検索したらちらほら 似たようなつぶやきがあります。 その他、知人がキャリアチェンジをして1年間転職したが SESに落ち着いたという話も聞きました。

プログラマーという生きづらさ

私もIT業界に勤めており、いわゆるエンジニアというカテゴリで 働いております。 会社外にもエンジニアの知り合いがおり、さまざまな人間を見てきたつもりです。 その中で思うことは

プログラマーで生きていくことは難しい

と感じております。

というのは、私自身プログラムが好きで、プログラマーとして生きていきたいのですが Saas系や外資系でプログラマーとして生きていくためには 要件通りに実装していくだけが仕事ではないです。 私のイメージとしてプログラマーとはPOCや新規プロダクトの実装を担う人材です。 その際求められるのは 最新の技術を選定できる能力があるのか 新規ビジネスの未来を想像し、それに沿った実装ができるのか といったところでしょうか。 この時に、最新の技術を確認できているのか、実装能力はあるのか となるわけです。もちろん最新の技術は多数あり、最終的に自分の主義や趣味が落としどころにはなるわけですが、そこでもステークホルダーに説得性を求められます。

キャリアアップではないキャリアチェンジである

前述で記載したつぶやきだったり、Youtubeで流れてくる プログラミングスクールの広告はなぜかキャリアップという イメージを思ってしまいます。 しかし、正しくはキャリアチェンジです。 例えば年収500万の人間が全く関係のない業界に多少その業界の知識を持ってたとしても 同じ年収は難しいと思います。少なからず私はそう思います。 言ってしまえば0からのスタートです。

キャリアチェンジをしてからキャリアアップを考える

0からのスタートにはなってしまいますが それでもキャリアアップの道が閉ざされたわけではないです。 他業種からエンジニアへの転職を考えられている多くは SESへの転職を毛嫌いし、Saas系企業への転職を希望し、転職活動を 長くしている方が多くいるイメージがあります。 もちろんSaas系企業に転職できればよいですが もともとエンジニアがやっていた方たちも目指しているということもあり 多くのライバルが存在します。 その環境下で長くエンジニアへの転職活動をするということは 下手な鉄砲も数撃ちゃ当たるという前提でやっているようなものです。 とすれば、たとえSESでも入社できるならそこで経験を積み キャリアアップを考えていくというが長いエンジニア人生があるならば 得策だと私は考えます。

プログラミングスクールという選択肢

私の考えとしてはエンジニアへのキャリアチェンジを考えたときに プログラミングスクールに通うという選択肢が悪いとは思いません。 エンジニアで求められるスキルの大前提であるプログラミングを学ぶことができ 最近のスクールは就業先も紹介してもらえるみたいです。 つまり土台を学べてスタートラインにも立てるということで最低限のメリットは あるかと思います。 ただし、プログラミングスクールは教育機関ではなくビジネスでやっているという認識は 持たなくてはなりません。 何が言いたいかというと、エンジニア業界で求められているスキルが習得できるとは限らないということです。 ビジネスでやる以上、受講生が続けやすいプログラミング言語や習得しやすい実装方法が優先事項になります。つまりスクールに通ったとしても、すなわち社会で求められるエンジニアになれるわけではないです。ただスクールを卒業したという事実だけです。

長期的にキャリアを考えてみる

プログラミングスクールに大枚はたいてSES というのはいささか厳しい現実かもしれません プログラミングスクールがビジネスである以上、これが現実かもしれません。 しかし、SESに入ったとしてもキャリアアップの道が閉ざされたわけではないです。 どこの業界もそうですが、学びというものにゴールは存在しません。 それこそ前述したとおりキャリアチェンジでプログラマーを目指すのであれば ずっと情報収集という名の勉強です。 プログラマーでなくてもそれなりプロマネやコンサルをしていきたいであってもプログラムという知識は必要です。 ※プログラムの知識がないプロマネやコンサルはいますが、、、 なのでエンジニア転職を目指すのであればプログラミングスクールは一つの道です。 ただし、それだけでは決して年収も就業環境も変わるわけではないです。 0からのスタートということをしっかり認識し、スタート地点に立てたからこそ自分のキャリアを考えそのためにどうするかということが大事なのではと思う今日この頃です。