AIやディープラーニングに興味を持った事をきっかけにプログラミングをはじめて2日目の者です。ある質問サイトから、プログラミングについての質問はteratailが良いと聞いたので、アドバイスをいただきたく質問させていただきます。
AIやディープラーニングに向いていて、C言語やその他のプログラミング言語よりも平易との事からPythonから勉強しているのですが
周囲にプログラミングをやっている人、教えてくれる人がおらず、「Python言語の基本から仕事のやり方まで」という書籍を教科書替わりにやっています。
現在の総学習時間は書籍を読む時間、何度か同じ作業を繰り返す反復練習で3時間程度
できるようになった事は、
printで文字を打つ事、rangeで繰り返す事、四則計算、簡単なif 簡単なelifを本を見ながらやっています。(ほぼ、本に載っている文そのままか、HelloをHi等にアレンジしているだけ)
程度です。「3時間でその程度か」と言われてしまいそうな内容で大変恥ずかしいのですが、当面の目標や勉強方法は
どのようにするのが良いのでしょうか?
自分では、何か簡単な物を作っていく過程で、プログラミング言語に慣れるのが良いのかと考えていますが
その、”簡単な物”はどんなものがありますか?
``
また、勉強方法は、プログラミング教室で習うべきなのかもしれませんが、自分の居住地では子供向けの年齢制限のあるプログラミング教室しかなく、オンラインでの受講が可能なプログラミング教室か、本による独学とプログラミング上級者の皆さんからの助言になるのですが、どちらが良いのでしょうか?この本で学ぶべき!と言うものがあれば併せて教えて下さい。
将来、プログラミングを仕事か、仕事でなくとも高度な物が作れるようになりたいです。
プログラミングに対する可処分時間は、平均して2時間程度になると思います。
真剣に取り組みたいと考えていますので、低次元の質問で大変申し訳ありませんが、宜しくお願い致します。
(タイピングはブラインドタッチができ、そこそこはやく打てると思います。)
当サイトでの質問は初めてなので不備がありましたらすみません。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
![guest](/img/icon/icnUserSample.jpg)
回答7件
0
その、”簡単な物”はどんなものがありますか?
プログラミングそのものに慣れ親しむのが目的なら、簡単なゲーム(神経衰弱とか)がお勧めです。ループ処理、条件判定、リストの扱いなど、基礎的な素養が偏りなく習得できます。
データ解析に向かうなら、日本政府が人口動態や気象観測データが無料公開してくれていますから、これを使って課題設定をしてプログラムを作ってみるといいでしょう。といっていきなり高度な成果をだそうと頑張ると挫折する危険性が高いので、最初は「県庁所在地の降水量の平年値を求める」ぐらいから始めるといいでしょう。
でも本来は「簡単なもの」を自分で考えるところからプログラミングの勉強は始まっていると思います。
投稿2018/03/16 12:40
総合スコア13694
0
質問文を上から順に読んで、思うままを回答しますので、支離滅裂になると思います。すみません。
当面の目標や勉強方法はどのようにするのが良いのでしょうか?
具体的に「これをプログラムでやりたい」というものを見つけるのが一番なのですが…
自分では、何か簡単な物を作っていく過程で、プログラミング言語に慣れるのが良いのかと考えていますが
その、”簡単な物”はどんなものがありますか?
具体的になければAOJ: Online Programming Challengeをはじめとする競技プログラミングサイトの簡単な問題から解いていくのもお勧めです。
また、勉強方法は、プログラミング教室で習うべきなのかもしれませんが、
私の経験から云えることは、独学でも大丈夫です。
この本で学ぶべき!と言うものがあれば併せて教えて下さい。
Python
ならオンライン上にいくらでもあるのですが、まずはPython チュートリアルから始めてはいかがでしょうか?
私が最初に基礎を学んだC/C++
では書籍中心にC言語 FAQ、Effective C++ 【改訂第2版】、プログラミング作法、ソフトウェア作法あたりで学習しました。
オンライン上でも書籍でも、数回読んだ/写経しただけでは理解できませんでした。ですので分かるまで繰り返し通読、写経&元コードを改変しました。
AIやディープラーニングに興味を持った事をきっかけにプログラミングをはじめて2日目の者です。
(略)
printで文字を打つ事、rangeで繰り返す事、四則計算、簡単なif 簡単なelifを本を見ながらやっています。
(略)
将来、プログラミングを仕事か、仕事でなくとも高度な物が作れるようになりたいです。
2日間でそこまでできておられるなら(rangeで繰り返す事を理解するのが意外と難しい)プログラミングに向いていると思います。
私は、ある程度自分のやりたいことをプログラミングで実現できるようになる、自分が書いたコードがどのように動くのか分かるまで2年くらいかかりましたが、これからも学習していくことで可能かと思います。
最後に。
プログラミングに対する可処分時間は、平均して2時間程度になると思います。
プログラミングにハマると何をしてても、最終的には寝てても夢の中でコーディングするようになるので、時間はどうにでもなります。
投稿2018/03/16 14:46
総合スコア38345
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
https://dotinstall.com/lessons/basic_python_v3
https://www.coursera.org/learn/machine-learning
無料の良いコースがたくさんあります。
Pythonと機械学習を同時に学ぶのはけっこう大変です。
プログラミングをPythonで学び、機械学習を理解するのに必要な数学などを別に学ぶと良いかもしれません。
進捗を記録しておいて、学んだものが何で、それを簡単に感じたのか難しく感じたのかなどの情報を添えると、同じような境遇の方からアドバイスを貰えるかもしれません。
プログラミングに関するバックグラウンド、ソフトウェア開発の知識、数学のレベル
などの情報があると回答がより適切になります。
投稿2018/03/16 12:05
総合スコア8562
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
![guest](/img/icon/icnUserSample.jpg)
0
まわりにプログラミングをやっている人がいなくて、本やネットの情報だけを頼りに取り組んでいる初心者です。
憧れと必要性にかられてやっていますが、基本的に過去なんども分からないこと、行き詰まることばかりで、10年くらい前から何度も投げ出しています。
近年はGoogleで検索できたり、このteratailだったり、いろいろとネット上のサービスの環境がいいので、投げ出さずにやれています。今は興味がうつって、PHP、Ruby(Ruby on Rails)、pythonとやっていますが、
個人的な感想としては、本であればいくつかの本をこなすとなんとなく初心者レベルでわかるようになった気がします。
ただ、本はかさばるのと、分厚い本の場合に開いたままにしたり、ページをめくっていくのが大変で、私の場合は最初から本を無理に読まなくてもいいのかもと思うようになってきました。
現役東大生の考えた、初心者からRuby on Railsをほぼ無料 で習得するための最強カリキュラム
今は上記を参考に、ドットインストールや、プロゲート、その他チュートリアルをまず2回みる、3回目で手を動かすの方法で基礎的なところや、自分としては難解に思える部分も慣れながら勉強しています。
移動中はドットインストールで動画をみて復習するようにしています。
ドットインストールやプロゲートでは、環境構築や、その他の基本的なツールの使い方、SQLについてなど、直接の言語以外を並行してやったほうが、まわりにプログラミングをしている人のいない自分にとってはすごく身になっている気がします。
まだまだ初心者ですが、ドットインストール、プロゲートで反復しながら、合間でteratailを閲覧することで、少し苦手意識が無くなってきた気がします。
投稿2018/03/16 13:53
総合スコア80
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
”簡単な物”はどんなものがありますか?
お勧めは自動販売機のシミュレーターを作成です。
自動販売機には画面
、在庫の計算
、金種管理
と必要な機能が揃っています。
自動販売機の機能を最初から全部シミュレートする必要はありません。
徐々に機能を増やしていく形がよいかと。
例)りんごジュース、オレンジジュース、ぶどうジュースをinput()関数で選択し選択内容を表示する。
最初はこういうものから初めて、徐々に画面
や在庫の計算
や金種管理
を機能追加を行う形がいいかと。
プログラムを行うにあたっての開発環境構築も重要です。
IDE(統合開発環境):PyCharm Community
バージョン管理システム:Git
GitHub Desktop for Windows と GitHub
個人的にIDEとバージョン管理システムはどの言語で開発するとしても必須だと思っています。
タスク管理とToDo管理のツールに関しては好みの問題がかなりあると思うので、
いろいろお試しで導入してくださいな。
プログラムを開発するにあたって発生するデバック作業に関しては
udacityの無料コースのSoftware Debugging Class Onlineが時間が2ヶ月と長いですが、体系的にデバックする考え方を学べます。
長くなったので結論回答です。
- お勧めの作るもの:自動販売機のシミュレーター
- 統合開発環境とバージョン管理ツールの導入を検討してみてくださいな。
- udacityの無料コースのSoftware Debugging Class Onlineはすごくお勧め。
以上です。
2018/03/18追加
0. IDEの使い方はQuick Start Guideがあります。解説が長くなってしまうため、検索サイトのグーグルでpycharm 使い方で検索してみてくださいな。
- 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/16 12:23
編集2018/03/17 22:21総合スコア5846
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
![guest](/img/icon/icnUserSample.jpg)
0
ベストアンサー
本業ではなく限られた時間で少しずつということでしたら、小さな目標をクリアしながら進められる形のものが良いかと思いますので、2つご紹介します。
- 遊び感覚で、とにかく初級レベルを一通り学んでしまう
ゲームをクリアしていく感覚で少しずつ学べるサービスの利用です。paizaの技術者の方のブログに簡潔にまとまっていましたのでご紹介します。
「初心者もゲーム感覚でPythonプログラミングを学べる、6つのサイトが楽しすぎる!」
(すいません、紹介しておいてなんですが、私はいずれも利用したことがないので、この中のオススメについてはお話できません。)
- ネット公開されている練習問題を解いて回答を公開し、有識者からアドバイスをもらいながら進める
こちらは私自身が実践した方法で、ネット公開されている練習問題を解いてその自分なりの回答を公開し、有識者からアドバイスをもらいながら進める形です。
私はPythonや自然言語処理について学びたかったため、「言語処理100本ノック 2015」という問題集を順に解きつつその回答をQiitaに投稿し、有識者の方からアドバイスをもらいながら進めました。コメントをいただけたり「いいね」をもらえたりするので大変励みになり、この形で最後までやりきることができました。
なお、具体的な質問事項があればteratailなどが良いかと思います。Qiitaは「とりあえず作ってみて結果は出たけど、これがベストかわからない」といった状況での確認に使った感じです。(Qiitaの使い方としてはあまり正しくないのかも知れませんが^^;)
参考になれば幸いです。
投稿2018/03/17 10:44
編集2018/03/17 10:47総合スコア1038
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
![guest](/img/icon/icnUserSample.jpg)
0
僕もプログラミングを初めたばかりです。
何かを作りたいというわけではないのでモチベーション維持に疑問がありましたが
コーディングをして楽しむサイトがあるので、そこでコードを提出して他人のコードと見比べて基礎を勉強しています。ゲーム感覚で面白いですよ。
AIという目標があるかたには退屈かもしれませんが、他人の考え方がコードから読み取れて面白く勉強になります。
Codewars
CheckiO
Project Euler
paizaは他人のコードが見れないので自分のコードが合理的なのか判断ができないですが一応記載しておきます
僕はプログラミング用の教材も買えない学生で実務者ではないのでとにかくたくさんコードを書いて覚えることを目標にしています。
投稿2018/03/17 10:38
![退会済みユーザー](https://ddjkaamml8q8x.cloudfront.net/profileImages/deletedUser/icnUserSample.jpeg)
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。