質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.49%

  • Python

    12220questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Python初心者の為の当面の目標及び勉強方法

解決済

回答 7

投稿

  • 評価
  • クリップ 2
  • VIEW 2,943

toza_program

score 5

AIやディープラーニングに興味を持った事をきっかけにプログラミングをはじめて2日目の者です。ある質問サイトから、プログラミングについての質問はteratailが良いと聞いたので、アドバイスをいただきたく質問させていただきます。

AIやディープラーニングに向いていて、C言語やその他のプログラミング言語よりも平易との事からPythonから勉強しているのですが
周囲にプログラミングをやっている人、教えてくれる人がおらず、「Python言語の基本から仕事のやり方まで」という書籍を教科書替わりにやっています。

現在の総学習時間は書籍を読む時間、何度か同じ作業を繰り返す反復練習で3時間程度
できるようになった事は、
printで文字を打つ事、rangeで繰り返す事、四則計算、簡単なif 簡単なelifを本を見ながらやっています。(ほぼ、本に載っている文そのままか、HelloをHi等にアレンジしているだけ)
程度です。「3時間でその程度か」と言われてしまいそうな内容で大変恥ずかしいのですが、当面の目標や勉強方法は
どのようにするのが良いのでしょうか?

自分では、何か簡単な物を作っていく過程で、プログラミング言語に慣れるのが良いのかと考えていますが
その、”簡単な物”はどんなものがありますか?
``

また、勉強方法は、プログラミング教室で習うべきなのかもしれませんが、自分の居住地では子供向けの年齢制限のあるプログラミング教室しかなく、オンラインでの受講が可能なプログラミング教室か、本による独学とプログラミング上級者の皆さんからの助言になるのですが、どちらが良いのでしょうか?この本で学ぶべき!と言うものがあれば併せて教えて下さい。

将来、プログラミングを仕事か、仕事でなくとも高度な物が作れるようになりたいです。
プログラミングに対する可処分時間は、平均して2時間程度になると思います。

真剣に取り組みたいと考えていますので、低次元の質問で大変申し訳ありませんが、宜しくお願い致します。
(タイピングはブラインドタッチができ、そこそこはやく打てると思います。)
当サイトでの質問は初めてなので不備がありましたらすみません。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 7

+4

その、”簡単な物”はどんなものがありますか?

プログラミングそのものに慣れ親しむのが目的なら、簡単なゲーム(神経衰弱とか)がお勧めです。ループ処理、条件判定、リストの扱いなど、基礎的な素養が偏りなく習得できます。

データ解析に向かうなら、日本政府が人口動態や気象観測データが無料公開してくれていますから、これを使って課題設定をしてプログラムを作ってみるといいでしょう。といっていきなり高度な成果をだそうと頑張ると挫折する危険性が高いので、最初は「県庁所在地の降水量の平年値を求める」ぐらいから始めるといいでしょう。

でも本来は「簡単なもの」を自分で考えるところからプログラミングの勉強は始まっていると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

https://dotinstall.com/lessons/basic_python_v3

https://www.coursera.org/learn/machine-learning

無料の良いコースがたくさんあります。

Pythonと機械学習を同時に学ぶのはけっこう大変です。

プログラミングをPythonで学び、機械学習を理解するのに必要な数学などを別に学ぶと良いかもしれません。

進捗を記録しておいて、学んだものが何で、それを簡単に感じたのか難しく感じたのかなどの情報を添えると、同じような境遇の方からアドバイスを貰えるかもしれません。


プログラミングに関するバックグラウンド、ソフトウェア開発の知識、数学のレベル
などの情報があると回答がより適切になります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/17 22:24

    ご回答いただき、ありがとうございます。
    一番上のURLの講座をいくつか拝見しました。
    面白いですね。

    キャンセル

+2

質問文を上から順に読んで、思うままを回答しますので、支離滅裂になると思います。すみません。

当面の目標や勉強方法はどのようにするのが良いのでしょうか?

