理系の人間はなぜ面白くないのか

こんにちは未経験エンジニアのいすいです!

本日は多くの人を敵に回しそうなテーマとなってますが、

長年の疑問にようやく答えが見つかったので、整理も兼ねて書き残させてください。

テーマが結論ではなく、ちゃんとオチがありますので最後まで読んでいただけたら幸いです。

ちなみに本稿はコミュ障改善ノウハウとかはなく、ただの持論のまとめです。
(改善方法もちょっと載せますが)

 

レッツゴーーーーー👉👉👉👉👉

 

面白くないの定義

まず面白くないという発言を弁解させてください。

ここでいう面白くないは友達/同僚との日常会話レベルを指しています。

人間性で言えばむしろ、理系の方が面白い人が多いと思っています。
(怒られないようにここは強調)

私の周りには非常に個性的な人が多いです!
(知り合いには物理の公式を丸3日寝ずに解いたほどの物理オタクがいます)

 

しかし、日常生活でごく一般的な理系の人間と何気ない会話をしている時を考えてください。

理系って真面目すぎませんか?😟

 

理系にもコミュ力53万の人もいたりして例外も多いので、思い切ってペルソナを立てましょう!

 

峰津理 学(ぶつり まなぶ)

物理学科 2年

物理の授業についてくため、毎日放課後授業の復習をして、成績は良い

バイトせず。恋人なし。

 

自分が理系大学にいたときによくいたタイプの人です。

この人はちゃんと大学の授業をついて行けていて優秀です。

そのために努力もできていて素晴らしい人です!

 

でも、そこそこの知り合い同士の飲み会するとき、あまりしゃべれません。面白いことを言わなくちゃいけない雰囲気が苦手です。

もちろん、コメディな人が一番えらくて、面白くない人はだめということはないです。

理系トークは大盛り上がりですし、理系のコミュニティにいる間は何も困りません。

でも、物理を理解できるほど優秀で、努力もできて、頭の良い人のはずなのに、なぜ面白いことが言えないのでしょうか。面白くないということはバラエティある人たちとの交流機会を逃してしまうのではないでしょうか。

これが私が長年答えの見つからなかった疑問なのです。

 

コミュ障がコンプレックス

かくいう私は大学生の時、友達に話題を振られると面白いことが言えず、「頼むから話題を振らないでくれー!」と心で念じるほどのコミュ障でした。(まあ今でもなかなかのコミュ障笑笑)

実は先ほどのペルソナは自分に近かったりします。
(素晴らしい人とか自分で言うな)

とは言え花の大学生。自然と自分のいる環境では面白いことを言ったり、盛り上げたりすることを求められていました。

面白いことが言えないのをずーーーーとコンプレックスになっていました。

 

転機としては、自分がバイトを始めて、サークルで遊ぶことが多くなり、授業をサボり始めた時です。

割と友達との会話に面白いことを言えるようになってきました。

そこで僕は思ったわけです。

勉強ばっかしていたから面白くなかったんだ。。。と

 

そして大学生後半は単位取れればOK精神で留年して、さらに面白くなりました。(皮肉)

ここで思ったのは、コミュ力と勉強は両立できないということ、

特に物理のような頭を120%活用しないと理解できないものは、コミュ力とトレードオフになるということでした。

大学終わりでの結論は、「物理ばっかやっていたから、コミュ障だった。物理を捨てたからコミュ力を手に入れたんだ」というものでした。

 

唯一、プログラミングは理解というより覚えるに近いので、コミュ力とのトレードオフにならないだろうという考えもありつつ、IT業界に就職しました。
(プログラミングが面白かったというのがIT志望の主な理由ですが)

しかし、今年物理学科卒の優秀な後輩が入ってきて、自分の理論が崩れさりました。

その後輩は私の3倍近くのスピードでプログラミングの勉強をしているのに、理解度が私より高かったのです。

完敗しました。自分は物理を捨ててきましたが、その人は物理をちゃんと理解できていたからこそ、プログラミングも凄まじいスピードで習得していったのです。

さらにITで大切なのは覚えるのではなくちゃんと理解することでした。

この出来事がきっかけで自分を改め、自分も物理の勉強の時のようにしっかり理解するように心がけました。

 

2ヶ月後。。。

 

そしたら途端にコミュ障になってしまいました。笑笑

どうしようもなくなりました。

コミュ力を保つべきなのか、プログラミングの理解を優先するべきなのかわからなくなりました。

そもそも物理を捨てた選択は正しかったのだろうか、物理とコミュ力を両立させられる方法はあったのだろうか、を悩み続けました。

悩んで悩んで、出た結論が次のセクションです。

 

理解力とコミュ力は思考が違う

結論は割と当たり前でもしかしたら普通なのかもしれません。

(私にとっては目から鱗に近いのですが)

 

今までは、

物理を理解しようとしてるからその分コミュ力が下がる、

コミュ力を上げようとするから物理が理解できない、

のような因果関係ばかりに目をむけ、
そこには何かお互いがトレードオフになってしまう原因のようなものがあるのではないかと考えていました。

 

