【ハック大学式 最強の仕事術】の紹介 大学生におすすめです!!
【ハック大学式 最強の仕事術】の感想
行動が結果を変える ハック大学式 最強の仕事術 | ハック大学 ぺそ | ビジネス・経済 | Kindleストア | Amazon
Youtuber であるハック大学のぺそさん が出版された本を読みました。
【ハック大学式 最強の仕事術】です!!
ぺそさんってどんな人??
・登録者数 20万人以上
・金融会社勤務
・副業としてYoutuber
www.youtube.com
エリート揃いの金融会社に勤めながらもyoutuberとしても成功してる超仕事人です!!
そんなぺそさんが執筆した本の感想を書いていきたいと思います!
結論
結論としてこの本は、「仕事ができる人になるためには何をするべきか」が書かれています。
仕事ができる人の考え方・動き方・学び方が凝縮されています。
・市場価値を高めたい人
・仕事で成果を上げたい人
・社会人としてしっかり仕事ができるのか不安に思っている人
におすすめです。
私自身、この本を手に取った理由は自分が仕事ができない側の人間だと感じていたからです。
アルバイトではマニュアル通りの動きしかできず、年下の高校生の方が周りを見て動いているところを見て、仕事ができるかどうかは学力や学歴に比例しない物だと感じていました。
来年度から新社会人として働くためしっかり仕事ができるのか不安に思っていたからです。
仕事ができる人の考え方=自責思考
自責思考とは、何か問題が起きた時に自分に責任があったのではないかと考えることです。
もちろん、部下がミスをした時もです。
確かに仕事ができない人って、周りのせいにしていますよね。
私自身も後輩が研究でミスをしてしまっている時に自分は関係ないと考えてしまっています。
自責思考を取り入れれば、「自分の教え方が悪かったのか」、「もっと監督してあげれば良かったのか」などと改善することができます。
また、他人のミスにも苛立つことがなくなるので精神安定にも繋がりますよね。
あと、常に改善しようと試みている人は他人の評価にも繋がります。
そして何よりも、僕は人が集まってくるのではないかと感じました。
誰しも何事も人のせいにしている人より、責めずに改善しようと心がける人と一緒に仕事がしたいと思います。周りからの信頼にも繋がるのもメリットの一つかなと思いました。
仕事のできる人の動き方=着手主義
着手主義とはとりあえず動いてみることです。
私はこれが一番実感することができました。
研究でも、今後の方針を決めるときに、様々なリスクを考えてることに時間を割いて中々着手できていない人がいます。
そういう人に限って進捗があまりないんですね。
逆に進捗がある人はとりあえず次の一手を打ってみるというトライアンドエラーを繰り返しています。
トライアンドエラーを行わないと実際にどんな壁に直面するのか、そしてどうその壁を乗り越えれば良いのかがわかりません。
つまり、トライアンドエラーは無計画すぎると思われるかもしれませんが、トライアンドエラーをすることで思考力と突破力が上がるんですね。
私自身も研究ではトライアンドエラーを常に心がけてきたおかげで、今となっては周りよりも直面しそうな壁の予測や直面した時の突破力は優れていると感じています。
仕事のできる人の学び方=インプットとアウトプット
インプットすることは簡単です。しかしアウトプットすることは難しいですよね。
例えば、他人に学んだことを伝えるということは自分がしっかり理解していないといけません。
つまりアウトプットを念頭にインプットを行うことで、インプットの質が上がるんです!
私もゼミで他人に研究を説明するときに、研究背景から目的、実験器具の選定理由などを説明します。
その時に「その意味はなんですか?」や「そこをもう一度教えてください」と言われた時に、自分のアウトプットが下手だったんだなと感じます。
このようなフィードバック(聞き手からの質問)をもらえることで、次のゼミまでの準備段階でしっかり自分が理解し、相手に分かりやすいように伝えることができます。
このサイクルがインプットの質を高めているんですね。
お気づきになった方もいるかもしれませんが、急に本の紹介記事を書き出したのもアウトプットのためなんですね!
私はこの本を社会人になる前に読むことができて本当に良かったなと思います。
新生活には不安がいっぱいですが、少しでも仕事ができる社会人になれるように、これらのことを今から癖づけしていこうと思います!
漫才台本「就活生」(ブラマヨ参考)
ツ「どうも〜。〇〇です!」
両「よろしくお願いします。」
ボ「ちょっと話変わるんだけど、」
ツ「何か話してました?」
ボ「僕ら今年で大学卒業じゃないですか。僕はまだ就職活動中で、来週面接があるんだけど、やっぱり面接って第一印象が大事かなって思うんだよね。どうやったら第一印象が良くなると思う?」
ツ「確かにな。面接は第一印象が命と言っても過言ではないからね。そしたらそやっぱり髪型じゃない?しっかり前髪あげて、セットしたら清潔感あって印象良くなるんじゃないかな」
ボ「髪型ね!確かにおでこ見えてる方が清潔感あるよな。でもさ、俺も清潔感ある髪型にセットしたいんだけどさ、普段からワックス使ってないから、面接の日だけセットすると、かえって変な髪型になるんじゃないか心配なんだよね。」
ツ「だったら練習していけばいいじゃん。まだ1週間あるんだから明日から毎朝、髪型セットすれば、面接当日にはバチっと決めれるようになってるんじゃない?」
ボ「毎朝セットして学校行けばいいんか!…でもさ、普段髪型セットしない俺が、急にセットして学校行き始めたら、友達から「あれ、こいつ女でも狙ってるんか?」って思われるのも嫌じゃんか」
ツ「そんなもん1週間だけなんだから我慢したらいいじゃん」
ボ「1週間経って、元通りに登校してきたら、「あ、あの人狙ってた人に振られたんか」って思われるのもダサいやんか」
ツ「気にしすぎだろ。人生かかってんだからそれくらい我慢せい」
ボ「でも男としても負けたくないねん」
ツ「なら毎日スーツも着て行ったらいいじゃん。そしたら「あ、この人就活中なんだ」って思わすことできるやん」
ボ「毎日髪の毛セットしてスーツ着てたら、「この人毎日面接受けてるのに、一社も受からないんだなって思われるやん」」
ツ「ならもう髪の毛剃れ!スキンヘッドにしたら、セットする必要もないから「この人どこも受かってないんだな」って思われずに済むやん!」
ボ「第一印象悪いやん。」
ツ「何がやねん」
ボ「このご時世、面接は全部オンラインでやねん。zoomがパって開いた時にスキンヘッドの人が画面に現れたら、社会復帰を目指すマイケル・スコフィールドだと思われるやん。」
ツ「誰がプリズンブレイクだと思うねん。背中にタトゥーは入ってないやろ。」
ボ「「この人牢屋に入ってたんかな」って思われたらお終いやん。」
ツ「だったら、犯罪歴があっても採用したいなって思われるくらいハイスペックな人間になれや!」
ボ「ハイスペック?」
ツ「学生なのに会社を立ち上げるなり、バズる商品を開発するなりしたら、「あー、この人過去に過ちをおこしたけど、こんなにスペックが高いなら入社後に会社に貢献してくれるな」って思ってもらえるやんけ」
ボ「ならスキンヘッドにしなくてええやん。そんなに優秀だったら髪の毛ありで勝負してるわ。なんでわざわざスキンヘッドにしてハンディキャップ被らなあかんねん。大体残り1週間で会社立ち上げれたら就活してないわ。」
ボ「もういいわ、スキンヘッドにするくらいだったら、セットせずに受けるわ」
ツ「最初っからそうしろよ。大体どこ受けんねん。」
ボ「どこかはわからんけど、お母さんが履歴書勝手に出したらしいんよ。それで来週面接ってだけ聞いてんねん。」
ツ「ジャニーズやないかい。髪より顔をどうにかせい。」
ツ「やめさせてもらうわ」
Unityで自作環境での強化学習のやり方
1.はじめに
実行環境
ml-agent:0.13.1
Unity:2019.3.13f1
www.youtube.comhttps://www.youtube.com/watch?v=DoDtGx3B-b8
Unityで初めて強化学習を行う人に対して記述していこうと思います!
参考にした記事はこちらです!
qiita.com
この記事はml-agent:0.11.0だったので、私と同じバージョンの人は少し変更点があります。
ちなみに私の学習結果です↓
2.強化学習とは
強化学習は機械学習の手法の一つです。
教師あり学習とは違いエージェント(制御対象)が自分で制御側を獲得するものです。
エージェントが状態を取得して、行動を選択します。簡単に言えば人間の脳に似ています。
Unityでは「Academy」、「Brain」、「Agent」が大事になってきます。
「Academy」:環境
「Brain」:行動の選択
「Agent」:制御対象
といった感じです。
Unityのネイティブプログラミング言語はC#(あってますか?)なのですが強化学習では最終的にpythonで動かします。(Tensorflowを使いたいから?)
3.インストールするもの
・Unity:2019.3.13f1
・ML-Agents v0.13.1
・Anaconda(Pythonは3.6以降)
4.セッティング
1.Unityを立ち上げプロジェクトを作成
2.「ml-agents-0.13.1\UnitySDK\Agents」内にある「ML-Agents」フォルダを「プロジェクト名\Assets」にコピー
3.「ml-agents-0.13.1」内にある「config」、「ml-agents」、「ml-agents-envs」をプロジェクト名フォルダー内にコピー
5.環境作成
5.1床の作成(Floor)
・「Hierarchy」の「+」マークから「3Dオブジェクト」>「Plane」を選択し平面を出す
・「Inspector」から、「名前」、「Transform」を変更
・色を変更したいときは「Inspector」>「Mesh Renderer」>「Element」から選択
5.2箱の作成(Target)
・「Hierarchy」の「+」マークから「3Dオブジェクト」>「Cube」を選択し立方体を出す
・「Inspector」から、「名前」、「Transform」を変更
5.3球の作成(RollerAgent)
・「Hierarchy」の「+」マークから「3Dオブジェクト」>「Sphere」を選択し球を出す
・「Inspector」から、「名前」、「Transform」を変更
・「Inspector」の一番下にある「Add Comporment」>「RigidBody」を追加
「RigidBody」を追加することでゲームオブジェクトに物理特性によって制御可能になります!
詳しくはこちら
Rigidbody - Unity マニュアル
5.4Academyの作成
・「Hierarchy」の「+」マークから「Create Export」>名前を「Academy」に変更
6.Academyの実装
・「Hierarchy」で「Academy」を選択し、「Add Comporment」>「New Script」で「RollerAcademy.cs」を作成
・「RollerAcademy.cs」を以下に変更
using MLAgents; public class RollerAcademy : Academy{}
7.Agentの実装
・「Hierarchy」で「RollerAgent」を選択し、「Add Comporment」>「New Script」で「RollerAgent.cs」を作成
・「RollerAgent.cs」を以下に変更(詳しいプログラム説明は参考にした記事を見てください!ただしバージョンが違うのでところどころ変わっています)
using UnityEngine; using MLAgents; public class RollerAgent : Agent { Rigidbody rBody; void Start() { rBody = GetComponent<Rigidbody>(); } public Transform Target; public override void AgentReset() { if (this.transform.position.y < 0) { //回転加速度と加速度のリセット this.rBody.angularVelocity = Vector3.zero; this.rBody.velocity = Vector3.zero; //エージェントを初期位置に戻す this.transform.position = new Vector3(0, 0.5f, 0); } //ターゲット再配置 Target.position = new Vector3(Random.value * 8 - 4, 0.5f, Random.value * 8 - 4); } public override void CollectObservations() { // ターゲットとエージェントの位置 AddVectorObs(Target.position); AddVectorObs(this.transform.position); //エージェントの速度 AddVectorObs(rBody.velocity.x); AddVectorObs(rBody.velocity.z); } public float speed = 10; public override void AgentAction(float[] vectorAction) { //行動 Vector3 controlSignal = Vector3.zero; controlSignal.x = vectorAction[0]; controlSignal.z = vectorAction[1]; rBody.AddForce(controlSignal * speed); //報酬 //ボール(エージェント)が動いた距離から箱(ターゲット)への距離を取得 float distanceToTarget = Vector3.Distance(this.transform.position, Target.position); //箱(ターゲット)に到達した場合 if (distanceToTarget < 1.42f) { //報酬を与え完了 SetReward(1.0f); Done(); } //床から落ちた場合 if (this.transform.position.y < 0) { Done(); } } public override float[] Heuristic() { var action = new float[2]; action[0] = Input.GetAxis("Horizontal"); action[1] = Input.GetAxis("Vertical"); return action; } }
8.パラメータ調節
・「Hierarchy」で「RollerAgent(Script)」の項目を変更
・「Add compornent」で「Behavior Parameters(Script)」を追加、項目を変更
・「プロジェクト名>config」内にある「trainer_config.yaml」に以下を付け足す(新しいファイルを作成してもよい)
RollerBall: trainer: ppo batch_size: 10 beta: 5.0e-3 buffer_size: 100 epsilon: 0.2 hidden_units: 128 lambd: 0.95 learning_rate: 3.0e-4 learning_rate_schedule: linear max_steps: 10.0e4 normalize: false num_epoch: 3 num_layers: 2 time_horizon: 64 summary_freq: 10000 use_recurrent: false reward_signals: extrinsic: strength: 1.0 gamma: 0.99
9.実行
ターミナルでプロジェクト名までいき、「mlagents-learn config/書き込んだファイル名 --run-id=id名 --train」で実行
さいごにUnity画面に戻ってPlayを押してみましょう!
学習が終わったら「tensorboard --logdir=summaries --port=6006」と打ち込むと推移グラフをブラウザで見れます!
Arduino でスマートロックを作ってみよう①
家に帰る時、鍵を取り出すのがめんどくさいなと思いませんか?
そこでスマートロックを作ってみようと思います!
機能面の特徴
①暗証番号で開ける
②オートロック機能
③外出時もボタンで開閉
使用したもの
②MG996R
③タクトスイッチ
さて、これらを使った回路図はこちら!
5個のボタンから入力される数字の組み合わせで暗証番号を作成しています。
Enterを押してあっていれば、緑のLEDが点灯し鍵が開く仕組みです。
実際の映像です!
Arduino で暗証番号スマートロックを作ってみた(回路編)
次回は、回路の組み方について詳しく説明します!