【22歳で月収100万円達成】
フリーランスエンジニア"あおい"のプロフィール

【裏ワザ】最速でプログラミングが上達出来る7つのコツ

こんにちは!フリーランスエンジニアのあおいです。

今日は、最速でプログラミングが上達出来る7つのコツについてご紹介します。

未経験から実務経験2年目までのエンジニアで

「早く活躍出来るエンジニアになりたい!」

とか

「成長速度を上げたい」

とか考えている方は多いはず。

本記事では、プログラミングが上達出来るコツと上達したいなら絶対辞めるべき行動を詳しく解説しています。

また、若くして技術顧問を依頼されるなど大活躍中のエンジニアのインタビューも掲載しました。

ぜひ参考にして下さいね^^

最速でプログラミングが上達出来る7つのコツ

では早速、最速でプログラミングが上達出来るコツを見ていきましょう。

7つあります。それぞれを詳しく解説していきます。

仕組みを徹底的に理解する

仕組みを徹底的に理解するのは最速で上達出来る”裏技”ですね。

1つの言語の仕組みを理解出来たら、他の技術の習得がとても早くなりますよ。

どの言語にも技術の本質があるんです。

その基礎を1つでも理解出来たら、知識の横展開が可能になります。芋づる式に把握出来ますよ。

本質を理解出来る様になったら、習得時間が短くなります。

あおい

一方で、色々な技術に中途半端に手を出していたら効率が悪くなります。

1つの言語の仕組みを徹底的に理解してから他の言語の勉強に移るよりも、時間がかかってしまいます。

1つの言語の完成度を高めるには時間がかかりますが、まずは極めた方が近道ですよ。

フィードバックをくれる人を見つける

フィードバックをくれる人を見つけるのは、遠回りをしない解決策になります。

特に初めてプログラミングを学ぶ方なら、コツを掴むまでに時間がかかってしまう場合が多いです。

しかし既にエンジニアとして働いている方からフィードバックをもらえると、学習効率が上がりますよ。

勉強方法の改善やコードレビューなどの意見をもらい、一定レベルに到達するまでにかかる時間の無駄を省きましょう。

プログラミングも大学受験と似ている所が多いです。完全独学&模試を一切受けずに東大に合格する人はかなり少ないです。

しかし、予備校に通って講師から足りてない所を指摘してもらい合格する人は大勢いますよね。

あおい

自分だけだと足りない部分の認知がしづらいんですよね。

完全独学はエンジニアとして数年間働いてからでも遅くないですよ。

なお、フィードバックをくれる人の重要性については以下の記事で詳しく解説しています。

【裏ワザ】プログラミング初心者の女子大学生でもプログラミングを2年でマスターできた5つの理由

大学に合格してから、個人で興味がある分野の研究活動に打ち込むのと同じです。

守破離の”破離”はエンジニアとしての型が出来てからにしておきましょう。

スキルを身につけるのに貪欲である

スキルを身につけるのに貪欲なのは、上達の大きな要因になります。

少なくとも「勉強しよう!」と思わないと、勉強しませんから。

最も一つの言語だけを何となく理解していれば、食べてはいけます。

けれども、同じ技術にしがみつくエンジニアは売れなくなる危険性大です!

売れなくなる理由を見ていきましょう。

技術が偏ると、流行が変わり案件が減った時に対応しづらくなります。

そして、若いエンジニアに仕事を取られ、お金がない&技術がないの二重苦に陥ってしまうんです。

新しい技術を勉強する意欲がないと、エンジニアはこのジリ貧ループから抜けません。

技術があるからお金を稼げて、技術を磨ける環境にいれるんですね。

新しい技術のキャッチアップにはUdemyが便利です。

UdemyのおすすめWEBプログラミング・デザイン講座12選

セールの時期なら一つの講座が1300円ほどで購入出来ますよ。

挑戦に抵抗がない

挑戦に抵抗がないのはプログラミングに限らず、チャンスを掴める方法です。

プログラミングの場合なら挑戦に抵抗がないと、技術レベルを上げられお金も稼げるチャンスが頻繁にやって来ますよ^^

新しい技術を使った現場に参画すると、新しいスキルが得られます。

また新人研修を引き受けると、教える過程で自分の知識が深まりますよ。

この様に、スキル&経済無双する方法は社内にも多く転がっています。

あおい

たまに「給料以上の仕事はしたくないな・・・」と考えているエンジニアがいますが、もったいないですよ。

今の会社の環境を使い倒しスキルを身につけないと、転職時により良い年収の獲得が厳しくなります。