しかし、実際はお互いが邪魔しあっていたのではなく、それぞれ全く違う思考法に基づいたもので、トレードオフなんかではなかったのです。

そしてこの結論を受け入れることが自分に必要だと気づきました。

 

次のセクションで具体的に解説します。

 

論理的思考と直感的思考

「物理を理解すること」は論理的思考

「面白いことをいう」は直感的思考に分類されると考えます。

直感的は非論理的の意味で使用します。なので、感情的や物理的という意味も含めます。なんとなく直感的がふさわしい気がするので直感的を使っています。)

論理的思考と直感的思考がどれだけ違うのかというと、

A = Bという関係が前提にあった場合、

論理的思考は「AだからB」のような考え方をし、

直感的思考は「AだからC」というような考え方をします。

わかりますでしょうか。

論理的思考にはA=BだからBを選んだという根拠が見えますが、

直感的思考にはCというそもそも候補に上がっていなかったものが選ばれています。


この例では、論理的思考と直感的思考の違いを明確にするため極端な例にしましたが、それぞれをまとめると、

論理的思考:具体的な根拠がある

直感的思考:具体的な根拠はなく、根拠は直感によるもの

 

「物理を理解すること」と「面白いことを言うこと」に当てはめて考えます。

「物理を理解すること」は分かりやすいですね。

「重力があるからりんごが地面に落ちる」というような「AだからB」を突き詰める作業になります。

 

「コミュ力」は若干しっくり来ないかもしれませんが、人間の会話の好みを考えればわかるかもしれません。

というのは、人は「AだからB」という普通の話を聞いてもあまりおもしろく思わないのです。

人が面白いと感じるのは「AだからC」というCという予想もしていなかった選択がされた時なのです。

具体的に言うと、梅雨の時期に「梅雨だから雨降ってるね」と言っても何も面白くありません。「梅雨だから焼肉食べたいね」と言った方が何倍も面白いです。(面白くねーよと言うツッコミはやめてね)

ここで「梅雨だから焼肉食べたいね」の「梅雨」と「焼肉食べたい」の関係に具体的な根拠はありません。

あるのはこういえば面白いかな?と言う直感による根拠だけです。

(私はいないと思うのですが、根拠があって面白いことを言える人っているのでしょうか?お笑いのノウハウとかではなく、「Aの後にBと言えば、それがAとのギャップになって…うんたら」とちゃんと根拠があってウケてもらえる人)

 

実は「理解すること」と「面白いことを言う」は真逆の思考方なわけですね。

なのに理系の人間は論理的思考を使って会話してしまう傾向にあるわけです。

先に言っておきますが、仕事中は論理的思考をするべきです!

アイデア出しでは直感的思考を使うのもいいですが、最終的に決断するときは論理的思考です。ビジネスもです。

そうでないと、成功した時、失敗した時の根拠が得られません。

 

理系が論理的思考を使ってしまうのには学問としての性かもしれません。

理系と文系の違いを次のセクションで説明します。

 

 

反復可能な知識と反復不可能な知識

この言葉は最近知った東浩紀さんの言葉を引用しています。

↓ひろゆきが論破された動画です。

こちらによると、

物理、化学、地学、医学、工学、等の「学」のつく分野というのは「何度同じことしても同じ結果が返ってくる」という「反復可能な知識」を学ぶこと。

逆に、歴史、思想、言語、これらは「同じことを繰り返しても同じ結果になるとは限らない」「反復不可能な知識」ということ。

つまり、理系は「反復可能な知識」、文系は「反復不可能な知識」という大きな分類で分けられるという主張です。

 

確かに。すごく納得のいく説明ですね。

この分類を応用すると、「反復可能な知識」は完璧に「理解力」を必要とし、「反復不可能な知識」は「直感力」が求められるような気がしてきませんか。

「反復不可能な知識」は理解力も求められますが、

歴史で言えば「感情」、英語で言えば「直感」も必要な感じがします。

 

以上を踏まえると理系は学問的に「理解力」を必要とし、

文系より圧倒的に論理的思考力を使うことが多いことがわかりました。

 

つまり「理系の人間はなぜ面白くないのか」の答えは、

「学問的に論理的思考力を使うことを余儀なくされ、論理的思考力では面白い発言は生まれないから」

です!

 

 

理系のコミュ力アップ方法

原理としては、

理系の勉強だけをしているようでは「論理的思考力」しか鍛えられません。

なので、「直感的思考力」も鍛えるべきです。

鍛え方としては「AだからC」を意識するようにしましょう。

ただこの直感は一朝一夕で身に付くものではありません。

論理的思考は癖がつけば誰でもできるようになるのですが、直感だけは経験でしか培われません。

意外と理系の人間は論理的思考が癖になってて、「AだからC」は難しいですよ。笑

バンコクのカオサン通りで一晩踊れば身に付くのではないでしょうか。

これはまだ自分の中で確信していないことなのですが、一度どっちかに振り切れる必要があるのではないかと考えています。

