これは学習を効率化するために知っておくべきことを集めたまとめ記事です。
具体的なゴール設定や論理的思考力の重要性、プログラミング学習の準備や学び方、コミュニケーション力の向上など、エンジニアとして成長するためのポイントを説明しています。
先に簡単にポイントを説明しておきます。
- 具体的なゴールを設定し、論理的思考力と問題解決法を身につけることが重要
- ITエンジニアは論理的思考力を鍛えるためのトレーニングや自己スキルの構築が必要
- プログラミングの基本は言語コードであり、知識と経験によってスキルを身につける
- プログラミングに向いていない人は細かい考え方や自己学習・自己解決能力が必要
- エンジニアの学習準備として、自宅のPCやネット環境の整備が必要
- ITエンジニアは問題解決法を学び、環境や情報共有を活用しながら学習していく必要がある
- プログラミング学習では成長マインドや検索力の向上、挫折対策が重要
- プログラミング学習の進路選択には、スクールや専門学校、大学などの選択肢がある
- エンジニアの成長にはコミュニケーション力の向上が欠かせない
目次を覚えておけくだけでも学習の効率化や挫折対策などいろいろな場面で役に立つ情報がえられるはずです。
エンジニアを続けていれば、頭の中にインデックスだけ作って理解しておき、詳しいことは必要になったときに調べればいいということが分かっていくはずです。
あなたの頭のインデックスにこの記事の目次が少しでも多く取り入れられることを願っています。
基本
正しいアウトプット学習は能動的であること
エンジニアに限らずインプット学習ではなくアウトプット学習すべきだというのが定説です。
まさにその通りなのですが、意味がわかりにくく、正しく説明できている人が少ないようなので改めて説明しておきます。
インプットは入力のことで、頭に知識を入れる学習全般のことを指します。
入門書、入門動画、講師から一方的に教わるような学習がインプット学習にあたります。
学校教育で6・3・3・4の16年もやっているにもかかわらず、効率の悪い学習だとされています。
アウトプットは出力のことで、何か成果物を作るような学習全般のことを指します。
エンジニア学習では、プログラミングコードを自分で書いて実行したり、問題集を解いたり、Webアプリを作るなどです。
インプットが入力でアウトプットが出力なので、この意味にとらわれ、このような解釈で思考停止している人が多いです。
ですが、本質的な違いは、受動的か能動的かという点にあります。
能動的とは、具体的には自分から主体的に問題解決やケーススタディを行うことです。
自分で考え、迷い、調べ、完成させるのがアウトプット学習と呼ばれる学習法です。
能動的といえばアクティブラーニングが思い出されますが、アウトプット学習は実際にはアクティブラーニングに近い自己学習のことを指してることが多いです。
次は受動的な学習から受動と能動の段階を表しています。
自動で進み考える必要がなく、学習効果が低い受け身の学習
ちゃんと理解しようと考えたり、音読すれば能動的な学習になるが、読むだけでは学習効果は低い。
自分で考える部分が多ければ能動的な学習になるが、ひとつのパターンを作るだけでは受動的なインプット学習に近い。
問題集でもオンラインサービスでも自分の頭で考える能動的な学習になるので、ここからはアウトプット学習と言える。
自分の考えをまとめたり、相手の考えを理解することからアウトプット学習に分類できる。コミュニケーションスキルも高められるので一石二鳥でおすすめ。
教わるだけならインプット学習と同じ。問題を出されたり、理解度を確認され、自分で考える部分があれば効果的なアウトプット学習になる。
一般的なアウトプット学習はこのレベルからのことを指すことが多い。
理想的なアウトプット学習。未経験者のポートフォリオから経験者の個人実績にまで使える優れもの。ここがゴール。これを続けるとよい。
インプットとアウトプットのベストバランスは?
コロンビア大学の心理学者アーサー・ゲイツ博士の実験で、インプット(覚える学習)3:アウトプット(練習する学習)7がもっとも効率が良かったというデータがあります。
エンジニア学習では目的やジャンル、スキルレベルによって変わるので、意識的に変えていくといいです。
ちなみに比率は時間ベースで、1日に使う時間を分けるイメージです。
レベル | I/O比率 | 補足 |
入門書 | 9:1 | 考えながら理解、音読推奨 |
入門書& 問題集併用 | 1:1(5:5) | 周辺知識も調べる |
問題集メイン | 1:2 ~ 1:3 (≒3:7) | 学ぶべきものを探しながら学ぶ |
開発メイン | 1:9 | 情報チェックも続ける |
目標レベルに到達 | 1:0 (?) | 次の目標へ |
最初は初心者なのでインプット100%でもいいです。入門書やネット記事から始めればいいでしょう。
理解することに頭を使うことでアウトプット的な学習に近づくので、考えながら知識を蓄えていくといいです。
音読で記憶力が上がるので学習全般でおすすめです。
入門書メインだと学習効率が悪いので、1冊読み終わったら、はやめに問題集などのアウトプット学習の比率を高めていったほうがいいです。
問題集を解くときにも技術を調べる必要が出てきます。
そのため、問題集を解き始める段階でのインプット・アウトプット比率は1対1、50%ずつくらいでいいでしょう。
問題集と並行して入門書を2冊も読んだら、問題集メインにステップアップしましょう。
問題集メインの段階では、まだまだ知らないことがあるので、ボリュームの多い入門書や目的に合った書籍も並行して読んでいったほうがいいです。
問題集を1~2冊終えたら、Webアプリやツールなど実際に動くプロダクトの作成に取り掛かりましょう。
上の表ではこれを開発と呼んでいます。実務に近く、自由に開発できるので、実務よりも学習効率が高くなることもあるでしょう。
未経験者ならポートフォリオに、経験者なら順実務経験として評価されるようなレベルのものを目指して頑張りましょう。
理想としては、利益が出るレベルのものが作れるといいです。Webアプリで広告費を稼いだり、ツールやスマホアプリを販売するなど夢は広がります。
一発当たってそのまま会社を作ってしまえば、自社開発企業の社長になれるよ。
狭き門ではあるが、メンタとかは元々はひとりで作ってたサービスだから、前例もあるにはあるね。
カウントはタイマーが便利
インプット/アウトプットバランスを調整するにはタイマーを使うと便利です。
私は YAPA2 というポモドーロタイマーを使っていて、デフォルトの4回に1回長い休憩が入る設定にしてます。(回数や休憩時間は変更可)
何回目か(ラウンド数)表示され、レジューム機能で日をまたいでもカウントできるので重宝しています。
Kindleの入門書や問題集は質に注意
読み放題ラインナップに一通りのジャンルがそろっているので、私は Kindle の電子書籍をおすすめしています。
とはいえ、出版の品質チェックが甘いので、質の低い本やボリュームが小さすぎる本もあります。
1日で覚えるプログラミング言語などの本は内容が浅いので、他の本も読んでおくことをおすすめします。
ネットサイトのほうが体系的に詳しく説明していることもあります。
それでも、種類が豊富で、ダメな本があっても別の本を探せばいいだけなので、Kindle はおすすめです。
月1000円でこの品質なら、技術書を読むだけでも十分元が取れるでしょう。
他にもIT系のビジネス書や小説、雑誌などもあり、広いジャンルをカバーしているので、普通に楽しめます。
【PR】Kindle UnlimitedAmazon の Kindle ホームページに出てくるおすすめ本も関連本がたくさん出てくるから面白いよ。
本っていうのは関連本を何冊も読むことで理解が深まっていくものだから、気軽にたくさん読めるのは魅力だ。
しいていうなら、読むには時間が足りないのが惜しいところだね。
プログラミングは挑戦しやすい
特に初学者は悩むことばかりでしょうが、「やれば自分でもデキる!」と信じて試行錯誤を続けることが大切です。
プログラミングが挑戦しやすい理由は、必要な部分だけを知っていれば実装できてしまうことが多いからです。
努力で計画的に増やせる知識やスキルの世界で才能とかセンスはそれほど関係ありません。誰でもがんばれば身に着くのである種の公平な世界といえます。
難しい概念などがないことはないですが、総じて基礎理論などとの依存関係が弱いのでひとつひとつの処理に必要な学習範囲は少ないことが多いです。
数学のように中高で学ぶ基礎理論を理解しないと大学の授業が理解できなくなるようなことは思いのほか少ないです。
独学でも学べるものの、簡単なルールを知らなかったり、うまくいかないところで学習が長時間止まってしまう恐れがあるので オンライン学習やメンターを利用する方が効率的です。
挫折しないためにはストレスに対処し、頼れる人を確保することも重要です。
行動力と粘り強さが大事
結論からいうとやり方よりもまず先に行動力が重要です。
目的を決めたら入門書の1冊や2冊は秒で、あるいはそれ以外に必要になるものも秒で買えるくらいの人のほうが成長が早いです。
買い物はいろいろ比較して調べないと気が済まないという慎重派の人はどうかというと、これはこれで勉強にいかせる性格です。
プログラミングの独学は挫折率9割の難関なので、出来るまで原因をいろいろ分析できれば挫折を防ぎやすくなります。
やり始められないと何も始まらないので、まずは行動力が大事で、次にはあきらめない粘り強さが大事です。
プログラミングの実装はプロでもうまくいかないことをいろいろ調べた何とかうまくいかせるような仕事でもあるので行動力と粘り強さは高めておきたいです。
最初はうまくいかないことが多いので、どうしても辛い部分が出てきます。
1日15分などと続けやすい時間や場所などを工夫してスモールステップを意識すると続けやすくなります。
無料&独学は効率が悪い
お金のない学生などであれば無料学習にこだわってもいいです。
ですが、時間あたりの学習効率が悪いうえに、独学になるので挫折率9割の壁があり厳しい道のりになります。
本や安いサービスなら月1,000くらいでもそれなりに学べます。無料学習にこだわるメリットはあまりないでしょう。
真面目に学ぶなら、余程お金がない人以外は、お小遣いから1,000円でも2,000円でもいいので、自己投資と思ってお金をかけていったほうが効率がいいです。
お金持ちが子供に家庭教師をつけたり、プロスポーツ選手が高いお金を払って一流コーチをつけるにはそれに見合った成果が見込めるからです。
無料の独学でも出来ないことはないですが、あきらかに効率が悪いという事実は理解しておくべきです。どうしても無料の独学にこだわるなら気長に続けるべきでしょう。
それでも無料&独学という回り道が自分にとって価値がある行動なのかという点は、たまには考えなすことをおすすめします。
時間は無限にあるように感じるものですが、1年間で毎日1時間がんばっても365時間にしかならず、未経験者のプログラミングの学習時間としてはあまり大したことはありません。
人生100年時代と言っても約36,500日しかありません。時間あたりの効率も冷静に考慮したほうがいいです。
学習方法の選び方
いろいろあるので必要に応じて使い分けていくのがポイントです。
具体的には入門書を読んでから実際にプログラミングなどを実行していくのが基本です。ハンズオンで読みながら実行できる本も効率がいいです。
逆に実行できない(環境構築できない)と効率が悪いので本などだけでインフラ技術を学ぶようなやり方はおすすめではありません。
- 書籍
体系的な知識が手に入る学習の王道、まずは入門書から始めるべき
- プロゲート/ドットインストール
簡単に動作させられるので学習効率が良い、学びたい技術があれば活用したい
- ネット情報
基本情報源、ピンポイントで調べるのに向いてる、断片的な情報が多い
- ネット動画
環境設定から簡単な実装までイメージをつかむのに向いている、断片的な情報が多い
- 有料動画
質は高いのでピンポイントで学びたいことがあるときに便利、値段は少し高めでコスパはやや悪い
- メンターサービス
知りたいことが学べて相談もできるので実際の利用者の満足度は高い
- 学習サービス
ピンキリですが月3,000円くらいの安価なサービスもあるので目的に合わせて活用していきたい
- プログラミングスクール
学習効率が高く挫折しにくいので効率が良い、料金が高いのがデメリットなものの補助金が50万円も出ることもあり時間あたりの料金はそれほど高額でもない
ネット記事や動画に断片的な情報が多いというのは、当たり前ですが説明してあることしか分からず、関連知識が得にくいというデメリットがあります。
そこを補う体系的な知識が手に入るのが入門書やリファレンスなどの本です。
人の学びは試行錯誤やPDCAサイクルのほうが効率が良いので、計画・実行・改善を繰り返せるように先に体系的な知識を頭に入れておくのがおすすめです。
そのあとに目的ごとに何を学ぶべきか自分で考えて試行錯誤していくといいです。
情報は全体的に古いものは信頼性が落ちるので新しい情報かどうかもチェックしておくべきです。
情報の鮮度という点では、メンターや学習サービスなど人に直接質問できる学習法のほうが信頼性が高くなります。
具体的なゴールを決めてからルートを選ぶ
目標設定が大事です。目的が分からずに闇雲に進み続けてもゴールにはたどり着けません。
先にゴールを決めて効率的なアプローチを考えるべきです。
ゴールは特定の職種への就職や副業収入、さらに先の上位職やフリーランス、起業など自由に考えてみてください。
残念ですが、初心者には自分に最適な完璧なゴールを判断するとはできません。
知識・経験が足りないからです。やってもいないのにネット検索だけで最適解を得ることはできません。
ですので、調査時間を1週間とか10時間とかに制限して、借りのゴールを決めたら学習を初めてしまうのがおすすめです。
調査自体は並行して続けて、もっといい職種などが見つかったらそちらに目的を変えればいいです。
迷いだすといつまでも決められず、何もしないまま終わってしまう恐れもありるので早めに学習や無料相談などの行動を始めることがポイントです。
論理的思考力と問題解決法を身に付ける
エンジニアにとって重要な能力は問題を切り分けて対処する力です。これは論理的思考力と問題解決法の理解を高めることで高めることができます。
論理的思考力
論理的思考力とは勘ではなく理論を元に分析し判断する力のことです。
- 抽象化:要点や特徴をまとめたり本質をとらえる力
- 言語化:設計/処理/設定などの意味や目的を言葉で説明する力
- 問題点の切り分け:因果関係や影響/責任範囲などをはっきりさせる力
- 可能性の推論:どんな可能性があるか予想する力
- 階層化:問題や技術を階層的なツリー構造として網羅的に体系化する力
参考 論理的に考えるための5大思考パターン ZUU online
問題解決法
課題を詳細かつ網羅的に分析して、対処法をタスク化、さらに緊急性より重要性を重視した優先順を決めて対処していくのが基本です。
詳細は「問題解決法」や「MECEフレームワーク」として研究されているので理解して役立てていきましょう。
おおざっぱで知識欲がない人は厳しい
プログラムコード(文書)では半角スペースにすべきところを全角スペースで書くだけでエラーとなり、修正を求められます。
コンピューターは融通が利きません。
その他にもプログラミングで書く処理はひとつひとつがすべて正しく動作するように実装しないといけません。
多少は無駄なことを書いても動きますが、必要なことはすべてもらさず書かなければ意図した正しい処理になりません。
ここまでの説明で厳密な世界は面倒で辛いと感じてしまった人には、さすがにプログラミング学習は向きません。
エンジニアを目指すならプログラミングコードを書かないタイプの仕事を選んだほうが無難です。
知識欲は新技術やより効率的な処理へ最適化するときに役立ちます。好奇心といってもいいです。
「処理速度が足らないならCPU/メモリ/SSDなどのスペックを上げればいい」と思っている人には向きません。
そこを今の環境で自力で解決しようとがんばるのがエンジニアというものです。
性格の問題なのでそれ自体が悪いということはありませんが、単に向いていないので別の道を進んだほうがいい人生になるはずです。
パンがないならケーキを食べないさいよ、当然でしょ?
むしろ、パンは別に食べなくてもいいわよ(w
学習準備
PCとネット環境が必須になります。PCは1万円の中古ノートPCでも大丈夫です。
ただし、1万円のPCだとHDD(ハードディスク)が古く寿命に近い可能性が高いので、高速なSSDに変えておくべきです。これでPC寿命が5年は伸ばせるでしょう。
できれば、メモリも4GB(2023年現在の最低スペック)に増やしておいたほうがいいです。複数のアプリを同時に動かすとメモリ不足になり急激に動作が遅くなるからです。
中古ノートPCはバッテリーも弱っていて使えない可能性があるので外で使いたい人はバッテリーも交換しておくといいです。
長時間使うにはどうせ足りないので電源につなぐ必要があります。電源があるところで使うと割り切ってバッテリーを交換しない手もあります。
中古ノートPCでもディスクやメモリをカスタイマイズできるサービスがあるのでこれが使えます。どちらも増やすとプラス1~2万円かかってしまいますので予算と相談しましょう。
1万のPCをそのまま使うと1年以内に使えなくなる恐れがあるのと、処理速度を早くするためSSDだけは必ず交換するようにしてください。
作業用のメインドライブがHDDだと素人感が出てしまうから、万が一HDDのPCを買ってしまった人は黙っておくといい。
保存用の外付けUSBドライブとかならHDDでもいいけど。
OSはWindows と Mac がありますが、Windows が無難です。使っている企業が多いからです。
iPhone アプリが作りたいとか Webエンジニアを目指すなら Mac でもいいです。
ノートPCのキーボードやスライドパッドは使いにくいので、安くてもいいのでマウスとキーボードは外付けの使ったほうが効率がいいです。
さらにお金があったらモニターを増やして2画面のデュアルモニターにすると作業効率が上がります。
プログラミングを学ぶ心構えや学習/仕事テクニック
心構え・考え方の基本
プログラムは基本的にうまく動かないものを何とかしてうまく動かくようにする作業です。
うまくいかなくてもあきらめずに調査分析を続けていくものだと覚えておいてください。
まず論理的思考力を高めることを意識するといいです。具体的には問題点を切り分けるために問題解決法を身に着けましょう。
コードや設定は厳密に精査し常に正しく良いものになるように意識しきす。
良いとは最適化といいますが、コードならより読みやすく効率的で処理速度が速いほうがいいです。
人は環境に影響されやすいので自宅の学習環境を誘惑のない状態に変えたり、図書館など集中しやすい場所を利用するといいです。
環境が人を育てるので目指す人たちや意識高い系の仲間を交流を持つのもいいことです。
本や教材は最初から全部は出来ないので分からないところが分かったところで保留していいです。メモでもしておいて後で出来るようにしておけば十分です。
エンジニアからの情報も活用できます。人はアドバイスしたい生き物なので、先輩などに質問するのもいいです。
忙しいときに無暗に質問すべきではないですが、質問や相談していいか確認してからすれば大丈夫でしょう。
初学者からベテランまで役立つ学習・仕事テクニック
25分学習して5分休憩するのと繰り返す ポモドーロテクニックが人気です。休みなしで全力疾走を続けることは出来ないので休憩は必須です。
作業しながら少しずつ休むよりは5分と決めて休んだほうが、休憩も作業も効率が上がります。
初学者にはまだ心配はないでしょうが、同じ姿勢で長時間の作業をすると腰を痛めやすいです。スタンディングデスクを使うと痛めにくくなります。
腰痛の他には肩こりにもなりやすいです。
どちらも基本的には姿勢の悪さと筋力不足が原因なので、よい姿勢を意識して負担を減らしたり、筋トレをしておくと未然に防げます。
入門書と演習問題のどちらから入るか?
受験勉強で教科書と過去問のどちらから始めたほうが効率的かという論争があります。
エンジニア学習では、入門書か演習問題やハンズフリー教材のどちらがいいかに相当します。
私の分析では、向き不向きは個人の能力で変わります。
自分は絶対にあきらめず調べ続け理解できるという人なら、演習やハンズフリーから始めたほうが効率がいいです。
(補足:ハンズフリー本などは答えが出すぎているのであまり実践的ではない)
課題解決のほうが実践的で実際の仕事に近いからです。
ですが、そこまでメンタルが強い人は少ないでしょうから、普通の人は入門書やそれに相当するネット情報から入ることをおすすめします。
挫折してしまっては元も子もないからです。
初学者向け学習サービスやエンジニアスクールは中間にあたるので、無難な学習方法といえます。
さすがにお金を取るだけあって考えられています。
どれかの言語や技術をある程度まで取得している経験者なら、初めから実践的な課題を設定してこなしていくのがいいでしょう。
それでも、結局のところ、わからないところは調べないといけないので、入門書を一通り読むのと同じことになるだろうとは思います。
なぜ実践的なほうがいいのかというと、行動して必要に応じて調べるほうが、脳が活性化され記憶の定着率が高いからです。
人間の脳は本を読んだだけでは、他人事と感じてしまい、あまり記憶しません。
ところが、実際に行動して必要に迫られたときには、脳が本気になり記憶の定着率が上がります。
ですから、どうしても解決できない問題は保留してもよいのですが、それがはっきりするまでは挫折しないという自信があるなら、実践的な学習法のほうが効率がいいです。
実践的な学習では、何かの目的を実現するプログラムをコーディングしていくといいです。
あとからその処理を再利用できるようにしておけば、自分のエンジニア資産として積みあがっていくのでおすすめです。
30歳以上で記憶力に自信がなくなりつつある人なら、説明コメントと多めにして、自分がわかりやすい処理を集めライブラリ化していくのもいいです。
さらに上を目指すなら、自分でレンタルサーバーにテストアプリを構築するくらいまでできるといいです。
あきらめるのはまだ早い!挫折対策
初学者の陥りがちな挫折への対策をまとめたのが次の記事です。これで挫折はだいたいさけられるはずです。
さらに多くのノウハウを集めて挫折することすらあきらめさせようとまとめたのが次の記事です。
エンジニアに限らず仕事には良いところも悪いところもあります。イヤなことをさけていたら何もできません。
大人ですし、自分にとってメリットのほうが大きいならデメリットには我慢して対処していくべきでしょう。
進路選び
ITエンジニアやプログラマー、SEになるためにはいくつかのルートがあります。学生や社会人の転職組に合わせて最適な選択をしましょう。
進学・学習のルートとしては、理系大学の情報や工学系が理想的です。高校生なら高偏差値の大学を目指しましょう。
また、PGスクールや専門学校、短大、職業訓練校も選択肢として考えられます。文系大学や短大からでも独学やPGスクールで努力すればエンジニアになることも可能です。
就職や収益を目指すルートとしては、大企業にエンジニアとして就職することやスタートアップ企業と契約すること、自社開発企業に就職することなどがおすすめです。
SESにエンジニアとして就職することやエンジニア系のアルバイト、フリーランスも選択肢となります。
高収入を目指すルートとしては、フリーランスが再現性が高い選択肢であり、SIerでPGからSE、そしてPMになることも高い収入を狙えます。
スタートアップエンジニアや大企業の社員エンジニア、アプリ開発や企業内でのアプリ/サービス開発も高収入を目指せる選択肢です。
ただし、それぞれのルートにはデメリットもあります。フリーランスは収入が不安定で、SIerでのキャリアやスタートアップエンジニアの競争なども課題となります。
選択する際にはメリットとデメリットを考慮し、自身の希望や状況に合ったルートを選ぶことが重要です。
次の記事を読めばその意味が分かるはずです。
普通の人や経営者がプログラミングを学ぶメリット
プログラミングの学習は、普通の人にも経営者にも多くのメリットをもたらします。
プログラミングは現代のデジタル時代において必須のスキルであり、コンピュータやソフトウェアの仕組みを理解することで、問題解決や効率化ができるようになります。
また、プログラミングは創造性を刺激し、アイデアを具現化する手段としても活用できます。
さらに、プログラミングの知識はビジネスの競争力を高めるためにも重要であり、デジタルトランスフォーメーションに取り組む経営者にとっては戦略的な利点をもたらします。
総じて、プログラミングの学習は現代社会で必要なスキルを身につけるために有益です。
エンジニアの学習ロードマップ
エンジニアといっていろいろ職種があり、必要になる技術に違いがあります。
どの職種を狙うか、就職後のキャリアプランはどうするか、先におおまかに決めてから学習を始めましょう。
目的を決めずに走りだしてもどこにもたどり着かないので目的設定は大切です。
無料/安価で独学できるものもある
効率が悪いのであまりおすすめではありませんが、お金をかけずに独学する方法もあります。本は図書館でも借りられますし、ネットには一部無料のサービスもあります。
プロはネット検索や本だけで問題解決していたりするので、学習もネットや本だけでも理論上はできます。
普通の人がそれをやるとだいたい挫折してしまうのですが、これはスキル・経験不足が原因です。
ネットや本では細かいルールは説明されていないので、それも調べないといけないのですが、何をどこまで調べればいいのか勘が働かないので普通の人にはよく分からないからです。
勘やセンスは生まれつきのものではなく経験で研ぎ澄まされていくものです。ところが、それには挫折せずに経験を積んでいく必要あるので初心者には難しくなっています。
初心者向けエンジニア学習の基本
ITエンジニアの就職や転職に必要な学習の基本や学ぶべき内容を解説します。自分の希望する職種を決めて技術を学ぶロードマップを確認してください。
また、ポートフォリオの作成も重要であり、就職活動に役立ちます。
学習は500〜1000時間が目安です。これには言語やスキルの基礎学習、開発環境の構築、一定レベルまでの学習などが含まれます。
自己ブランディングやポートフォリオ作成も重要であり、就職活動に有利になります。
また、ポートフォリオがなくても就職できる会社もありますが、それでは実力が評価されず、企業研究が重要です。
学習には時間や努力が必要ですが、挫折を防ぐためにはテクニックやコツを知ることが重要です。
詳しくは次の記事で確認してください。
ロジックが思いつかない時に役立つ対処法【プログラミング】
実際のプログラミングは何かの処理を実現するために作るものです。
目的を実現するために必要な方法は文法やアルゴリズムを使った自分で考えないといけません。その方法や手順がロジックです。
ところが、ロジックを自分で考えることをあまり教えていないプログラミングスクールもあるほど軽視されがちです。
ロジックは自分で考えるものなので自分で考える力を高めていく必要があります。その方法を次の記事で説明しています。
成長に欠かせないコミュニケーション力
エンジニアの仕事はひとりで作業する時間が長いものの、チーム開発で共同作業になることが多いです。
そのため普通の仕事と同じようにコミュニケーション力が重要になります。
トラブルをさけチームの生産性を高められるような力をつけられるようコミュニケーション力も高めていきましょう。
苦手な人が多いかもしれませんが、基本的にはルールが分かっているスキルなのでケーススタディしていけば身に着きます。
誠実な態度で相手を敬っていけば、相手からも同じように扱われるようになるので苦手意識は薄れていくはずです。
どうしても苦手な人はなるべくひとりでプロダクトが完結する小規模なスマホアプリ開発などを目指してもいいでしょう。
初学者が学ぶべきオススメ技術と学習法
エンジニアの初学者が学ぶべきオススメの技術は、プログラミング言語(Python、JavaScriptなど)、データベース(SQL)、Web開発(HTML、CSS、フレームワーク)、バージョン管理(Git)です。
これらの技術は幅広いプロジェクトに応用できる基礎となります。
学習法としては、まず基礎をしっかりと理解することが重要です。オンラインのチュートリアルや教材を利用し、実際に手を動かしながら学習しましょう。
また、実践的なプロジェクトに取り組むことも効果的です。実際の課題に取り組むことで、理論だけでなく実際の開発経験も積むことができます。
また、積極的にコミュニティに参加することもおすすめです。オンラインフォーラムやコーディングコミュニティに参加し、他の開発者との交流を通じて学習を深めましょう。
質問をすることや他の人の質問に答えることで、自身の理解を深めることができます。
最後に、継続的な学習と情報収集を心がけましょう。
技術は日々進化していますので、最新のトレンドやベストプラクティスについて常に学び続けることが重要です。技術系のブログやニュースサイトを定期的にチェックし、自己啓発に努めましょう。
総じて、実践的な経験と理論的な学習をバランスよく取り入れ、コミュニティや情報源との交流を通じて成長することがエンジニア初学者にとっての成功の鍵となります。
まとめ
この記事の初めにエンジニアの知識は頭の中にインデックスとしてたくわえていくものだと書きました。
エンジニア学習とはまさに技術のインデックスを脳内に作り上げる作業です。
言語やフレームワーク、データベース、ネット、セキュリティ、マネージメントなどの技術をより適切なインデックスにして頭に整理していってください。
学習してエンジニアの仕事をするときに企業から最初に求められるのは技術スキルとコミュニケーションスキルです。
感覚的に言うと人と仲良く最後までやり遂げてくれる力だと言えます。
技術知識は多いほどいい訳ですが、普通はそこそこの技術知識と論理的思考力や問題解決能力があればやっていけます。
コミュニケーションスキルは学んで高めていくことができるのでYouTube動画でもいいので意識的に学んでおくといいです。
性格ではなくスキルだと割り切って身に着けてしまえばいいようなものです。
必要になるコミュ力は、まずは人から嫌われないことが大事で、できれば好かれるようになれるといいです。
基本的には相手を尊重して誠意を持って接していれば自然と信頼され好かれるようになっていきます。
注意すべきは技術力の高いエンジニアや高学歴なクライアントはやたらとプライドが高いことです。
彼らが自信を持っている技術や学歴、賢さなどへの自己イメージを壊さないように配慮してあげないとトラブルが起こりやすいので注意してください。
無理にこびへつらったりはしなくいいですが、嫌われても面倒なので謙虚な姿勢を保ち、たまには相手の良いところをほめるくらいのことはしておいてもいいです。
エンジニアは技術者なので最終的には人間性よりも高い技術力や経験の多さが評価のポイントとなり、それらを持つ人が好かれ仕事を任されるようになります。
エンジニアになったらまずは信頼されて好かれることを目指して、最終的には技術力や経験で尊敬されることを目指せばいいでしょう。
そのためにもこの記事で扱った観点は役に立つはずなので、ぜひあなたの頭のインデックスに少しでも多く取り入れてみてください。
基本的な考え方
具体的な学習につまずいたときなどは、一段上の視点に立ち、現状を見渡して考えるといいです。
そんなときに役に立つマインドセットを次のカテゴリーで紹介しています。
学習も人生も同じで、基本的には、目的を持ち実現方法を考え実行するということを繰り返します。仮説検証やPDCAサイクルを回すということです。
具体的には目的を持つことで、必要なことや優先すべきことなどの判断基準が生まれるので、目的をしっかり持ち続けることが大切です。
次にはそれを実現するための行動を取り続けることです。自分にとってよりよい目的を持つことで行動の継続力も高まります。