ベストアンサー
本当の答えは「状況によって異なります!」です。フロントエンド、フルスタック、バックエンド、データサイエンスなど、どのスライスに関心があるかによって異なります。これらすべての基盤は、次のように抽象化できます。
- お気に入りを選択してくださいプログラミング言語。そして、何らかのコード問題でそれを使用することを練習することによって、その言語のすべての概念を学びます。これは、パラダイムが完全に異なっていても、別のプログラミング言語を学習するための優れた基盤となります。ある意味ではすべてが相対的であるため、Aを評価するには、Bを味わう必要があります。いくつかの問題をどのように解決するかに基づいて言語を比較し始めます。
- CodeKatasを実行します。同じ問題をさまざまな方法で解決してみてください。試したさまざまなアプローチについて考えてください。あなたがする他のすべてのコードカタに対してこれをしてください。役に立ちます!
- 問題を解決するミニプロジェクトを実行します。しばらくしてからもう一度確認し、機能を追加できるかどうかを確認してください。あなたはおそらくあなたがした貧しい仕事のために自分自身を虐待しているはずです。これは良い実現です。あなたの過ちを考え、あなたが取ったより良い方法は何であるかを考えてください。 間違いから学びましょう。これが実際の経験です。 経験は数ではありませんが、物事を進めながら学ぶことです。
- Githubからミニプロジェクトまたはライブラリコードをいくつか選び、コードを読んで問題がどのように解決されるかを確認します。他の人のコードを読んで考えることは人を助けます。
- 本やブログなどを読んでください。
- ブログを介して自分の考えを書き始めてください。確実に学習に役立ちます。
- 交流会や会議に参加して、周りで起こっていることのノウハウを入手してください。それはあなたの学習を誘発するかもしれません。結局のところ、私たちは皆、時々誘発されるやる気と目的意識を必要としています。
- 交流会や会議で学んだことを共有してみてください。それはあなたに魔法のように働きます-真剣に。
特別なヒント:途中で、あなたはあなたのエネルギーと時間を奪い、あなたを落胆させる多くのジョーカーに出くわすでしょう。あなたがすること。批評家とジョーカーを区別することを学ぶことは、大きな命の恩人です。
これは私のキャリアの開始以来私がしたことであり、今日でもすべてを続けています。
回答
ソフトウェアエンジニアの意味によって異なります。私が見つけたソフトウェアエンジニアリングの最良のリソースは経験です。ちょっと我慢してください。ここでのほとんどの回答はプログラミングに関するもののようであり、プログラミングに関する優れたリソースが実際にたくさんあります(ここでの回答には多くの良い例があります)。問題は次の3つのカテゴリに分類されるといつも感じていました。
- プログラミング。あなたが今日取り組むのが好きな種類の問題のために合理的な言語を選んでください。それをよく学びなさい。たくさんの練習。他の尊敬されている専門家のコードをたくさん読んでいます。もう少し書いてください。必要に応じて、または興味に応じて言語を追加します。
- アルゴリズム、データ構造、比較言語、および一般にコンピュータサイエンスと呼ばれる知識体系。これが、小さな問題の解決から大きな問題の解決、それらの効果的な解決(効率的だけでなく)、そして解決策の限界を理解して説明できるようにすることへとゲームを引き上げるものです。
- 「ソフトウェアエンジニアリング」は、上記の2つのアイデアとは異なります。これは、ソフトウェアが「顧客」に提供されるプロセスです。一貫性のある再現性のある信頼性の高いソリューションの提供です。 GUIは、デスクトップ上に初期の概念実証/プロトタイプソリューションを構築するのに適していますが、「本番環境」に提供するには不十分であることを理解しています。これは、各ステップでの配信パイプラインの理解と、各ステップが実行される理由です。それはすべての自動化と規律です。規律がなければ、ソフトウェアは拡張できません。ほとんどの場合、実地訓練であるため、これに関するコースはまだ見ていません。そして、多くの場所がこれを間違えています。間違いはコストがかかります。
たぶん私があなたに与えることができる最高の比喩は料理です。あなたはかなり速くあなた自身のために料理することを学ぶことができます。あなたは一握りのレシピで上手になることができて、練習はあなたを速くします。友人や家族のために豪華な食事を作ることにステップアップすると、新しいスキル、新しいツール、新しいレシピが必要になるかもしれませんが、快適ゾーンから少し離れます。クラスを1つか2つ受講すると、ゲームを劇的に向上させることができます。クラスは、地元の大学での夜間クラスからルコルドンブルーまで、あらゆるものに及びます。次に、すべてを変える「レストラン」へのステップがあります。今では、期待を持っている人々に確実に再現可能な食品を届けることが重要です。調達、バッチ、前段階、準備、ツールの方法は異なります。プロセスの「工業化」は「エンジニアリング」です。そして、あなたは今、チームの一員です。そして、顧客がいます。タコスタンドであろうとミシュランの星を獲得したレストランであろうと関係ありません。教室での作業の量は、すべての職場での学習に完全に備えることはできません。
そして、3つすべてを一度に学習し始めることができます。 3つのスキルセットのどれに取り組んでいるかを理解し、他の2つのスキルセットを忘れないでください。 最初の2つは練習が必要ですが、後者は経験があります。