コーディングのはじめかた。 A Practical Guide For Beginners (Updated 2020)

ステップ3:学んだことを実践するプロジェクトを始める

講座を見るだけでは、コンセプトを内面化することはできないでしょう。 そのコンセプトを実践する必要があるのです。 そのための最良の方法は、プロジェクトを立ち上げることです。

プロジェクトのアイデアがある、またはコーディングで解決したい問題がある場合、それは素晴らしいことです!

プロジェクトに参加することです。

そうでない場合は、インスピレーションを得たり、試したりできる初心者向けのプロジェクトのリストを用意しました。

Some Beginner-Friendly Projects you can try

ここで、混乱するかもしれないいくつかの専門用語

ライブラリーを紹介します。 ライブラリは、コンパイルされ、1 つのファイルに一緒に保存されたコードの関連する部分のコレクションです。 そのファイルは、ライブラリ内のコードにアクセスできるようにコードとリンクすることができます。 API は、Application Programming Interface の略です。 API は、2 つのアプリケーションが互いに会話することを可能にするソフトウェア仲介です。 言い換えれば、API を使用すると、ソフトウェア プロバイダーから機能を要求して自分のコードで使用することができます。 たとえば、Spotify API では、Spotify から曲やアーティストなどのデータを要求することができ、そのデータを自分のコードやアプリケーションで利用できます。

Level 1 Projects

Calculator

  • Language.Layer.Layer.Layer.Layer.Layer.Layer.Layer.Layer.Layer.Layer: Python
  • Libraries: なし
  • Guide: https://www.programiz.com/python-programming/examples/calculator

Sudoku Solver

  • Language: Python
  • Libraries: なし
  • Guide: https://techwithtim.net/tutorials/python-programming/sudoku-solver-backtracking/

Hangman

  • Language: Python
  • Libraries: なし
  • Guide: https://www.pythonforbeginners.com/code-snippets-source-code/game-hangman

Level 2 Projects

Chess

  • 言語: Python
    • Language: Python または Java
    • Libraries: なし
    • Guide: https://www.youtube.com/watch?v=ejZqLsQDjuo

    Weekly Discover Spotify Playlist

    • Weekly Discover Spotify playlist と同様のことをするシステムを自作する
    • 言語:Language: Python
    • Libraries: Spotify API
    • Guide: https://towardsdatascience.com/making-your-own-discover-weekly-f1ac7546fedb

    Automatic time tracking Tool

    • Improve the focus by tracking the time spent on desktop applications or web sites in real-time.
    • Language: Python
    • Libraries: Selenium
    • Guide: https://www.youtube.com/watch?v=ZBLYcvPl1MA

    Level 3 Projects

    Instagram Automation

    • Automate the process of post to Instagram
    • Language.Lang: Python
    • Libraries: Flask,Instapy
    • Guide: https://www.youtube.com/watch?v=vnfhv1E1dU4

    Twitter Bot

    • フィードに自動的にツイートするボット
    • 言語:Language: Python
    • Libraries: Twitter API
    • Guide: https://medium.com/science-friday-footnotes/how-to-make-a-twitter-bot-in-under-an-hour-259597558acf, https://learn.g2.com/how-to-make-a-twitter-bot, http://socialmedia-class.org/twittertutorial.html

    Telegram chatbot

    • A chat telegram messages
    • Language: Python
    • Libraries: Python-Telegram-API
    • Guide: https://www.freecodecamp.org/news/learn-to-build-your-first-bot-in-telegram-with-python-4c99526765e4/

    このリストは完全なものではありません。 解決しなければならない問題があれば、それをプログラミングでどのように解決できるかを考えてみてください。 それもプロジェクトになりえます。

    簡単にあきらめないで、最初の苦労を突破すること

    プログラマー志望者として最大の失敗は、自分はプログラミングを学ぶほど頭が良くないと思い込んであきらめることです。 プログラミングの学習は難しく、学ぶべきトピックがたくさんあるため、ほとんどの人がある時点で困難に直面するでしょう。 プログラミングをしていると、最初のうちは意味のわからないトピックがたくさん出てきます。 だから、ネガティブな自己思考は慎んでください。

    私も行き詰まりました。 同じ講義やビデオチュートリアルを何度も見直して、コンセプトを把握することがよくあります。 もし、あなたが私のような状況に陥ったとしても、がっかりしないでください。 もし今学んでいるトピックが理解できないのであれば、その場に留まりましょう。 次のトピックに進んではいけません。 スキップして先に進むのは、土台を無視して家を建てるのと同じです。

    使用しているチュートリアル(または書籍)がそのトピックを十分に説明していない場合、自分に合った他のリソースを見つけなければならないかもしれません。 Google では、学びたいことはほとんど何でも無料で見つけることができます。 何を検索するか(例:in+その他の有用なキーワード)

    助けを求める前に、少なくとも20分間は自分で何かを解決する時間をとりましょう。 答えがすでに目の前にある可能性が高いのです。

    Stackoverflow とプログラミング学習は、プログラミング支援のための金鉱です。

    目標は、学習経路を進むにつれて、自分自身の学習を意識することです。 したがって、まず理解することなく、コースに従って盲目的にコードをコピーすることはやめましょう。 レッスンで教わったコンセプトを理解し、それを再現するようにしましょう。

    学習が進んだら、プログラミングの練習をすることを習慣にしましょう。 leetcodeでもhackerrankでも、プロジェクトを作るのでもよいです。 学んだ概念で、すべてのモジュールの後にプロジェクトを行うようにしてください。

    Part 2: 上級プログラマーへの道

    さて、プログラミングの基本を学んだら、次はどの道筋でプログラミングを学びたいかを考えることになりますね。 プログラミングの基本を把握した上で、思い切って挑戦できる道はたくさんありますが、中でもソフトウェア工学&データ分析

    Data Analytics

    データ分析とは何でしょうか。 アルゴリズムや機械的なプロセスを適用して、洞察を導き出すことが含まれます。 例えば、複数のデータセットを実行して、互いの間に意味のある相関関係を探します。

    では、なぜデータ分析を学ぶ必要があるのでしょうか。 ビッグデータは未来です。 ビッグデータは指数関数的なスピードで生成されており、多くの企業がそのデータを活用して、より良い意思決定や、既存の理論やモデルの検証・反証を行っています。 多くの企業でデータが意思決定の中核となるため、データ分析の需要は今後ますます高まると予想されます。

    データ分析を無料で学ぶにはどうすればよいでしょうか?

    私は大学のカリキュラムを調べ、無料のオンラインコースを大学のコースに一致させようとする道筋を思いつきました。 しかし、これらのコースはすべてPythonで、別の言語で学びたい場合は、遠慮なく他のコースをチェックしてください。

    データ分析モジュールの概要

    概要は概ね大学のモジュールをベースにしています。 ただし、データ構造やアルゴリズムなど、大学が教える重要なモジュールは、より概念的でレベルが高いので除外しています。

    注意:機械学習は基礎講座で学んだスキルを活かせるので、優先度を高くしています。

    基礎講座

    モジュール1: Pythonの基礎を学ぶ(1ヶ月)

    • Pythonの文法を学ぶ
    • ループを学ぶ
    • オブジェクト指向プログラミングを学ぶ

    Module 2: データ前処理、データ可視化、探索的データ分析(1ヶ月)

    • pythonライブラリ(matplotlib、numpy、pandas)の活用方法を学ぶ
    • これらのライブラリでデータを操作する

    上級コース

    モジュール3.データ前処理(Maprocessing)

