50歳の読み書きができないコンピュータをプログラミングに導入する方法[終了]


10

先日、父が私に彼に期待したことのない質問をしました。

「どうすればC ++を習得できますか?」

私の父は今年56歳になり、コンピューターは彼にとって遠い概念です。彼は電話番号以外に電話の使い方をよく知らない(スピードダイヤルや連絡先はない)。彼は少しよくコンピューターを学び始めました-彼はインターネットを(Windowsで)開いて閲覧する方法を知っているところまで(そして彼は自分のオンラインで完全にいくつかの求人応募を完了しましたが、そのうち彼も役職を与えられました) )。しかし、それでも、これらは狭いウィンドウでの体験であり、実際にはあまり意味がありません。

彼はバックグラウンドを持っていないかもしれませんが、私の父は読む方法を知っています。そして、読書というのは、単なる能力ではなく、スキルとしての意味です。彼は大学教育(財政問題、家族など)をほとんどまたはまったく持っておらず、高校を卒業するのに十分幸運でしたが、それでも彼はマスター電気技師になることを学び、現在約30年間1歳です。彼はギターでも同じことをし、非常にプロフェッショナルなレベルで演奏することを学び、そのスキルで賞賛されました。高校では、彼は重量挙げの本を手に取りました。そして、当時、高校で唯一、国家基準で「アスリート」として認定された人物でした。

すべての場合において、彼は何かを読む必要がありました。彼に教える何か。彼はスポンジのように情報を吸収します。

私は父のモチベーションやこれを行う能力に疑いがないので、私の一般的な目標は単に次のとおりです。

私のお父さんをコンピューターの世界に連れて行って、彼をプログラミングの道に連れて行ってください。

私が彼に基本を理解させたら、彼の意欲と読解力が彼にこれを続けさせると強く信じています。

だから私はあなた方全員に尋ねています:これからすべてをどこから始めるべきですか?そしてそこに最高のリソースは何ですか?彼にWindowsの代わりにLinuxを起動させるべきですか?C ++は悪い考えですか?

覚えておいてください、彼は(IMO)最初にコンピューターを学び、それからプログラミングの最初の把握( "Hello world"体験)をする必要があります。

お金のために、そして優先的に、彼が読むことができる無料のオンラインリソースが欲しいのですが、印刷物またはオンラインで支払われたものでの良い提案はすべて歓迎します(後で調べ​​て購入する可能性があります)。

また、私は彼をC ++(Python、Javaなどなし)から始めるつもりです。私はそれを最もよく知っており、コードを使用して彼を助けることができるからです。(私は現在、他の言語では最小限の知識しか持っていません)。

編集:Pythonを使用するための多くの永続的な提案を受けています。私がC ++をやりたかった唯一の理由は、私がそれを知っていて、私の父が助けを必要とするときにそこにいることができるということです。私がプログラミングに初めて触れたのはJavaでした。私はJavaを学び、それで上手になりました。他の提案も歓迎しますが、あなたの提案を効果的に活用してください。

編集#2:私は私のアプローチ/思考/知識がここに欠けている可能性があることを理解しています。私は2年生レベルの学部CS専攻です。私の投稿に何も同意しない場合は、その理由を教えてください-アイデアや情報を教えてください。それが私が最初に尋ねている理由です。私の一般的な目標を特定の到達可能な目標に絞り込むこと。


1
この質問は、専門的なソフトウェア開発とは関係ありません。私たちの一日の中で、私たちは技術的および非技術的な他の人々と対話しなければならず、時には彼らを教える必要がありますが、私たちはプロの教師やインストラクターではなく、誰かを最良に教える方法について良いアドバイスを提供することはできません。これについてさらに議論したい場合は、メタサイトで質問を投稿できます
Thomas Owens

@ThomasOwensコミュニティに専門の教師やインストラクターがいないことをどうやって知っていますか?あまり見られないメタは本当に私が行かなければならないところですか?私はそれに譲ることができると思います(ここにとどまりたいのですが)、それを移行してください。この質問に当てはまる基準をSO /プログラマーコミュニティでよりよく見られるようにするために私ができることがあれば、私を助けてください。
skippr

1
私の知る限りでは、この質問を受け入れるサイトはありません。私はリストを調べただけで、見当たりませんでした。これについてさらに議論したい場合は、Metaについて質問してください。
Thomas Owens

@ThomasOwensええと、私はここで愚痴や荒らしをするためにここにいるわけではないので、私はそれで最善を尽くします。ありがとう
skippr

コメントで私の答えをこっそり...以下の答えに反して、C ++は実際には素晴らしい第一言語だと思います。特に初心者向け。ささいなコンソールIOから始め、C ++はこの点でJavaやC#よりもはるかに初心者にやさしいです。ボイラープレートのコードも少なくて、彼も混乱させる。もちろん、混乱を招く高度な機能はありますが、いくつかの基本的な機能に限定することはできます。
Tydus卿

回答:


13

まず第一に、あなたが個人的にC ++をよく知っているとしても、それは初心者にとっては恐ろしくて恐ろしい第一言語であり、彼がコードの書き方を首尾よく学びたいのであれば、彼を可能な限り遠くに離しておくほど強く勧めることはできません。プログラミングの学習は言語に関するものではなく、抽象的な要件を正式なロジックで表現することに関する学習です。 C ++では、言語固有の問題に常につまずいてしまうため、これに焦点を合わせることが難しくなっています。

