今日学んだこと

読書感想文とか、勉強した内容とか

楽しくなる前の壁で挫折する症候群を何と呼べばいいんだろう

進捗が出ていないので今日もポエム。

楽しくなる前の壁

例えばプログラミング言語の基本的文法を理解するまで。例えばスケボーのオーリーができるようになるまで。例えばサーフィンで立てる様になるまで。例えばギターでセーハーできるようになるまで(クラギの人なのでFの壁は未経験)。例えばFPSでマップ覚えるまで。

楽しくなるなる前に壁があるものって結構多い。最近、歳のせいなのか、その壁を前に諦める事が多くなってきた気がする。

自分に合わないものに対して早めに見切りをつける事はいい事だと思うけど、見切りとかの前に頑張るのが面倒だから撤退という戦略を多く取っているような今日この頃。

今、electron使って遊んでるんだけど

ついでだしintelliJ試用版入れて使い勝手みてみるかーと、仕事終わってから今まで色々作業してたりしたんだけど。

なんか警告が消えない。electronのライブラリを認識できてなくて、そんな関数ねーよと言われて。

解決策を色々探してみたんだけど、コレ!というものは見つからず、今も解決せぬまま。

で、さっき心の中で「うん、もういいや。こんにちは世界出せたし。」と諦めて。

なんか違和感

最近、なんかこんなパターンが多い気がして。

ここから楽しくなるぞーってポイントがあるはずなのに、その前に諦めてることがここ最近多くなった。
昇竜拳がいつまでたっても波動拳になる。もういいよ格ゲー糞だな と言われたら「ちょっと待って、そこ乗り越えればもうちょっと面白くなるから!」と僕は言うと思う。
ただそれは、僕がそこを乗り越えて面白さを知ってるから言える台詞であって。

現実はゲームじゃないから、解りやすいチュートリアルや徐々にステップアップできるゲームバランス調整がされている訳でもない。

ちょっとした壁があれば後回しにしたり、誰かに聞いたり、まぁ色々やり方はあって、自分のペースで進めればいいと思んだけど最近それができてねぇな、と。ずっと歯を食いしばってるのは問題だけど、楽しみながらやればいいじゃない、と。

intelliJの警告が気になるならoffにするなりvimなりemacs使えばいいだけなんだけど、なんでその前に全部諦めてるの俺、と。

自己分析

なんで最近そんな傾向にあるのかと考えると、1つは暇だから。
最近、毎日仕事が定時で終わってるから、まぁ暇なんだよね。だからなんか集中力無くダラダラやってるし、暇だから諦めるところまで到達しちゃう。忙しい時だと諦める前にその日のタイムアップ来るから、寝て起きて次の日になると気分切り替わったりいい案出たりする。

もう一つは、やってることがなんと無くだから。
ちょっと前まではよくわからん成功イメージを元に割と勢いで物事進めるタイプだったので、勢いで乗り越えてこれたんだけど、最近そういうイメージないな、と。
別に具体的に無くても、例えばプログラムであれば他の人のソース見るだけでも「俺もこんなコード書きてー!」となるんじゃなかろうか。

ここまで書いたけど、どうやってオチつけよう・・・

カテゴリをポエムとしている通り、「お前もうちょっと頑張ってみ。多分そのうち楽しくなるし、些細な問題なら無視すりゃええやん」という自分へのポエムであり、今日は進捗出てないのでブログのネタないしついでに公開しちゃえという試みであって、オチも何もない訳だけど。

まー、ただ、オーリーできないけどプッシュしてるだけでスケート楽しい!みたいな時期も僕には確かにあった訳だし、まだ領主の時代なのに攻め込まれて負けるけどAoC楽しい!みたいな時期もあったし、hello worldって出たプログラミング楽しい!といった時期もあった訳で。

なんにせよ、何事も楽しんで人生過ごしていきたい限りですね。

その技術、あなたのWebサービスに導入する必要ありますか?

※この記事は、JavaScript使った開発に明るくない僕が挫折した記録であり、本職の方が見れば「お前が使いこなせてないだけだ」と思う可能性を大いに含んだ記事です。
という「初心者だから変な事書いてても許してねっ☆」な免罪符にならない免罪符を最初に置いておきます。

リニューアル作業中の拙作WebサービスProgrammer Profile

www.programmerprofile.net