Module 3: 機械学習(2ヶ月)

  • 前提条件。 Linear Algebra
  • Machine Learningは数学のかなり専門的なコースです
  • Python には Scikit-Learn という機械学習用のかなり包括的なライブラリがあります
  • 機械学習をより実践的に学ぶには、Kaggle Learnをチェックするとよいでしょう。

Real-World Tools Courses

Module 4: Databases (SQL) (1 Month)

  • データベースコースでは、基本的にデータがどのように保存され、プログラミング機能を行うためにそのデータを取得できるかを学びます。
  • データベースとSQLの実務知識は、データサイエンティストを目指すなら必須です。

モジュール5:実世界ツールコース

  • Hadoop & Map-Reduce + Spark(choose one) (1.1 ヶ月)。5ヶ月)
  • これらは、大量のデータを処理するために業界が共通して使用しているビッグデータツールです。
  • Hadoop技術を学ぶことで、多くの基礎知識、理論、実践スキルを身に付けることができます。 また、それを使って新しい発見があるかもしれません。
  • Spark は Hadoop の最新の実装で、ユースケースが増加しています。

Module 6: データストーリーテリング(1週間)

  • データでストーリーを提示することは、分析専門家が経営者や管理者、その他の利害関係者に日付信号と洞察の本質を提供する上で欠かすことのできないリンクです。

オプションコース

  • Data Structure
  • Algorithm
  • Deep Learning
  • 5つのコースで、Deep Learningの基礎を学び、ニューラルネットワークの構築方法を理解し、機械学習プロジェクトの成功に導く方法を学ぶことができます。 Pythonと、彼らが教えてくれるTensorFlowで、これらのアイデアをすべて実践します。
  • これは、最高のディープラーニングコースの1つです。 現在、私はこのコースをやっている最中ですが、ディープラーニングが技術的なトピックであるにもかかわらず、シンプルでわかりやすく提示されているので、レビューに同意します。
  • Another great free resource is fast.ai

Things to avoid while learning Data Analytics

The pitfall is you just are learning but not applying the knowledge. 私が知識を応用するために試している方法の1つは、すべてのモジュールを完了した後にプロジェクトを開始することです。 データ分析については、Kaggleから好きなコンペティションでがんばることができます。 Kaggle Learnを参考にする

ソフトウェア工学

ソフトウェア工学とは

一言で言えば、ソフトウェア工学とは、基本的にプログラミングの概念を使ってアプリケーションを構築することです

どうすれば無料でソフトウェア工学が学習できるのでしょうか?

ソフトウェア工学は、データ分析よりもコンピュータの概念の基礎的な理解が必要だと思いますので、私のモジュール概要では、より理論的なコースを含んでいます。