どういうことかというと、勉強一筋だった人は、勉強を捨てて友達との遊びだけに没頭する時間をある期間実践しないと本当に変われない気はします。

一度振り切れてみるのも楽しいですよ笑

 

 

まとめ

つまりは「理系はいつも根拠のある論理的思考をしているんだから、直感的思考を求められるおもしろいことなんてすぐに出ないよね」ってことです。

「AだからB」だけでなく、「AだからC」のような考え方もしようねという話です。

Progateは復習で使うべし

こんにちは未経験エンジニアのいすいです。

 

本日はプログラミング学習ツールProgateを使っていて思ったことをお話しします。

 

 

HTML&CSSは普通に難しい

プログラミングのきっかけとしてHTML&CSSから始める人がいると思います。

自分もその一人です。

 

それは世間でHTML&CSSが簡単だと言われているからですね。

HTML&CSSはプログラミングじゃないとまで言われています。

ちょっと待ってください。。。。

 

普通にHTML&CSSむずいんですげどーーー!!!!!

あれ、話が違う、、

 

そりゃ、Hello World!と表示するだとか、ボタンを置いたり、フォームを作ったりとかコントロール単体は簡単ですよ?

 

しかし、WebサイトやWebアプリでHTML&CSSを使うとなると急に難しくなります。

 

その場合、全体をバランスを保ちながらHTML&CSSを構築しなくてはならず、例えばタグを一つ増やす、減らすで大きく変化しますし、CSSをいじれば想定していない箇所も変更される可能性があります。

 

つまりは、実践でHTML&CSSを使うとなると、ある程度の技術と経験が必要になるわけです。

 

(pythonとかのプログラミング言語の方が全然楽!)

 

HTML&CSSも舐めてはいけないということを頭に入れながら話を進めます。

 

 

Progateはすごく良い

昔の話ですが、自分はHTML&CSSの学習をProgateから始めました。

(というより、プログラミングの学習自体の最初がProgate)

その時初心者編を受講しましたが、全くできるようにならず、頭に入らず、一度プログラミングから離れました。

 

Progateって例題を解いていくスタイルだと思うのですが、スライドと例題を往復しながら進めるのが結構めんどくさいんですよね。

 

「〜の背景を〜にする」とか書いてあっても、スライドなりネットなりで調べないとわかるわけなく、またスライドに解説がない部分もあるので結構な頻度で解答をみるハメになります。

 

ネットゆえにスライドのどこに何が書いてあったか記憶に定着しづらく、遡るときも大変です。

 

Progateは使えない。これが最初の感想でした。(何様)

 

 

そんなこんなで、Progateでの学習は諦めて、書籍のHTML&CSSを購入し、これを進めました。

いやー、書籍は最高ですね。わかりやすくて、スイスイ覚えられます。

 

HTML&CSSの書籍を2冊読んだ後、JavaScriptやPHP、JQueryなどの学習を経て、

2つのWebアプリを作成しました。

 

このWebアプリ作成時、HTML&CSSの知識はそこそこついていたと思うのですが、実際に自分で作成してみるとほんとに苦戦しました。汗

 

当てたいスタイルが全然うまくいかなかったり、HTMLのメンテナンス性が低かったり、もうゴミのようなコードでした。

(やりたいことはゴリ押しでなんとかできましたが、コードがめちゃくちゃでどこにも手を加えられない状態でした。)

 

そんなこんなで1年ぶりぐらいにProgateをやってみたんですよね。

 

そしたら、めちゃくちゃわかりやすかったんです。笑

 

特に、コードが即プレビューに反映されるので、試したいことをバンバン試せるのがすごく良かったんです。

スライドとかも、「あーそれってそういうことだったんだ」とか「その方法、あの時のWebアプリで使えたな」とか発見も多かったです。

 

有料コンテンツも即登録しました!

 

ある程度知識が増えたからこそ、Progateは最高の学習ツールになりました。

 

 

結論、Progateは復習で使うべし

タイトル回収になります。

結論としては、Progateは初学に向いていないと思います。

もちろん、Progateも学習にはなりますが、最初は書籍から始めた方が効率が良いと個人的には思います。

 

その後、少なくとも1つWebサイトないし、Webアプリを下手くそでいいので自分で作成してみてください。

 

何かの模倣ではなく、一から自分で何かアイデアを出して、設計して、試行錯誤しながら作るのが良いと思います。

 

クオリティは問いません。しかし、自分がここはこうしたいと思うことは妥協せず、調べながらできる限り実装してください。

 

その過程で、HTML&CSSの課題や反省点が生まれてくると思います。

その課題や反省点を頭に入れながら、Progateを受講してください。

 

きっと、Progateの良さに気づくと思います。

【毎日ビジネス格言②】ヒラメ社員はいらない

ヒラメ社員とは、上司の顔色を伺い絶対に反対しない人である。

これには持続的競争優位性と一時的競争優位性というのが関係してくる。

 

 

持続的競争優位性とは

