読者です 読者をやめる 読者になる 読者になる

ニックネーム募集中

考えたこととかいろいろ。

【エンジニアが勧める】これからプログラミングを始める人がまずはじめにやるべきこと

ちらほらと周りにもプログラミングに興味を持っている人が増えてきましたが、
多くの人は何からやるべきかわからないそうな感じがします。
何からやるべきかわからないと言うより、始めることに躊躇しているような印象があります。

実際に私も勉強を始めるときはプログラミングに対して壁を感じました。

プログラミングを始める時の壁

やりたいと思っていてもできないのには理由がありますが、
基本的には「お金」と「時間」と「心理的なハードル」の3つに集約されるかなと思っています。
そのため、この3つの壁を乗り越えてプログラミングの勉強を始めるための方法についてまとめます。

最初にやるべきこと

結論からい言うと、まずはコードを書いてみるということが重要だと思います。
(実際に手を動かしてプログラミングを行なってみるということです。)

3つの心理的なハードルの中で一番厄介なのが「心理的なハードル」です。
プログラミングに関しては、最近は無料のサイトでもかなりレベルの高いものもありますし、
サイトなら自分で時間を決められるので、1日10分からでも始められます。
そのためお金と時間を理由に勉強を始めない人は、お金があっても時間があってもおそらく始めないと思います。

ただ、「心理的なハードル」は実際に「できる」もしくは「できるかもしれない」と感じないとおそらく超えることはできません。
「できる」もしくは「できるかもしれない」と感じるためには、
情報を集めてできる気になるのも選択肢としてはあるのですが、実際に手を動かしてみて感じたほうが格段に早いです。

そして簡単なHTMLであれば5分もかからずに書けてしまいます。
このたった5分の間にプログラムに触れるという最初のハードルを超えてしまうことがまずは重要なのではないかと思います。
プログラムに触れない限りは本当の難しさや楽しさといったものは何もわかりません。

私がプログラミングを勉強しようと思った時も、難しそうとか大学で勉強してないからとかそのような理由で始められずにいました。
ただ、私が実際に最初にやってみて思ったのは、難しいけど「思ってたよりもできた」ということでした。

プログラミングってパソコンが大好きなオタクじゃないとできないようなものかと正直思っていたのですが
全くそんなことはないということにやってみて初めて気がつきました。

身近なスポーツで考えるとわかりやすいと思います。
周りに野球をやりたいけど体力がないし難しそうだから始めようか迷っているような人がいたら
とりあえずバッティングセンター行ってみろよとかキャッチボールやってみろよとか思わないでしょうか。笑

実際に何をやったら良いか

個人的には、お金をかけずに多少時間をかけて、心理的なハードルを下げるということをしたほうが良いかなと思います。
その上で、もっとやってみたいのか、もうやりたくないのかを考えてみても良いかもしれません。
やってみたいと思うのであれば、さらに時間をかけて(必要があればお金も)学習を進めるのが良いと思います。

無料のプログラミング学習サイトでオススメのなのがProgateです。
Progateに関しては以前記事を書いたので詳しくはこちらをご覧ください。

www.fbunty.com

Progateはパソコンさえあれば無料で始められます。
プログラミングを始めたいけどパソコンがないという人はさすがに買った方が良いですが…。笑
一部有料のコースもあるため、さらに学習を進めたい場合にはこちらを有料にしてみても良いかもしれません。

他にも無料のサイトはたくさんありますし、知人に教えてもらっても良いので、興味を持ったらまずは手を動かしてみる。
プログラミングに限ったことではありませんが、ぜひその上で物事を判断してみてください。

就活生はリクナビ・マイナビ以外にも就活サイトを使った方が良い

街中を歩いていると、何人もリクルートスーツを着ている人を見かけるようになりました。

私が就活をしていた時もそうでしたが、みんなリクナビとかマイナビにしか
登録していない人が多くてもったいないと思います。

かく言う私もリクナビマイナビには登録をしていましたが、
万人向けすぎるサイトであるなと感じていました。