せっかくリニューアルするんだから、最新技術満載にして、特にUIは流行りの諸々導入してやるぜ!と息巻いてました。

nakazye/ProgrammerProfile at renewal · GitHub

いろんな技術の導入だ!

まずはUIだ!と

  • Coffee Scriptで記載して
  • gulp入れて
  • bower入れて
  • mochaだったりPhantomJS入れてテスト動く様にして
  • BackboneとMarionette入れて
  • あれやって
  • これやって・・・

・・・環境作るだけで1週間くらいだったか。ものすごく疲れたのを覚えてる。

なんでこれらを導入したかと言うと、一言で言えば流行っているからやってみたかった。

で、流行ってるからにはできる、すごいあんなことやこんなことを取り入れて画面作るぞー!と頑張ってたんですが・・・

どんな画面にするか、全然きまらねぇ・・・

BackboneやMarionette入れたし、よーしパパSingle Page Applicationで作っちゃうぞー!と色々デザイン案を出してみたんですが、どれもしっくり来ないんですよね。

モックアップ作ってもしっくりこない。紙に書いてみてもしっくりこない。あれれ?って

そういえばこの技術、どんな画面やアプリにマッチするんだろ

そんな中考えてみた。とりあえず流行ってるからと環境を整えてみたものの、この技術ってなんのために必要なんだっけ?どんなのにマッチするんだっけ?と。

SPAで作るぞーと息巻いてたけど、今作ってるサービスってSPAだと使いやすくなるんだっけ?下手したらライブラリロードに時間かかるだけで逆に使いづらくなったりしね?とか

個人が勢いで作ってる弊害なんだろうけど、なんか流行ってるしで取り入れてみても、それが自分のサービスにマッチするとは限らない。

導入する当初は「SPAでかっちょいーサービス」と漠然なイメージで進めてしまっていた。 実際に、導入した後のイメージを紙なり絵なりモックに落としてみること無しに。

後になって考えれば当たり前なんだけど、この技術で何ができるんだろうワクワク を、いきなりサービスに適用するんじゃなかった。まず技術検証すべきだった と。

これ、個人でやってるからかすり傷だけど、組織でやったら致命傷だよな・・・気をつけよう と思った次第で。

技術的負債という言葉に煽られて

○○は古いよね、これからは○○だよね、とか、まぁよく聞く話。 その言葉に乗せられて、あまり考えずに導入してみるというのは、ぼくがバカなだけで世間的には少数だと思うんだけど、「○○のサービス、変にリッチ化されて使いづらくなった糞が」というのも、またよく聞く話。

表現の幅が広がったことや、もっと簡単なやり方が出てきたのは良いかもだけど、それがサービスにマッチしてるとは限らない。

少なくともProgrammer Profileについては、ページ全部をJavaScriptで何かがにゅっと出てきたり、うにょうにょ動いたりするのは合わないなぁと思った次第です。
部分部分というのは、まぁありなのかもしれないけどね。ちょっといったん仕切り直して考え直します。

まとめ

新しい技術を取り入れる場合、流行ってるからで導入すると悲しい思いする。
自分なりに考えたつもりでも、(SPAとか)キーワードだけ頼りに作ろうとしても悲しい思いする。完成系イメージできてるつもりでも、いざ作ろうとすると全然できてない事が多い。
少なくとも、リリース予定のアプリケーションにいきなり適用してしまうのは危険。

もし、ちゃんとイメージができているとしても、いきなりがっつり作るのは危険だと思う。 例えばReact使ってリニューアルじゃとか新規アプリ作るぜとなったとしても、gulpだbowerだその他○○だをいきなり環境作ると、万が一合わないとなった時に徒労感で終わるんだろうなぁと。 ちょっと作ってみて、それでイケると思えたなら、補助ツールを順に試してみたほうがいいと思う。

そんな、自分への教訓と、リニューアルが遅れている言い訳記事でした。

やりがいとは何かを考える

最近、「日々時間の使い方を無駄にしないぞー!」と息巻いて、勉強したりプログラムを書いたり、いわゆる意識高い生活を送ろうと必死になってる。

お前ってそんな優秀な人間だっけ?

「頑張りたい」と思う事は簡単でも「頑張る」事は難しい。多分それは皆誰しも経験してること。

