胃弱だより

セキュリティとかに興味ある感じの雰囲気あいおーてーエンジニアのブログ

SecHack365を修了しました

f:id:chequita:20200406121938p:plain

 

タイトルの通り、2019年4月から参加していたNICT主催のSecHack365を無事に修了しました。

(セキュリティの未来を生み出すU-25ハッカソン「セックハック365」| SecHack365)

 

この1年間、SecHack365に参加しなかったら得られなかっただろう経験を沢山させていただきました。

思いを馳せると限りがありませんが、みんなの楽しそうにモノを作り紹介する姿、思い悩み苦しむ姿、寝食を共にしたからこそ見えた何気ない人間性や育ち、そして美しい景色の記憶は、きっとこの先何度もぶつかる困難に立ち向かう為の糧となるのだと思います。

参加した当初からその予感はあって、なので一瞬一瞬を大事に目に焼き付け続けていました。その甲斐あって、その糧が沢山あることを実感できていて、それが私にとって一番の成果かもしれないです。

 

支えてくださった上司、同僚、両親、そしてトレーニーとトレーナー方へ

本当にありがとうございました。365日という長い期間をサポートしていただくのは、学校に行かせていただくのと同じくらい大変なことだと思います(実際会社からはお金などで沢山の支援をしていただきました)。感謝してもしきれません。ご恩を返せるように頑張りたいと思います。

 

参加に関する詳細はこちらで紹介しています

会社員がSecHack365に参加してみた - 胃弱だより

 

制作物について

ゲーミフィケーション×産業用IoT機器の運用保守」というテーマに取り組みました。

公式ホームページでポスターが掲示されると思います。掲示されたらまた紹介させてください。

 

贈られてきたボールペン

振り子式で、使いたい色を上にした状態でノックするとその色に変わる。すげー。

 

サイン

もらっちゃった……。

f:id:chequita:20200406124450j:plain

 

貸借物

早く返しますごめんなさい。 

帝京大学理工学部情報科学科通信教育課程に入学します

f:id:chequita:20200314204547j:plain

タイトルの通りです。春から仕事をしながら大学で学ぶ、所謂社会人学生になります。

元々文系大学卒なので、理転する事になるんでしょうか。

動機とかは特にハッキリしてないんですけど、まあ、やってみたいからやってみたみたいな感じです。

SecHack365に参加して、なんかモチベ上がったのかも……。今まで周囲にあまりいなかった院生とも会話して、院への進学も視野に入れてみようかなと思った、というのもあります(親や周囲からはいきなり院に行けば?と言われたんですけど、まあ自信がなかったので……)。

 

で、帝京大学の通信教育課程は入試とかがないので、ほぼ願書提出≒入学確定なんですけど、

その願書提出がめっっっっっっっっっちゃ面倒でした。本当に面倒な手続きが多い。これでも簡略化されてるんだろうけど、本当にしんどかった。入学後の大変さはみんなブログとか書いてるけど、入学前の手続きがこんなに大変なんて、誰も言ってなかった……。

自分である程度時間を調整できるフリーランスの方や学生の方だと、もう少し楽なのかもしれないですが、

起床〜夜7時くらいまでほぼ拘束されている会社員にはしんどい。昼休みにダッシュしたり、土曜日の朝7時に家を飛び出したり、有給を使ったりして、なんとか時間を捻出しました……。

もう少し早く知っていればなーと思うこともあったので、今回は「願書提出のために必要なこと」をまとめておこうと思います。この記事が誰かの役に立てばいいな……。

 

1. 合同説明会

これは省略可能ですが出来れば行った方がいいと思います。私が行った時には実際に通信教育過程の教鞭をとっておられる方が相談員をされていました。

ネットで不確実な情報を漁るより直接聞いた方が確実だと思うので、ここで授業の難易度や、進め方、単位の互換など色々相談に乗ってもらいました。

 

2. 資料請求

合同説明会でも資料は貰えますが、願書で提出する書類は提出する年度のものでないといけないので、改めて請求しました。

請求してから一週間以内には届きました。

 

3. 卒業証明書と成績証明書の取り寄せ

成績証明書は編入の場合だけです。

私の大学はHPで公開されているフォーマットを印刷して、理由とかを書き、費用と返信用の切手を同梱して提出すれば1週間以内に発行した証明書を送り返してくれました。

地味に額が細かくて、切手を買うのが大変だった……。

 

4. 健康診断

3ヶ月以内に発行された健康診断証明書を提出する必要があります。この証明書は資料に同梱されている用紙に記入してもらう形式なので、会社で受けた健康診断の結果とかは使えません。