彼が形式的な論理でアイデアを表現することを学びたいなら、それを簡単にする何かのために行ってください。Pascal(アプリケーションレベルの開発の場合)またはPython(スクリプトレベルの作業の場合)のどちらを選択するかは、どちらも直観的で学習しやすいことがコアの優先事項として設計されているためです。コードの記述方法の原則を実際に理解したら、C ++に特に関心がある場合は、それを習得できます。

同じ理由で、Windowsの代わりにLinuxから始めないでください。Linuxの学習とコーディングの学習の2つに同時に焦点を当てる必要があるためです。気晴らしを最小限に抑えます。

実際のプログラミングリソースについては、オンラインでチュートリアルを見つけるのは簡単ですが、プログラミングを学ぶのに最適な方法はプログラミングであることがわかりました。あなたがやりたいことを見つけて、それをどうやってやるかを考え始める。

数年前、私はゲームを見ました、そして、「私はこれをすることができて、私はそれをよりよくすることができる」と思いました。そこで私はDelphiを起動し、関連する原則を理解し始めました。私はまだその個人的なプロジェクトから新しいことを学んでおり、その過程で本当に良いコーダーになりました!だからそれを試してください。プログラムできるとしたら、父親に何をしてもらいたいか尋ねてください-そして、それが可能であり、まだ経験がないので、範囲がかなり小さいことを確認してください-そして、彼と一緒に座って、彼と一緒に方法を考え始めますそれ。

また、質問がある場合は、StackOverflowアカウントを取得してください。:)


4

あなたのお父さんのC ++への関心は間違いなくきちんとしていると思いますが、彼が会うことに興味があるという非常に具体的な要件がない限り、それは最初のプログラミング言語としては私の選択ではありません。(それでも、別のより単純な言語を学習した後で C ++ 学習する方がはるかに簡単かもしれません。)

プログラミングにとって重要なことがいくつかあります。

  • 抽象的な問題を解決する能力
  • 問題を問題解決のために十分小さいものに分解する機能
  • ソリューションを反復的に、十分に小さなピースで構築して、前進することが可能
  • 特定の言語の構文とセマンティクス。

多くの点で、特定の言語の構文とセマンティクスは、プログラミングに必要なスキルの終わりに近づいています。結局のところ、あなたが適切に近い場合、ほとんどのコンパイラーはあなたが犯した間違いを教えてくれます-しかし、具体的にコンパイラーが言っていることをデコードするには経験が必要です。

だから、私はあなたの父親が最初にはるかに単純なプログラミング言語、Ruby、Python、C、C#、Haskellなどに取り組むことをお勧めします(Haskellは命令型言語だけをプログラミングした人にとって間違いなく難しいですが、私はd完全な初心者が同じ「魚の水から出た」という感覚に悩まされているかどうかを知りたいと思ってください。)

シンプルな言語を前に置くことは、お父さんがより早く成功し、「遊ぶ」のがより簡単になることを意味します。多くの言語のインタラクティブREPLループは、学ぶのに最適な場所です。

お父さんが関数、クラス、オブジェクト、メソッドに慣れると、C ++の特徴とニュアンスはそれほど圧倒されなくなります。一体、Cで始めても簡単です。それは許されませんが、心配する混乱する機能は少なくなります。

LinuxとWindowsに興味があります。区別が重要であるかどうかはわかりません。彼がすでにいずれかの環境に精通している場合、切り替えはもう1つのハードルです。彼がどちらも知らない場合、私はLinuxをお勧めしますが、主に良いツールのインストールが途方もなく簡単であるためです。apt-get install <foo>ほとんどのディストリビューションで動作し、サポートしていないディストリビューションでもapt同様のものが提供されることがよくあります。1分後、きちんとした新しいパッケージがインストールされます。多くの場合、トロイの木馬を使わない、コンパイル済みのWindowsバイナリの信頼できるダウンロードソースを見つけるのにかかる時間よりも速くなります。


私の父は間違いなく、プログラマにとってとても重要な「考える能力」を持っています。私は彼の常識と知性を彼が現在行っていることで見ており、それがプログラミングに適用できることを知っています。学習に最適な候補者がいるとしましょう。私の質問は次のとおりです。どうすればそれらをそこに到達できますか?
skippr

ええと、私はスキルをさまざまなカテゴリに分類して、構文とセマンティクスに行き詰まると他のスキルの開発が曇る可能性があることを指摘しました-難解な感じのルールが少ない言語では、抽象化フローが容易になります-しかし、私はその点をうまく述べていないようです。
sarnold 2012年

1
提案されている言語のうち、私は確かにPythonを支持します。しかし、お父さんが視覚的に傾いている場合は、Processing(www.processing.orgを参照)が興味深い紹介になるかもしれません(ただし、適切ではない多くの種類の問題があります)。
James Youngman 2012年

@ジェームズ:えーと、私はこれまでに、PDF出力を使用したインタラクティブプログラムというフレーズを見たことがないと思います。:)
サルノルド2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.