「頑張りたい」と思ったから頑張れたかというと、少なくとも僕はそんなに良くできていなくて、結局怠けてしまう。

基本は「寝てしまう」「無駄にネットで時間を使ってしまう」が時間の無駄遣い2強なんだけど、3つ目に「ゲームしてしまう」 っていうのがあって。

何で俺、こんな黙々とゲームやってるんだろ?

ふと考えてみた。当たり前なんだけど、熱中する様にデザインされてるからであって。

それはスコアだったり、ランキングだったり、Kill/Death数だったり、ご褒美ムフフ画像だったり。

まー、プレイ結果が(オンラインゲームで相手がチートでも使ってない限り)正直に数値だったりご褒美で評価されるからであって。

あれ?俺って何で今意識高く勉強しようとしてるんだっけ?

じゃぁ、今やってる勉強なりなんなりも、ゲーミフィケーションとか呼ばれる仕組み作って、頑張るぞーと一瞬考えたけど、そもそも俺って何で勉強してるんだっけ?

知的好奇心からーとか言えればカッコイイんだけど、「技術つけてお仕事できる様になってお金ガッポリだぜ!」とか「英語できる様になって海外プロジェクトやって評価されるぜ!」とか、簡単にいうと「努力を換金したい」んだろうな、と。

仕事ってそんなに単純だっけ?

頑張った、品質のいいコードを書いた、難しい問題を解決した、外人ともコミュニケーションできる。

で、評価も上がれば給料もあがる。これぞやりがい

...

......

世の中そんなに単純じゃ無いよね?もっと色々理不尽だよね?

糞みたいな言い方すれば「いかに上司にゴマ擦って、いかに人に仕事押し付けて、以下に自分の功績をアピールするか」が多分近道。
認めたく無いし、そんな行動したくないし、社会全体から見ればレアケースだとは思うけど。
まぁ、良く見るパターンだし、それに勝て無い自分や周りの力のなさ、コミュ力とでも言うのだろうか、それも仕事のスキルだと思うし、負けを認めるしかない。

で、自分もおっさんになり、そういう経験を多々してくると、「仕事の為に」というモチベーションは続か無いんだよね。

ゲームでのスコアが、仕事をモチベーションにすると役職や給料になると思うんだけど、ゲームバランス調整されたルールは無いから、例えばコミュ力の様な別属性で攻撃されるとあっさり負けちゃう。
なんだこのクソゲー と。

しかも、1年間貯めてきたスコアが最後に罰ゲーム付きで無駄になったりすると、そりゃコントローラー放り投げるだろうなぁと思う次第で。

生きてるからには、何かにやりがい見出したいよね

最近すごく良く考える。僕はいつからポエマーになったんだってレベルで良く考える。 「最近やりがい感じて無いな」って。

当たり前だけど、僕は苦痛に耐えて生きたいわけじゃなくて、楽しく充実した生活を送りたい。何かにやりがいを感じて、生きていたいと思う。

「そんな事ばっかり考えていたら疲れるよ」と言われたらそそりゃそうだし、家庭持ったりすれば変わるんだろうなーとかも考えたりする。

僕の好きな本に、「海が聞こえる」という本がある。

海がきこえる (徳間文庫)

海がきこえる (徳間文庫)

海がきこえる〈2〉アイがあるから (徳間文庫)

海がきこえる〈2〉アイがあるから (徳間文庫)

この中で、こんな一節があって。

小学生のころ、嫌いなコが隣の席になると、もう絶望しちゃって、学校にいきたくなることもあるじゃない。世界が狭いから、クラスの嫌いなコがそばにいると、キリキリしちゃって。あんがい、塾とかピアノとか、学校以外の世界があると、嫌いなコのひとりやふたり、どうでもよくなるのにって

これはイジメの回想シーンみたいな話なんだけど、なんか今の僕に通ずるものがあるなぁと。

なんでこんな事を考えてるのかというと、仕事が楽しくなくて絶望して、他の諸々にも絶望しかけてる。

別のポエムとして書こうかなとかも思ってるけど、最近引っ越し考えてて、もうちょっと職場に近い所に住もうかと家賃相場を見て「俺はどれだけ社畜を続ければいいんだ」と絶望に拍車をかけたのもあって。

世界を広くする

じゃぁ、仕事とは関係なしで、別の世界でやりがい感じるようにすると考える。