なので、「どのフォーマットの診断書でも書いてあげるよ〜」っていう病院を探す必要があります。私は運よく予約の要らない病院を見つけられたのですが、地域によっては前もって予約が必要なところもあるため、早めに確認しましょう。

必要な健康診断だけを受けて、診断書を書いてもらって、ざっと1万円くらいしました。あと病院に入ってから出るまでに2時間くらいかかりました。余裕を持って受けましょう(でも3ヶ月以内に)

 

5. 入学金と授業料の振り込み

願書提出≒入学なので、入学金と授業料を振り込む必要があります。

ATMは不可で、窓口で支払い、スタンプを押してもらいます。

勿論土日はやってないし、3時までしか開いてないので、昼休みにダッシュで支払いに行きました。

窓口のお姉さんがデキる人だったので、かなりスムーズに済み、15~20分ほどで終わりました。

金額ですが、私は3年次入学を申し込んだので、201,140円でした(貯金をはたきました!😭)

 

6. 保証人の印

誓約書に保証人欄があり、捺印をするところがあります。

私の場合は実家に帰り、父に押してもらいました。

進学について前もって説明し、特に反対もされていなかったのでスムーズに行きましたが、家庭によっては説得が必要だったりするかもしれないですね……。

 

7. 顔写真

3*3cmの3ヶ月以内に撮った顔写真が2枚必要です。

証明写真機で撮るとめっちゃ高いので、スマホアプリで撮影し、コンビニで印刷したものを使いました。

余白調整でちょっと苦労したかも……。

 

8. 書類記入

とにかく色々書類があるので、ひたすら記入していきます……

 

9. 志望理由書

600字程度で志望理由を書かないといけません。キャリアの事についてなどを書いて文字を稼ぎました……

 

10. 返信用切手の購入

 

11. シラバスの用意

単位認定をしてもらうために、成績証明書の中から認定してほしい単位のシラバスを送る必要があります。

私の場合、あれこれ認定してほしい単位があったので、最終的にこの分厚さになりました笑

f:id:chequita:20200314203632j:plain

 

12. 郵便局に書留で配達依頼

ポスト投函は出来ないため、郵便局に行く必要があります。

中央郵便局などであれば遅くまであいてるかもですが、もう面倒だったので有給を使って平日にいきました。

 

これで漸く願書の提出が完了です…!

結構大変じゃないですか…? 最後の方はもうヘトヘトになって、顔写真の裏に名前を書くための油性ペンがなかったのでアイライナーで書いたり、ノリがなかったのでアロンアルファで貼り付けたりと、グダグダになっていました。。。笑

f:id:chequita:20200314204452j:plain

 

現在は入学後に数学などで遅れを取らないよう、中学数学からやり直しているところです☺️

授業楽しみだなー

会社員がSecHack365に参加してみた

 本記事は Sechack365 2019 Advent Calendar 2019 - Qiita の15日目の投稿です。 SecHack365をご存知ない方や、知ってるけど詳しくは知らないという方、会社員として応募する事に不安を覚えられている方向けに書きました。 拙い記事ですが、何かご参考になれば幸いです!

SecHack365って?

  NICT*が主催しているセキュリティイノベーターを育成する為のハッカソンです。 365という名前の通り、約1年をかけて行われる長期的な人材育成プログラムです。 受講者はトレーニーと呼ばれており、トレーニー達はこの1年の間にそれぞれ作品を作り、最終回で成果物を発表します。 25歳以下であれば、社会人でも参加出来ます。学生は全額補助されますが、社会人は移動交通費や宿泊費は自己負担となっています。

NICT総務省所管の国立研究開発法人。時計合わせの時とかにお世話になるとこです。

SecHack365の様子

 こちらに公式レポートがありますので、ご覧いただければ雰囲気が分かると思います。 印象としてが圧倒的に学生が多く、わいわいした空気ですね! 私が参加している2019年度の受講決定者内訳を見ても、社会人は46人中3人だけでした。

sechack365.nict.go.jp

社会人が覚悟すべき3つのポイント

1. オフライン回に掛かるお金

 SecHack365には計7回のオフライン回と呼ばれる合宿的なものがあります。これは余程の事情がない限り必須参加です。 これにはお金と時間が掛かる為、どう捻出するかを覚悟をしておいた方がいいと思います。

 どこに住んでるか次第ではありますが、50万は掛かると思っておいた方がいいです。 25歳以下の社会人となると、これを本当に自己負担することは難しいのではないでしょうか。恐らく会社に負担してもらう事になると思うので、どのように会社を説得するかを考える必要があります。