なんでも載っているからこそ、
リクナビもしくはマイナビ一つで事足りてしまように感じますが、
実際には自分の方向性がある程度決まったらより、
その方向性に特化したものを使用した方が効率的に進められると思います。

そこでいくつかオススメのサイトと、
特化した就活したサイトを使用した方が理由について書いてみたいと思います。

特化した就活サイトを使った方が良い理由

1. リクナビマイナビに載せてない企業も多い

大手とかは別ですが、中小企業やベンチャー企業などは リクナビなどに載せていないことも多いです。

例えば広告業界に興味がある!みたいな場合には、 広告業界に特化した就活サイトを使うことで リクナビにも載っていない企業を見つけることができます。

2. 同じような方向性・境遇の人と繋がれる

わかりやすい話ですが、広告業界に特化した就活サイトを
使っている人は広告業界に興味がある人が多いです。 また、体育会に特化しているサイトを使っている人はもちろん体育会の人が多いです。 そのように特化したサイトから申し込むイベントは
当たり前のように似たような境遇の人が集まってきます。

自分が受けようと思っている企業の選考を既に受けていたり、
自分が知らない企業についての話を聞けるなど同じような境遇の人と
協力をするとかなり効率よく進めることができます。 これはどんな学生と話をしてもそうなのですが、同じ方向性だからこそ、
自分にとって価値のある情報となる可能性が高いと身を持って体感しました。

3. その業界に詳しい人社会人と関われる可能性が高い

いくつか使ってみて感じたことは、就活サイトを運営している会社の人からもらえるアドバイスは、
的確なものが多いと思いました。(リクナビマイナビはありませんでしたが)
ある程度特化した就活サイトだと、採用する側される側に何かしらの共通項があります。

例えばベンチャー企業の採用とベンチャー企業に入りたい学生などなど。
この例でいうと就活サイトの中の人は、多くのベンチャー企業を見てきていますし、
ベンチャー企業に入りたい学生を多くみてきています。 会社・学生の成功した例も失敗した例も見てきているため、
比較的どんな内容にも的確に答えてくれるという印象がありました。

私の場合では100以下の規模の会社を探していたため、 この規模の会社に入るメリットやリスク、企業の見極め方からその後のキャリアについてまでを
幅広くアドバイスしてもらうことができました。

オススメの就活サイト

Goodfind

Goodfindについてはどんな方向性の学生もセミナーぐらいは行った方が良いですね! 先に言っておくと他の就活サイトに比べて参加する学生の質は高いですし講師の質ももちろん高いです。
ただ、語り出すと長くなってしまいそうなので、また後日まとめたいと思います…。笑

www.goodfind.jp

パッションナビ

パッションナビはベンチャー企業に特化した就活サイトです。
このサイトの良いところは、起業家と直接あって話せる機会が多いというところだと思います。
何回か説明会に参加したことがありますが、まず間違いなく社長が出て来ます。

また、どこの企業も就活解禁のかなり前から説明会を実施しています。
そのため方向性が決まっていない人はまず最初に使ってみてほしいです。
基本私服OKな印象なので学校帰りにさらっといけます。
私は早い段階で起業家の話を直接聞き、初めて仕事って楽しそうと思えるようになりました。
社会人になると起業家と直接話す機会は減ってしまうので、ぜひ興味ないよーって人もぜひ!

www.passion-navi.com

検索して見ると結構出て来る

オススメが若干ベンチャーよりになってしまったのですが、
そうでない人も検索をしてみると結構いろんなサイトが出てきます。 「(興味のある分野) 就活サイト」とか「(特徴) 就活サイト」で検索をしてみてください。
例えば「ベンチャー 就活サイト」とか「体育会 就活サイト」のような感じです。

こんな感じで自分にあったサイトを見つけられると進めやすくなるますし、
同じような方向性を考えている人や悩みを抱えた人とも出会える可能性が高くなります。
私は就活時代に知り合った人と今でもご飯に行ったり飲みに行ったりとしています。
そこでの出会いもこれから続くことになるかもしれませんし貴重なものだと思ってぜひチャレンジしてみてください。

