エンジニアになってからの話

他社のエンジニアマネージャーにキャリア相談にのってもらった話

11月29日にあった「現役エンジニアマネージャーがあなたのキャリア形成について1on1で相談に乗ります会」に抽選で当たったので行ってきました。

偶然connpassで見つけて、面白そうだなと思い応募してみました!
▼イベントURL
https://trackrecords.connpass.com/event/104894/

応募した理由

・新卒で入社して1年と9ヶ月ぐらい経って自分のキャリアに不安があった。
・社外の技術系の上の人と話す機会は採用面接ぐらい以外でなかなか滅多にない機会だったから。
・社外の人から意見やアドバイスをもらうことが面白そうだなと思ったため。

メンターさん

水島壮太さん | ラクスル株式会社 執行役員(印刷事業本部 プロダクト開発部 部長)
IBMからDeNAのゲーム事業部やペロリに出向したのち、ラクスルで開発部の部長をしている方。
自分と同じメガベンチャーからそれよりも規模の小さい会社に行ったということで話を聞きたかったため、希望しました!

質問したこと

・エンジニアとしてのキャリアの迷い(めちゃめちゃ強いエンジニアには勝てない)
・若いエンジニアが上の人に対して意見をしたいときのスタンス
・若いエンジニアがやっておくべきこと
・いいチーム開発って何
・転職活動とかする時どうしたらいいか(何をみたらいいか)
・ベンチャー(カルチャー)に転職する

ちょっと外では話せないことも相談したりしたので、その辺り割愛しつつ、一つずつ追っていこうと思います。
 

・エンジニアとしてのキャリアの迷い(めちゃめちゃ強いエンジニアには勝てない?)

▼質問した経緯
プログラミングが目的か手段かによるのだけど、自分は前者であり、サービスが好きでサービスが作りたくてプログラミングをしている。そうなると技術が大好きでずっと触っているみたいなエンジニアにはかなわないのではないか、エンジニアでいていいのか、PMとかの方がいいのではないのか。

▼回答
その人になろうとするのではなく、技術力もある程度持っておきながら、その人のダメだなと思う部分を逆に見つけて、その力を強くして補完していく感じがいいかも。
自分の強みや総合力を高めていく感じ。
 

・若いエンジニアが上の人に対して意見をしたいときのスタンス

▼質問した経緯
自分的に意見や違うなと思ったときやこうした方がいいと思ったときにきつい言い方になってしまったり、目上の人に対して意見をいうときに上手にいう言い方はないか。

▼回答
どんどん意見するのはいいこと、むしろそういう部下の方がいい。けれど、あまりにも外れたことを言ったり言い方がきつくなるのはよくない。言いたいことに対して、きちんと根拠や論理的な何かがあれば言い方に気をつければどんどん言って問題ない。任せられそうって思ってもらうことも大切。
 

・若いエンジニアがやっておくべきこと

▼質問した経緯
開発もほどほどにできるようになって、何をしたらいいのかなと意見を聞きたかったため。

▼回答
もう設計とか中規模機能や改善はできるようになっていると思うので、自分がこれを作ったと言えるようなオーナーシップを持った開発をしていくべき。0から立ち上げましたや作りましたでもいいし、この機能は自分が作りましたと言えるものを。
社内でそういうのが厳しいのであれば、個人開発でやってみるのも全然良い。
 

・いいチーム開発って何

▼質問した経緯
チーム開発がうまくいってない時期があったので、聞いてみたかった。

▼回答
素直に意見が全然出ないチームってのは良くない気がする。議論を交わすことができたり、新しいことをやりたいってことに対してむやみにNOと言わなかったり。雰囲気が良くないなら自分で変えちゃっても良い。色々なチームを経験してみるのも良さそう。
 

・転職活動とかする時どうしたらいいか(何をみたらいいか)
・ベンチャー(カルチャー)に転職する

▼質問した経緯
2~3年したら転職した方がいいかなとか、してみたいと感じたことがあったため。転職自体したことないし、労力がいるものなので。

▼回答
技術もそうだけど、ベンチャーは会社自体のカルチャーが全然違うのでそれは見た方がいい。話していて合わないと思ったら、行かない方がいいし、ネガティブベースでは転職しない方がいいかも。他にやりたいなとかこれ頑張りたい、任せたいって言われた時に転職するとか。