例えば個人のアプリ開発。使われる使われないは全て自分の責任だし、ダウンロード数やアクセス数でダイレクトに反応が返ってくる。

例えばブログ。これもアクセス数だったり、ソーシャルボタンの数だったりでダイレクトに反応が返ってくる。

そんな仕事とは別の事として注力した方が、今の僕にとってはやりがいを感じられるし、楽しく生きられるんだろうなーと思った次第で。

何かにやりがいを感じられないなら、別の何かでやりがいを感じればいいじゃない、と。

さっさと転職しろよと言われたらごもっともなんだけど、そんなに適応能力高ければ苦しんでない訳で。

で、何が言いたい?

これはポエムであって、残念ながら「人生がやりがいに満ち溢れる○○の方法」という記事ではない。

ただ思った事をうわーっと書き殴ってみただけ。

ただ、また僕が急に「あー、なんか色々嫌だ。辛い」と月曜にありがちな憂鬱に苛まれた時に、「まー、仕事が全てじゃないよ。もちょっと別の事楽しんでみ。建設的な事がいいとは思うけど、もう最悪ゲームでもいいよシビライゼーションやろうぜ!」と、読み返して鎮痛剤になってくれればなぁと思った次第です。

herokuのDBアップグレード方法

先日、herokuさんからこんなメールを頂きました。
要約すると、「DBが無料枠超えそうだからどうにかしてね」と。

f:id:nakazye:20150523190207p:plain

以前このブログで公開させて頂き、それなりの反響を頂いたProgrammer Profile。その後更新があまりできていないにもかかわらず、アクセス頂きホント嬉しい限りです(リニューアル作業中ですが、デザイン面で色々難航しており…)

www.programmerprofile.net

せっかくアクセス頂いているのに、DB容量制限でエラーとなるのもしょんぼりなので、現在の無料プランから月額9$の有料プランに変更しました(広告入れてる訳ではないので、ちょっと辛いですが・・・)

で、実際にネットの情報を元に作業してみると、上手くいかない点があったり、良く分からない点があったので、今後同様のアップグレードをする人の助けになったらいいなと思い、作業ログをまとめてみました。

DBの追加

まず、アップグレードを行うにあたって、herokuでは既存のDBを拡張するというやり方ができません。新たに新しいDBを作成し、そこにデータを移し、DBを切り替えるという作業順序になります。

ここで、いきなりトラップが待ち構えています。

f:id:nakazye:20150523190656p:plain

herokuのpostgres管理画面があるんですが、その管理画面から「Create Database」を選んじゃダメです。

既存のアプリケーションと紐付かないDBが作成されてしまいます。
なお、間違って作成してしまった場合は、削除すれば9$まるまる課金されるという事はありません。時間割で課金される様です。

上はherokuの中の人@ayuminさんからの情報。

では、どこから作れば良いかというと、アプリ管理画面からとなります。 アプリ管理画面から、「Find more addons」を選び

f:id:nakazye:20150524221913p:plain

プランを選ぶと、必要なコマンドが出てきます(説明続きます!このまま入力しない様に注意)

f:id:nakazye:20150524222303p:plain

先ほどこのまま入力しない様にといいましたが、最後に「--app <追記先のアプリケーション名>」を付け加える必要があります。

僕の場合だとこんな感じ

heroku addons:create heroku-postgresql:hobby-basic --app programmerprofile

すると、アプリケーション管理画面からDBが追加された事を確認できます。

f:id:nakazye:20150523191450p:plain

コマンドラインからも確認可能です。

heroku config --app <アプリケーション名>

f:id:nakazye:20150523191925p:plain

データをコピーする

まず、DBをコピーするにあたり、コピー中にアプリケーションの操作が行われDBの内容が変わってもしょんぼりなので、アプリケーションをメンテナンスモードにします。

heroku maintenance:on --app <アプリケーション名>

続いて、DBをコピー。heroku config --app <アプリケーション名>で確認した、新しいDBの名称を利用して

heroku pg:copy DATABASE_URL <新しいDB名称> --app <アプリケーション名>

を入力します。

コマンド入力時に「本当にOKなら、アプリケーション名を入力して(最後にEnter押して)ね」と確認が出てくるので従います。今後、同様の確認が出てきますが、同様にアプリケーション名入れてEnterでOKです。

僕の場合だとこんな感じ。