昔は競争優位性が高い企業は、なかなか落ちることはなくその位を維持できたのである。

10年ほど前までのトヨタがそれに該当する。

 

 

一時的競争優位性とは

一時的競争優位性とは持続的競争優位性が終わった今の時代を指す。

現代は廃れ流行りが非常に早い。

一つの事業をとっても賞味期限が短いのである。

 

 

ヒラメ社員が通用しなくなった

昔の持続的競争優位性の時代は同じことをやれば成功した。

そのため、今のやり方を肯定するヒラメ社員というのは評価されたのである。

 

しかし今は一時的競争優位性の時代となり、昔の成功モデルをどんどん変えていく必要ができた。

企業は「何が賞味期限切れを起こしているのか」を素早く察知しなくてはいけなくなったのである。

 

したがって、企業としては素直に事実を認め、変化を受け入れる姿勢が必要になったのである。

Angularで地図を複数表示する(leaflet)

今日はAngularで複数の地図を表示する方法を紹介します。

(とはいえこの方法が必要となるシチュエーションはあまりないのかなとは思います笑。が、必要となった時参考にしてください)

 

地図を表示したい

まず、地図を表示するにはleafletというOpenMapStreetのAngularライブラリを使います。

 

leafletの使い方は以下を参考にしてください。

https://qiita.com/uedayou/items/30f88d88238f648e8ee6

ここから先はleafletは使える前提で話を進めます。

 

 

 

 

複数の地図を表示する

ページに一つだけ地図を表示する場合は何も問題ありません。

 

上記のURLを参考に地図を表示できます。

 

 

問題は地図を複数表示する場合です。

 

複数の地図を表示する場合以下2つのパターンが考えられます。

 

  1. html文に<div id=”map”></map>を地図の数分追加する
  2. 地図を表示するコンポーネントを別で定義し、コンポーネントを地図の数分追加する

 

1番は大丈夫ですが、2番は工夫が必要になります。

 

そもそも何が問題になるかというと、leafletの以下の文

this.map = L.map('map').setView([34.702485,135.495951], 13);

map関数の引数’map’はhtmlの「map」というidの要素を指すことです。

 

map関数はHTMLElement型の引数も受け取れますが、HTMLlElement型の要素は、javascript標準装備のDOM関数document.getElememntById関数でしか取得できません。

 

つまり、htmlのあるidと地図オブジェクトを結びつけているわけです。

 

idは一意なので、複数の地図を表示するにはidを地図分用意しなくてはいけません。

 

 

1番について考えてみましょう。

 

htmlに直接ダグを増やせる場合は問題ないですね。

<div id="map1"></map>
<div id="map2"></map>
<div id="map3"></map>
<div id="map4"></map>
<div id="map5"></map>
<div id="map6"></map>
・・・

上記のようにidを被らないようにするだけです。

 

map関数も地図の数分実行します。

 

 

 

 

問題が起きるケースとは。。。

2番はどうでしょう。

以下のような構造を考えてみます。

 

地図を表示するコンポーネントは別で定義したい。

地図を表示するコンポーネント:map.component.ts

上記コンポーネントを追加するコンポーネント:app.component.ts

表示したい地図の数分app.compoennt.htmlにセレクターを追加すると表示できるはず?

 

 

map.component.ts

import { Component, OnInit } from '@angular/core';

import * as L from 'leaflet';

@Component({
  selector: 'map-component',
  template: '<div class="map" id="map"></div>'
})
export class MapComponent implements OnInit {
    map: any;

    ngOnInit(){
        this.map = L.map('map').setView([34.702485,135.495951], 13);
        L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
        attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
        }).addTo(this.map);
    }
}

 

 

app.component.html

<div class="container">
  <map-component></map-component>
  <map-component></map-component>
  <map-component></map-component>
  <map-component></map-component>
  <map-component></map-component>
  <map-component></map-component>
</div>

 

 

 

実行してみます。

 

左上の一つしか表示されていません。

 

 

これは、6つのdiv要素に同じmapというidが付けられ、6つのマップがmapというidに紐づけられているからです。

 

idは一意なので左上のdiv要素でidが引っかかり、他のdiv要素にマップが結びつけられなかったためだと思われます。

 

 

 

 

解決方法

map.component.tsのクラス変数(静的プロパティ)を利用する方法を紹介します。

 

map.component.tsに以下の赤文字部分を追加します。

 

map.component.ts

import { Component, OnInit } from '@angular/core';

import * as L from 'leaflet';

@Component({
  selector: 'map-component',
  template: '<div class="map" id="map" ・・・①></div>'
})
export class MapComponent implements OnInit {
    static number: number = 0; ・・・②

    map: any;

    ngOnInit(){
        MapComponent.number++; ・・・③
        document.getElementsByClassName('map')[MapComponent.number-1].id = 'map' + MapComponent.number; ・・・④
        this.map = L.map('map' + MapComponent.number ・・・⑤).setView([34.702485,135.495951], 13);
        L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
        attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
        }).addTo(this.map);
    }
}

 

 