まとめ

自分の中でモヤモヤしている部分があって今後何やっていこうって感じだったのでとてもいい機会でした。
社外の開発系の上の人話す機会って全然ないのと、こういうイベントも初めてで新鮮かつ面白かったです。ちょっと道筋が見えたので頑張ります。

言語化する難しさと大切さ

最近というか、YOUTRUSTで副業を始めてから、言語化の大切さを日々感じます。

本業エンジニアたまにデザインみたいな立ち位置に自分はいるのですが、両職種は似ているかもしれないけれど、全然違うなと感じるのです。

エンジニアは一つの機能を作ったり、問題を解決していったりするいわば数学みたいなもの。答えは決めて、そこに向かって回答を考えます。

デザインというのは、自分の引き出しや参考になるもの、漠然としたものから一つのものを作り上げる、国語の作文に近い感覚です。

正直前者の方が考えること自体は、楽だと私は感じます。でも後者の方が面白かったりもします。

エンジニアリングは、この機能を作るために、この言語で、こういう実装をしたと説明できますが、

デザイナーは、伝えたい情報があり、そのための要素をこの目立つ場所に置き、ボタンはここの方が押しやすいからという説明もできるのですが、それは個人の感覚で違ったり、全員が納得しなかったりもします。

例えば、このコスメ可愛いなーと思った時に、それを説明しろって言われたら、たぶん困ります。
色?形?匂い?ブランド?何をもって可愛いかは人それぞれです。

かっこいいももちろんです。

最近はそこをきちんと言語化できないかなと、本を読んだりしているのですが、あくまでよく使う一般例が正しいということが多く、なかなか悩ましいのです。

だって、個人の感覚だから人が可愛いって言っても、他の人は可愛くないということもあります。

てなわけで、言語化って難しいし、でもそれができないと、相手に伝わらないし困るという曖昧なところですが、極力説明できるようにしていきたいです。

難しいです、言語化。うーん。

UX JAM 23でLTをしてきました!

エモい記事を書いた後のひさびさのブログ更新です。

少し前になってしまうのですが、1/25(木)にオイシックスドット大地株式会社さんで開かれた
UX JAM 23でLTをしてきました!お題は「新年のUX抱負」でした。

実は大学生時代にUX JAM6でお話しさせてもらったこともあって、ひさびさのUX JAMでした。(2年も毎月イベントが続いているのはすごいなと思います。)

私の発表した新年のUX抱負は、

「UXも考えられるエンジニアになる」

そして、

「自分が担当しているサービスで、エンジニアリングからUXにおける成果を出す」

というテーマで話しました!

スライドを全て載せたいのは山々なのですが、せっかくきてもらった方に申し訳ないので、
一部抜粋したいと思います。

発表内容

端的に話すと、いろいろと仕事をしている上で思う節があって、

「営業さんとかユーザーの声を聞きながら必要とされるものを作りたい。」
かつ「エンジニアからできる具体的なUX改善をやっていきたい。」という感じです。

UXってエンジニアからでもできるんじゃないのーっていうのをこの1年試して何か成果を出せればなと思います。

発表に関しては、早口になってしまったのと、5分のLTって濃く話すにはなかなか難しいなと思いました。
主催者のオイシックスドット大地の人事の方に褒められたり、いろいろとお話ししてくださった参加者の人がいて良かったです。

他の方の発表

他にも何人かの方が発表されていたのですが、面白かったのが、一部の三番目の

株式会社シャノン 上原和彦さん
「デザイナーがいないB2Bサービス会社でデザインをがんばる」でした。

2000年代インターネットと言わんばかりのBtoBサービスの管理画面を今時にしてみた!みたいな話で、面白かったです。

また機会があればUX JAM参加したいな〜と思います!運営の方、ありがとうございました。

社会人になって3ヶ月のエンジニア研修を終えて〜内容と感想〜

ご無沙汰しております。ブログ更新も約半年ぶりとなってしまいました。(このサイトが不正アクセスを受け、ファイルを書き換えられ、ゴタゴタしておりました。今はもう大丈夫です。)

