5
6
テーマ、知りたいこと
プログラミングを独学で習得した方にお聞きします。
プログラミング学習でよく言われることが、「構文やコーディングを覚える必要はなく、モノを作るなどの実践の中で身に着けろ」ということだと思います。
その「モノを作る」段階でどのようなことをしたのか具体的に教えてください。また、それらを行う上でオススメの教材やyoutubeの動画などのコンテンツがあれば教えてください。
次に、ソフトがうまく起動しなかったり、コマンドプロンプトの扱いがわからなかったりとコーディングのエラー以前の問題に躓いて思ったように進まなかったりしたときにどのように対処したのかを教えてください。
背景、状況
私はプログラミングの初心者で、現在は大学に通っています。
機械学習に興味があり、独習pythonという書籍で文法や構文を学習しています。
周りにプログラミングの相談をできる環境はないです。
「いちばんやさしいpython機械学習の教本」という書籍を買って、本の内容の通りに進めようとしています。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答14件
#1
総合スコア10756
投稿2023/05/20 06:12
プログラミング学習でよく言われることが、「構文やコーディングを覚える必要はなく、モノを作るなどの実践の中で身に着けろ」ということだと思います。
よく言われているんですか?基礎を覚えることは必要です。おそらく「モノを作るなどの実践の中で」身についていくものだ、という意味ではないでしょうか?一番早く覚えるのはやはり実際の業務の中で必要に迫られて身に着けた場合ですね。但し体系的に学んだわけではないため知識・スキルは断片的になり、再度しっかり学ばないといけないなと思うことが多いです。
機械学習に興味があり
この場合は数学の知識も必要になることが多いです。研究するのでなければ理系の高校数学で十分かと思います。
次に、ソフトがうまく起動しなかったり、コマンドプロンプトの扱いがわからなかったり
初心者用の書籍には環境構築から解説が書かれていると思うのでよく読むことが大事かと思います。使っているOSに合ったもの選んでください。
コマンドの使い方については困ったときにネット検索で解決できるかと思いますが、必要であれば専用の書籍を1冊持っていても良いかと思います。
開発環境やエディタは1つに決めてある程度使えるようになるまで同じものを使ったほうが効率良いかと思います。
#3
総合スコア85901
投稿2023/05/20 08:19
「構文やコーディングを覚える必要はなく、モノを作るなどの実践の中で身に着けろ」
構文や文法規則は覚える必要はあります。当然。
これは教科書練習問題をやっている間に全部記憶します。
基本関数の機能や引数や返り値やら、文法で言うと演算子の優先順序なんかは、都度調べれば良いので、どうやって調べれば良いかだけ覚えれば良いです。
自分の目的からして、このジャンルは当面無しで困らないという部分は後回しにして、記憶した範囲で書けるプログラムから始めるのはもちろんOKです。まあ、そんなに先を急いでどうするんだという気もしますが。
「コーディングを覚える必要」というのは何のことを言ってるのかわかりませんが、「こういうケースではこう書く」という定石的なことを言ってるなら、自然に覚えればいいというのは間違いでは無いです。ただ、知識として知っていれば効率的に進められると言うだけです。
「具体的にどういう場面で役に立つのかわからないと頭に入ってこない」という人もいるようなので、そういう人の場合は、個々のプログラムを書きながら覚えるしか無いですね。自分にどういう学習が向いているかは人それぞれでしょう。
その「モノを作る」段階でどのようなことをしたのか具体的に教えてください。
このサイトでよく見る駄目な例を挙げると、
誤:プログラムを全部書き上げてから実行してうまく行った・うまく行かないなどと判断
正:数行の細かい処理単位で実行してみて期待通りに動いたら、それらを組み合わせて全体プログラムにする。部分で動いて全体で駄目ならつなぎが間違っている
誤:間違っていないはずなのにうまくいかない。こういうときどうしたらいいんだ??
正:エラーになったり、期待通りの結果じゃない場合は、自分がどこか間違ったのに違いない。全部再点検(どこから点検を始めるかで効率が全然違いますが、まあこれも効率だけの違いです)。
次に、ソフトがうまく起動しなかったり、コマンドプロンプトの扱いがわからなかったりとコーディングのエラー以前の問題に躓いて思ったように進まなかったりしたときにどのように対処したのかを教えてください。
IT技術者を目指すのか、プログラミング以外に興味が無いのかによっても違うかと思います。
プログラミング以外に興味が無く、また環境面での苦労をしたくないなら、お金を払ってでも自分で環境構築しないでプログラミングできる環境を使うのでしょうか。まあ、使い方を覚える必要はあるので、苦労無しというわけにはいかないですが。
出来たプログラムを手元のPCでも動かしたいとかは諦める。
IT技術者を目指すのであれば、「意味を理解していない手順は実行しない(意味を理解していないコマンドは実行しない)」を徹底すれば良いかと思います。意味を理解できるまで考える。
人数的に多いと思われるその中間の人が難しいですね。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#4
総合スコア13790
投稿2023/05/20 13:21
他の方と同じこともあるかもしれませんが、僕の経験と考えです。
構文やコーディングを覚える必要はなく
実践だけやっていればそのうち見につくということだとすれば、そのような方法は効率がわるいので、文法や構文は覚えておくべきです。 また、クラスベースのプログラミングはどういうものか、関数型はどうか、イベントドリブンのものはどうか、など領域によっていろいろなイディオムがありますので、見につけておくと柔軟な発想ができるでしょう。
「モノを作る」段階でどのようなことをしたのか
勉強と同じですけど、まずはいろいろな書籍で練習しました。これも勉強と同じですがつまみ食いではなく、通してやるのが肝要だと思います。最近ではWebサイトの情報でという傾向があるように思いますが、一冊の本として体裁を調えて、複数の人の目を通してあるものですから、まだ書籍にアドバンテージがあると思います。
次の段階は「既存のものをいじる」でしたね。何十年も前ではありますが、emacsのマクロとか、X window manager などの「こんなの欲しい」というようなところを自分で実装してみたりしました。
改変するためには、先人の作ったソースを読み込んで内容を理解しなければなりません。 そういう「コードリーディング」もスキル向上に役立ったと思います。
後は実務ですね。かなり沢山書きました。腱鞘炎になるくらい。
ソフトがうまく起動しなかったり、コマンドプロンプトの扱いがわからなかったり
コマンドプロンプトの扱いは、そのOS/シェル、引いてはコンピュータそのものへの理解が足りていないということなので、勉強します。 ここでも頼るのは書籍です。たくさんあります。
「ソフトが起動しない」のはいろいろな要因があるので一筋縄ではいきませんが、相談されたときは「環境を整備していない/古いor新しい」「手順を守っていない/間違えている」「エラーメッセージを見ていない」あたりを疑います。 そういう基本的なことをちゃんとやっていればあまりはまらないものです。
「いちばんやさしいpython機械学習の教本」という書籍を買って、本の内容の通りに進めよう
いいと思います。 ただし、その本だけでできるようになるとは思わないほうがいいですね。足りないところがあれば、pythonそのものの入門書とか使っているOSの本とか、足りないものがあれば、そこを埋めていく必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#5
総合スコア207
投稿2023/05/21 08:54
「モノを作る」段階でどのようなことをしたのか具体的に教えてください。
CLIで、自動販売機をシミュレーションしました。予めプログラム内に定数として商品名と金額を設定しておいて、標準入出力を用いて、対話的に商品の選択やお釣りの返却ができるように実装しました。
それらを行う上でオススメの教材やyoutubeの動画などのコンテンツがあれば教えてください。
文法に関する解説が載っている、いわゆるリファレンスを1冊買っておくと良いと思います。
次に、ソフトがうまく起動しなかったり、コマンドプロンプトの扱いがわからなかったりとコーディングのエラー以前の問題に躓いて思ったように進まなかったりしたときにどのように対処したのかを教えてください。
「たぶんこういうことなんじゃないか」という感じで、試行錯誤を繰り返していたらなんとかなりました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#6
総合スコア17
投稿2023/05/22 23:23
編集2023/05/22 23:36ChatGPT に聞けば手取り足取り教えてくれますよ。頑張ってください。プログラミングにしてもデータサイエンスにしても書籍レベルはほとんど答えてくれます。オライリーを10冊くらい買って分からないところを聞けば基礎は全部網羅できます。あとはデバッグのやり方を身につけておけばプログラマーなれますよ。これからの時代は生成AIのお陰で独学という概念は随分変わってい
きます
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#7
総合スコア85
投稿2023/05/23 00:44
編集2023/05/24 14:37すでに書かれている事とカブってしまうとは思いますが、私自身の経験から回答を致します。
まず、全ての学びについて言える事ですが、大前提として、
「誰かがすでに歩んできた『学びの道』は、その人だけのものであり、その人が言う通りに物事を進めても、その人と同じスキルに達する事は無い」
という事を、しっかり心に刻みつけてください。
当たり前の事ですが、誰しも、他人の人生を生きる事はできません。 Aさんの学びは、Aさんだけのものです。 それはAさんの人生において、Aさんがその時に持っていた前提知識や、その時の環境によって為されたものであり、Bさんの持つ前提知識と環境がAさんのそれと異なる以上、BさんがAさんと同じ知識・技術を得ることは有り得ません。 皆さんが小中学校や学習塾でさんざん見てきたように、全く同じ教材・全く同じカリキュラムを使ったとしても、そこから得られる学びは、各人各様です。
構文やコーディングを覚える必要はなく、
いや、これはやはり、ちゃんと覚えてください。 「楽器を演奏するのに、楽器の扱いや手入れを覚える必要はない」、「スポーツをするのに、体の使い方を覚える必要はない」、「絵を描くのに、画材の使い方を覚える必要はない」、「小説を書くのに、日本語の構文を覚える必要はない」、と言われたら、どう思われますか。 そんな事は無いはずだ、と思うのではないでしょうか。
構文規則はプログラミングにおける最低限の道具であり、コンピューターと語り合うために必要なルールです。
モノを作るなどの実践の中で身に着けろ
これは正しいと思います。 演奏にせよ、作曲にせよ、絵画制作にせよ、スポーツにせよ、小説執筆にせよ、やはり、技能というものは、アウトプットしてこそ向上するものだからです。 アウトプットのためには相応のインプットが必要ですが、インプットするだけでは技能は磨かれません。 評論は誰でも出来ますが、誰もがモノを作れるか、と言うと、そんな事はありませんから。
「モノを作る」段階でどのようなことをしたのか
簡単なプログラムを大量に作りました。 具体的に言えば、たかだか 100行前後のプログラムを、たぶん千本以上は作ってきました。 それはもちろん車輪の再発明であったり、参考書のコピペをちょっと書き換えたり、という程度のものに過ぎませんが、それを自分の手で実際に打ち込んで、実際に動かしてみる、という経験が重要です。 この経験をたくさん積むことで、「感覚」のようなものが身につきます。
プログラミング学習は語学に似ているところが多分にあります。 初めての外国語を習い覚えるためには、基本的な単語をたくさん丸暗記して、短いフレーズを覚えますが、それとほぼ同じです。
また、実際的な経験を積むだけでなく、並行して、理論的なところもそれなりに勉強しました。 なぜこれはこう動くのか、なぜこれはこう書かねばならないのか、という、自然な好奇心からです。 機械語がどのように動いているのか、というところまで行けば、後はかなりラクになります。
オススメの教材やyoutubeの動画などのコンテンツがあれば
「大前提」で書いたように、私にとって良かったモノが、他の誰かにとって良いモノなのかどうかの保証は全くありません。 オススメの「手段」としては、大きめの書店に行って、そこに並んでいる書籍をいくつか立ち読みして、「自分の感覚」で、「これは何となく自分に合う」と思った本を1冊選び出し、それをとことんまで読み込み、実践し、自分の血肉にする事です(理想を言えば「自分はこの1冊の内容を丸ごと他人様に説明できる」というところまで行くと良いですが、それはなかなか難しいので、あくまで理想です)。
すると、それが自分の中における「知識のバージョン1.0」になります。 書籍といえども著者の思い違いや誤りが含まれていますので、後はそこを出発点にして、自分自身がより深く学んでいき、知識をバージョンアップすれば良いでしょう。
なぜ最初に書籍なのか、と言いますと、今はネット上に様々な知識が散らばっていますが、それらは特定の環境に依存した内容であったり、使われている言語・環境のバージョンが互いに違っていたりするので、それらを初学者が「つまみ食い」すると、統一感のある「知識のバージョン1.0」が作りにくいからです。 たとえ誤りを含むのだとしても、まずは「1冊の閉じた世界」を「バージョン1.0」として、それを足掛かりにした方が、のちのちトクだと思います。
なお、コマンドプロンプトについては、「Windows 10対応:これだけは覚えておきたいWindowsのコマンドプロンプトの使い方」がオススメです。
また、プログラミングの独習については、「ドットインストール」が定評あります。 東京・六本木に通学できるならば、「フォーティーツー」も機械学習の勉強について良い評判を聞きます。 私自身はどちらも経験した事はありませんが……。
「いちばんやさしいpython機械学習の教本」という書籍を買って、本の内容の通りに進めようとしています。
良いと思います!
……最後に、大切な「心構え」について、少し触れておきたいと思います。 私が今まで30年ほど経験してきた業務・趣味のプログラミングで見てきた限り、優れたプログラマーの皆さんは、たいてい独学です(独学なら優れている、というわけではありません)。 自分自身が「面白い」「楽しい」と思って、自分独自の道を歩み、腕を磨いてきた方々です。 人は、面白いこと、楽しいことは、たとえ禁止されてもやってしまう動物です。 面白いこと・楽しいこと・やりたいことなら、睡眠時間を削ってでも、食事を抜いてでもやり続ける……これで上達しないわけがないのです。
グーグルで研究本部長に就いていたピーター・ノーヴィグは、本人のサイトにおいて「Teach Yourself Programming in Ten Years(プログラミングの独習は10年に及ぶ)」という優れたエッセイを著しています。 後半の数値性能の部分は今見るとさすがに古いのですが、その中で書かれた「心構え」は、プログラミング学習を志す者なら、一読、いや10回読み返しても損はしない内容です。
(了)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#8
総合スコア68
投稿2023/05/23 00:50
編集2023/05/23 01:05「構文やコーディングを覚える必要はなく、モノを作るなどの実践の中で身に着けろ」
→前半部分の「構文やコーディングを覚える必要はなく」は、多くの方が否定するのではないでしょうか。
もしこれが修得者からの言葉であれば、既に何らかの言語を一つ以上覚えている人をターゲットにした言葉か、
一人プロジェクトしか経験がない、または複数プロジェクトが不要な立場の人(小中高の教師、経営者など)の考えになると思います。
個人的には、質問者さんは「基本の書き方を覚えたら、後はモノを作るなどの実践の中で身に着けろ」を誤認されている気がします。
もしくは、「基礎構文を"理解したら"、書き方よりも後はひたすらプログラムを書いて慣れろ」でしょうか。
とはいえ、実務では書き方が一番大事ですが。
どれだけ凄いソフトであっても、汚いコードで書かれたソフトは組織にとっては負債同然ですから。
その「モノを作る」段階でどのようなことをしたのか具体的に教えてください。
→誰かの作品を真似たりや身近な要望を考えたり、アイディア創出で見出したテーマを探して脳内で設計し、試しに作ることです。
これはエンジニアの永遠の課題なので、経歴や修得レベルに関係なく誰もが悩んでいることです。
アイディアを提供してるサイトがいくつかあるので調べて見ると良いでしょう。
最近ならばChatGPTで聞くのもアリです。
ちなみにPtyhonの場合は、表からは見えにくいバックエンド寄りのスクリプト言語なので、作業の効率化や定型作業の自動化、サーバー処理を念頭に考えることが多いと思います。
それらを行う上でオススメの教材やyoutubeの動画などのコンテンツがあれば教えてください。
→時代の流れで年代ごとに違いますし、自分に合う合わないは種々様々あるので一概には言えません。
また大体は”体系的に記載している教科書タイプ”や”文法だけ載せている辞書タイプ”、"何らかの作品を作りながら教える実践タイプ"に分かれます。
それらから自分が理解しやすいサイト、動画、書籍を探し出して実際に見ていくしかないです。
また、それらを探す技術も必要なことなので、回答者のみなさんも頑張りましょうとしか言えない気がします。
質問者さんが購入された書籍は、"作りながら教える実践タイプ"の本ですので、それが質問者さんの肌に合うならそれでいいと思います。
ちなみに自分は”体系的に記載している教科書タイプ”と”文法だけ載せている辞書タイプ”を併用して覚えました。
コーディングのエラー以前の問題に躓いて思ったように進まなかったりしたときにどのように対処したのかを教えてください。
→ひたすらググって色々なサイトから調べ回る、というのが実際の答えです。
実務においてもこの調べる技術というのは大変重要視されますし、プログラマーは必須技能です。
Pythonはまだ情報が多いので(見逃しを除いて)そこまで苦労はしないでしょうが、使用ツールを起因とした動作不良はネット上に情報がないなどザラです。
なんなら自分が世界で初めてぶち当たったトラブルのせいで三日三晩悩まされたなども良くある話です。
とはいえ、最近だとChatGPTに聞くという手段が増えたのでかなり楽になっていると思いますが。
とりあえずとしては、手順、バージョンの整合性、情報の日時を再確認して一つ一つつぶしていくことです。
機械学習に興味があり、独習pythonという書籍で文法や構文を学習しています。
→機械学習で初学者の場合、まず「AIを一から作る知識」と「AIを活用する知識」は別物の知識であると意識した方が良いです。
無論、前者が最も難しく、後者は比較的簡単です。
見た所、質問者さんが購入された書籍は、前者を少し齧った後者な気がします。
ちなみに勉強用として使うデータの集合をどうするかについてアドバイス。
個人的な所感として好まれやすいデータは以下3点。
・為替や株などの有価証券の価格データの推理(MT4/Python)
・googleなどで集めた画像群から特定形状が映った画像の検出(OpenCV/Ptyhon)
・乱雑な手書き文章からの文字認識(TesseractOCR/Ptyhon)
ボールドテキスト
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#9
総合スコア673
投稿2023/05/23 02:21
プログラミング学習でよく言われることが、「構文やコーディングを覚える必要はなく、モノを作るなどの実践の中で身に着けろ」ということだと思います。
これは記述されている構文やコーディング方法を丸暗記(例えば変数名や改行位置など)するのではなく(必要はなく)、実践の中で覚える必要があるもの(構文の基本的なルールなど)を身に着けろという解釈のほうが良いかと思います。
開発するプログラムや規模(一人か複数か)、場所(開発企業やチームによってルールが異なる)によって記述方法は変わってくるので、何か一つの参考書に載っている構文やコードを覚える必要はないと思います。
しかし、基本的な構文ルールや一般的な命名方法などに関しては覚える必要があり、これは一つの書籍を眺めているだけでは身につかないので複数の書籍に目を通して実際に手を動かすことで新しいプログラムを書く際に自分で考える力が身に付きやすいという意味だと思います。
なので、ある書籍に載っているコードを細かく覚える必要はありませんが、各言語の文法であったり仕様に関しては(まずはよく使うものに関して)公式ドキュメント等で把握する必要はあると思います。
機械学習関連の書籍だと、入門書の最初に出てくる"機械学習とは"や"教師あり教師なし"、"回帰と分類"などは基礎知識になるので、覚える必要があると思います。
その「モノを作る」段階でどのようなことをしたのか具体的に教えてください。
目的(やりたいこと)ありきでものを作っているので、何がやりたいかによりますが、機械学習だとSIGNATEあたりでしょうか。
ものを作るの範囲が機械学習のプログラムを作るのか機械学習を利用できるサービスを作るのかで変わってきますが、機械学習のプログラムを作りたい場合はsignateやKaggleのようなAIコンペの入門コンペをするのが良いと思います。
サービスを作りたい場合は、(提供形式によって)別途webアプリ開発やデスクトップアプリ開発、機械学習と左記のアプリの連携方法などを学習する必要があると思います。
私の場合はWebアプリ開発と機械学習を別々に学習していたので、自分なりにsignateで作成したモデルをweb上で使用できるアプリを開発したりしました。(画像をアップロードすると映っているもののジャンルを表示するアプリ等)
また書籍やUdemyでも学習をして自分が作ったものと経験者が作ったものの違いを確認したりしていました。
オススメの教材やyoutubeの動画などのコンテンツがあれば教えてください。
有料ですが、私はUdemyで学習することが多いですかね。
後続の質問にも関わりますが、一応こちらの質問に回答もしてくれるので。
定期的に大幅値下げする時期があるのでそのタイミングで購入するのが良いと思います。
書籍も有用だと思いますが、本人のやりたいことやレベルによっておすすめの書籍が異なるので、自分で立ち読みしてみてできそうなものをまずは選ぶのがいいと思います。
「いちばんやさしいpython機械学習の教本」Amazonで見てみましたが、機械学習の全体像からそれぞれの分野のコードを書くようなので、入門にはよいと思います。(ただ意味が分からない言葉が多そうですが、これは気力があれば別に調べるかいったんスルーで開発の数をこなしてイメージを定着されるのが良いと思います。)
目次を見ると最後に今後どうするかも書いているようなので個人的には良さそうな本だと思いました。
ソフトがうまく起動しなかったり、コマンドプロンプトの扱いがわからなかったりとコーディングのエラー以前の問題に躓いて思ったように進まなかったりしたときにどのように対処したのかを教えてください。
私はgoogle検索がメインでした。
ソフトが起動しない場合はエラー文言を、なければ単純にソフト 起動しないだけでも何かしらヒントは出てくるのでとにかく目を通して自分が起きている現象と同じものを探します。
(やっていけばわかると思いますが、一番大切なのは参考にしている書籍やサイトの動作環境とすべてを一致させることです。)
コマンドプロンプトの扱いがわからない場合は、これは(アプリケーション開発をする上でも)基本的な技術になるので、ネットで使い方を調べるのが良いと思います。
あとはこのようなqaサイトで質問をするのもよいと思います。
qaサイトで質問するとあの情報が足りないとかいろいろ言われると思いますが、何を確認すべきかがわかると思うので、それなりに有用ではあると思います(今となっては)
既に回答ありますが、今は環境を丸ごと提供するサービスやアプリもあったりするので、環境構築に興味がなかったり、今の段階はプログラミングに集中したい場合はこういったものを利用するとよいでしょう。
例えば、KaggleのKaggle NotebookやGoogle Colaboratoryなんかはインストール不要でWeb上からプログラムの実行が可能です。
次に簡単なのは(探せば)機械学習用の仮想マシン/コンテナイメージがあると思うので、この辺りを使うとエラーが起こりやすい(?)機械学習の開発環境を簡単に手元に置けます。(この辺は仮想化に関してある程度知識が必要ですが)
環境構築も本格的にやりたければ簡単なのはAnacondaをインストールしたり、必要なライブラリだけをインストールするのが方法としてあります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#10
総合スコア6
投稿2023/05/23 04:26
編集2023/05/23 07:04「構文やコーディングを覚える必要はなく、
多くの回答者が言っているようにこれはあり得ません。デフォルトで必須ですよ。
プログラミングを独学で習得した方にお聞きします。
私は30年以上ソフトウェアに携わってきて10年程前にリタイヤしました。2年前に単なる興味からPythonを「独習Python」で文字通り独学したので、その経験から述べさせてもらいます。
「独習Python」を一通り読み通してどんな構文仕様があるか、どんな関数があるかなどの感じをつかみましょう。理解できなくても体系的に全体を見ておくことはよいことです。他の言語のプログラミング経験がないとはじめは大変かもしれませんが。
本文中の例文を実際に動作させ、さらにこういう場合はどうなるかと少し条件を変えてみることをお勧めします。仕様を勘違いしていることもありますし、動作環境の理解にも役立ちます。たまに誤植もありますし。
人の書いた実際のコードを読むことはいろんな意味で役に立ちます。雑誌などにはいろんなプログラムが紹介されています。これらを「独習Python」と首っ引きで読んで理解すると構文仕様だけでなく、「独習Python」の中にもよく触れられていますが、どんなコーディングがきれいで読みやすいかもわかってきます。きれいで読みやすいコードを書く習慣を早いうちに身に付けることをお勧めします。ちなみに「汚くて読みにくいコード」はどんなにすばらしい性能でも、多数の人間で仕事をするときには害でしかなくゴミです。
その「モノを作る」段階でどのようなことをしたのか具体的に教えてください。
関心がある分野の入門書を参考に実際に小さいプログラムを書いて、いろいろ改造しながら拡張させていくとよいでしょう。千行くらいのコードなんてあっというまですよ。要するに自分が興味のある分野のプログラムを苦しみあがきながらでも書くことは楽しいですし、スキルもアップします。
そのうち別の本やネットで新たな機能を探るようになればさらに磨きがかかります。
因みに私は趣味で鉄道模型のジオラマを作っていて、これにラズベリーパイという小さなボードコンピュータと自作のインタフェースやセンサーを組み込んで自動運転のプログラムをPyhtonで書いて楽しんでいます。
ソフトがうまく起動しなかったり、コマンドプロンプトの扱いがわからなかったりとコーディングのエラー以前の問題に躓いて思ったように進まなかったりしたときにどのように対処したのか
論点は外れますが、問題発生時の基本姿勢としてまず「問題があるのは自分のやったことに間違いがあるからだ」と自信をもってコードを追い、それでだめなら初めてプログラム以外の要因を探ります。私の部下で「そんな風には作っていない」「仕様はそうなってない」なんて言ってちゃんと調べないのがいましたが、「わざわざ誤動作するように作るわけがないだろう、でも誤動作してるのは自分の思った通りにできてないんだから自信をもって調べろ」とよく言ってました。
解決できないときはここ「teratail」で助けてもらいましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#11
総合スコア42
投稿2023/05/23 13:30
特にこれが正解と言うのがないので、私の経験を元に書こうと思います。
1.とにかく一度Google先生に聞く
2.見つけられなかったら、ブレイクダウン方式で問題を細かく分ける
3.よろしくはないけれど、個々の問題に対して一旦無理やり仕様通りの動作になる様に調整する
4.何故その動きになっているのか調査を行う
5.必要であればプログラムの修正を行う。
大体上記の事を繰り返しやっている気がしますね。
主に仕様上、やりたい事ができない事が私の場合多かったので上記のやり方が染み付いた気がします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#12
総合スコア11996
投稿2023/05/24 07:26
「モノを作る」段階でどのようなことをしたのか具体的に
「プログラミングをやりはじめた」みたいな時期の話なんですよね?
であれば,「各時点においては目の前の短期目標のみをクリアすることだけを考える」ですかね.
後々のことをあれこれと考えすぎると目の前の問題が「抱えきれないほどの大きな問題」に膨れ上がってしまい
そこで「解無し」状態になって停止してしまうので.
「後の都合のことはそのとき考えればよい」で行く.(というか,具体的に目の前にまだ見えてない先の事柄を考える技量がそもそも自分にはないのだから,あれこれ考えるだけ無駄 ← これを自覚する).
で,そうやって進めた結果としてある時点で「あ,これだとダメだ」となったら(←大抵なる),そこで初めて「じゃあどうするか?」を考えて→直すなりする,みたいな.そんなやり方.
手直しができなそうなら(←大抵できない)「じゃあプログラム最初から作り直すし!」っていう感じで.
(どうせ言うほどの規模の物を作ってるわけじゃないので「全体作り直し」は現実的な方法である)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#13
退会済みユーザー
総合スコア0
投稿2023/05/24 08:44
「構文やコーディングを覚える必要はなく、モノを作るなどの実践の中で身に着けろ」
伝言ゲームする中で本当に伝えたかったことが欠落してるのだろう.
元々のニュアンスは, 最初から言語全ての構文を覚える必要はないとかそんなもんだろう.
初学者がメタクラスなんて学んでもどうせ使わない.
例えば英会話. 極論だが, 日本語字幕付きの音声が英語の映画を見て, なんとなく英単語を覚え, 覚えた英単語を羅列する.
案外これでも相手に伝わったりするのだが, これはあくまで相手が人間だからであり, 相手がこちらに合わせてくれているだけの話.
一方コンピューターとは無慈悲なもので, プログラミングした通りにしか動作してくれず, 構文が間違えていればそもそも動作すらしてくれない.
Pythonであれば最低限, リテラル定数の書き方, 変数の宣言の仕方, 条件分岐や繰り返し処理の書き方, 外部ライブラリのインポートの仕方くらいの構文を覚えておくべきである.
Pythonのチュートリアルに従いコーディングしながら構文を学ぶはありだが, 作りたい物を作りながら構文をゼロから覚えるのはナンセンスだろう.
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#14
総合スコア11996
投稿2023/05/25 05:05
編集2023/05/25 05:15あまり関係ない話かもですが,
「複数個のわからない物を同時に扱わないようにする」を個人的には勧めるかなぁ.
(問題を一度に大きくしない,という意味では#12 と同じ)
例えば「C++で OpenGLを使った 3Dの何かを…」みたいなのをやろうとする場合には
{C++, OpenGL, 3D関連のアルゴリズムとか数学}が必要になるわけで.
これら3要素に一斉にチャレンジしてるっぽい人を見たりすると「よくやるよなぁ」って思う.
「構文やコーディングを覚える必要はなく、モノを作るなどの実践の中で身に着けろ」
っていう話の正確な意味はわからないですが,
「そのモノ自体やそれを作る方法に関して 学ぶ/試行錯誤する ことと並行して,それを作る手段をも身に付けろ」みたいな話だとしたら,相当に難易度が高い話に思えます.
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。