プログラミングをこれから始める人、今も学習を続ける人にとって時間の無駄になる作業は避けたいと考えます。
しかし、多くのプログラミング初学者は未経験だからこそ何を考えて取り組めばいいか不明瞭な状態です。
また、筆者自身クラウドソーシングサイトであるランサーズにてコンスタントに毎月10万円を稼ぎ、スクレイピング業務にて2021年6月に最高報酬額である30万円を突破しました。
年間報酬額も100万円突破するなど、実務的なスクレイピング技術の活用方法や具体的な稼ぎ方について、一定の記事信頼を担保できると思います。
今回の記事は、プログラミングが時間の無駄にならない人の特徴から、プログラミングが時間の無駄にならない学習方法まで解説します。
記事を読み終えると、あなたがプログラミングに費やす時間を確実に目的達成へ利用できます。
本記事の結論は、『目的・目標の設定』がプログラミングを時間の無駄にしない人の特徴です。
目次
プログラミングを時間の無駄にしない人の特徴
プログラミングを時間の無駄にしない人は、明確な目的と目標を設定できてます。
ここで、プログラミングを学ぶ上で目的となるエンジニア像を確認してください。
これらのエンジニア像を目指している、あるいは目的に据えているプログラミング未経験者が多いです。
ただし、これらのエンジニア像を目的にするだけでは当然ながらプログラミング学習で時間を無駄にします。
つまり、目的と目標を明確にするため、プログラミング学習に取り組む具体的なエンジニア設計を考える必要があります。
pythonの活用事例や現役エンジニアの考え方をヒントにしたい人は「Python活用事例から導くPythonにできること・スキル・学習方法を解説!」で解説します。
プログラミングによるエンジニア就職・転職
プログラミングによるエンジニア就職・転職を考える場合、IT業界の全体像を把握する必要があります。
IT業界は主に6つに分けることができます。
基本的に広告や検索で見かけるプログラミング関連の内容は、この中の『Web業界』がほとんどだと思います。
そのため、本記事では『Web業界』におけるWeb系エンジニアの職種も記載します。
これらの主な職種も把握しておくと良いです。
ここから、各職種で現在利用されているプログラミング言語やWeb系エンジニアの基礎知識などを洗い出し、あなたが選択する職種あるいは企業に最適なものを学習します。
誤解されないように注意して欲しいのが、ここに記載される内容はほんの一部の一部に過ぎません。
さらに具体的な学習方法は後述します。
プログラミングによるフリーランスエンジニア
プログラミングによるフリーランスエンジニアを目指す場合、結論として『エンジニア就職・転職』することを勧めます。
なぜなら、圧倒的に効率よく実現できるからです。
SIer企業出身の筆者ですが、企業によって自社開発・Web制作・受託と幅広く業務を行います。
筆者の場合は自社開発だったため、流行り出した頃の機械学習システム構築(特にWatson)、自社のWebサービス・スマホアプリ開発等に従事していました。
扱う言語は、HTML&CSS、JavaScript(React.js)、Python、Swift、Kotlinでした。
このように、様々なエンジニア経験ができた人が進む先にフリーランスエンジニアがあると考えておくと良いです。
そのため、エンジニア未経験あるいは浅い人がいきなりフリーランスエンジニアを目指すのは、プログラミング学習の時間の無駄になりやすいです。
プログラミングによる副業
プログラミングによる副業は、プログラミング未経験あるいは初学者にとって注意が必要です。
なぜなら、プログラミング言語学習だけでは補えない実務経験が必要であり、現役エンジニア・フリーランスエンジニアが競合他者であることを理解しなければなりません。
だからこそ、プログラミングを活用した副業戦略を計画する必要があります。
結論は、以下の条件を満たすことです。
|
これらを満たさなければ何度トライしても案件達成できないです。
プログラミング言語学習から副業を考える人は「【副業】プログラミング言語学習から稼げる案件を認定ランサーが伝授!」で解説します。
プログラミングが時間の無駄になる原因
上記の内容から、エンジニアの人生設計を具体的に組み立てなければ、プログラミング学習が時間の無駄になるイメージが湧くと思います。
目的だけではなく、目的を達成するための学習目標の設定も具体的に設計しなければ、プログラミング学習が時間の無駄になる原因になります。
あやふやな目的と目標を立て、プログラミング学習してる人は学習目標を見直す必要があります。
3種類のエンジニア像をもとに、学習計画を立ててみましょう。
プログラミングを時間の無駄にしない方法
ここでは、プログラミング未経験の対象者に必要な手順を解説します。
また、社会人がWebエンジニア(特にバックエンド)を目指すことを想定します。
以下の流れが学習目標の全体像になります。
MacBook Proを購入する
多くのWeb系エンジニアは開発マシンとしてMacBookを利用しています。
Windowsマシンだと環境構築等の問題で支障をきたす人を見かけます。
学習用であれば、スペックとして「13インチ」「Retina Display」「メモリ8GB」「SSD256~512GB」が最低限の状態だと思ってます。
予算に余裕があれば、「メモリ16GB〜」「SSD1TB」を選択しましょう。
QiitaやTwitterアカウント作成
こちらは採用活動へのアピールが目的です。
技術情報を定期的に発信しているかをチェックするWeb系企業が増えたため、学習のアウトプットを行える準備をしましょう。
Web系開発の基礎知識を習得する
Web系アプリ開発の基礎知識を習得するための最低限の項目です。
|
DockerやAWS/GCP、PythonのWebフレームワークであるDjango/Flask/BottleあるいはReact.js(もしくはあなたの選ぶ言語に関わるフレームワーク)、REST APIの理解など多数の学習内容があって混乱しますが、ひとまず上記の項目を一つずつ実施していきましょう。
ポートフォリオ(学習における成果物)を作成する
ポートフォリオは、あなたがどれだけIT/プログラミングを理解してるかの集大成です。
数多く作るよりも、質の高いポートフォリオを作成できるかがポイントです。
以下の項目を満たすポートフォリオを目指すと良いでしょう。
就職・転職サイトにエントリーして活動開始
ようやく活動できる段階となりましたが、ポートフォリオに左右されると思います。
筆者としては、クライアントや関わる企業の人事とお話する限り、年々Pythonの需要が日本でも高まり、案件も求める人材もPythonエンジニアが増えてきたのでまだ言語選択に迷ってるならPythonを推奨してます。
ただし、IT業界全体やWeb業界でもトレンドが変化するため、あくまで技術トレンドを確認しながら言語決定しましょう。
エンジニア就職・転職の学習計画
以下は具体的なエンジニア就職/転職の学習計画になります。
|
特に、Web系アプリ開発を目的とするならば学習しておく必要があります。
コンピュータサイエンスの基礎教材
コンピュータサイエンス基礎教材として、基本情報技術者試験問題集は有効です。
Linuxの基礎教材
こちらは、Linux基礎教材として定番の書籍で、PDF版は無料入手可能です。
https://linuc.prg/textbooks/linux/
HTML/CSSの基礎教材
・HTML&CSSコース(Progate)
・はじめてのHTML(ドットインストール)
・はじめてのCSS(ドットインストール)
どちらも無料で学習できる人気の高いサービスです。
Progateはハンズオン形式、ドットインストールは動画形式が特徴で、手を動かしながら学習できます。
JavaScriptの基礎教材
・JavaScriptコース(Progate)
・詳解JavaScript基礎文法編(ドットインストール)
JavaScriptは、Web系エンジニアにとってなくてはならないプログラミング言語です。
HTML/CSSと同様に学習しておきましょう。
Pythonの基礎教材
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学ぶオンライン講座こちらはUdemyと呼ばれる世界最大級のオンライン学習教材になります。
解説者がとてもユニークな経歴の持ち主で、日本にある書籍よりよっぽど質が高いです。
評価を見ても、かなり丁寧に解説されてるのが見受けられ、視聴者の意見に反映させながら生きた学習教材を心がけているようです。
筆者も一方的なファンですが、Youtuberとしての活動もされてるので、興味があればご視聴ください。
RDB/SQLの基礎教材
|
あなたが目にする様々なデータは、RDB/SQLと密接に関わっています。
学習を通してどのように利用できるのか理解を深めておくと良いです。
Git/GitHubの基礎教材
|
こちらもUdemyによるオンライン学習教材になります。
ProgateやドットインストールにもGit学習教材はありますが、GitHubと合わせて解説した動画のため、学習効率が良く評価も高いです。
Djangoの基礎教材
こちらのサイトは、pythonのWebフレームワークであるDjangoを利用して開発されたブログサイトです。
制作者の人も現役のプログラマーであることは間違いなく、書籍を購入しなくても丁寧なDjangoチュートリアルが存在し、無料でアプリ開発が行えます。
フリーランスエンジニアの学習計画
フリーランスエンジニアは、IT/プログラミングの基礎・応用・高度知識と実務経験が前提となります。
そのため、各フリーランスエンジニアの前提知識とこれまでの実績が必ずしも比較できるものではないので、ここでは解説を割愛します。
|
フリーランスエンジニアになる上で、以下の内容を理解しておきましょう。
請負契約と準委任契約による働き方の違い
請負契約とは、「成果物納品まで報酬が支払われない」契約方式です。
準委任契約とは、「働いた時間分に応じて報酬が払われる」契約方式です。
現役中は生涯勉強する覚悟
IT業界/Web業界は、日夜新しい技術が生まれるスピードが別業界に比べても圧倒的に速いです。
技術に関する勉強が日頃からできず、学習に時間を投資できない人は避けるべきです。
日頃の外部発信
フリーランスエンジニアであれば、間違いなく日頃の外部発信が必要になります。
もしくは、実績を公開できるポートフォリオです。
幅広い人脈形成
筆者は、会社員時代の肩書きは”会社あってこそ”と独立してからはっきりと認識しました。
そのため、あなたに仕事が依頼されるための人脈形成は大切です。
パラレルキャリアと起業
ここからは、あなたが目指す働き方が試されることになりますが、筆者の場合は講師業やブロガー、エンジニア・プログラマー、経営やマーケティングなどパラレルキャリアを目指して活動しています。
また、1人経営の会社も立ち上げ税金対策なども考慮すると良いです。
資産運用の重要性
筆者の場合は、この資産運用が最も考えた内容かもしれません。
会社員だった頃は、厚生年金(国民年金も含む)や企業型確定拠出年金など、福利厚生が充実していました。
しかし、独立することによって、全ての管理を自身で行う必要があります。(税理士などに頼んだとしても)
個人的な考えですが、日本国民は20歳から国民年金への支払い義務が発生します。
そのため、支払額は16,540円(執筆時点)であり、20歳から60歳の40年間で納付する額は約800万円です。
もはや、他のものにお金を使うより、まずは国民年金からの縛りから抜け出すことを考えていました。
さらに言えば、所得税や健康保険料、住民税などに至るまで考慮した生活を余儀なくされます。
こういった税金などを考えたくないと思考を放棄する人は、間違いなくフリーランス自体が向いてません。
そして、税金対策につながる「つみたてNISA」や「iDeCo(個人型確定拠出年金)」は考えておきましょう。
税金対策と資産形成の2つで大きく役立っています。
副業の学習計画
甘い考えで副業目的としてプログラミング学習をしても失敗します。
たとえ、プログラミング学習が継続できたとしても、競合他者は現役エンジニアあるいはフリーランスエンジニアという実績者になります。
そのため、プログラミング未経験あるいはプログラミング初学者が考えることは、差別化した副業戦略です。
どうしてもプログラミングがメインとなる案件を想定しまいがちですが、他業種の案件を獲得するほうがよっぽど副業として稼げます。
どのような案件を判断基準に持つべきなのか具体的に知りたい人は「【案件判断基準】プログラミング副業の無理な案件を認定ランサーが伝授!」で解説します。
プログラミングが時間の無駄にならない”逆算戦略”
プログラミングを時間の無駄にしないために取るべき行動は、”逆算戦略”です。
あなたが目指すエンジニア像や目的に沿って、学習経路を組み立ててからプログラミングに取り掛かりましょう。
プログラミング学習で上達するヒントを記載した内容は「【具体例】プログラミングが上達しない人の特徴と学習のコツ」で解説します。
無駄な”情報収集”はプログラミング学習の邪魔になる
多くの情報に左右されると、ただでさえ膨大な情報量を誇る業界なので、プログラミング学習にたどり着く前に挫折する人も少なくないです。
ただ、目的・目標の設定も大変なのは事実ですが、綿密な学習計画を立てなければ本末転倒です。
無駄な情報は出来るだけ遮断し、頭のリソースと時間をしっかり確保しましょう。
手を動かしながらプログラミング学習することが間違いなく成果につながる方法だと理解してください。
アウトプット第一を心がけましょう。
Pythonに限って言えば、コスパ最強でオンライン学習可能な『PyQ』がおすすめです。
内容についても言及している記事がありますので、一読して頂けると幸いです。
まとめ
エンジニア像に沿った目的・目標を設定し、学習計画を立てましょう。
『目的・目標の設定 = プログラミング学習の地図』だと思います。
目的地に地図なしで挑むより、地図ありで挑むほうが確実です。
また、目的地に到着したとしても、目的地(就活や転職・独立後・副業)で発生するイベントに必要な知識・スキルを持ち合わせていなかったら時間の無駄になります。
あなたの目的を達成するための地図作りを徹底的に取り組みましょう。