ゆったり働いて稼げる状態を作るには、まずはスキルが必要ですよ。

それに正社員の場合は、例え挑戦して失敗しても無傷です。お給料は通常通り振り込まれます。

一方フリーランスなど自営業の場合は、失敗したら損害賠償沙汰で笑えません。

会社で働いている期間に、市場価値が高いスキルを身につけ磨いておくと良いですよ。

英語の勉強をする

英語が苦手な方は英語の勉強をしておくと良いです。

ドキュメントやエラーの解決策は英語で記載されている場合が多いので。

最近はGoogle翻訳が賢くなっていますが、まだまだ自動翻訳をしたら意味不明な文章が出来上がります。

書いてある意味を理解するには英語力が必要ですよ。

話せなくても、読めるだけで十分です。

「将来海外でエンジニアをしたい」との目標があるなら英会話も鍛えておく必要がありますが、まずは読解力に注力しましょう。

あおい

高校までに習った英語をフル活用し、少々知識を増やすだけで十分です。

英語が読めると作業効率UPにも繋がります。

休憩がてら英語を勉強してみてはいかがでしょうか。

一緒に勉強出来る仲間が沢山いる

一緒に勉強が出来る仲間がいるのはメリットしかありませんよ。

何事も一人では無力だからです。仲間がいると色々なメリットがありますが、主に3つの大きなメリットがあります。

まずは、モチベーション維持に効果大です。

「あの人が頑張っているなら、私も頑張ろう!」とダラけている自分を戒められますから。

また、注目している技術の意見交換が出来て、スキルアップが可能です。

他の人が注目している技術を、自分が開発しているものの設計に生かせますよ。

さらに、転職情報を入手出来、より良い環境で働けるチャンスを得られるのも仲間を持つメリットです。

美味しい求人は仲間内でしか出回らない場合が多いので。

市場に出回る前に、誰かに取られてしまうんです。

あおい

そして何より、仲間がいると楽しいです!

後輩の教育に熱心である

後輩の教育に熱心だと、自分の知識の定着にもなります。

人に教える時は知識をかみ砕いて伝えるので、知識の整理が出来るからです。

実務2年目になると新入社員の教育を担当する機会が出て来るはず。

また、質問をされる事も増えてきます。

その時に「面倒臭いなあ」と思わずに、率先して教育係りを引き受ける方が自分の得ですよ。

後輩を育てて即戦力にすると、自分の仕事の負担が減ります。しかもその時は、教育力を評価してもらえますよ。

さらに起業した場合に、後輩に仕事を振る事も出来ます。

エンジニアが見つけにくい現在、仕事を振りやすい人がいるのはビジネス上で大きなメリットです。

実際に、前職の後輩に開発をお願いしている企業はかなり多いですね。

なお、育てた後輩にはかなり感謝してもらえますよ。

あおい

ビジネス上のメリットよりも、後輩からの感謝の気持ちの方がずっと貴重ですね。

プログラミングを上達したいなら絶対に辞めるべき3つの行動

ここからはプログラミングを上達したいなら、絶対に辞めるべき行動をご紹介します。

3つあるので、詳しくみていきましょう。

疑問を言語化しない

疑問を言語化しないと、分からない事が分からなくなってしまいます。

分からない事が何なのかを把握する為にも、疑問の言語化は必要です。

また、疑問を言語化しないと上手く質問も出来ません。

そして上手く質問をまとめないと、次の「考えないで質問をする」状態になってしまいます。

疑問を言語化する際には、紙に書き出すのがおすすめです。

その紙を持って相談に行くと、話が伝わりやすいですし。

あおい

また、疑問を整理している間に自分で解決策が見つかる場合も多いです。

私自身も4割ぐらいは、整理中に解決策に気づけていますよ。

考えないで質問をする

考えないで質問をするとスキルアップに繋がりません。

間違っていても良いので、仮説を立てましょう。

もし仮説を立てて間違っていると気づいたら「なぜ間違った仮説を立ててしまったのか」を考えましょう。

このサイクルを繰り返すと、問題解決のスピードが上がりますよ。

また、考えないで質問をし続けると、先輩エンジニアに面倒臭がられる可能性大です。

考えがゼロだと1から説明しなければいけなくなるので、時間がかかります。

考えないとスキルアップ&職場の人間関係が共に崩れてしまいますね。

受け身の勉強がいかにNGかは以下の記事で解説しています。反面教師にして下さい。

私がプログラミングスクールに通って失敗した5つのポイント

