eljefeblog 

Any sufficiently advanced technology is indistinguishable from magic

programming

【厳選Tips6】 Pythonで始めるプログラミング入門2


[厳選Tips6]この記事はPythonで始める初心者プログラミングの続編となります。
まだ読まれてない方はどうぞ↓↓↓




さて、前回の記事ではProgrammingを習得するにあたり
効率的に学習を進める方法とその考え方について紹介しました。


本記事では続編として更に効率的に学習を進める方法として
ブースター的役割を果たす追加のTipsを紹介します。


是非効果的な学習方法を学び実践してみてください。

Pythonで始めるプログラミング入門

Tip1 身の回りの人間関係を重視せよ



Pytonの基本的文法を理解し、実際にコーディングに取り掛かる上で
学習スピードを更に加速するには、身の回りの環境・詰まる所人間関係
に焦点を当てること
が効果的です。


ここでオススメの学習法は
Pythonを使用したプロジェクトに共に取り掛かってくれる仲間を見つけ
簡単なアプリケーションを開発することです。


同じ目的意識を持った仲間とプログラミングをすることで
高いモチベーションが維持され
更にアプリケーション開発を行う上で機能に必要な実装は
自分の頭で考え、それを正しく相手に伝えることが必要な為
チームでの開発技術も鍛えられます。


仮に周りにプログラミングの勉強をする仲間がいない場合でも心配しないでください。
他にもPythonの習得に熱狂している人達に出会えるイベントやmeet-upはたくさんあります。


例えばPython学習を目的としてpeer-to-peer学習コミュニティのPythonistaCafe
各地方で開催されるPyconに参加することを強くお勧めします。
Pyconに関しては日本に分岐したPyconJPなど
各地方にもそのコミュニティがあります。


そこには高い技術力を持ったエンジニアが参加している為
技術的価値の高い情報を容易に取得できるでしょう。
自分のConfort Zoneを取り壊し、積極的に活用してみましょう!


Tip2 人に教える


これは僕が最もお勧めする学習方法ですが


何を教えるにせよ
人にわかりやすく物事を教えるには
その物事を本当の意味で自分が深く理解している
必要があります。


「教える」という行為は自分の理解度を測る上でも
おそらく最も効果的な方法でしょう。


自分が何かを学ぶ時
例えばこの部分を人に教えるとしたら、どのように伝えれば理解し易いだろうか
とイメージしながら学習を進め、実際に人に教えてください。
これまでに無いほど理解が深まっていく事を感じることができます。


これはPythonを学ぶ上でも頭に留めておくべきTipsで
その方法はたくさんあります。


例えばホワイトボードに新しく学習したPythonの構文を書き出し
他のPython Learnerに説明することや


YouTubeに上げるため何かあなたが勉強したものを説明する
動画のレコーディングを行うこと。


もしくは自分のPCに向かって
自分自身に説明する形でも良いでしょう。


これら1つ1つの戦略は
あなたの理解の浅いポイントを特定し
より深く確かな理解を促進させる効果があります。


他人にわかり易い説明ができる
このことを意識しながら学習を行いましょう。


Tip3 Pair Programmingを実践せよ



Tip1にて少々取り上げましたがPair Programmingは2人の学習者が1つの机に向かい
同じタスクを協力して完成させる学習方法の事です。


2人の学習者は”driver” と”navigator”の役割を交互に交代しながら学習を進めます。
ここでの”driver”のはcodeを実際に書く役割を果たし
“navigator”は取り組む問題解決の補助(アルゴリズムの提案)やdriverが書いた
code check等のレビューを行います。


Pair Programming学習は多くの利益があり
例えば誰かが貴方が書いたコードを添削してくれるだけではなく
対象となる問題の解決策のアルゴリズムとして
貴方とは異なる視点からの解き方を得られる
のです。


様々なアイディアに触れる事で問題解決に対する思考方法が鍛えられ
1人でプログラムを書く際より効率の良いコーディングを
行えるようになるでしょう。

Tip4 “良い質問”の仕方を身につける


一般的に多くの人は何か勉強をする上で質問をすることに悪いことはない
どんどん質問するべきだと言う意見を持っているでしょう。


しかしプログラミングを習得するにあたり
この考え方は正確には当てはまりません。


そこには”悪い質問”つまり、するべきでない質問が存在します。


例えば貴方が何か問題に取り組んでいる際
ちょっとしたエラーや脈略のない問題に詰り
誰かに助けを求めた場合を考えてみましょう。


この場合以下の条件で質問を行うとGOODな質問の仕方になります。
当たり前だと思われるかもしれませんが、
無意識に悪い質問をしている方が多いです。