具体的に「これをプログラムでやりたい」というものを見つけるのが一番なのですが…

自分では、何か簡単な物を作っていく過程で、プログラミング言語に慣れるのが良いのかと考えていますが
その、”簡単な物”はどんなものがありますか?

具体的になければAOJ: Online Programming Challengeをはじめとする競技プログラミングサイトの簡単な問題から解いていくのもお勧めです。

また、勉強方法は、プログラミング教室で習うべきなのかもしれませんが、

私の経験から云えることは、独学でも大丈夫です。

この本で学ぶべき!と言うものがあれば併せて教えて下さい。

Pythonならオンライン上にいくらでもあるのですが、まずはPython チュートリアルから始めてはいかがでしょうか?

私が最初に基礎を学んだC/C++では書籍中心にC言語 FAQEffective C++ 【改訂第2版】プログラミング作法ソフトウェア作法あたりで学習しました。
オンライン上でも書籍でも、数回読んだ/写経しただけでは理解できませんでした。ですので分かるまで繰り返し通読、写経&元コードを改変しました。

AIやディープラーニングに興味を持った事をきっかけにプログラミングをはじめて2日目の者です。
(略)
printで文字を打つ事、rangeで繰り返す事、四則計算、簡単なif 簡単なelifを本を見ながらやっています。
(略)
将来、プログラミングを仕事か、仕事でなくとも高度な物が作れるようになりたいです。

2日間でそこまでできておられるなら(rangeで繰り返す事を理解するのが意外と難しい)プログラミングに向いていると思います。
私は、ある程度自分のやりたいことをプログラミングで実現できるようになる、自分が書いたコードがどのように動くのか分かるまで2年くらいかかりましたが、これからも学習していくことで可能かと思います。

最後に。

プログラミングに対する可処分時間は、平均して2時間程度になると思います。

プログラミングにハマると何をしてても、最終的には寝てても夢の中でコーディングするようになるので、時間はどうにでもなります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

”簡単な物”はどんなものがありますか?

お勧めは自動販売機のシミュレーターを作成です。

自動販売機には画面在庫の計算金種管理と必要な機能が揃っています。
自動販売機の機能を最初から全部シミュレートする必要はありません。
徐々に機能を増やしていく形がよいかと。

例)りんごジュース、オレンジジュース、ぶどうジュースをinput()関数で選択し選択内容を表示する。
最初はこういうものから初めて、徐々に画面在庫の計算金種管理を機能追加を行う形がいいかと。

プログラムを行うにあたっての開発環境構築も重要です。

IDE(統合開発環境):PyCharm Community 
バージョン管理システム:Git
GitHub Desktop for Windows と GitHub

個人的にIDEとバージョン管理システムはどの言語で開発するとしても必須だと思っています。

タスク管理とToDo管理のツールに関しては好みの問題がかなりあると思うので、
いろいろお試しで導入してくださいな。

プログラムを開発するにあたって発生するデバック作業に関しては
udacityの無料コースのSoftware Debugging Class Onlineが時間が2ヶ月と長いですが、体系的にデバックする考え方を学べます。

長くなったので結論回答です。

  1. お勧めの作るもの:自動販売機のシミュレーター
  2. 統合開発環境とバージョン管理ツールの導入を検討してみてくださいな。
  3. udacityの無料コースのSoftware Debugging Class Onlineはすごくお勧め。

以上です。


2018/03/18追加

  1. IDEの使い方はQuick Start Guideがあります。解説が長くなってしまうため、検索サイトのグーグルでpycharm 使い方で検索してみてくださいな。

  2. IDEを使うと便利な点の一例です。
    以下のコードはprint文の行で変数:abをミスタイプしたことにより実行エラーが発生するコードです。

# -*- coding: utf-8 -*-
def main():
    ab = 2 * 3
    # ↓の行で、NameError: name 'abb' is not defined が発生する。
    print(abb)


if __name__ == "__main__":
    main()