プログラミングの勉強で挫折しそうになったらteratailで質問しよう!

プログラミングをやっていて「意味のわからないエラーが起きた」

「原因がわかったけど対応策がわからない」など、

挫折しそうになってしまったことはないでしょうか。

 

勉強を始めたての時はこのような状況に

どう対処したら良いかわからずにかなり苦戦をしました。

そんな時になんどもお世話になったサイトを紹介したいと思います。

 

teratailとは

レバレジーズさんが運営しているプログラミング専門のQ&Aサイトです。 

日本語でのやり取りが多いので、とても日本人としては使いやすいと思います。

 

teratail.com

teratailを実際に使ってみて

広告で最短〜秒って書いてありますが、

もちろん実際にそんな早くくることはないと思った方が良いです。笑

ただ自分は使ってみて1日もしないで回答があるような気がします。

とはいえ回答があったからと言ってそれで解決ができるとは限らないので、

それも踏まえた上で使用をした方が良なと感じました。

 

teratailを有効に使うには

この手のサイトは会う程度のコツを抑えないと、

うまく自分の勉強に取り入れられないと思います。

 

1. 聞くタイミング

わからなかったらとりあえず早くきく。基本的にはそのスタンスです。

考えて考えてどうしてもわからなくて聞くというスタンスもありだと思いますが、

回答が集まるまでに時間がかかるため、ある程度早い段階で聞いておいたほうが良いです。

もちろん調べればすぐにわかることを聞くのは、

お互いにメリットはありませんのでご注意ください。

 2. 何を試したか明確にするべき

最初の方はこれがわからない!って感じで質問をしてました…。

そうすると回答の中にはすでに試したよというものもあり、

お互いに無駄な時間をとってしまったと思います。

(特に検索して上位にくるサイトなどは参照されやすいです。)

 

それを回避するためにはAとBは試したけどできなかったということを

先に伝えておくと良いと思います。

そうすることで回答する側としてはCを提示するか、

Aでできるはずだからおそらくやり方がおかしいのではないか?

と言ったことが言えるようになります。 

3. 何をしたいのか明確にするべき

こういうエラーが起きたけど原因がわからない…。という時に

①「BをやったらCというエラーが起きたけど解決ができない」

②「AをやりたいのでBをやったらCというエラーが起きたけど解決ができない」

 

①に比べて②は何をやるためにBということをやったのかを踏まえて質問をしています。

このような聞き方をするとAを達成するための手段として、

Bが妥当であるのかということまで考慮した回答をもらえることがありました。

たしかにAを達成するためのBをやろうとしていると合わせて伝えてもらえると、

より回答をする側としてはアドバイスがしやすくなるなと思います。

ブルーライトをカットしたいならメガネよりもfluxがオススメ

長時間仕事でPCをみていると、かなり目が疲れてしまうことが多いと思います。

適度に休憩をしたり目を温めたりと、何かしらの対応をする前に

ぜひfluxを使ってPCのブルーライトをカットしてみてください!

fluxとは

PCやスマホなどのディスプレイのブルーライトをカットしてくれる無料のアプリです。

iPhoneについているNight Shiftをオンにしている状態のようなイメージです!

Windows,Macどちらでもインストール可能となっています。

下記のサイトからインストール可能です。

 

justgetflux.com

 

 

fluxは使い勝手が良い

ブルーライトカットのメガネも使ったことがありますが、

fluxとの一番の違いはブルーライトの削減量を調整できることだと思いました。

 

ブルーライトカットのメガネだと、削減量が常に一定なのがマイナスポイントだと思います。

私の場合はネットで買ってしまったので、もう少しカットしてくれよ!

となってしまいました。

 

それに比べて、fluxだと下の写真のようにタブで削減する量を調節できます。