2. オフライン回に参加する時間

 このオフライン回の大体が金~日に行われます。また、毎回様々な場所で開催されるのですが、遠方だと前泊・後泊を余儀なくされる事もあります。これらを全て有給でまかなうのは中々厳しいと思いますし、業務都合をつけるのも一苦労だと思います。 その為、運営からも通達があると思いますが、応募する前に必ず上司に相談した方がいいです。

 私は上司にアポを取り、SecHack365の概要と自分がしたい事、これに参加する事によって会社にどう貢献できるのかなどをプレゼンしました。 その結果、参加費は会社負担 及び平日の参加については出張として勤務日数に含む事扱いにする、という事にして貰えました。 SecHack365の合格が決まるのは5月初旬の為、おそらく多くの会社ではその期の予算としては想定外の支出になってしまうのではないでしょうか。 その点も踏まえて、上司と要相談になりますね。 後は業務都合ですね。やはり本業は会社員ですし、仕事をほっぽりだして研修に参加するわけにはいきません。 そこら辺は周囲の理解と自分の努力が必要になってきます。

3. 開発時間

 学生も勿論忙しいと思いますが、社会人は残業があったり休日出勤があったりして中々時間が取れないと思います。 これは参加する前から「時間がない中でいかに開発を進めていくか」という点を考えておいた方がいいと思います。 私は幸い研究開発職に就いていた為、チーム研究とは別に個人研究としてセキュリティを選択し、業務中の隙間時間はSecHack365の研究テーマに寄せた事を行ったりしていました。最も、それもあまり時間が取れたわけではないので、やはり休日や早朝などに時間をとって開発するしかなかったです。

なんだよ結局環境のお陰じゃん

 全くその通りです。環境に恵まれていなかったら参加出来なかったと思います。 私は元々休日もずっと開発してるぜ! みたいなタイプではなかったし、GAFAで働いていっぱいお金稼いでるぜ! 交通費なんて余裕だぜ! みたいなタイプでもないです。 たまたま上司に理解があって、予算に都合をつけてくれて、上の人たちにも(恐らく)説明してくれて、同僚達も理解し応援してくれて、たまたま私が研究開発職に就いていたから今があると思います。本当にラッキーでした。 ただ、私が享受したラッキーだけでなく、他にも様々なラッキーがあると思います。もしも参加したいと思われている社会人の方がいらっしゃれば、是非一度、どうやったらお金と時間を確保出来るかの算段をつけてみてください。意外と上手くいく方法があるかもしれません :)

そういえばなんでSecHack365なの?

 元々セキュリティ系の研修に参加したいと思っていたのですが、多くの研修の受講資格が学生である事だった為、長い間断念していました。 ある日、TwitterでSecHack365の募集告知のツイートが流れてきたのですが、半ば(どうせまた学生限定だろ……)と思いつつ受講資格を見たところ、25歳以下なら社会人・学生を問わないとあったので、応募を決意しました。

実際に参加してみてどう?

 この一年、いろいろな経験をする事が出来ました。ただ、やっぱりもっと余裕のある時に参加出来てたらなあ……とも何回も思いました。 もし余裕のある方がいらっしゃれば是非今のうちに! 余裕がない方も、25歳以下という参加条件がありますので、自分の年齢と相談して、その上で出来るだけ余裕のある時に参加した方が良いと思います。 ただ、見送れば見送るほど参加するチャンスは減りますから、ある程度は思い切りも必要かもしれません。 是非トライしてみてください!