id=”map”削除

idに「map+識別番号」を割り振るので削除しておきます。

 

 

static number: number = 0 の追加

静的プロパティを定義します。これでMapComponentのインスタンス作成時に初期化されないプロパティを使用できます。

最初は0を入れておきます。

 

 

MapComponent.number++; の追加

ngOnInitが実行されるたび(MapComponentインスタンスが生成されるたび)に静的プロパティをインクリメント(+1すること)します。

 


document.getElementsByClassName(‘map’)[MapComponent.number-1].id = ‘map’ + MapComponent.number; の追加

document.getElementsByClassName(‘map’)でmapというクラスのhtml要素を全て取得します。ここで所得される要素はElement型の配列です。Element要素はmap関数にそのままぶち込むことはできません。

取得した配列の「MapComponent.number-1」の要素のidに「map○」を設定します。(○は1から始まる整数)

 

①から④のコードで、

<div id="map1"></map>
<div id="map2"></map>
<div id="map3"></map>
<div id="map4"></map>
<div id="map5"></map>
<div id="map6"></map>

のようなidの割り振りになります。

 

 

‘map’ + MapComponent.number 

「map○」を指定してマップ関数を実行します。

 

 

 

実行結果は以下です。

 

6つとも地図が表示されました!(安心)

 

 

 

 

まとめ

今回複数の地図を表示する方法を紹介しました。

 

idを重複しないようにするというだけですが、原因がわからないと時間を食ってしまったところでもあります。

 

みなさんはこちら参考に好きなだけ地図を表示してもらいたいです。

 

 

ちなみに、ViewContainerRefなどで動的にMap.component.tsを追加する場合も今回のような方法で大丈夫です。

 

【毎日ビジネス格言①】何をやらないか決める

「まず何をやらないか決めよ」

これは世界をかける名経営アドバイザーマイケル・ポーターの言葉である。

ポータによると、経営戦略はトレードオフだという。

あちらを立てればこちらが立たなくなるというのである。

確かにそうだ。

例えば北海道のセーコーマートは、大手コンビニチェーン「セブン・ローソン・ファミマ」の勢いを完全に跳ね返している。

それは大手チェーン店と違い、セーコーマートは北海道だけで展開し24時間営業に拘らないが、自社製造で高品質かつ安価を実現し、過疎地域にも出店しているのである。

それが大手コンビニチェーンと差異を生み出し、地元民から圧倒的な指示を得ているのである。

1999年出版のポーターの書籍によると次のように述べられている

「日本企業は、『全てのものを、全ての顧客へ』と考えて、お互いに模倣しあい競走して、改善するだけだ。日本企業には戦略がない。日本企業は戦略を学ぶべきだ」

ここに私の持論を付け足すと、模倣してうまく行くのはブルーオーシャンなマーケットのみだと考える。

(もっともレッドオーシャンでも戦略の取り方によってはブルーに変わると思うが)

昨今でいうYoutuberがその典型であり、5〜6年前なら人気youtuberと同じことをすれば売れたのである。

簡単に考えると、全てを求めようとすると一つ一つが中途半端になり、カスタマーの心に刺さらないということだと思う。

1年目エンジニアはひたすら勉強しろ!

こんにちはお久しぶりです。弱小エンジニアのいすいです。

本日はITベンチャーに入社して1年目を終えた僕が偉そうに新入社員にアドバイスいたします。

特に社会人になって、人生変えたい、頑張りたいと思っている人にはぜひ実践していただきたいです。

1年目はひたすら勉強しろ

まず先に結論からいうと、一年目は勉強に100%時間を振ってもいいかなと思います

もちろん、業務中で100%勉強に使うのは無理です。

会社もそんなことは許しません笑

ただ、空いてる時間を100%勉強に使って欲しいのです。

ここでいう空いてる時間は、業務・寝る・ご飯・遊ぶ(外で友達と遊ぶなど)以外の時間です。

後ほど具体的な時間についてお話しますが、もーとりあえず死に物狂いで勉強したほうがいいです。

一年目が今後の人生の分岐点になると思ってください。

一年目に勉強すべき理由

一年目で勉強を頑張るとメリットがもんのすごいあります。

同期と差がつく

まず第一に同期と差がつきます。入社時に差をつけられていたとしても、差が埋まるか、追い抜きます。

どんな相手でも、あなたが本気を出せば差は必ず縮められます。(差が縮まらないとしたら、相手も死に物狂いでやっているのでしょう。なおさらあなたも死に物狂いでやらないと差をつけられます。)

1年目は意識の差が極端に別れていて、やる気に満ちている人とそんなに頑張りたくない人の2パターンです。

大抵の人は後者で、怠けるパターンです。業務時間外も勉強している人なんてほとんどいないと思ってください。

あなたが勉強の時間を他の人より多く取るだけで、大きなアドバンテージを得ることができるのです。

先輩、上司から一目置かれる

あなたの入社時の能力が低いほど、成長した分あなたの評価が上がります。

中には後輩の成長を妬む嫌な人もいると思いますが、無視してください。