動いているからOKと考える

動いているからOKと考えるのは危険です!この考えは、絶対に辞めましょう。

仕組みを理解しないで開発すると、思わぬ事故を招いてしまうので。

以前、エンジニアが秘密鍵を公開して、大きなセキュリティ事故になってしまった話を聞きました。

損害賠償額は300万円になってしまったそう。

事故を起こしてしまったエンジニアは正社員だったので、無傷(職場には居づらくなったかもしれませんが)で終わりました。

しかし、フリーランスエンジニアだと全額補償する必要がありますよ。恐ろしい。

事故はどのエンジニアにもリスクがありますが、知識があるとリスクを最小限に出来ます。

動いているからOKは現場猫を見て笑うだけにしましょう笑。

最速でプログラミングを上達したエンジニアにインタビュー

新卒でソフトバンクに入社され、内定者代表を依頼されるほど優秀なコミさんにインタビューをしました。

コミさんは大学に入学してからプログラミングを学ばれました。

そして、現在(2020年1月)は京都大学の学生をされていますが、技術顧問を依頼されるほどのスキルの持ち主です!

あおい

今日はよろしくお願いします。
コミさんは学生をされながら、エンジニアとしても働かれているのですよね?
はい、そうです。
複数の会社でエンジニアとして働いています。

コミさん

あおい

しかも、コミさんは情報科学部ではなく理学部生物系の在籍です。
そんなコミさんに「最速でプログラミングを上達する極意」について伺います!

最速でプログラミングが上達するのに気をつけたこと

あおい

では早速、最速でプログラミングが上達するのに気をつけた事について教えて下さい。
「最適なツールを使って興味がある事に手を出して、プログラミングを楽しいと思う事」だと思います。

コミさん

あおい

なるほど。なぜその様に考えられたのですか?

これについて、少し自分の経験談を交えながらお話させて頂きます。
まず始めに、僕は最初からプログラミングスキルがグングン伸びていったかというと、そうではありませんでした。

コミさん

あおい

そうなんですか!てっきりすぐに上達されたのだと思っていました。

むしろ停滞期というか、プログラミングに向き合っていない時期の方が長かったです。
というのも、なんとなくプログラミング教育系のWebサイトを見たり本を読んだりしても、知らない単語や概念ばかりで。
「で、結局これどういう意味があんのよ」的な気持ちが大きく。

コミさん

あおい

なるほど。

そんな感じで、あまり最初の方は楽しく学んでいた訳ではありませんでした。

コミさん

あおい

初学者にとってプログラミングで理解すべき内容は多いですからね。
が「あ、プログラミングで結構ある程度の事が出来る様になったな」と感じた瞬間は、メインの使用言語をCからPythonに替えたタイミングです。
僕は最初はC言語でプログラミングを始めました。そこからCUI上で動くようなゲームを作ったりしていたのですが、やっぱりC言語は本当に難しい。

コミさん

あおい

他のエンジニアからも、C言語が難しいと聞いた事は多いです。

初学者にとって難解な概念が多すぎるんですよね。
僕がPythonを使い始めたきっかけは、当時「ゼロから作るディープラーニング」(オライリージャパン出版)が流行っていた事です。「自分もAIをちょっと勉強してみたい」と思い、その書籍を購入してディープラーニングを勉強し始めました。
本ではプログラムをPythonで実装していたのですが、これが自分にとってのPythonとの出会いでした。

コミさん


↑コミさんがPythonを使い始めたきっかけになった本です。

あおい

そうなんですね。

Pythonって本当に文法が簡単だし、ライブラリが充実していて、自分がやりたい事をものすごく簡単に実現出来るんですよね。
例えば、計算結果をグラフに起こすのも2・3行のちょっとしたコード書くだけで出来る。ずっとC言語でわちゃわちゃやっていた自分にはものすごく革新的でした。

コミさん

あおい

確かにPythonは使いやすいです。

そこからPythonに惚れ込んでライブラリの使い方などを学びました。AIやWebアプリ・簡単な自動化ツールなど、どんどん勉強が進む様になりました。

この時の感動と「自分のアイデアをサクッと実現出来る」事のワクワク感こそ、これから人生をかけてプログラミングをやっていこうと思った原体験だったりします。

コミさん

あおい

素敵ですね。

やっぱり「楽しい」って思うからこそ「もっとやりたい」ってなるんですよね。
だから、プログラミングの上達において気をつける事は「自発的に楽しいと思えるようにする事」だと僕は考えています。

コミさん

あおい