無事就職をし、春から新卒のエンジニアとして働き始めました。ちょうど配属されてから1週間、先週の金曜で研修が終わったので、忘れないうちに、この3ヶ月の研修で感じたこと、思ったこと、勉強になったことなどいろいろあったので書き綴っておきたいと思います。

研修の概要

私の就職した会社では、新卒のエンジニアの研修を外部の会社に委託して、そちらのカリキュラム通りに進みます。期間は4月半ばから7月半ばまでの3ヶ月です。ざっくり書くと、Javaでプログラミングやオブジェクト指向の基礎→PHP(Laravel)でのサービス開発→AndroidJavaでのアプリ開発→iOSでのアプリ開発です。
ちなみに詳細はこんな感じ。(会社に怒られたら消します…)

  • ソース・プロジェクト管理 2日間
  • Javaプログラミング基礎 2日間
  • オブジェクト指向プログラミング 6日間
  • UMLと設計 1日間
  • ソフトウェアテスト技法 2日間
  • DB&SQL基礎 2日間
  • DBパフォーマンス・チューニング 2日間
  • JavaEE基礎 3日間
  • Webシステム開発演習(Java) 8日間
  • PHPプログラミング基礎 1日間
  • PHPフレームワーク(Laravel) 4日間
  • Webシステム開発演習 6日間
  • Androidアプリ開発 12日間
  • iOSアプリ開発 14日間

JavaとDBの感想

このあたりは長くて1ヶ月半ぐらいやっていた。Javaについては課題形式で本当に変数からカプセル化とかクラスとかラムダ式までやった。底辺知識が薄い自分にとってはすごいありがたかったけれど、アルゴリズム苦手でしんどかった。研修で一番しんどかったかも。笑 プログラミングガチ勢からしたら、これにこんな時間かけるかって怒ってる子もいた。
ソース・プロジェクト管理みたいなのがあったけど、一切の説明もなく、班にGitがわかる人が教える感じだった、不満もつらつらあったけれど、Gitは習うより慣れろなので、みんな研修中盤でGitは問題なく使えこなせるようになっていた。同期は30人ほど、8班に別れていてWebシステム開発演習でJSP、サーブレットでTwitterみたいなのを作った。コンセプトは自由で、不満をたらたらいうTwitterや語学学習のTwitterができていた。個人の力でORM作ったり、React使ったりとすごいのもたくさんあった。DBの講義はあんまりよくなかった、事実研修会社の人がDBの課題はくそだからね〜みたいなの言ってた。(まじかよって感じでした。)

PHP(Laravel)の感想

PHPの研修期間は11日間、がっつり触ったことがあるって人は少なかったと思う。講義もなく、テキストみたいなPDFが渡され、お前らで頑張れ!って感じだった。放牧。かわいそうだったのは、WindowsとMac混合班が環境構築がなかなか終わらなくて大変そうだった。(資料はLinuxだった。)
作るものも自由で、私たちの班は語学学習サービスを作った。瞬間英作文をネット上でやるものだ。毎度開発最終日に発表会があり、技術や機能、デモなどを発表して、会社の先輩たちが研修施設まできてそれを見てコメントをくれるのだけれど、今回作ったものはとても褒められた。会長にプレゼンしたら?と言われ嬉しかった反面、うちらの班がうまくいったのは、設計が上手でLaravelがめちゃ書ける子と、JSがめちゃ書ける子と、私みたいにデザインがほどほどでCSSが書けれることができる人が集まったからだと思っていて、私は9割sassを書いて終わった。Laravelとは?のレベルで終わった後、虚しかったのはいうまでもない。他にもネット上で人狼のゲームができるサービスを作った班があったりして、面白かった。4班あったうち、2班以外は失敗みたいに終わってて、強い人もたくさんいたのになんでだろうっていう疑問が残った。後、この時デザインとプレゼンの見せ方も重要なんだなと気づき始めました。

AndroidJavaの感想