可愛げのある後輩を演じるのも必要な事ですが、演じるだけにしておいてください。

たまに頼っとけばいいんです。それでうまくかわして下さい。

1年目が一番時間がある

おそらく社会人の中で1年目が覚える仕事が一番多いのではないでしょうか。

そりゃ、初めての事なので覚えることは多いです。しかし、大きな仕事や、長期間のプロジェクトを任せられることはありません。

2年目以降になれば何かしらで忙しくなります。

ほんとの意味で忙しくないのは1年目ぐらいなのです。

エンジニアは技術力がものを言う

エンジニアの仕事はプログラミングだけではありません。しかし、プログラミングができないのではあなたの市場価値をあげることができません。まず、エンジニアの基本のプログラミングを底上げするべきなのです。

僕の実体験

僕は完全な未経験でプログラマーになりました。4月〜6月は勉強の期間なのですが、同期の人より1ヶ月早いスピードで勉強を終了させた結果、1ヶ月早くプロジェクト入りし、同期で一番早く開発者を経験できました。

勉強が進んでいると仕事を任せてもらえるというわけです。

具体的な勉強

勉強範囲

とりあえず広く勉強して下さい。

理想は、業務で使う知識:その他 = 7 : 3です。

エンジニアに限れば業務で使わない言語等の勉強を重点的にやって大丈夫です。

勉強の深さ

深さは、一度理解できればOKです。何度も復習する必要はありません。(どうせ忘れるので)引き出しとして持っていれば十分です。

エンジニアに限って言えば、一言語につき、最低2〜3個アウトプットしてみて下さい。アプリでもゲームでもアルゴリズムでも構いません。アウトプットはするほどいいので、アウトプットできそうなのはどんどんアウトプットして下さい。誰かに見せる必要はないと思っているのですが、共有できる人がいると良いかもしれません。

勉強方法

勉強は本で大丈夫です。講習を受けたりスクールに通う必要はないと思っています。

ちなみに、エンジニアの人以外ですと最適な勉強法は自信がないので他のサイトで調べてみて下さい。

留意点

勉強するとき、絶対にいつまでに終わらせるという締め切りを作って下さい。(そうしないといつまでも終わらないので)

自分の場合、プログラミングの技術書だったら2週間ぐらいを目安に終わらせていました。

また、いつまでどれくらいやるのか中期的に決めとくのも大事です。

僕の一年目の4月〜6月は業務も勉強に当てる当てることができたため、10冊以上やりました。

勉強のタイミング

勉強のタイミングは業務・寝る・ご飯・遊ぶ(外で友達と遊ぶなど)以外です。

通勤時間は然り、家でのスマホをいじる時間は勉強に当てて下さい。

まとめ

1年目はほんとにチャンスです。

勉強するだけで市場価値爆上がりです!

Good Luck Engineer life!!

新卒1年目ですでに心が折れそう

こんにちは、未経験エンジニアのいすいです。

今日は今(2021/2/25)の心境をお話したいなと思います。

1つ上の先輩方から漏れなく忙しそう

この一年ITベンチャーで働いてみて(見習いみたいなもんですけど)

確かな感想は、先輩ってすごく大変そうだなということです。

上の先輩になればなるほど仕事量がえぐいです。

自分ももちろん仕事が振られますが、先輩たちは少なくともその5倍は仕事しています。

今の自分の仕事は自分では鬼きついと思っています。

でも先輩たちの仕事はよりきついはずなのに5倍ですよ。

上の先輩ほど遅く退社しています。

やばいですよね。

仕事ができれば楽になると思っていた

それでも社会人になる前は、仕事ができるようになれば仕事が楽になると思っていたんですよね。

実際、学生のころのバイトでは仕事ができるようになってから力の抜き方がわかり、楽できるようになる認識でした。

しかし、社会人は違ったようです。仕事ができるようになればなるほど忙しくなります。

仕事が終わり次第次の仕事が待っています。

さらに、社会人の仕事の大半は目標こそあれ、どこまで完成度を高めれば良いのか分からなくなるのもしばしばです。

社会人の仕事は無限地獄です。仕事の区切りは時間(定時)だけです。

これがすごくストレスに感じるんですよね。

みなさんはどうでしょうか。

未来に希望がない

一年目の最初はこのプログラミングができるようになれば楽できるというモチベーションでやってこれました。

しかし、現実は年齢を重ねるごとに仕事は忙しくなり、帰りも遅くなり、怒られることも増えていくということです。

ああ、

やっていけるのでしょうか。

はい

わかっています。

プロジェクトの責任者になったり、役職が上がったり、大きな仕事を成し遂げた時の達成感がやりがいになって楽しくなってくるっていうことですよね。

でも今はまだその実感が分からないんです。

プログラミングは好きです。でもそこに設計書作り、提案書作り、テスト仕様書作りが入ってきて、それがちゃんとできるのか不安なんです。

漠然とした実感のない不安が常にある感じです。

新卒1年目から2年目ってこんなもんでしょうか。