f:id:nakazye:20150523192407p:plain

なお、注意点というかポイントとしては、コピーにそれなりに時間がかかります。
pending...という表示のまましばらく応答がなくなりものすごく不安になりますが、大丈夫です。

DBの向き先を新しい方に変える

まだ、DBを作成してコピーしただけで、アプリケーションは古い方を見続けています。コレを、新しいDBに向き先を変更してあげます。

heroku pg:promote <新しいDB名称> --app <アプリケーション名>

僕の場合だとこんな感じです。

f:id:nakazye:20150523192903p:plain

アプリケーションのメンテナンスモードを解除する

最後のコマンドです。

heroku maintenance:off --app <アプリケーション名>

メンテナンスモードにした時のコマンドのonをoffに変えるだけです。
僕の場合はこんな感じ

f:id:nakazye:20150523193008p:plain

以上です!
最後に動作確認し、試しにデータを入れてみて、新しくしたDBのデータ数が増える事を確認しましょう。

なお、この記事ですが、似たような感じでここまで書いたタイミングで、ブラウザが落ち、記事の復旧ができなかったという悲しい目にあってます。
だからという訳でもないですが、同じ様にDBをアップグレードしようとしてるけどやり方がわからないという人の助けになれば嬉しいなぁと思った次第です。

SIの闇を利用した、未経験からのエンジニアへの道

今エンジニア(プログラマー/SE)が足りない・・・そんな話、よく聞きますよね。その一方で、エンジニアになりたいなーという話も良く聞く。

じゃぁ、なんでなりたい人がならないか(就職/転職しないか)というと、なり方がわからないからかなと思いまして。

なり方を僕の経験交えて書いたりすると需要あったりするかな?と書いてみる次第です。

SIってなんぞ?

企業や公官庁のシステムを作る事と思っていただければ、大体合ってます。

  • 社内の会計システム(簿記の記帳をシステムでやると思って頂ければ)
  • 社内の在庫管理システム

といった企業内で閉じるものはもちろん

  • オンラインバンキングシステム
  • オンライン証券システム

といった、その企業の顧客が使うものを作ったり

  • 受発注システム

といった企業間のやりとりをするようなものまで色々作ります。

SIの闇って?

金がかかる

上にあげた様な諸々を作るにあたって、少人数のプロフェッショナルが短期間で作り上げるかというと、大抵そうではありません。

2桁億円の予算で作るシステムや、3桁億円の予算で作るシステムなど珍しくありません。

公官庁が導入したシステムは予算みる事ができるので、ちょっと調べてみたらこんなのを見つけました。

http://www.cas.go.jp/jp/seisaku/nenkin/dai9/siryou4.pdf

http://www.cas.go.jp/jp/seisaku/nenkin/dai9/siryou4.pdf

これをみると、年金システムの刷新で1150億円と書いてますね。恐ろしい。

もちろん、こんな大規模なのばかりという訳ではないですが、単位が億の案件は少なくないです。

何が言いたいかというと、1つのものを作るにあたって、大量の人が必要になります。

人手が必要

システム開発じゃーとなって、必要となる人数。先ほど挙げた様な大規模なものだと、3桁人とか4桁人の人でが必要になってきます。

いわゆる大企業。N○TデータとかI○M、日○製作所などなどが自社からそれだけの人数を出せるかというと、まぁ無理です。

じゃぁどうなるかというと、いわゆるゼネコン構造で人を集めます。

ITゼネコン - Wikipedia

NTT系列や国内大手ITベンダー(日立、NEC富士通)の三社、外資系ITベンダー(IBM、HP、Oracleなど)系列のSIerが大手の顧客を囲い込み、インフラ構築からコンピュータ機器の設置、納入後の運用メンテナンスに至るまでを一括受注して利益を得ており、実際のプログラミングやテスト作業を中小のSIerに丸投げしている状態となっている

丸投げというのは言い過ぎ感ありますが、大手が受注し、それを「協力会社」という呼び名で中堅SIerが入ってきて、その中堅の下にもまた「協力会社」という名で人貸しが行われます。

ピラミッド構造が発生する訳ですね。

ピラミッド構造の上と下

いわゆる大手と呼ばれる会社。世間的には丸投げするだけで楽をできると思われがちですが、全くもってそんな事はありません。