また、時間帯に応じて自動でブルーライトの量を調整してくれる機能もあります。

 

私は基本的にはかなりの量を削減して、動画や写真のように

なるべくそのままの色でみたい時にはあまり削減しないように調節しています。

 

f:id:dhate:20170417000315p:plain

 

ちなみに最大で画面が赤みがかるまでブルーライトを削減できます。

そこまでいくとブルーライトのカットどころではありませんが・・・

全然ブルーライトがカットできない!という状態は絶対に避けられると思います。

 

また、慣れて来るとどんどんカットしたくなるので、

他の人から見ると画面の色おかしくね?となってしまいます。笑

 

デメリット

かなりブルーライトをカットしてくれるので、

ブルーライトがカットされていない画面をみると目が痛くなります。

(その時は画面を暗くして対応していますが・・・)

 

これは他のブログにも書いてありましたので、

おそらくfluxを使用している多くの人が抱えているのかもしれません。

あとはデバイスに応じてfluxを入れないといけないのが面倒です。

また、会社によっては会社のPCに勝手に入れてはいけないところもあるかもしれません。

 

 

とはいえ長時間見るデバイス1つに入れておくだけで

効果は出ると思いますので、ぜひ試してみてください。

結構便利なのですがあまり知られていないので、

もし効果があったら 他の人にも勧めて あげてほしいです!

初心者がプログラミングを始める時にオススメのサイト「Progate」

少しずつプログラミングを始める人も増えてきていますが、

「何から始めれば良いかわからない」「興味はあるけど少しハードルが高そうで・・・」

という話もちらほらと聞きます。

私も今はエンジニアとして働いていますが、最初に勉強するときはとても困りました。

 

初心者向けと書いてあっても、自分にはわからない時とかは

プログラミング向いてないなとなってしまいますよね。

私が様々なサイトをみてきた中で、一番初心者がプログラミングの勉強を

始める障害の少ないと感じたサイトについて紹介したいと思います。

 

この記事を読んでいただければ、

どんな順序で勉強を進めれば良いかもわかるかと思います。

 

 初心者にオススメのサイト「Progate」

パソコンとprogateのアカウントさえ作成すれば勉強を始めることができます。

prog-8.com

 

一部有料となっていますが、無料でも十分勉強を行うことができます。  

月に1000円ですべてのレッスンが利用可能になります。

ざっくりと「Progate」の良い点を挙げると下記の3つ!!

・インプットとアウトプットのバランス(学んだことをすぐに手を動かして行う設計)

・親しみやすいデザイン

・学習のすすめやすさ(環境構築がないなど)

 

他の無料のサイトに比べると上記の3点は圧倒的です。(たぶんずば抜けてる)

開発を行う環境を作る必要もありませんし、

何かをインストールする必要もありません。

 

 

f:id:dhate:20170416192441p:plain

 

f:id:dhate:20170416192318p:plain

 

  

とはいえ何から始めるべきか

サイトを開いてみるとレッスンが全部で11つもあります。

下にレッスンごとの分類分けをしました。 

 

フロントエンド(見た目の部分)

HTML&CSSJavaScriptjQuery(JavaScriptを勉強していないとできません)

 

サーバーサイド(裏側の処理)

RubyRuby on rails(Rubyを勉強していないとできません)、PHPJavaPython

 

iOS(iPhoneアプリ)

Swift

 

その他(開発を行うために便利なもの)

Command Line、Git

 

 

iPhoneアプリを作りたい人は

1. Swift

2. Command Line

3. Git

 

それ以外の人は全て

1. HTML&CSS

2. JavaScript

3. jQuery

4. サーバーサイド言語を一つ

 

こんな感じでしょうか。上から順番じゃんと思うかもしれませんがその通りです。笑

おそらくネットで調べるとやりたいことによって言語を選ぼうとか出てくると思います。

 

しかし、それはやったことないスポーツでいきなり

どこのポジションをやるかを決めるようなものですので、

まずは上記の流れでやってみるのが良いでしょう。