感覚をつかむために何かを作りたいのですか?

Outline of Software Engineering Modules

Fundamental Courses

Module 1.基礎コースは、理論的知識の面で障害にぶつかったときにいつでも再訪することができます。 Pythonの基礎を学ぶ(1ヶ月)

  • Pythonの文法を学ぶ
  • ループを学ぶ
  • オブジェクト指向プログラミングを学ぶ

Module 2: データ構造(2ヶ月)

  • このコースでは、リンクリスト、スタック、キュー、バイナリツリー、ハッシュテーブルなどの必須データ構造と、バイナリサーチ、クイックソート、マージソート、挿入ソートなどの検索とソートのアルゴリズムについて学習します。
  • データ構造は、コードに最適なデータ型を使用することにより、コードのパフォーマンスを向上させることができるため重要です。
  • 私が推奨するデータ構造コースは Java で、python のシンプルな言語からより冗長な言語への移行を強制されます。 また、Javaはオブジェクト指向プログラミングとデータ構造を学ぶのに適しています。

Module 3: Algorithms (2 Month)

  • This is the second part of the two-part series of the free online Coursera courses covering data structures and algorithms by Robert Sedgewick and Kevin Wayne, both are professor of Computer Science.
  • This part, you learn about graph- and string-processing algorithms.The following to the following session in the single part, the two-part series in the single part in this course, you’re learned the data structures and algorithms.
  • また、アプリケーション開発で使用されるいくつかの高度なデータ構造とアルゴリズムについても学びます。

Module 4 : (Databases) (1 Month)

  • The database course basically teaches you how data is stored and how you can retrieve that data to perform programming functions.データベースコースでは、基本的に、プログラムが実行されるためにデータがどのように保存され、そのデータを取得できるかを学びます。

Module 5: Networking (1 Month)

  • ネットワークコースをやることはあまり重要ではないので、飛ばしたい人は飛ばしてもかまいません。 しかし、サイバーセキュリティに興味があるのであれば、絶対に欠かせないコースです

実践コース

Module 6: Week 9-10 (Web Development) (2 Month)

  • トピックとしてはデータベース設計、拡張性、セキュリティ、ユーザ体験などが挙げられます。 ハンズオンプロジェクトを通じて、APIの記述と使用、インタラクティブなUIの作成、GitHubやHerokuなどのクラウドサービスの活用を学びます。
  • 個人的には、フロントエンドからバックエンドまで、非常によく説明されているこのコースは、Web開発で一番好きなコースでした。
  • これは、ウェブサイトのインスピレーションを得るための良いリソースです。 https://github.com/melanierichards/just-build-websites

Module 7: Mobile App Development (Pick which you like most) (2 Month)

  • IOS
  • Android
  • Flutter (I preferred method of App Development)
  • 個人的にはios開発は学んだことがないんですが、Flutterを使ったアプリの開発にはとても興味があります。 しかし、androidとflutterを比較すると、flutterの方が開発やプロトタイプ作成が早いので、flutterの方が好きです

上級コース

Module 8: Software Architecture (2 Month)

  • このコースでは、UMLなどの視覚ツールを使ってソフトウェアアーキテクチャを表す方法を学習し、株主や実装する開発者とアーキテクチャについて話し合うために非常に重要な役割を担います。
  • また、標準的なアーキテクチャのいくつか、その品質、およびトレードオフについても学びます。 また、設計がどのように評価されるのか、良いアーキテクチャとは何か、アーキテクチャは改善できるのか、についてもお話します。

Module 9: Software Engineering Practices (1 Month)

  • このコースを修了すると、以下のことができるようになります。
  1. 与えられた問題に対してコンセプトレベルでコアソフトウェアエンジニアリングのプラクティスを適用する。 これらには、ウォーターフォール、Rational Unified Process、V モデル、インクリメンタル、スパイラル モデル、およびアジャイル マインドセットの概要が含まれます
  2. ある状況に最も適した方法論を提案する

Optional

Machine Learning

  • 実際には Andrew Ng
  • によるより理論的な Machine Learning コース をお勧めしました。 彼はコンセプトをよく教えており、何年経っても最高の機械学習コースの1つです。

Deep Learning

  • 5つのコースで、Deep Learningの基礎を学び、ニューラルネットワークを構築する方法を理解し、機械学習プロジェクトを成功に導く方法を学びます。 Pythonと、彼らが教えてくれるTensorFlowで、これらのアイデアをすべて実践します。
  • 現在、私はこのコースをやっている最中ですが、わかりやすく紹介されていますね。 また、Andrew NgはoctaveではなくPythonを使っているのも良い点です。
  • Another great free resource is fast.ai

まとめ

今回は大学の授業をベースにモジュールを推薦しましたが、組み合わせて自分にとって最適なカリキュラムを組むことが可能です。 この記事があなたのお役に立てたなら、ぜひお友達にシェアしてくださいね。 私について、また私の仕事についてもっと知りたい方は、ぜひ私のウェブサイトhttp://www.chiayong.me/

を訪れてください。

コメントを残す

メールアドレスが公開されることはありません。