「え?お前この○○億円プロジェクトの責任どうとってくれるの?」というプレッシャーや「は?協力会社に残業させるとその分金出さないといけないんだよ?」といったプレッシャーにさらされつつ、(特に赤字が見えてるプロジェクトだと)残業代もまともに出ない中連日徹夜するなんて事も多いです。

 

いわゆる中小企業と呼ばれる会社。言葉を悪く言えば下請け。

やってる事は人貸しなので、残業代が出ないという事は少ないです。これがメリットと言えばメリット。

ただし、烏合の衆の一員として働く事になるので、全体感が見えないなか、周りを知らない人ばかりななか、よく分からない要件を元に設計書を描いたり、よく分からない設計書を元にコードを書いたり、どう動くのかが正解なのかわからないコードに対してテストをする・・・といった事はよく発生します。

参画するプロジェクトによりけりですが、一つ言えるのはどのポジションでも辛い。というかお仕事って基本辛いものだよね・・・といった感じです。

ピラミッド構造の下に潜り込む

「協力会社」という名の下請け人貸し会社。

実際に手を動かす人たちだから、技術力が必要に思えるじゃないですか。実際そうではなかったりするんですよ。

http://employment.en-japan.com/search/search_list/?occupation=401000&topicsid=102_105&aroute=1

転職サイトで「未経験可 学歴不問」とかでエンジニアの求人を検索してみた結果がこちら。

f:id:nakazye:20150523142505p:plain

なんと150件も出てきます。

これらの9割が人貸し企業だと思ってくれて良いと思います。勤務地が地域表記だったり「プロジェクトによる」と書かれてたら、ほぼそうです。

エンジニアなのに未経験でいい。なんでだと思います?それだけ人が足りてないのと、それでなんとかなってきたなってきたという現実があります。

実際に潜り込んだらどんな感じ?

何を隠そう、僕のエンジニアキャリアの始まりはこういった会社ではじまりました。

研修期間は2週間くらいだったかな?まず「10日でわかるJava」という感じの本を渡された記憶があります。そして放置。なかなかひどい会社でした。

その後、協力しにいく会社(言い方悪く言えば、派遣先)が決まり、面談となります。

派遣先も10日でわかるJavaをやっただけの未経験者なんて取りたくないでしょう。会社主導の元、捏造された職務経歴書が用意され、経歴を捏造します。

模擬面接など練習をして、面談に挑みます。

なお、この時、大抵の会社では経験者と抱き合わせ販売されます。最初の最初は、さすがにフォローできる人がいないとクレームになりかねないので。

初めてのプロジェクト

そりゃもう悲惨でした。聞いたこともないフレームワーク、触ったこともないデータベース。設計書?ふーん、システムってそういうの作ってからコード書くのね、でもこれだけ見ても何していいか全くわからないんだけど。

1ヶ月くらいずっと頭真っ白でした。周りから、なんか頭から湯気が出てる様に見えるんだけど大丈夫?と言われた記憶もあります。

炎上案件だったので、連日の徹夜。いやー、辛かった。

 

ただ、多分どんな仕事でもそうだと思うんですが、わからんなりにも段々とわかることが増えてくるんですよね。

しかも、僕が仕事始めた当初、まだネットも貧弱な時期。会社からネットを使えなかったので、本片手に作業してました。

それに比べれば、わからないことがあればネットで調べられる今の時代は、もっとやりやすいんだろうなぁとか思います。

 

その後、お前はどうなったの?

そんな会社でしばらく仕事を続け、それなりにコードも書けるようになり、システム開発の進め方というの見えてきて。

2007年だったかな、ちょうど今と同じような感じでエンジニアの人手不足が叫ばれてた時期がありました。エンジニアだけでなく、どんな業種でも人が足りないと叫ばれてました。いわゆる好景気ってやつですね。

その時に転職でもしてみるかと、転職活動をしてみたら、いわゆる大手と呼ばれる所になぜか内定を頂き、今もその会社で仕事してます。

 

まとめ

何が言いたかったかというと、エンジニアってなる為のハードルが高く思われがちですが、実はそんなことなかったりするんですよ。

もちろん、知識や経験がモノを言う業界なので、「デキる」人になる為にはそれなりの努力は必要。

ただ、「勉強して少しはできる人になってから」という入り方だけでなく「まず入ってから実力つける」というやり方もあるよ、と。

 