できることが増えればやりたいことも選択肢も自然と増えてくると思います。

 

サーバーサイドは何をやるべきか 

実際に会社によって使う言語は違いますし、同じ会社でもプロダクトによって違います。

相当特殊な言語でない限り、rubyで開発を行なっている会社も多ければ

PHPで開発を行なっている会社も多いです。

検索してもたくさんの情報が出てきます。

 

そのためなんでも良いといえばなんでも良いのですが、それだと迷ってしまいますよね。笑

 

そこで下記の基準で判断をすると良いと思います。

 

1. 周りにプログラミングをやっている人がいて質問ができるのであれば、同じ言語を選択する

これは学習のしやすさからです。

でも、その前にこの言語始めようと思うんだけどって話をした方が良いです。

 

 2. エンジニアとして就職したい会社があるのであれば、どんな言語を使っているのか調べる

絶対サイバー行きたいぜーとかそういう人だけですが。笑

たぶん勉強をしていくと方向性も変わってくるかもしれませんが、ひとまずは調べてみるのはありかなと。

求人をみるとか「会社名 開発言語」とかで出てくるかと思います。

 

3. 迷ったらrubyPHP

初心者でも始めやすい言語です。

PHPを使っている人は多いですし、最近はrubyも流行っています。

テックキャンプなんかが流行っていますが、

テックキャンプではrubyを使って教えています。

そのためrubyでもやっておくと、その後テックキャンプ行きたい!

とかなった時に良いかもしれないですね。

 

Progateが終わったら

Progateが終わる頃にはある程度の知識は身についているかもしれません。

まだまだコードは書けないレベルでも、ある程度プログラミングって

こんな感じかと思えている頃でしょう。

 

そのタイミングでどんな言語を本格的にやっていくのか、

どんな方向性に進むのか(web?アプリ?)など考えてみるよ良いと思います。

もちろんエンジニアに向かないと判断するのもありだと思います。

 

テックキャンプのようにお金を払って勉強するのも良いですし、

学生でしたらITベンチャーインターンにいくのが一番実力がつくでしょう。

エンジニアとしての一歩目を頑張って踏み出してください!

 

社会人の勉強は、アウトプットがゴール

1年くらい前に入社1年めの教科書を読みましたが、最近タイトルに書いた

「社会人の勉強は、アウトプットがゴール」にとても共感しました。

 

一言で言うと
勉強をしていたつもりでしたが、いざアウトプットが必要な場面で出てこない
という状況が起きてしまったからです。

そこでなぜ「社会人の勉強は、アウトプットがゴール」なのかを考えてみました。

 

頑張っているだけでは評価はされない

まずは社会人というところにフォーカスしてみると、

社会人の評価=お金になる場合がほとんどです。


そうすると当たり前ですがあいつは凄い頑張っているから評価しようとはならず、

どんな結果を出したかで評価をされます。
(もちろん人が評価をするのでその印象で評価が分かれることもありますが)


どんなに多くのインプットをしていても、アウトプットの質が低い以上は

評価がされるということは少なくなってしまうでしょう。


評価されるために勉強をしているのではないと思う方もいるかと思いますが、

あくまでこの本の存在意義を考えると入社1年目にフォーカスしているため、

まずは社会人として評価されるということが大切になってくるかと思います。

 

PDCAを回せない 

実際に多くのインプットをしたとしても、それが今後必要となる知識なのか、

もしくは正しく解釈をしているのかがわかりません。

例えば営業をするためにたくさんインプットをしたとしても、

それを実際に使ってみないと実際に使えってみないとわからないと思います。

もしかしたら新規の営業では使えるけど、

既存顧客に対して営業を行っている場合にはあまり効果がないかもしれません。

 

さらに言うと、営業の勉強をした場合には

先輩などにその知識をアウトプットしてフィードバックをもらうのが良いでしょう。

つまり勉強の中でアウトプットをするということです。

そうすることでそれに対してフィードバックがもらうことで、