Androidに入ってからは、個人でもグループでも開発可という感じだった。私はアプリ開発がど素人で大変になりそうだなと思ったけれど、一から全部一人で作ってみたかったので、特殊な班に所属した。1人で作るけれど、チームで、わからないところや進捗管理はみんなでやろうというものだった。正直不安もあってありがたかった。作ったものとして、傘がいるかわかるアプリを作った。お天気APIと地域情報APIをRetrofitでHTTP通信でとってきて表示させるという簡単なものだった。けれど、デザインがxmlだったり、ライフサイクルというWebで生きてきた自分にはあんまりない概念だったり、非同期でとってくる前に表示の処理が終わるなど、大変なこともあった。他の班や個人は、シンセサイザを作っていたり、マッチングアプリを作っていたりすごかった。AndroidJavaはまだJavaなので、よかった。アプリが早く開発が終わったけれど、プラス機能も考えず、そういう設計もしていなかったでもう少しできたのではないかと思った。RealmとFirebaseは大変そうだった。

Objective-cの感想

大変だった。とにかくメソッド定義も配列もめんどくさい!メモリ?ポインタ?うわ〜〜て感じだけど、低層の言語を知れてよかった気もした。(JavaやPHPは高級言語だよ〜って隣の子が言っていていろいろ教えてくれた。)アプリはメモリの関係もあってか、ListViewの表示の仕方が独特だなと思った。今回の開発演習のアプリは、DBがMySQL、サーバ側をLaravel、フロントをObjective-cで書いた。しかもDB設計もmigrationもコントローラも画面も自分で書いたので、LaravelにもObjective-cにもめちゃめちゃ触れられて嬉しかった!(CSSはそんなに書きたくない)
ちょうど都議会選がやっていたので、国が出した選挙アプリというものを4人班で作った。今回は1人開発でやる子も多くて、AWSでインフラめちゃめちゃやっていて(https通信)すごかったり、ハンドスピナーのライブラリ作っていたり、Bluetoothでいけるシンセサイザ作っていたり、なんかiOSの新しいARの技術使っていたり、待ち合わせアプリだったり、集大成揃いの者たちばかりだった。

それ以外

タスク管理はTrello、コミュニケーションはslack、プロトタイプはXdやPrott、設計やデザイン、サーバ周りなども自分たちで一から、講師の人への質問はそんなにたくさんあったわけではなかったので、とにかく自分たちでどうにかする、チームの子に聞いて頑張るというのが大きかった。朝会と夕会でタスクの進捗確認、Trelloで手持ち無沙汰なメンバーがいないか確認、中にはKPTまでやっている班もあった。後、研修施設が20時までなので、だいたいみんないつも定時帰りだった。ホワイト。家でたまに開発していてbacklogというgithubみたいなリポジトリ管理のツールだけ動いていた時もあったけれど。笑

研修中に使ってよかったなと思ったツール・本・諸々

– Trello(To do, doing Doneとかにカテゴリを分けて使っていた)
– API設計書(パラメータや戻り値をきちんと書くことで、フロントとバックに齟齬が生まれない)
– Postman(WebAPIでも自作APIでもパラメータを入れて、成功、失敗、返り値も出してくれるのでとても便利だった)
– iTermでのzshかfish(コマンドたくさん打ちたくないし良い)
– AdobeXdやProttなどのプロトタイプツール(デザイナーがいないから、最初の画面デザインをやるには助かった)
– Sequel pro(わざわざターミナルからmysql見に行かなくて良いGUIツール。あ、DBの変化の確認に便利)
– sql文からER図起こしてくれるやつ・・・名前忘れました
– リーダブルコード(神)

感想

研修会社に対しての多少の不満はあったけれども、自分たちでどうにかするという部分においては本当に勉強になったし、いろいろな方面で強い子から教えてもらうこともたくさんあったし、0から作るという経験が4回も3ヶ月でできたのはかなりよかったです。同期とかいらんわ〜って思ってた自分でも、今となってはslackで会話するのが楽しいし、みんなそれぞれの個性を持っていて、いろいろな人がいてそれが楽しいです。配属先でも頑張ります。

追記

なんかもうちょっと書きたかったことある。作ったもののスクショや動画は機会があれば載せます!
研修会社(https://it-college.co.jp/)のサイト。実績にロゴもうちらの写真も使われまくっているので載せても大丈夫だろうという気持ちで。(怒られたら消す) 何かものが作れるって良いなと思った3ヶ月でした。