IDEを使うと以下の画像のように赤色の下線でエラー箇所が表示されます。
イメージ説明
実行する「前」にエラーが発生するプログラムだと分かります。

今回のプログラムはソースコードの行数が少ないため、そこまで利便性は感じられないと思いますが。
実際に開発していくにあたり、細かなミスを防ぐ事ができます。
他にも変数名を一括で変更する機能(refactor)などがあります。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/17 22:22

    ご回答いただきありがとうございます。
    昨夜も、ご回答を拝見してその後すぐにIDEをインストールしたのですが、これがどういうものなのか
    どのように使うのかがどうしてもわからず挫折しています。
    udacityは登録しました。

    正直なところ、プログラミングそのものも難しいのでしょうがその周囲にある知識や語句のハードルが高いですね…。

    キャンセル

+1

まわりにプログラミングをやっている人がいなくて、本やネットの情報だけを頼りに取り組んでいる初心者です。
憧れと必要性にかられてやっていますが、基本的に過去なんども分からないこと、行き詰まることばかりで、10年くらい前から何度も投げ出しています。

近年はGoogleで検索できたり、このteratailだったり、いろいろとネット上のサービスの環境がいいので、投げ出さずにやれています。今は興味がうつって、PHP、Ruby(Ruby on Rails)、pythonとやっていますが、

個人的な感想としては、本であればいくつかの本をこなすとなんとなく初心者レベルでわかるようになった気がします。
ただ、本はかさばるのと、分厚い本の場合に開いたままにしたり、ページをめくっていくのが大変で、私の場合は最初から本を無理に読まなくてもいいのかもと思うようになってきました。

現役東大生の考えた、初心者からRuby on Railsをほぼ無料 で習得するための最強カリキュラム
今は上記を参考に、ドットインストールや、プロゲート、その他チュートリアルをまず2回みる、3回目で手を動かすの方法で基礎的なところや、自分としては難解に思える部分も慣れながら勉強しています。
移動中はドットインストールで動画をみて復習するようにしています。

ドットインストールやプロゲートでは、環境構築や、その他の基本的なツールの使い方、SQLについてなど、直接の言語以外を並行してやったほうが、まわりにプログラミングをしている人のいない自分にとってはすごく身になっている気がします。

まだまだ初心者ですが、ドットインストール、プロゲートで反復しながら、合間でteratailを閲覧することで、少し苦手意識が無くなってきた気がします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

0

本業ではなく限られた時間で少しずつということでしたら、小さな目標をクリアしながら進められる形のものが良いかと思いますので、2つご紹介します。

  • 遊び感覚で、とにかく初級レベルを一通り学んでしまう

ゲームをクリアしていく感覚で少しずつ学べるサービスの利用です。paizaの技術者の方のブログに簡潔にまとまっていましたのでご紹介します。
「初心者もゲーム感覚でPythonプログラミングを学べる、6つのサイトが楽しすぎる!」

(すいません、紹介しておいてなんですが、私はいずれも利用したことがないので、この中のオススメについてはお話できません。)

  • ネット公開されている練習問題を解いて回答を公開し、有識者からアドバイスをもらいながら進める

こちらは私自身が実践した方法で、ネット公開されている練習問題を解いてその自分なりの回答を公開し、有識者からアドバイスをもらいながら進める形です。
私はPythonや自然言語処理について学びたかったため、「言語処理100本ノック 2015」という問題集を順に解きつつその回答をQiitaに投稿し、有識者の方からアドバイスをもらいながら進めました。コメントをいただけたり「いいね」をもらえたりするので大変励みになり、この形で最後までやりきることができました。

なお、具体的な質問事項があればteratailなどが良いかと思います。Qiitaは「とりあえず作ってみて結果は出たけど、これがベストかわからない」といった状況での確認に使った感じです。(Qiitaの使い方としてはあまり正しくないのかも知れませんが^^;)