とはいえ、

いつか楽しくなることを信じて今を頑張るしかないですね。

同じ気持ちの人、漠然とした不安を取り除けるよう一緒に頑張りましょう!!

新卒1年目に必要なメンタル

こんにちは未経験エンジニアのいすいです!

本日は新社会人に向けてぜひ持っておきたいメンタルについてお話したいです。

あくまで自分の直近の感想ではあります。

①向上心

言い換えると積極性なんて言葉になるんですかね。

ぶっちゃけ僕はこれがあれば何とかなるんじゃないかと思います。

新卒1年目なんてわからないことだらけです。

どーーんなに頭が良くても、どんなに勉強してても分からないことが一つもないなんてあり得ません!

それを調べない、聞かない、直さないなんて周りからの評価が下がる原因第一位です。

正直、入社時はビリでいいんです。そこから階段飛ばしで成長しましょう!

学校は向上心がなくても与えられたもこなしているだけで割と評価ももらえるし、勉強もできるようになります。

しかし、会社では与えられることはほんとにないです!!

向上心を持って自分から取りに行かないと成長できません。

これはほんとです!!笑笑

自分の会社は割と新人に優しくて、次の課題を与えてくれる方ですが、与えれられるのを待っている人は評価が高くないです笑

仕事も全然振られていません。すごく差が出るところです。

いやいや俺向上心あっから!なんて思うでしょ?

どんなことにも向上心を持たないといけないんです。

雑用などのやりたくないことにも向上心持って取り組まなくてはいけません。

結構大変です。

そして同期だけでなく先輩にも負けない向上心を持ちましょう。

見下すとか悪い方向で対抗してはだめですよ!笑

あくまで尊敬しつつ絶対超えてやるって思わなくちゃだめです。

あまり積極的に動くのは恥ずかしいなんて思うかもしれないですが、思い切って行動しちゃいましょう!!

②先輩はみんなすごい

先輩にリスペクトを持ちましょう。

入社した時自分は本当に調子に乗っていました。

プログラミングも結構できるようになった気でいて、自分はエリート人材だ!なんて調子に乗っていました。

でも、自分が見ている世界ってほんとに小さいんですよね。

ほんとはもっと馬鹿でかいのに自分が見えてる範囲が世界の全てだなんて思っちゃってるんです。

とりあえず恥をかきたくないなら先輩は自分の何100倍もすごいことを頭に入れときましょう。

③早くやるよりも丁寧に

社会人は長いです。

受験は1年、大学生は4年ですが社会人は50年近くあります。

学生の時はその時間でできることをとりあえず何でもやってきたと思います。

そしてそれは時に雑になったり、中途半端で終わってしまったこともあると思います。

ですが社会人は遅くとも丁寧な方が喜ばれます。

もちろん、納期を超えるなどはあってはなりませんが、早くやって50%の完成度よりは、遅くても90%の完成度(ここがややこしいところで、100%じゃなくてもいいんですよね。ただし凡ミスはNGです)の方がいいんですよね。

社会人になったらミスというのが一番怖いものになります。

数学でよくケアレスミスなんかする人は気をつけたほうが良いと思います。

実は完成度を高める、ミスを減らす方法はシンプルで、何重にもチェックをすることです。

それでもミスするようならチェックの方法を見直しましょう。

まとめ

向上心はほんとに大事です!

また次回の投稿をお楽しみに

新卒の未経験エンジニアがITベンチャー1年目からテレワークで何をするのか

こんにちは未経験エンジニアいすいです

自分はITベンチャー企業に入社してもう少しで新卒2年目を迎えますが、

去年4月に入社して(4月の1週目はまだ緊急事態宣言が出ていませんでしたが、、)すぐにテレワークが始まりました。

コロナがまだ落ち着きを見せない昨今ですが、今年入社する新卒1年目のエンジニアに向けて

自分の経験談をお話して、参考にしていただけたらと思います。

新卒1年目エンジニアの仕事とは

そもそも新卒で入社した未経験エンジニアは1年目にどういったことをするのでしょうか

それは主に以下の3つかと思います(もちろん会社によりますがほとんどの会社は以下ではないでしょうか)

  • プログラミングの勉強
  • プロジェクトのテスト実行者
  • モックアップの作成

1年目の3〜6ヶ月はプログラミングの勉強をすると思います。

