【エンジニア】非エンジニアがエンジニアになるために悪戦苦闘している話この広告は、90日以上更新していないブログに表示しています。成長記録TwitterGoogle+Pocketはじめに僕はエンジニアとして仕事を(職に就いているという意味で)しています。現場ではまだまだ力不足でコミットできず、パワーも時間もすごくかかってしまっています。そんな中研修を受けながら、技術力・理解力ともに上げるフェーズを今踏んでいるのですが、かなり苦戦しています。苦戦の内訳としては、理解力が深まらない⇛情報収集能力が低いことが露呈⇛組めるけど、ロジックを完全に理解できていないという負のレールの上を走っています。そこで、今回1つずつ理解を深めるためにどのようにすればいいのか、そして同じようにエンジニアリング力であったり、エンジニアと会話をするために必要なノウハウを発掘していきたいと思います。まともにしていません。その結果コツコツと暗記したり、考えたりすることが苦手どころか、机に向うことがまず苦手です。場所を選ばずに学べるところで好きなように自由にスキルを習得してきてしまいました。メリットとしては適応能力が少し上がったことと、OJTでのスキル習得は速いです。地道に基礎から習得するスキルが逆に乏しくなってしまいました。そのため、まずは勉強をするためのマインドセットとそのために必要なモノをリストアップしてみました。モチベーションが上がる環境を作り出すモチベーションが上がるための道具を使うモチベーションが持続する時間を算出するなにがモチベーションを上げるか考察&洗い出す1つに集中してやり遂げることに集中するこれぐらいかな?なにかあれば、追記します。これらの項目についてそれぞれお話していきながら、まずエンジニアとはなんなのかの定義についても話していきたいと思います。エンジニアに必要な能力とコーダーとの違いのお話まず、エンジニアの技術力(能力)とはについて、とあるツイートを見たので、それを参考に考察してみたいと思います。4つに分解できるというツイートがありました。これをベースに考えてみると、自分で考えて自分で進んでいける者がエンジニアとしてやっていけるイメージを持てます。僕の仕方は様々ですが、Googleにお世話になるのは変わりないのですが、そこから先が結構ハードル高いです。わからない原因であったりエラーが有る場合、それを突き止めるのに様々なプラットフォームを回ります。最近良く使うのが、Qiitaです。1年以上前に更新された記事でもコアな部分は変わっていないProblemもあったりするので、コチラよく読んでいます。Qiitaと同時に使っているのが、そのProblemとなっているフレームワークなり、言語なりの公式ドキュメントです。公式ドキュメントを見れば大抵のことは書いてあります。先輩に言われたことを思い出しながら、ひたすら読み漁ります。情報を収集したって意味が無いので、網羅するためにもFeedly使ったりして、日常的に情報が入ってくるようにしています。インプットした情報を、更に自分でまとめて何が必要で何が不要なのかも取捨選択しながら、情報を整理しています。問題として挙げられるのは、情報が古くなってしまった場合どうする問題です。情報は古くなるものですが、それをまとめておくのは大事なことだなと感じております。僕個人としては情報は整理して、ノートなり、オンラインドキュメントとして管理しています。分析能力これは、問題が発生したとき、バグが発生した時に何が原因なのかを突き止める能力ですね。僕はこれが非常に不得意です。原因究明が不得意が故、なんで動かないのだろう?なんで○○の機能が作動しないのだろう・・・。といつも悩んで時間を取られています。時間を奪われるのが非常にコスパとして悪く、非常に無駄が多いです。この部分のスキルを重点的に上げていきたいと考えています。どのようにすればいいのか?ということに関してはそれぞれに対して下部に書きたいと思います。コーディング力これはひたすら真似をして、レビューをしてもらい、コピーアンドペーストから、コードアンドレビューに切り替えていくことが必要ですね。あとは、GitGistなどを見て、他の人の同じ言語で書き方の違いなどを学ぶといいと思います。僕はそのようにして、書き方を少しずつですが、納得できるコードが書けるようになってきました。何が一番自分に向いているかはわかりませんが、書籍で学んだほうが僕はやりやすかったので、書籍を開いて、ペンとノートでサマライズを書いて、あとから見直しながら、手を動かしてコードを書いています。夜間は頭が動かないので、昼間にやれるところまでやっています。推進力これも僕に足りていないスキルの1つです。自らドブの中に頭を突っ込んでいく必要があるのに、頭いっぱいになってそれどころではなくなってしまいます。推進力を上げるために僕がしている事例も下部に書きますが、推進力とはそもそもなんなのかが非常にキーになってくると思います。企業によって違ったり、社風によって違ったりというのは部署によって違ったりもすると思います。人を巻き込んで物事をゴールに向けて走らせる、走るというスキルは今後生きるために必要になってくると思います。推進力・・・なかなか難しいですが身につけたいです。これらを習得するためのモチベーションの維持モチベーションの維持のためにやっていることは、単純です。環境を自分にあっているように整えているだけです。Journalというものを作って、その日毎の目標であったりやったことをまとめています。上記のブログに詳しく作り方、マネジメントの仕方などが詳しく丁寧に書いてあります。手帳の見直しこちらも非常にわかりやすく書いてあるのでオススメです。そもそもどういうものなのかは以下の動画をご覧ください。Journalを作り始めるところから、僕のエンジニアへの道は始まりました。Journalだったというだけです。モチベーションの維持の方法は個人でそれぞれあると思います。そのためにやることとして、モチベーションが上がる環境を作り出すモチベーションが上がるための道具を使うモチベーションが持続する時間を算出するなにがモチベーションを上げるか考察&洗い出す1つに集中してやり遂げることに集中すると挙げましたが、環境はオフィスならオフィスで仕方がないので、その中で音楽を聞きながらなのか?、それとも、会議室にこもるなのか?と様々だと思います。僕の場合は音楽聞いて外の音をシャットアウトした上で、本とノートを開いて、黙々とやっています。Journalが楽しく出来るようなノートを使っています。持続する時間は始める時間を記録して、次時計を見るまでの時間ですね。それが僕の集中している時間だと思います。モチベーションの上げ方、上がる瞬間はたいていわかった!これは楽しぞ!となった瞬間が一番集中していますということに気づいたので、その瞬間を作ることにフォーカスしています。あれこれやろうとせずに、1つに集中してやっています。ツールも同じであれこれ使おうとするとややこしくなります。効率よくするためにはどうすればいいのかを考えることはLazyになってはダメですけど、どうやれば・どうすれば楽できるかを考える必要はあります。分析能力と推進力をアップするためにしていること分析能力はひたすら分析です。わからなければ調べる。それを繰り返すしかありません。徐々にスピードが上がっていくことに期待しながら、ひたすら調べて壁にぶち当たります。何個か壁にぶつかると、超え方がわかってくるので、なんとなくマスターしてきます。パターン化が見えてくるので、そのパターンに沿って解決していくと何通りかのストックが出来るので便利ですよ。僕はそれで「今回は前回のあれに似ているからこうかな?」というのがだいぶわかってきました。推進力をアップするためには、とにかく実力をつけることだと思います。相手を巻き込むためには自分の信頼銀行に預金がないと厳しいと感じています。僕は貯蓄マイナスなので、そのあたり厳しいと感じています。周りからどう思われているかもわからない、というのも危険です。ヒアリングして、自分はどう見えているのかを認識することはとても大切だと感じました。さいごに今後もエンジニアになるべく、もっともっと修行が必要ですが、その過程でぶつかること多々あると思います。1つずつ着実に解決できるよう、そして応用できるよう精進していきたいと思います。人間いつでも考えている時があります。5月も24日になってしまいました。/CSS貧乏エンジニアA-SKが愛車のトヨタ86を改造するために稼ぐHowToを惜しみなく公開するブログ。【Note】遂に方向性が確定いたしました!のご報告!【Note】言葉の暴力と身体的暴力の考察をしてみる【HXエンジニア】noteでマガジン始めました。(1)広告はてなブログをはじめよう!eisukenakanishiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。