こういう業界の構造自体が「そんなんだから日本のSIは・・・」と言われる要因になってるのはあるんですけどね。

どんな業界だろうと人は育てなきゃいけなくて、それをOJTとしてやると考えると、こうやって揉まれながらステップアップしていくというのはアリなんじゃないかなとも思ったりしてます。

 

もし、「仕事辞めてから就職活動してるけど、全然内定取れない・・・」とか「今の仕事辞めてシステム関係やりたい・・・」とか「そろそろニート脱したいと思ってる・・・」という人がいて、その人たちが選択肢の一つとして考えてくれると嬉しいなーと思ってます。

英語学習の記事ってよくバズるけど、すごく良いことだと思うんだ

昨日は中国語の話で今日は英語の話。

今までサボってた分、また定期的に書こうかな、と

 

まず結論から言う。みんな勉強の記事書こうぜ

学習関連の記事ってよくバズるよね

英語に顕著ですが(昨日の中国語記事もバズったけど、あれはネタ枠だと思ってる)、学習法がたくさんのブクマを集めているのをよく見ます。

で、そのコメントの中でスターがついてるのって「ブクマしてるお前らは、どんだけブクマすれば気がすむんだ?」とか「後で読むと言って本当に読んでるのか?実践してるのか?」みたいなのが多い。

 

僕もそういう記事を良く読むんだけど、「参考になるなー」というのも勿論あるけど、どちらかというと「僕以外にも頑張ってる人いるし、僕も頑張ろう!」と(持続力無いかもしれないけど)モチベーション上がるんだよね。

 

学習系の記事がバズってくれると、息抜きの時に読んだりして、「よし休憩終わりじゃー!もういっちょ頑張ろう!」って気になれる。

 

特に語学学習は単調

昨日のおっぱいドリブンみたいな学習法がずっとできるかというとそんな事は無く、基本単調な学習です。

nakazye.hatenablog.com

今、僕は次の昇進に要求されるTOEICスコアを取れてないのと、中国以外の国とも組んで仕事したいぞというモチベーションから、TOEICの勉強をしてたりするんですが、コレがまた単調で・・・。

弱い文法周りを抑えようと問題集進めてるんですが、集中力がなかなか続かない。

極力楽しくやりたいけど、ある程度以上を目指そうとすると基礎は絶対重要なはずで。

「嫌だ嫌だ」と自分からモチベーション下げながら勉強するのは論外ですが、「うっひょたのしー!」と勉強できる基礎はなかなか無いと思うんですよ。

 

で、「あー疲れたー」ってなった時に、学習系の記事読むと「おっしゃ、俺も頑張るぞ!」ってなるんですよね。

 

僕が定期的に読み返してたりするのはコレ。英語学習というカテゴリからはズレるかもしれないけど。

storys.jp

自分がやっていることが正しいと信じる

どんなにすごいスポーツ選手でも最初はできないはず。だから勉強も子供の頃からの積み重ねでデキるようになっているだけで「今自分がデキないのは経験が足りないからだ!」と言い聞かせ自分がやっていることが正しいと信じていた。

その結果、立ち止まることなく勉強し続けることができた。その過程はもちろん無駄なことばかりしていた。その無駄な経験が知恵になり行動を改善することができたと思う。

間違った道を通るのはヤダけど、最短距離を進める事なんて多分無いというか存在すら怪しくて、方向があってる事を時折確かめつつ、後は自分信じて進むしか無いんじゃないかなーと。そんな感じで解釈しつつ、よっしゃ俺も頑張ろうと自分に鞭打ってたりします。

 

で、お前は最近どんな事やってるの?

○○やってスコア××点アップしました!とか言えればいいんだけど、まだ受けれてないので。てか取り組み始めたのもここ最近だったりするんで効能を書けないのが悲しい限りですが、前述の通り文法やってます。

この問題集ひたすら解いてる感じです。

弱点の文法克服するぜー!と文法書頭に叩き込もうとも思ったんですが、辞書みたいな厚さのある文法書を全部叩き込むのは現実的じゃない。

むかーし買った勉強法の本、完全英語上達マップに「参考書読むんじゃなくて、問題解いて解説読んでを繰り返した方が効果的だよ」とあったので、その方法を取り入れてる感じです。