追記

 この記事をレビューしてくれた他のトレーニーに「もっと背中を押すような事を書け!」と言われてしまったので、渋々追記します……… :(

 この研修に参加して何より楽しかった事、それはいっぱい友達が出来た事です! これはガチの話で、これまで周囲にセキュリティ界隈の人がいなかった為、セキュリティの話が出来なかったのですが、SecHack365に参加してからセキュリティの話が出来る友達がたくさん出来ました。SecHack365の強みはなんといっても1年という長期のハッカソンである事だと思います。トレーニー同士、またトレーナーとの絆は、イベントで袖を触れ合わせるだけでは築けなかったものだと思います。友達が欲しい方は是非参加してみてはいかがでしょうか☺️

ここ数ヶ月のまとめ

 前回数ヶ月分のまとめブログを書いてから、だいぶ期間が空いてしまいました。

ちょうど4ヶ月ぶりくらいになるのかな。

あれから人生の進捗が少しあったので、またまとめてみようと思います。

 

1. SecHack365思索駆動コースに合格しました

 応募開始直前になってSecHack365という存在を知り、早速応募を決断しました。

以前から勉強会で耳にする「セキュリティ・キャンプ」に憧れを抱いていたのですが、私は社会人なので応募資格がなく、学生時代に参加出来なかった事を悔やんでいました。そんな中、憧れていたとあるセキュリティ界隈のアカウントがSecHack365の告知ツイートをリツイートしており、自身も卒業生である旨を仰っていたので、それならば信頼出来そうだなと判断しました。まあ正直、あまり深く考えてなかった。

SecHack365は「応募→課題フォームと一緒に返信→課題提出→合否連絡」という流れで選考が行われるので、応募しただけだと何も始まりません(課題が届くだけ)。なので、応募だけなら…と軽い気持ちで応募してみる事に。

その段階では何コースにするかはまだ考えておらず、他のコースの課題も見られるということで、自分がワンチャンありそうなコースに応募しようかなとか考えていました。考えが甘い。

暫くして課題が届き、その中でも思索駆動コースの課題が自分に向いてるなあと感じたので、思索駆動コースに決めました。こんな選び方をしてしまいましたが、経験者曰く、この課題で向き不向きが分かったりするので、とりあえず課題からコースを選んでみるというのは結構王道みたいです。多分。

また、「課題提出前に上司や教授に相談しておくこと」と念押しされていたので、ボスに時間をもらって5分ほどSecHack365についてプレゼンしました。

プレゼンでは、

  • SecHack365は総務省管轄の国立研究所(NICT)が母体であること
  • 1年間を通してどういうことを学べると期待しているか
  • どういう環境が与えられるのか
  • 自分はどういう研究をしたいと思っているのか
  • その経験を活かしてどう部署にフィードバックしたいと考えているのか
  • どのくらいの休みをもらうことになるのか
  • どのくらいの費用がかかるのか
  • 昨年の卒業生の研究成果

などを話しました。

年間約50万かかるという事もあり、最初は交通費や宿泊費は自腹のつもりだったのですが、

「もし受かったら全額出すし、出勤日については出張扱いにするのでチャレンジしてみなよ」と言ってもらい、

安心してチャレンジする事が出来ました。

課題については口外禁止なのでここでは触れられませんが、無事に合格出来ました。内容に触れずに言うなら、割と奇をてらった内容だったかもしれない。割と賭けに出たのですが、それが功を奏したみたいです。

応援し手伝ってくれた上司陣、同僚たちには感謝してもしきれないです。。。

 

合格発表があってすぐに神奈川へ飛び、周囲の優秀さに心を折られつつ、

週1回のオンラインゼミを挟みつつ、北海道へ飛び、大自然を満喫しつつ自分の研究の外殻を模索し…と、割と多忙な日々を過ごしました。週1のオンラインゼミでは毎回違うお題についてサーベイし発表するのですが、社会人だと中々時間が取れず、昼休みや休日を使って取り組んでいます。オンラインゼミはそれでなんとかなっているのですが、そうすると自分の研究に取り組む時間がない。これはどうにかしないといけないですね。。。

そう思案しているうちに、もうすぐ中間成果発表がある福岡回が待ってます。進捗、ヤバイ。

ただ、呑気な話ですが、こうやって進捗に焦ったり、みんなとわいわい出来るのはなんだか学生に戻ったようで楽しいですね。なんか友達も増えました。嬉しい。

毎日慌ただしいですが、なんとか形に残るものを作りたいですね。頑張ります。

 

2. AWSのSAAトレーニングを受講しました

  ずっとサーバレスばかり触っていたので、VPCとかEC2とかそこらへんがすごく苦手だったので、とても勉強になりました。。。SAA落ちたけど。。。

 

3. CTF4bに参加しました

 ずっとやってみたかったCTFに初参加しました。とはいえ何も分からないので、奈良のチームに参加させてもらいました。あと、一人だと不安だったのでSecHack365で仲良くなった人と一緒に行きました。全然役に立てなかったけど、すごく面白かったです。でもハリネズミ本買ったけど、あんまり開いてないな、、、

 

4. CTF4gに参加しました

 オンラインで勉強会をされていたので飛びつきました。本当に女性ばかりで、なんか楽しかったです。オンライン枠にはSecHack365で知り合った子もいて、なんか「界隈」を感じました。わいわい。

内容はフォレンジックについてでした。資料が凄く分かりやすく、バイナリを少し身近に感じるようになりました。

 

5. iPad miniとApplePencilを購入しました

 生活水準がすごい上がった。凄い(語彙力)

読書したり勉強したり絵を描いたり動画を見たり、、、万能すぎる、、、

 

6. 色々な試験に落ちました

 人生良いことばかりじゃない、、、こういうところに実力が現れますね。浮かれず自分の実力を着実に伸ばしていかないと、、、病み。

 

7. CodeDojoのメンター

 あまり参加出来なくなってきているのが辛い。なんとか調整して頑張りたいです。なんというか、こういうのは自分の為でもあるので。

 

 

総括:

 このたった数ヶ月で、全くの未知だったセキュリティ界隈に漸く関われるようになってきました。驚き。周囲からは「自分でキャリアを切り開いていて凄い」と言ってもらえるのですが、やはり周囲の支援のお陰なのは間違い無いです。とても運が良かったし、人に恵まれていました。感謝しても仕切れないです。

あとはどう結果を出すかは自分次第だと思うので、怠けず、諦めず、頑張っていきたいな。

 また、ITと無関連だと思っていた大学時代の自分の専攻の知識が今凄く役立っていてびっくりしています。

私にとっては当たり前の知識だったけど、これって価値のあるものだったんだなあ。。。

 人生何が役に立つか分からないですね。文系だった事を遠回りだと思ってたけど、実はその経験のお陰でSecHack365に合格できたんだろうな。そう思うと、やっぱり「何かを目指すのに遅すぎる」という事はないんだなと、自分にしか出来ない事もあるんだなと、実感しました。

 昔、人生に悩んでいた時に誰かが助言してくれた「何かの分野でトップを目指すのは大変だけど、何かの分野と何かの分野を掛け合わせたらあなたにしか出来ない事が生まれる」という言葉を思い出しました。あの時はトップじゃなきゃ意味がないじゃんとか思ってたけど、今はふんわりした「トップ」というものを目指すよりも、自分にしか出来ない事を武器にして、自分の向かいたい方向へ走るのも良い戦略だなと思えるようになりました。

まあ、掛け合わせたどちらかの分野がうまくいってない時に自分が二刀流である事を言い訳にしては腐るだけだから、そこら辺は重々気をつけないといけないけれども。

ここ数ヶ月のまとめ

ここ数ヶ月ブログの更新をサボってしまった。

誰も見てないブログだけど、記録の為にやっているのでちゃんと更新せねば。

ということで今日はここ数ヶ月の記録をまとめて書いちゃいます。

 

## イベント編

### 2018/12/02

OWASP Nagoya #8 ~Micro Hardening~@名古屋 2018/12/02 - connpass

初めてHardeningに参加しました。

Linuxも基本的なコマンドしか知らず迷惑をかけてしまいましたが、運営の方の計らいで経験者チームに入れていただき、周りの方にフォローいただきました。

その計らいのお陰で大体の流れややるべき事を覚えることができました。

Micro Hardeningは45分セットを3回繰り返すのですが、その反復練習のお陰で物覚えの悪い私でも色々身に着けることが出来たかなと思います。

とはいえ、私がやったのは権限絞りやポート絞り、あとはログ監視ぐらい。

これをきっかけにLinuxとネットワークをもっと勉強したいと思いました。

ちなみにこれに参加する為に初ボーナスでMac Book Proを買いました!ヒュー! 

### 2019/01

CoderDojo長岡京〜小中学生のためのプログラミング道場〜 46回目 - CoderDojo長岡京〜小中学生のためのプログラミング道場〜 | Doorkeeper

CoderDojoでメンターをさせていただきました。

### 2019/02/13 

セキュリティマイスター道場(SecDojo) ~総関西サイバーセキュリティLT大会コラボ~ - connpass

今度はnano Hardeningに参加してみました。

経験者ということもあり、大体の流れがわかってる分少しは役に立てたかもしれない。

セキュリティソフトの会社の同年代やセキュリティキャンプ出身の大学生と知り合えたので良かったです。

丁度ゼミでIoTセキュリティの研究をしてる大学生に晩御飯に誘ってもらって、サブウェイのパンを齧りながら何をテーマにして研究を進めたらいいのか相談に乗ってもらいました。普段はセキュリティの研究をしている人が側にいる環境じゃないので、気軽にそういう話が出来たのは嬉しかったです。

夜の部では気がついたら運営の人にドアマンをお願いされてなぜかドアマンをしてました。。。笑

### 2019/03/10

CoderDojo長岡京〜小中学生のためのプログラミング道場〜 48回目 - CoderDojo長岡京〜小中学生のためのプログラミング道場〜 | Doorkeeper

CoderDojoでメンターをさせていただきました。

思いとかはツイッターで呟いたので割愛(恥ずかしい)

 

## 資格編 

AWS認定クラウドラクティショナーを受験して合格しました。

かなりギリギリだった…

f:id:chequita:20190406113515p:plain

特に請求と料金周りがだめだったみたいです。

スコアのところはただ単に重みの値なのかな?自分より点数いい人も同じ数字だったので…

f:id:chequita:20190406113108p:plain

模試(84%)よりも点数悪かった。。。というか日本語が分からなさすぎる。それどういうニュアンス?ってなって、何回も英語に切り替えてみたけど、多分英語のニュアンスも似たような感じだった。英語出来ないからわかんないけど。

今月末にはソリューションアソシエイトのトレーニングを受けさせてもらうので、来月にはアソシエイトの試験受けたいなーって感じです。認定者特典で模試がタダになるバウチャーが発行されたので、GW中に模試を受けようと思います。あとアソシエイトからは問題集が出てるのでそれを何週もやる。問題文に慣れねば…

## 読書編

### 2019/01

ついに徳丸本の演習を終えました。

長かった…

とはいえきちんと理解出来てる自信が皆無だったので、少し時間を置いてから2周したいと思いました。

会社にお願いして黒林檎さんの「IoTハッキングの教科書」を買ってもらったので、それを読み始めました。

## 記事編

書きました。

### 2019/01

chequita.hateblo.jp

qiita.com

### 2019/04

qiita.com

 

## 総括

以上、大体こんな感じです。

気がついたら社会人2年目になってました。

この1年、とにかく目の前の仕事に必死で大変だったな。。。

今年は自分のキャリアを見据えて着実に力をつけていきたい。

転職した先輩が「半年頑張ればIT筋力がついてくるよ」って言ってたけど、果たして付いてきているのだろうか…?

リーダブルコードを読んだ

めちゃくちゃ今更ながら、駆け出しエンジニア Advent Calendar 2018 - Qiitaに参加させていただいていたのに、投稿していなかったので投稿します🙇‍♂️

リーダブルコード自体は結構昔に読んだのですが、改めて読み直してまとめてみました。

以下は Dustin Boswell氏・Trevor Foucher氏著 角 征典氏翻訳の”リーダブルコード より良いコードを書くためのシンプルで実践的なテクニック”のまとめです。

 

#リーダブルコード

優れたコード
 理解するまでに時間のかかる短くてかっこいいコードよりも、理解するまでにかかる時間の短い分かりやすくて長いコードの方が優れている。
読みやすさの基本定理
 コードは他の人が最短時間で理解できるように書かなければならない。他の人というのは数ヶ月後の自分も含むので、例え自分しかいないプロジェクトだったとしても、未来の自分の為にも読みやすく書くべきである。
感想:自分しかいないプロジェクトだとしても、将来的にプロジェクトを誰かに引き継いでもらう時にコードの可読性が低いとすごく大変なので、可読性はどんな時にでも重視する必要があると感じた。
表面上の改善
 変数名や関数名などは分かりやすさを心掛ける。分かりやすさとは、名前を見ればどういった振る舞いをしているのかが分かる混乱のない名前のことを指す。混乱のない名前とは、誤解を与えるような抽象的な名前や、語弊のある名前でないことである。
 ただし、スコープが小さい時は短い名前でも良い。
 頭文字や省略形は、新しく入ってきたチームメイトでも理解できるのであれば問題ない。
美しさ
 見た目が美しいコードの方が使いやすいのは明らか。一貫性のある簡潔な改行位置や文字を整列させることで、視覚的な可読性が向上する。また意味を持つコードごとに単位や段落で分けることで、コードを理解しやすくする。
一貫性
 もし途中で参加したプロジェクトのコードが間違ったスタイルだらけだったとしても、正しいコードを書くよりも一貫性を優先させた方が良い。
コメントするべきこと
 コメントが長ければ長いほどコードを読む時間が減ってしまうので、価値のないコメントは書かないようにする。例えば、コードを読めば分かるようなことは書くべきではない。
 名前のせいでコメントをつけないといけない時は、名前の方を変える。
 自分の考えを記録する。
 コードの欠陥にコメントをつける(TODO, FIXME, HACK, XXX)
 ハマりそうな罠を告知する。
 入出力の実例をかく
 コメントは長々と書かずに簡潔に書く
制御フローを読みやすくする
 条件は肯定形で書く
 単純な条件を先に書く
 ネストは浅くする
とにかく、実行の流れを追えるコードを書くこと
巨大な式を分割する
 説明変数…処理の前に変数に代入することで、意味を分かりやすくする
 要約変数…式を変数に代入しておくことで、コードを短くする
 巨大な式を分割し、本質を理解しやすいコードを書く
変数と読みやすさ
 コードが読みやすくならない変数は削除する
 結果を保持するだけの変数を使うよりも、早く結果を返す
 制御フロー変数を使わない
 変数のスコープを縮める
 変数の変更箇所は出来るだけ少なくする
無関係の下位問題を抽出する
 エンジニアリングとは、大きな問題を小さな問題に分割して、それぞれの解決策を組み立てること
 高レベルの目標に直接的に効果がないコードは別の関数に切り出す
 プロジェクト固有のコードから汎用コードを分離する
一度に一つのことをする
 ・コードが行なっているタスクを一覧に挙げる
 ・タスクを出来るだけ小さく異なる領域に分割する
コードに思いを込める
 書こうとしているコードを簡単に言葉で説明する
 実装は最低限にする
 標準ライブラリに慣れ親しんでおく
テストと読みやすさ
 テストコードの読みやすさ=保守のしやすさ
 テストコードが複雑だと、テストコードを書き換えることを恐れて本物のコードを書き換えなくなってしまう
 最小のテストコードを作成する
 エラーメッセージを読みやすくする
 入力値を単純化する

 

 

情報系を勉強する女子大生 Advent Calendar 2017

最近、Qiitaがどうあるべきかが議題に上がっている。
Qiitaにはコミュニティガイドライン - Qiita:Support というものがあって、そのなかで

Qiitaは「プログラミングに関する知識を記録・共有するためのサービス」です。プログラマーが興味を持つものではなく、プログラミングに関する記事を投稿しましょう。

(中略)

 >例えば「厳密にプログラミングとは言えない記事」「プログラマーのライフスタイルに関する記事」など判断に迷う場合は、「技術的な内容が主目的かどうか」を基準として考えています。

 

とはっきり明言されている。過去にもアドベントカレンダーでポエムのカレンダーが削除された実績から、

Qiitaの運営がポエム記事を推奨していないことが分かる。

そこで自分の過去の投稿を見たところ、一切技術的な内容のないポエム記事を投稿してしまっていたことがあった。
ので、該当する記事はブログに移行し、アドベントカレンダーのリンクも今回はこっちを貼っておくことにします。
ということで、以下該当記事


==================================================


 これは情報系を勉強する女子大生 Advent Calendar 2017 - Qiitaの24日目の記事です。

 以前は文系エンジニアは珍しくありませんでしたが、文系を中心に採用していた企業でも昨今は理系採用に力を入れ始めているように感じます。もし文系で採用されても開発職に就けるかは分かりません。
 私自身、文系ということで苦労しました。その経験がエンジニア(特に開発職)になりたいと考えている文系学生の助けになればと思いこの記事を書きました。


#お前だれよ


 2年間アルバイト(7.5h*週3)で働いたIT企業で内定を貰ったしがない(Fラン)文系学生です。今もバイト続けてます。最近はロボット(ラズパイで制御)にAWS Rekognitionを使った顔解析機能を実装したりしました。

 

# 文系で苦労したこと


- 数学がマジでわかんない
線形代数微分積分?ベクトル????やったっけ???って感じでした。というか、それどころか普通の算数ですら怪しいです

- インターンに応募しても中々受からない
- みんなが何話してるのかわかんない
→殺す?死んだ?何の話? サーバ?プロキシ?なにそれ?

 

# そんで就活って何をしたらいいの?


以下おすすめの行動です

  • インターンやアルバイトに参加する(出来るだけ長期のもの)
  • とりあえず何かを作る
  • 勉強会やコミュニティに参加する
  • スカウト型の就活サイトに登録する(私は就職課の勧めでOfferBoxを使っていました)
  • Qiita記事を読む
  • Twitterをやる(楽しい)

## インターンやアルバイトに参加する(出来るだけ長期のもの)

 正直、文系学生にはハードルが高いかもしれません。
私の場合は就職課に開発補助のアルバイトを紹介して貰いました。個人で応募したインターンは断られてしまったので、まずは就職課に相談すると良いと思います。就職課が紹介してくれる所は大抵採用実績のある企業なので、個人で申し込むよりも合格率は高いと思います!

 それから、こういうのは出来るだけ長期のものが良いと思います。
 恐らく文系学生にいきなり開発をさせてくれる所はないんじゃないでしょうか(あるかも)。まずはテスターやマニュアル作成などからだと思います。勿論これらは文系学生にとって凄く学びのある仕事です。これらからは設計やユーザビリティなどの大事なことを学べます。
 ですが、開発がしたい学生はここからじわじわと開発サイドの仕事を勝ち取らねばなりません。通常業務をこなしながらも、積極的に手をあげ、やりたいアピールを常にし、CSSを少し修正するだけ、同じ機能を増築するだけなどの簡単なコーディング作業をこなしてじわじわと侵食していきましょう!(もしそれが出来る自信がない事だとしても「出来る自信はないけどやってみたいです」と素直に言ってみましょう。もしかしたら、とりあえずやらせてもらえるかもしれません!)
 恐らくそれは長期戦になるので、出来るだけ長い期間留まれるのが望ましいです。

 

### インターンやアルバイトを始めたら


 恐らく大学の授業とインターン・アルバイトの内容との乖離に混乱するでしょう。また、勉強時間が中々確保できず、カツカツになると思います。私も週3でIT企業でアルバイト、週2で1限~7限の授業、土曜日(課題をやりつつ)休んで日曜日はアパレル店員のアルバイトをやって、死にかけた事があります(比喩)。時間が無くなると、何を優先して、何を捨てるのか常に選択しなければならなくなります。スケジュール管理は勇気を持ってやりましょう。楽観的に組んだガバガバなスケジュールは、結局周りの人に迷惑をかけてしまいます(実体験)。

 

## とりあえず何かを作る


 文系がアピールするとすれば「やる気」だと思います(技術では専門で研究している学生に勝てないので)。しかし、当然ながら就活ではみんながやる気をアピールするでしょう。
 なので、やる気を証明する為にも何かひとつでもいいのでモノを作るといいと思います。
 モノが作れなくても、私の場合はアルバイトの面接でコードを写経したものを印刷して提出しました。今でもその時の面接官に笑い話にされますが(GitHubとか使えばよかった…)、何もしないよりかはダサくてもやる気は見てもらえると思います!

 

## 勉強会やコミュニティに参加する


 「初心者向け」と書かれている勉強会やコミュニティに参加してみましょう。暖かく迎え入れてもらえます。PCとテザリングもしくはポケットWiFiを忘れずに!
 勉強会には大きくわけてハンズオンとLTがあります。ハンズオンは実際にモノを作ってみる参加型の勉強会で、LTは発表者によるスライドを使ったプレゼンテーションの聴講です。
 それ以外にも相談会を開いているコミュニティもあります。どのように勉強すればよいかなどを教えてもらえるので、機会があれば是非参加してみてはいかがでしょうか。
 私はよくconnpass - エンジニアをつなぐIT勉強会支援プラットフォームで勉強会やコミュニティのイベントなどを探しています。

 

## スカウト型の就活サイトに登録する


 私は口下手でコミュ障なので、先にプロフィールを見てからスカウトしてもらえるこのタイプの就活サイトには凄くお世話になりました。履歴書だけで伝えきれないアピールポイントなども伝えられて、ほかの就活生よりも有利に面接できるんじゃないでしょうか。

 

## Qiita記事を読む


 文系にとってエンジニアの仕事は未知の世界だと思います。専門的な話が分からなくてもポエムなど読み物としても面白いものがたくさんあります。それらを通して雰囲気を掴むのも大事かなと思います。また、この記事のタグにもついている「新人プログラマ応援」を辿ると為になる記事が沢山出てくると思います(恐らく本記事よりももっと役に立つ記事が…)
以下、おすすめの記事です

qiita.com

qiita.com

qiita.com

 

↓これを初めて読んだときは全く内容が理解出来なかったのですが、かっけー!と感動してモチベが上がったので載せました。[増田のこの記事](https://anond.hatelabo.jp/20120904230532)を書いた方らしいです。増田の記事のほうもかっこいいです。こういう難しいけどモチベが上がる記事を一つ見つけて、それを理解できるようになることを目標にするのもアリだと思います。

qiita.com

 

## Twitterをやる(楽しい)


 ほんと単純に楽しいです。テクノロジーを楽しんでる人をフォローすると楽しくお勉強できます。

 

# 最後に


 幸いにも、この業界で女子だからと苦労した事はあまりないです。女子が少ない事で寂しかった事はありますが、最近は女子限定の勉強会なども盛り上がっていて、それも解消されつつあります。男女平等に仕事をくれる職場に恵まれた為、開発の仕事も自由に思う存分にやらせてもらっています。
 ただ、ここに来るまではいろんな人に「無理だ」と沢山言われました。昔、ある人に「〇〇大学の、しかも女の子を雇ってくれる会社なんかあるの」と嗤われた事があります。
 もしこんな事を言われた人が他にもいたら、そんなクソッタレな呪詛は今すぐ記憶から消去してください。メモリの無駄です。
 あなたはどこにでも行けて、何にでもなれます。宇宙人や魔法少女にはなれないかもしれませんが、少なくともエンジニアにはなれます。あなたに「無理だ」と言う人がいたとしても、その人は無責任にも「明日の天気は雨だ」くらいのノリで言ってるだけなので、耳を貸してはいけません。
 「あなたが雨だというから出かけるのをやめにしたのに!」と怒ったとしても、その人は責任をとってくれるどころか、言ったことすら忘れています。自分の人生の責任をとれるのは、自分だけです。自分を信じましょう!(これはマジ)

 

 これからも…自分にたくさんいいよって言ってあげてね たとえ失敗してもきっと笑えるから大丈夫 僕がそうだったみたいに

アヤメくんののんびり肉食日誌(6)」- 奈良アキラ