プログラミングが嫌になって辞めてしまう初学者が9割ですからね。
一つ重要な点として「最適なツールを使う事」があります。
これは先述の僕の「メインの使用言語をCからPythonに替えた」事と関連する話ですが、自分のやりたい事を実現する為に最適なツール選びをするべきです。

コミさん

あおい

例えば、どの様なツールに注目すべきでしょうか?
ツールはあらゆるもので、使う言語やエディタ・パソコン・勉強に使うサイトや本です。
例えば、僕らが料理で「グラタンを作りたい」ってなったとき、化学の分厚い専門書を持って来て炭素の電子軌道について調べたりしないですよね。
それよりも簡単な料理本だったりWebサイトを参考にします。

コミさん

あおい

うんうん。

なぜなら、その方が圧倒的に効率的だからです。
この話と同様にプログラミングを始めるには、最初はコンピュータサイエンスの分厚い教科書を読むよりも、自分がやりたい事を実現するのに最適なツールを選ぶべきなのです。

コミさん

あおい

なるほど!

これらを元に「最適なツールを使って興味がある事に手を出し、プログラミングを楽しいと思う事」こそがプログラミングの上達における鍵だと考えてます。

コミさん

最速でプログラミングが上達するエンジニアの勉強法

あおい

コミさんが考える「最速でプログラミングが上達するエンジニアの勉強法」について教えて下さい!
プログラミングの上達において「自分の勉強した事を文章にして残し、それを他人に公開すると上達スピードが早い」と思います。

要するにブログやQiitaで自分の勉強メモを残していけという話です。

コミさん

あおい

なるほど。もっと詳しくお願いします。

これは持論なのですが、自分の考えを整理するには文章にして書き下すのが一番効率的だと思います。

人間の脳なんてそんなにハイスペックじゃないので、一度読んだ本の内容を最初から完璧に理解するなんてかなり厳しいと思うんですよね。

また、自分では理解出来ていると思っていた事でも、実際は理解が足りていなかったなんて場合も往々にして起こります。

コミさん

あおい

分かります。

そこで、自分がどんな事を勉強したかを他人に読み聞かせる気持ちで文章に書き起こすんです。

ソフトウェアの開発手法の一つにベアプログラミング(ペアではなくクマのbear)というのがあります。これは自分のコードをクマのぬいぐるみに一行一行説明していき、コードのバグを取り除くというやり方です。

これと同じ要領で、自分が勉強して学んだことをブログに書き起こし、あたかも誰かに説明するかのように文章を書いていきます。

コミさん

あおい

ベアプログラミング!初めて聞きました。
文章にしようと思うと「まず最初に前提条件を整えて、その上でどんな事をやれば所定の結果が得られるか」のプロセスを一つ一つ説明する必要性が出てきます。

この一連の作業こそ、自分の理解度合いを明確にしていくのです。

コミさん

あおい

勉強になります。

ブログに残していくと自分の理解が進むのはもちろんですが、副次的なメリットとして「エンジニアコミュニティへのコミット」があります。

自分が何かコードを書いているとき、分からない事をググると誰かしらのブログにたどり着き、そこで得た情報によって自分の疑問が解決します。

この様に、自分が勉強したり調べたものをブログに残しておくと、時間と場所を超えて誰かの助けになります。

コミさん

あおい

エンジニアはネット検索も仕事の一つですからね。

こうした行いの積み重ねによって自分が所属しているコミュニティへの参入障壁を小さくし、だんだんとエンジニアコミュニティを大きくしていくのです。

この他に、ブログを通して会社からヘッドハンティングが来る事もあります。実際に僕も何度か声をかけて頂いた経験があります。

コミさん

あおい

まだ身分的には学生なのに、もうヘッドハンティングが来るんですね・・・!驚きです。

周りのエンジニアの方だと、ブログを拝見したGoogleのリクルーターが直接メールでアポをとって来る事もあるようです。

非常に夢のある話ですね。

コミさん

あおい

へえ。

この様にブログを書く事はあらゆる側面で意味があります。
実際に僕も、定期的に普段の開発ログや勉強メモをブログに残しています。周りの優秀なエンジニアはみんな自分のブログを持っています。

プログラミングをやっていくにあたって、ぜひブログなどを活用していって欲しいと思います。

コミさん

最速でプログラミングを上達するためにやってはいけない行動

あおい

最速でプログラミングを上達する為に、逆にやってはいけない行動はありますか?
プログラミングの上達においてタブーなのは、例えば「自分のコードが動かない時になぜ動かないか」の原因追及を早々に辞めてしまう事ですかね。