英語上達完全マップ―初級からTOEIC900点レベルまでの効果的勉強法

英語上達完全マップ―初級からTOEIC900点レベルまでの効果的勉強法

 
実際のステップ

僕は、Ankiというソフトを単語帳ソフトに問題と答えをぶち込んで、空き時間でも勉強できるようにしてます。

Anki - powerful, intelligent flashcards

iPhone

 

よくある有料ケータイの問題集ソフトを使ってもいいんですが、解説読んでもピンとこなかった部分に自分で注釈を入れたいのと、入力する過程が記憶に定着する助けになるかなという思いで自分で入力してます。

 

f:id:nakazye:20150521203439p:plain

まず問題文を写経する。{{c1::}}ってなってる部分は、単語帳形式にした際に隠れる部分です。

 

f:id:nakazye:20150521204928p:plain

続いて「これかなー」と思った答えを入力してみる。で、答え合わせ。

 

f:id:nakazye:20150521205014p:plain

合ってようが合ってなかろうが、訳文と解説文を入力。

腑に落ちないところがあればネットで調べて補足を追記。例えば最近だと「主語とbe動詞が省略された分詞構文です」とかあって「何だけそれ・・・?」と調べて追記したりしてます。

 

で、通勤中や空き時間にiPhoneで再テスト(無料でサーバーに保存する形での同期ができるのがこのソフトのすごいところ!)。以下のキャプチャはPCのものですが、iPhoneでも似たような感じです。

f:id:nakazye:20150521205455p:plain

おもて面と

f:id:nakazye:20150521205510p:plain

裏面

 

で、本題なんだっけ・・・?

いくら学習を楽しく!と考えても、こういう単調な作業って出てくると思います。

で、そんな時に「僕はこういう工夫してるよー」とか「こんな事覚えたよー」とかいった記事見ると、「よっしゃ俺も頑張ろう」となれるんですよ。

あと、僕が今この記事書いてて思ったのが、書く事によるモチベーションアップってのもあるんですよね。

 

って事で、勉強関連の記事はWin-Winだととても強く思うので、成果が出た/出す為に頑張ってる/今日こんな事を覚えた といった記事を書いてくれる人が増えるとその人にとっても、周りにとっても有益だと思うので、そういう記事を書く人が増えるとうれしいなぁというお話でした。

そして、そういう頑張ってる記事がバズる事はいい事だと思うし、萎縮せずにブクマつけて欲しいなぁというお話でした。

JavaScriptのテストにmocha使うと楽しいよ!

最近JavaScriptというか、coffeeスクリプトを頑張ってます。

以前リリース記事書いたProgrammer Profileが、やっぱりやっつけ仕事の弊害で改善するにしても限界が来てる感じで、いっそUI周りを刷新しようと頑張ってます。

nakazye.hatenablog.com

 で、どうせやるならと、gulp使ってbower使ってbackbone使ってmarionette使ってrequirejs使ってmocha使ってphantomJS使って・・・と足まわり固めるだけでかれこれ1週間近く使ってたりする次第です

 

僕のようなJavaScript知識ほぼゼロの人間が、いきなりモダンなJavaScriptをやろうとすると、多分同じ様に時間がかかり、試行錯誤が続き、心折れかけるんじゃないかなぁ・・・と思ってます。

本題

そんな感じで心折れながら環境固めてた訳ですが、mochaというJavaScriptのテストライブラリにて、興味深いオプションを見つけました

Mocha - the fun, simple, flexible JavaScript test framework

f:id:nakazye:20150326015159p:plain

Reportersという項目。

これを色々変更してみると

こんなのや

こんな感じのレポートが出せちゃう!楽しい!!

テストが数個だとすぐ終わってしまうので、たくさんテストを書こうというモチベーションにもなる!!

passしなかった場合は、ちゃんと当該内容が表示されるので、その点はご安心を。

そんなわけで、折れかけた心を癒してくれるテストレポーターの紹介でした

 

宣伝

以前紹介させていただいたサービス、Programmer Profileですが、最近更新が滞ってる様に見えるかと思います。が、現在ブランチ切ってそちらの方で鋭意改善作業中となりますので、引き続きご愛顧頂けると幸いです。

作業中のブランチ:

nakazye/ProgrammerProfile at renewal · GitHub

 稼働中のサービス(まだ旧UIです):

www.programmerprofile.net