メンターなど、何か教えを求める場合、以下の項目に留意してみてください。

  • Give: 貴方が何に取り組んでいて、どんな問題を解こうとしているのかその背景を的確に伝えること
  • Outline: その問題を解決するにあたり既に取り組んだことの概要説明
  • Offer: 現段階で、その問題解決において自分自身で考えたbestと推測される解決策の提供。
    (この事により、教える側は今の貴方の問題に対する理解と貴方自身で問題解決に対してどのような努力をしたのか理解することができます)
  • Demo: CodeやTraceback Error Messageを含め、何処で行き詰っているのかデモンストレーションを行うこと。また、そのエラーに対し貴方が何を実行し、どのような結果を受け取ったのかを示すこと。
    (これによりHelperは2度同じ事をする必要が無くなります)


GOODな質問は質問する側、答える側の時間を本当に多く節約することができます。
この条件を満たさない”悪い質問”は両者の問題に対する理解を阻み、会話の時系列が前後するなど発言の衝突が生まれる原因となります。


初学者として、貴方は成長のためたくさんの質問をすることになると思いますが、
貴方を手助けする人が不快にならない質問の仕方を身につけることで
多くの人が喜んで質問に答えてくれる環境を意識して構築していきましょう。



Tip5 “何か”を創ること



Pythonに対し自信をつけさせるため
初学者のために小さなプロジェクトに取り組むチャンスが
たくさん提供されています。


Tip1で前述したように、基本的なPythonの構文(-strings, lists, dictionaries, sets)や
オブジェクト指向のプログラミング, そしてClassの考え方などを理解し習得したら
実際にプロジェクトに取り組んでみましょう!


Python学習において
“何を作るか”は”どうやって作るのか”に比べ取るに足らない心配です。
何かを作り上げることは本当にたくさんのことを教えてくれます。


少し複雑なプロジェクトに携わると
エラーのオンパレードを経験することも稀ではありません。
こういった問題を一つ一つ解決していくことが強固な自信と
深い知識の構築につながります。


インターネット上には様々なサービスが提供されていますが、
ここに僕がPython初学者に提案するいくつかのideaを紹介します。


  • 数字推測ゲーム
  • 単純な計算機アプリケーション
  • 大学生の為の時間割表アプリけーション
  • ビットコイン価格通知サーピス


貴方が興味があるものであれば何でも良いのです。
ぜひ自分の頭で考えたアイディアをPythonを使い形にしてみましょう。
プロジェクトが進むにつれ自分の成長が実感できるはずです。


Tip6 OSSに取り組んでみよう

OSSとはOpen-Source-Softwareの略称でsoftwareのsource codeが公開され、
誰でもそのプロジェクトに貢献できるといったものです。


多くのPythonライブラリがこれに相当するもので、
意識してみると機械学習ライブラリのTensorflowPytorchなど
GoogleやFacebookをはじめ多くの企業がOpen-Source Projectに
取り組んでいることが分かります。


即ち、OSSに取り組むとそういったIT企業に務める
最先端の技術を持つエンジニアと仕事できることを意味しているのです。(しかも無料で)
貴方の仕事次第では、彼らより何かしらコンタクトを貰える可能性すらあります。


Pythonを学ぶ全ての学習者にとって
Open-SourceのPythonプロジェクトに貢献することは学習する上で
究極的に良い経験になります。


例えばあたなが何かのOSSに対してバグを発見し、修正するリクエストを送るとします。
これは”pull request”と呼ばれ貴方の修正コードを提案するものです。


するとそのOSSにおけるPM(project-managers)があなたの仕事を確認し
コメントや提案を残してくれます。


仮に貴方の仕事が素晴らしいものであった場合
そのpull requestは承認されプロジェクトに”merge”されます。
文字通りそのプロジェクトに貢献することができる訳です。


この一連の動作は本当に勉強になります。
何より一流のエンジニアがコードチェックを無料で行い、
仕事内容によっては彼らとプロジェクトに携わることができるのです。


他のdeveloperとコミュニケーションを取る練習にもなり
一石五鳥は硬いです


Pythonで基本的な知識を備え、次にすることを決め兼ねている人は
ぜひOSSに取り組んでみましょう!Python Programmerとして
間違いなく、更なる飛躍が期待できます。


まとめ


いかがだったでしょうか?

本記事ではPython初学者に向け、
効率よく勉強を進める戦略をいくつか提供しました。

この一連の記事を読んだ貴方はすでに、
Python Codingに飛び込む準備ができているはずです。

あとは実行するのみ!
実際に手を動かして学習を進めてみましょう!






人気記事【初学者必見】効率的なプログラミング勉強方法を紹介します

人気記事 CS学位取得者がガチでプログラミングスクールを調査してみた件【おすすめのスクール】












data-ad-format="rectangle" data-ad-format="rectangle"

返信する

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

某国立大学大学院(理系)に所属しています。 最近の趣味は人工知能関連の論文を読む事で 研究ではComputer Vision周りを中心に活動しており、 サイドワークとしてデータ分析の業務に関わっています。 本ブログはこれまで筆者が学んできた様々な知識の中から 有益だと思えた情報のみをまとめたものです。 内容は個人の見解であり、所属する機関と関係するものではありません。 Research: is related to Computer Vision Hobby: is to study Artificial Intelligence / Machine Learning.