参考になれば幸いです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/18 09:13

    ありがとうございます。
    6つのサイトの中の一番上の一攫千金を試しましたが本を読んで真似している程度の自分ではまだ敷居が高かったようです。
    有料サービスのようですが、pyQが、Pythonを基礎から学べそうで面白そうですね。

    ところで、恥ずかしい質問で申し訳ないのですが、Pythonでwebサイト製作ってできるのでしょうか?
    Pythonでできることを調べた際にwebアプリ製作とあり、私はwebサイト製作と勘違いしていたようです。 仮にできないのであれば、自身のやりたい事は、AIと機械学習となるのですが、いきなりハードルが高いのではないでしょうか? いきなり別の言語と併行してやるのも厳しいですよね…。

    キャンセル

  • 2018/03/18 11:56

    PythonでもWebサイト制作はできます。
    ただし、Webサイト制作とAI・機械学習はかなり毛色が違うものですので、限られた時間で同時に進めるのは大変だと思います。Webサイトの制作方法は目的によって大きく変わってきますし、場合によってはPythonなどの開発言語すら不要なこともあります。AI・機械学習とは分けて考えられた方が良いかも知れませんね。

    Webサイトの制作方法としては、たとえば...

    ・日記のようなものを公開したいのであれば、自分でWebサイトを作るよりも、ブログのサービスを利用するのが簡単です。(私は「はてな」のサービスでブログを公開しています。)

    ・AIや機械学習を勉強された成果などを公開したいのであれば、自分でWebサイトを作るよりも、すでにある技術系SNSを利用した方が、より多くの人に読んでもらえますし簡単です。(私は「Qiita」を利用しています。)

    ・ネットショップを作って何かを販売したいのであれば、自分でWebサイトを作るよりも、最初はECサイトのサービスを利用するのが簡単だと思います。(私は使ったことがないので良く分かりませんが。)

    ・前述のようなサービスを利用するのではなく、自社専用/個人専用のWebサイトを作る必要がある場合は、WordPressのようなツールを使ったり、HTMLやCSSの勉強をすることになりそうです。少しググってみましたが、「サルワカ:Webサイトの仕組みは?Webページの作成〜公開までの流れ」(https://saruwakakun.com/html-css/basic/web-make)の解説が分かりやすそうでした。

    ・ご自身で何らかのプログラムを作って、それによって何か便利なサービスを提供するWebサイトを作りたいのであれば、その時は開発言語も必要になります。Pythonの場合はDjangoというフレームワーク(開発する時に便利な道具集のようなもの)を利用するのが一般的なようです。(私はPythonでWebサイト/Webアプリを作ったことはないので良く分かりません。ちなみにC#+ASP.NETで、ゲームのドラクエ10のマップにおけるルート探索サービスを作ってAzureで運用していたことはあります。)

    ・Webで公開されている便利なサービスを組み合わせて新たなサービスを提供したい、ということであれば、開発言語を使わずにGUIでWebアプリが構築できる「Node-RED」のようなものも流行り始めています。例えば、チャットボットのサービスとホテルの空室検索サービスを組み合わせて、チャットで宿泊先を探すサービスを提供できたりします。(最近、IBMのオンラインセミナーで少しだけかじりました^^;)


    参考になれば良いのですが。

    キャンセル

0

僕もプログラミングを初めたばかりです。
何かを作りたいというわけではないのでモチベーション維持に疑問がありましたが
コーディングをして楽しむサイトがあるので、そこでコードを提出して他人のコードと見比べて基礎を勉強しています。ゲーム感覚で面白いですよ。
AIという目標があるかたには退屈かもしれませんが、他人の考え方がコードから読み取れて面白く勉強になります。

Codewars
CheckiO
Project Euler

paizaは他人のコードが見れないので自分のコードが合理的なのか判断ができないですが一応記載しておきます

僕はプログラミング用の教材も買えない学生で実務者ではないのでとにかくたくさんコードを書いて覚えることを目標にしています。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • Python

    12220questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。