言うなれば粘り強さが重要という事でしょうか。

コミさん

あおい

すぐに諦めるのはNGですよね。

僕が過去に見た最悪だと思った例を紹介します。
自分でコードを書いたものの動かなくて、メンターの人に「わかりませーん」と完全に自分でコードを直す事を諦めてしまった。

もうあの様子を見た時はホントに最悪だと思いましたね。絶対に伸びないやつです。

コミさん

あおい

そういう光景はよくありますね・・・。
発生した問題に対して、適切な解決方法を考えて最後まで自力でやり抜ける様にならないと、プログラミングの上達は難しいと思います。

なぜなら、プログラミングにおいて発生する問題は、往々にして自分が理解不能なバグだからです。

熟練の優秀なエンジニアほど、この問題解決のルーティーンを沢山こなして来ています。

コミさん

あおい

うんうん。

やっぱり勉強でも筋トレでもダイエットでも、苦労しないと成長するのは難しいです。

もちろん、やり方の工夫で苦労を和らげられますが、それでもレベルアップをしたいのならある程度の苦労を避けて通れません。

コミさん

あおい

「1ヶ月でエンジニアになれる」なんて誇大広告ですからね笑。

やはり、主体的にちゃんと努力をする事こそが近道なのです。その為にも粘り強く努力する。

似た話で、プログラミングスクールに通ったからといって必ずしもプログラミングが上達する訳ではありません。

コミさん

あおい

分かります。

大事なのはプログラミングスクールという環境を活かして、自分がどうレベルアップしていくかです。

ただ受動的に教えられた内容を吸収していくだけではダメで、主体的な学びが重要です。

例えば、与えられたコードを1・2行書き換えてみたらどう挙動が変わるのか見てみるなど、好奇心の赴くままに色々試してみるべきです。

コミさん

最速でプログラミングが上達したエンジニアの特徴

あおい

では「最速でプログラミングが上達したエンジニアの特徴」について聞かせて下さい。

コミさんの周りには、凄腕のエンジニアが多いはず。

先述の「粘り強さ」について関連する話なのですが、やっぱり周りの優秀なエンジニアはみんな集中力がすごいと思います。

言い方を変えれば頑固というか、とにかく簡単に問題を投げ捨てないですね。

コミさん

あおい

確かに。
自分が分かるまで徹底的にやる」という姿勢を一貫して持っていると思います。

コミさん

あおい

納得です。

ちょっとしたエピソードとして、僕は現在金融系の会社でエンジニアのバイトをしています。

ある機能を揃える必要がありましたが、その知識やノウハウをチームメンバーは誰も持っていませんでした。朝に出勤してからメンバーと一緒に仕様を一から確認していき、最終的にその日の夕方には想定の機能をセットアップ出来ました。

コミさん

あおい

うんうん。

大体8時間くらい、ぶっ通しで調べ物をしては実装し、確認しては修正する作業を繰り返してましたね。

この様に集中し続けて問題を解決に持っていくのは、やはり重要なスキルなんだと思います。

コミさん

あおい

ちまたで言われている「やり切り力」みたいな感じですかね。
周りの優秀だと思うエンジニアの特徴についてもう一つありますが、必ずしも情報系が専門ではないんです。

みんな自発的にプログラミングの勉強をしてきたんですよね。

コミさん

あおい

そうなんですね!情報系ではないんですね!

現在一緒に働いているチームメンバーは全員学生なんですけど、コアメンバー7人の内、情報系が専門のやつは誰もいないんです。

僕は生物学専門だし、化学専門のやつや経済が専門のやつもいます。それでも、全員エンジニアとしてかなりハイレベルだと思ってます。

コミさん

あおい

情報系が専門の方がいないのは珍しいです。
やっぱり共通しているのは、好きでプログラミングをやっているんですよね。

プログラミングが出来る様になる人って主体的に学んでいる人なんだと思いますね。

コミさん

あおい

すごく貴重なご意見をありがとうございました。とても勉強になりました。

まとめ

最速でプログラミングが上達出来る7つのコツは理解して頂けましたか?

特に、コミさんのインタビューは具体的で勉強になる所が満載だったはず。

みなさん「なるべく時間をかけずに効率的にスキルアップをしたい!」と考えているはず。

インタビューにもありましたが、全く努力をしないでスキルアップは厳しいです。

しかし、工夫次第で成長速度を上げる事は出来ます。

エンジニアとしての成長速度を上げたい時には、またこの記事に戻って来て下さいね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です