その内容も会社によりますが、その会社で使っている言語(自分はC#でした!)の習得、ネットワーク(TCP/IPなど)の知識、サーバーサイド(Webサーバーやデータベースなど)の知識&設置方法などなどかなと思います。

勉強の節目に課題(簡単なアプリの作成など)を出されるかと思います。

そして勉強が一通り終わるとプロジェクトのメンバーに入れられます。

とはいえテスト実行者(テスト仕様書を元に操作して仕様どおりに動くか確認する人)なので、プログラミングをすることはありません。

そしてテスト実行者も落ち着き、勉強もある程度完了したらモックアップ(本契約した案件ではなく、試作品として先方に提案する用のプロジェクト)のエンジニアに配属されるかもしれません。

注意点としてはこれらは全て行わない可能性もあり、案件がなければ1年目が勉強だけで終わる可能性もあります。もしくは全て並行して行う可能性もあります。その他にも簡単なプログラム作成やパソコンの修理、資料作成は振られることがあります。

いすいの1年間のスケジュール

じゃあ自分はどうだったのかというと、やったことは上の見出しのとさして変わりません。

1年間は以下のスケジュールでした。

4月1日〜4月5日 出社(本を渡されてずっとその勉強)

4月6日〜6月中旬 在宅(勉強&課題)

6月中旬〜2021年1月 テスト実行者

2021年2月〜現在 モックアップのエンジニア

多分、自分は割と早くことが進んでる方なのかなーと思います笑

6月中旬からのテスト実行者は上司から出された課題と並行して行っていました。

また、10月〜12月はテスト実行者と並行しながらWebアプリの作成なんかも行っていました。

結局テレワークだったのは4月から6月中旬くらいまでですね。

今は1月からずっとテレワークですが、、

やっていることは先輩たちも出社の時と変わらないみたいです。

テレワークの注意点

テレワークは正直自分のペースでできるので楽です。

周りの目も気にしなくて済みます。

しかし、一年目の新人は注意が必要です。

少し前まで学生だったのに社会人の意識を持ち続けるのは非常に大変です。

最初の2週間はきちんとできますが、その後はサボりぎみになります。

勉強しているだけなのでサボろうと思えばいくらでもサボれるんですよね。

でも最近のチャットアプリ(teamsなど)なんかは一定時間操作していないと離席中表示になってしまいます。

それで怒られたことはないですが、サボっているとバレます。

また、自分なんかは昼寝している時に上司の電話に気づかず、30分後にでて怒られました。笑

休憩は必要なので、いつでも対応できるようにしながら休みましょう!

まとめ

1年目の最初は大概勉強です。(言い方を変えると研修?)

テレワークになっても変わらないと思います。

その後プロジェクトにアサインされるかはあなたか上司か会社次第になります。

とりあえず、無理難題な仕事をテレワークで最初から振られることはないので安心してください。

ではまた次の投稿をお待ちください

新卒1年目そろそろ終わるやん

こんにちはこんばんわ未経験エンジニアのいすいです😀

もう2月ですね。

まだ投稿5個目ほどですが、あと2ヶ月で新卒1年目が終わります。

やばいやばい

あっとゆうますぎて髪の毛の後退に気づけなかったぜ

あー後輩が入ってくるー

いつかはどうやったって後輩が入ってくるが、あと2ヶ月なんて😱

このまま先輩になれるのかしら

この間まで社会人の基礎のきで怒られてたっていうのに

何を後輩に教えられるのか

逆に教えて欲しいよ

新卒1年目で急成長して、エンジニアとして一人前になってやるなんて一丁前に思ってたけど無理やな

諦めるとかではなく、プログラミングなんて1年そこそこで身に付くもんじゃないし、業務だってあるし、プログラミングの技術力だけが大切な訳じゃなし

そもそもプログラミングができるようになる速さなんて未経験エンジニアには求められてないのかもなー

ひろゆきさんも「エンジニアはプログラミング言語の習得の早さは決して重要ではない。むしろ間違えないってことの方が大事」なんて言ってたし

今自分でもその通りに思うし、社会人になって仕事で大事なことって簡単なことは100回やって100回成功することなんだって

大学生までは本気で勘違いしてた

大学生までは100回中99回間違えても1回大きく成功すればその人は優秀だと思っていたけど、違うみたい

例えば、東大入試の数学解けるけど計算ミスが多い人よりは、大学入試の数学は解けないけど計算ミスだけは絶対にしないような人が仕事では重宝されるように思う

まあ営業とか起業家はちょっと違うかもしれないけどね

ここで言っているのは簡単なことでミスするなってこと

信用は勝ち取るのはほんとに大変だけど、信用を失うのって一瞬なんだよね

信用が失われるのって、簡単なミスを自分が軽視した時だと思うんだよね

大きい成果をあげられる人でも、「この人はよく簡単なところでミスするからこの仕事任せるの怖いな」なんて思われてたら仕事が降りてこないのよ

逆に「この人は絶対計算ミスしないから安心してこの仕事任せられる」なんて思われたりするのよね

まあつまりはこの1年で学んだことは、業務中のミスは小さかろうが大きかろうが避けるべきであるということ

小さいミスも軽視してはいけない

実は会社から見ればそれが大きなミスかもしれないし、ミスが積もって大きなトラブルにつながるかもしれないから

まとめると

残り2ヶ月は以下に取り組もうかな

・自作中のWebアプリケーションを完成させる

・配属中のプロジェクトを頑張る(テスト実行者として)

・node.js、vue.js、angular.js、swiftを一通り勉強する

ほんとはJavaやRuby、react、laravel、ネットワークの勉強もやりたかったけど、時間的に厳しそう

PAGE TOP