さらにどんなインプットをするべきかわかると思います。


学生の時は答えがあるものをインプットする機会が多かったですし、

定期的にテストがあって無理やりにでもアウトプットをする機会がありました。

しかし、社会人は自分で意識して作らないとアウトプットの機会は多くありません。


そうすると仕事でアウトプットが必要な時に

うまくアウトプットできないということになり評価に繋がらなくなってしまいます。


そうさせないために勉強の段階でアウトプットを行っておきPDCAを回し、

いつでもアウトプットできる状態を作っておくということが

社会人としては必要になると思います。

 

量、質ともに優れた勉強になる

1アウトプットするために1インプットでは足りないと思います。

1回見ただけでアウトプットできるようになるないため、

アウトプットをするためにいろいろな記事を読んだり本を読んだり、

また何回も同じことを読んだりします。


これがアウトプットを目的としていないと、

一度本を読んだけどよく覚えていないということになりかねません。


また本を読む場合にもただ読むのと、読んだ後に内容を人に伝えなければいけなかったり

感想文を書かなかったりしなければいけないというだけでその質がかなり上がります。

アウトプットを目的にするとインプットの段階から

どんなところが使えそうか考えるようになるため質が上がるということです。

 

まとめ

書いていて入社1年目の教科書を読んでその内容について自分で考えることも

「社会人の勉強は、アウトプットがゴール」の一つだなと思いました。


人に言われたことや本で読んだ内容が、自分で経験に基づいていることで

納得感があればさらに自分の知識として身につくと思います。

仕事と勉強どちらに時間を使うべきか

業務時間後の時間の使い方って難しくないでしょうか。

まだ仕事を続けるか、勉強をするか迷うことが多いなと思っています。

 

経営者なんかが揃って口にすることですが、

20代のころは死ぬ気で働けということをよく聞きますね。

入社したての頃は、それにしたがってたくさん働こうとしていたのですが、

長期的な目線で考えると仕事と勉強のバランスが重要だなって思ったりしています。

 

仕事と勉強の違い

仕事はアウトプットがメインで勉強はインプットがメインかなと思っています。

もちろん仕事中にわからないことはインプットしますし、

勉強の中でインプットの質を高める上でアウトプットを行うこともあります。

(ビジネスマンである以上、自分が出したアウトプットに対しては何かしらの対価払われるものであると考えているので、勉強はアウトプットではないという前提です。)

 

できないアウトプットを時間をかけてできるようにするよりも、

あらかじめ先回りしてインプットを多くする方が結果として

将来のアウトプット量は多くなるのではないかと感じています。

 

スポーツで例えるとわかりやすいのですが、

試合で身につく能力と練習で身につく能力はまた違ったものになると思います。

 

試合は実戦でしか学べない知見が学べたり、自分が持っているスキルを

より実戦で使えるような形にできるというメリットがあります。

しかし試合で新しい技を身につけることは困難ですし、

何か特定のスキルを伸ばすために反復して何かを行うことも難しいかと思います。

 

そう考えると試合をやりつつ、

伸ばしたいスキルや補いたいスキルを練習で反復することは重要です。

今は持っていない新しい技やスキルを練習で身につけ、

それを試合をこなす中で実戦で使える形にしていくというアプローチが必要になります。

 

仕事と勉強のバランスもこれと同じことかなと思っています。

仕事でできなかった部分を勉強をして補い、

身につけておいた方が良いスキルや知識をあらかじめ勉強をして習得しておき、

それを実際に仕事で生かす。

 

そうすることにより徐々にできる幅を広げていけると、

ただ仕事をこなすよりも将来のアウトプットの量は

多くなっていくのではないかと思っています。

 

たくさん勉強をしたら仕事の進みもよくなるでしょうし、

たくさん仕事をしたら色々とわからないことや課題などが見えて来ると思います。

20代のころは死ぬ気で働けという言葉は死ぬ気で働いて、

死ぬ気で勉強をしろということなのかもしれません。