だから、私のお父さんは約1か月前にプログラミング(C++、Java、PHP、Javascript、Android)に関する5冊の本を買ってくれました。彼は建築家であり、プログラミングについては何も知りません。私はプログラミングが楽しいと学び、それを学びたかったので彼は私にそれらを買った。
ご存知かもしれませんが、子供であること(私は14歳です)、退屈な本からプログラミングを学ぶように言われることは、最も簡単なことではありません。私はいつも気が散っています。前に、本を購入する必要はなく、オンラインチュートリアルだけを見ることができると言っていました。彼は私に本を使わせるだけです。
最近、彼は私にそれを使って何をしたのかと私に尋ね始め、私はあなたが入力したものを取り、各文字に値を割り当てるC++プログラムを彼に見せました(Aはアルファベットの最初の文字なので、値を取得します) 1)のように。次に、すべての値を合計してそれを伝えます。したがって、「追加」という単語の値は9になります。
^^彼にはそれほど印象的ではありませんでした。彼は私に怒鳴りつけて、私がやってきていることはすべてねじ回していると私に言った。それは真実ではない。彼は非常に伝統的で頑固で、私が言わざるを得なかった。私は彼に何を言うべきですか?
PS:本のゾーニングに関するヒントがあれば、教えてください
編集:どうもありがとうございました。私の状況を理解している人がいることを知ることの意味がわかりません。私は一人一人を読みました、そして私は皆の意見を考慮します。グラシアス!
私は彼にあなたが入力したものを取り、各文字に値を割り当てるC++プログラムを見せました(Aはアルファベットの最初の文字なので、値は1になります)。次に、すべての値を合計してそれを伝えます。したがって、「追加」という単語の値は9になります。
あなたはあなたのお父さんをどうするべきかわかりません。だが:
ゼロから始めて、本から学び、1か月でこれをすべて自分で行った場合、それはすごい印象ですそして、あなたはC++でそれをしました、それは現存する最も恐ろしいプログラミング言語の1つです。
面接をして、真剣にプログラミングの仕事に就こうとしている人がかなりいます。 this ストーリーを参照してください。
私が提案できるのは、あなたが楽しんでいることを続けてください。この文脈ではお父さんを無視してください。彼は自分が何について話しているのか分かりません。あなたはプログラミングの才能と学ぶ意欲があります-優れたプログラマーになるための主な要素。
あなたのお父さんはおそらくあなたが世界で最も賢い子供についてであると考えていることを覚えておいてください、そして彼はあなたがあなたが楽しんだと言った何かについてあなたが学ぶのを手伝おうとしています。
お父さんが疑いなく間違っている(5つの完全に異なるトピックが一度に子供に投げかけるのはたくさんある)としても、彼はまあまあです。多くの人が、ウェブで見つけた「チュートリアル」を模倣してプログラミングを習得しようとします。それは必ずしも悪いことではありませんが、IMOは通常、確実な理解につながりません。正しい本はまずあなたに基本を教えます。これは、派手なことを行う次のチュートリアルほど面白くないかもしれませんが、長期的な成功の可能性はさらに高まり、stackoverflow.comで尋ねなければならない質問の数はさらに少なくなります。
少なくとも現時点では、1冊を除いてすべてを忘れてください。すでにC++を使い始めているように思えるので、気に入ったらそれを使ってください。
あなたは時々落胆を感じるでしょう。プログラミングの半分が行き詰まっているように感じられ、残りの半分が行き詰まっているように感じることがあります。解き放たれることは貴重なスキルであり、練習すればするほど、うまくいくでしょう。 (最初から行き詰まらないようにすることも貴重なスキルなので、そのように練習します。)
最初のコンピュータ言語を学ぶことは、ソフトウェア開発にとって、建物を設計することを描くことと同じです。最も興味深い部分ではないかもしれませんが、必要なスキルです。
彼に聞いてもらうことができたら、小さなプログラムを書くために学ばなければならなかったすべてのものを分解してみてください。ツールの使い方を学ぶだけでは少し時間がかかりますが、彼はそれがどのように機能するかを理解していません。
簡単なプログラムの実行に到達し、C++について少し学習したように見えたところで、興味深い小さなプログラムを何と書けますか?金利、ローン金額、ローン期間を受け取り、支払いスケジュールを出力するローン計算機はどうでしょうか。または、「H2SO4」や「C6H12O6」などの分子式を読み取り、分子の重量を出力する計算機ですか?これは、既に作成したプログラムよりもそれほど複雑ではありません。
彼は私にそれらを買ってくれました私は彼にプログラミングが楽しいと言ったのでそして私はそれを学びたかったです。 ...私は彼に何を言うべきですか?
「お父さん、これに対するあなたのアプローチは、プログラミングを学ぶことです絶対に面白くない。それをたたき落としなさい。」
建築家として、彼はきっとあなたの足を引っ張ったり、無礼であったりしなければなりません。
彼が始めたときについて彼に精査します。彼が1か月間過ごした後、彼が詳細な配管計画で超高層ビルを描き、材料への力とストレスを計算し、災害リスク評価(ヘビが中にいる飛行機に当たるなど)を行ったかどうか尋ねます。彼があなたと同じくらい若かったときの本。多分それは彼を落ち着かせるでしょう。
いいでしょう、多分それは私があなたに与えることができる最良のアドバイスではありません、あなたの親について話を戻すことです。励ましの代わりに進歩にペナルティを課すお父さんを持つことは、子供の頃は少し負担になりますが、代わりにそれをより良いものにするための励ましとして受け止めることは理解できます。彼には態度の問題があるかもしれませんが、それは悪意を意味するものではありません。
どの本を使っているのか知りたいです。それらのすべてが実際に良いわけではありません。また、すべての本がすべての人に適しているわけではありません。
あなたはあなたの年齢を特定しなかったので、私はあなたが18歳未満であると仮定します。
子供の頃、プログラミングを学ぶときに多くのリソースを活用しました。私はTI 99/4Aに付属しているマニュアルを持っていました。このマニュアルには、画像を描き、フィギュアをアニメーション化する楽しいプログラムがたくさん含まれていました。インターネットは利用できませんでしたが、入力してすぐにフィードバックを得ることができるプログラムや、他の種類の課題を解決する方法に関する記事など、子供を対象としたコンピューター雑誌もありました。私は、ストーリーの一部として含まれているプログラムを入力してデバッグできるスパイ小説シリーズがとても気に入りました。残念ながら、この種のリソースはまだ存在しないと思いますが、PythonのHello World本やLand of LISPなどの若い人を対象としたプログラミング本がいくつかあります(大人にとっても楽しいですが)。
私はあなたのことは知りませんが、あなたが今述べたのと非常に似たようなことをするプログラムを書くことにかなりのけん引をしたときがありました。やがて私はより高度なものに移りました。私は平凡なゲームをいくつか書いたり、キーストロークに反応してさまざまなサウンドやアニメーションを再生したデモや、学習補助を書いたりしました。私は10歳か11歳の頃、繰り返しクイズして元素の周期表を暗記するのに役立つプログラムを書きました。 (当時、記憶力は今よりも優れていたため、クイズをプレイしたときと同じように、最初のデータ入力からほとんどのことを抜け出しましたが、ポイントは進歩することでした)。
あなたのお父さんはそれを理解していないかもしれませんが、本はあなたがプログラミングを学んでいるときのプロセスの一部にすぎません。小さな問題を見つけて、それを解決する方法を理解しようとすることが、方程式の残りの半分です。少しずつ教えてくれて、マシンで何か楽しいことをさせてくれる本を見つけるのが、もう半分です。私の場合、グラフィックスとアニメーションを強調した本が私を魅了したものでした。
子供の頃、ソートアルゴリズムや複雑なデータ構造に関する本を読んだとき、実際に気にかけた問題にそれらがどのように適用されるかを知るのに十分なまで、私の目は輝きました。あなたが読む本の中のすべての言葉がリベット打ちになるわけではありません。それで大丈夫です。あなたはそれが必要なときにそのようなものに到達します。解決したい問題が3週間、3か月、または3年前に面白かったとは思わなかった手法を思い出させます。戻ってそれを見直し、理解します。
1か月はプログラミングを学ぶのにそれほど長い時間ではありません。私は子供の頃も含めて約30年間、何らかの形でコードを書いてきましたが、それでも毎日新しいことを学びます。最初の1か月目には最初のコンピューターがあったと確信しています。ムンクマンの再生に多くの時間を費やし、リファレンスブックのサンプルプログラムを理解するためにはるかに短い時間を費やしました。あなたに合ったペースで学びましょう。現在、プレッシャーはありません。それは素晴らしいことです。
「ぐるぐる回る」とは、プログラミングを初めて学ぶときにやるべきことです。ハッカー(Paul Grahamの一種)は、システムのしくみ、プログラミング言語のしくみ、ツールのしくみを理解しようと、ぶらついています。あなたは何かを試み、失敗し、直面している問題を推論し、何かが機能するまで、別のことを試みます。そんなに心配しないで。
父親が同じ本を読んでいない限り、父親はおそらくあなたがこれまでに学んだことを理解していないでしょう。特に10代の若者が建築に関する本を1か月読んだ後、家や超高層ビルをデザインできるとは思いません。
物事を展望するために、過去4週間ほど、Ruby on Rails Frameworkのエンジン機能)の難解なコーナーで作業してきました。今日のように、私はついにユーザーの観点からそれを示すために何かを持っています。その時にトンを学び、かなりうまく機能する多くの重要な基本的なコードを開発しましたが、ユーザーがいくつかの一見カジュアルなユーザーには一見印象的ではありませんが、多くの作業が行われました。誰かが私に4週間悪戯していたと言ったら、私はかなりがっかりします。しかし、彼らが物事を「シンプル」にするために何が起こったのかをほんの少ししか理解していないことも知っています。
このような状況のように聞こえますが、あなたのお父さんは、あなたがしていることに前向きな補強とサポートを与える人ではありません。簡単な解決策:そのために彼を使用しないでください。
自分のプロジェクトを実行し、それを楽しんでください。彼(または他の誰か)があなたに実行を望んでいるからではなく、楽しいからです。あなたにとって楽しいものを選んでください。本からすべての言語/テクノロジーを学ぶ必要はありません。代わりに、物事をいじくり始めます。やがて物事が簡単になると、新しい概念や課題を探すようになります。そして、今日あなたが退屈だと思う本(または少なくとも特定のセクション)を読みたいと思う自分を見つけるでしょう。
あなたが行き詰まって何かをコーディングするのに助けが必要な場合、stackexchangeはすでに知っているように素晴らしいリソースです。
あなたのお父さんは非現実的な期待を好む傾向がある、またはおそらくあなたは物事を始めたが、フォローしていなかった、またはその両方の歴史があると私には思えます。ここで重要なことは、実際には重要事項のどれでもないことです。重要なのは、自分がやっていることを楽しんで、上手になることです。
私は楽しませない本でとても困難な時間を過ごします、私はいつも持っています。他の人が物事を行うのを見守り、何かの目的がわからないときは質問し、それがわかるまで苦労することによって、私は最もよく学びます。闘争は私たちをより強くし、私たちに私たちの最終的な成果の所有権を与えます、おそらくそれが子宮から登るのがとても難しいのはそのためです。
そうは言っても、ツールボックスで最も鋭いツールの1つは、オープンな状態を維持し、批評の中で生産的に作業でき、ソースに基づいたアドバイスを排除できないことです。 良いプログラミングの本はあなたをつかみ、インスピレーションを与え、壁にぶつかったときにそれらに戻ることを期待する傾向があります。それらがなければ、何をしているかを最初に正確に理解しなくても、たくさんの驚くべきことをすることになります。プログラミングは非常に慎重な芸術なので、消化しやすい方法で書かれた本を探すことをお勧めします。
私はかなり長い間プロのプログラミングをしてきましたが、私の満足は本当に自分のものだと言えるでしょう。私の上司は、私が書いたことがとても素晴らしい理由をよく理解していません。妻が私の一日について話すと、妻は眠りに落ち、私の友人は私の仕事について尋ねるのを避けに出かけます。私は自分の勝利と、それを仲間と共有するための時折の機会を楽しんでいます。この場合、あなたのお父さんはあなたの仲間ではありません。
継続して改善を続けます。プログラマーではない人が感動する前に視覚的に印象的なものを見る必要があるという事実に慣れます。 Mandelbrot/Julia set generator のようなものを書いて運試しをしてみませんか?それは彼に彼が探しているような進歩を示し、しばらくの間あなたの訴訟から離れさせるかもしれません。 10年後には、非常によく似た方法で、技術者ではないマネージャーを背負わせて、実際の仕事を終わらせることができます。
覚えておいてください。楽しんでいるからです。
まだ誰もこれを提案していないようです:
最近、彼は私にそれを使って何をしたのかと私に尋ね始め、私はあなたが入力したものを取り、各文字に値を割り当てるC++プログラムを彼に見せました(Aはアルファベットの最初の文字なので、値を取得します) 1)のように。次に、すべての値を合計してそれを伝えます。したがって、「追加」という単語の値は9になります。
^^彼にはそれほど印象的ではありませんでした。彼は私に怒鳴りつけて、私がやってきていることはすべてねじ回していると私に言った。それは真実ではない。彼は非常に伝統的で頑固で、私が言わざるを得なかった。私は彼に何を言うべきですか?
考えてみれば、そのプログラムは、コンピューターを使用し、プログラミングについて何も知らない人にとってはそれほど印象的ではありません。
お父さんにどのようにして作成したかを示します。彼にソースコードを説明します。彼はおそらく(間違いなく)それを理解しませんが、どれだけの労力を費やしたか、そしてどれだけ理解すれば、多分彼はあなたが実際にどれだけ達成したかについてより肯定的な印象を与えるでしょう。
この質問が、育児フォーラムとプログラミングフォーラムのどちらに最適かを判断するのは困難です。この質問に巻き込まれたことが父親の関係の「問題」の可能性を秘めていると思うので、私の忠告が的外れであるのを恐れています。
そうは言っても、私が焦点を当てるのは、あなたとあなたの父親が何らかの形で情熱を共有する可能性のある主題についてつなぐ素晴らしい機会です。自分自身が父親であり、自分の父親を知っている私は、子供たちが私たちの話を聞いて、私たちの指示に従い、私たちから学んでほしいと切望しています。私たちの子供たちはしばしば反対のことをするように駆り立てられます。したがって、2人がこの共通の関心を共有しているという事実は素晴らしいことです。
父親は確かに頑固かもしれませんが、私はまだあなたがこの演習を通してあなた自身の個性と選択を変える機会があると思います。反抗の感覚からではなく、プログラミングの主題をよく理解するというあなた自身の意欲と野心に由来します。個人的には、あなたの父親がプログラミングに関してあなたを深いところに投げ込んだようです。 MIPSアセンブリ言語またはLISPではないかもしれませんが、それでもC++でしょうか? Java?うわぁ。私はプログラミングが大好きですが、早い段階でそれらを読むと、私が一斉にオフになってしまう可能性があります。冗談。 :)
だから私が尋ねるのはこれです:あなたを刺激するもの?どんなものを作りたいですか?それに答えて、そのテーマに関する自分の本やチュートリアルを探してください。ここに来て質問してください。何かを構築します。次に、あなたが作ったものをお父さんに見せてください。あなたが学んだことを彼に教えてください。あなたととても関わっていたことを彼に感謝し、彼に感謝することを伝えてください。結局のところ、それがすべてなのですから。彼はあなたを愛しているので、あなたと何かを共有したいと思っています。時々、父親は伝統的な方法でそれを表現するのに苦労するので、同じことを言うためにこれらの間接的な方法を模索します。時々それをするのが苦手です。しかし、これらすべてがあなたにもっと近づきたいという願望であることを忘れないでください。
あなたがやりたいことは何でも
それはあなたの人生です。好きなことができます。誰にも(あなたのお父さんも)あなたの人生をコントロールさせてはいけません。
私はあなたが多かれ少なかれプログラミングを楽しんでいて、成功したスペシャリストになりたいと思っていると思います(そしてあなたのお父さんは誰もが望んでいます)。しかし、重要なのは自分が何をしているかを知り、それが気に入らない限り、成功することは決してないです。
どんな分野でも習得するのは難しいです。誰かの影響下でのみこれを行うことはできません。そしてあなたがあなたより上手にやるべきことを誰も知らない。今日は休んで一日中ゲームをしたいですか?それはあなたの決定であり、あなたはそれに対して責任があります。あなたは自分の決断と人生に責任を持つことを学ぶべきです。成功したすべてのスペシャリストにとって、決定に責任を持つことは必須です。
それで、あなたはその状況で何をしますか?あなたの立場に立って、誰かの言うことを聞かないで、あなたにとって価値があると思うことは何でもしてください。
書籍をリクエストしました。正直なところ、あなたは本を読むよりも問題をうまく解決するでしょう。あなたが情熱を傾けているパズルや問題を見つけてください。 Project Euler は素晴らしい情報源であり、 CodeGolf は興味深い質問を時々提供することができます。私の最初のプログラミングプロジェクトは素数を見つけたC++アプリでした。当時使用していた教科書は、次のような簡単な実装を提供しました。
bool isPrime(int x){
int c = 1;
while(c < x){
if(x%c == 0){
return False;
}
c=c+1
/*c+=1 if compiler is set to '98 or more recent*/
}
return True;
}
これは非常に非効率的です。私はその機能を備えた最初の約500の素数を見つけましたが、その遅さに嫌悪感を抱きました。お父さんと私は上記を最適化するのに素晴らしい時間を過ごしました、そしてそれは出力をファイルに書き込むことさえしなかった単純なアプリであったとしても、私は楽しんで、結果の製品はクールでした。
本を読んで学びますか?ええ、でもプログラミング言語をいじくり回して、試行錯誤で学ぶことの価値を強調することはできません。
あなたがプログラミングを学んでいるならforお父さん、やめて自分の理由を見つけてください。鉱山はまだ大量の自動取引システムを構築するように私を悩ませています。何かを見つける必要があると言ったとき、私は致命的に深刻ですあなた作業したいので、そうしないと、趣味や趣味ではなく、それを雑用として見るようになるので、おそらく完全にプログラミングを放棄します。スポーツ。
Linus Torvaldsの著書「Just For Fun」を読んでみてください。彼はLinuxオペレーティングシステムの起源を語っています。タイトルはそれをすべて言います。
真剣に。いくつかの問題をハックしてください。行き詰まったら、老人を巻き込む。
あなたのお父さんがあなたの仕事に感謝しないなら、それは彼ががっかりしているからではありません。彼は建築家です、彼はいくつかのものがどれほど複雑かを知りません。ロジックのみの場合は、コードについて説明し、作成したロジックについて理解するようにしてください。
TL; DR
特に初心者向けのプログラミング入門書である本を見つけてみてください。多分Hello World!子供と他の初心者のためのコンピュータプログラミングウォーレンサンデによるもの。
ライブラリの内容も確認してください。ほとんどの図書館には、いくつかの初心者向けの本が必要です。
私の考えでは、2つの問題があります。
私見では:
最初の問題は、このようなサイトに行って、あなたがしたように質問するだけです。以下のようなリソースを見つけてください https://softwareengineering.stackexchange.com/questions/62224/how-to-become-a-professional-programmer/62263#6226 。作成したいもの(ゲーム、to-doリスト、映画コレクション管理システム、次善のソーシャルプラットフォーム)を考えて、コーディングを開始してください。または、パズルを解くことから始めます プログラミングパズルと課題はどこにありますか?
2番目の問題はさらに難しくなりますが、父親を教育する必要があります(父親はあまり進んでいないようですが)。あなたは彼女の説明のようなメタファーを使うことを試みることができます 良いプログラミングメタファーは何ですか? 。もう1つのヒントは、一般にプログラマーではない人は、優れたアルゴリズムの複雑さを取得しないが、見栄えの良いインターフェースに簡単に邪魔されることです。選択するプラットフォームに応じて、見栄えの良いインターフェイスを簡単に生成して、お父さんを感動させることができます。使用例:
お役に立てれば。
私は私の人生で一度に非常に似た立場にあったことを付け加えたいと思います、私の父はポジティブな強化が何を意味するのか本当に理解していませんでした。しかし、彼の時々の厳しい不承認に対して私がしつこく強靭であるのを見て、私はなんとかそれを守ることができました。約20年後、父との関係は大きく変化し、改善されましたが、当時の微妙なニュアンスがまだ残っています。
これはあなたの人生のただの困難な時期であり、ここで重要なことは、これを何よりも楽しんでいることです。
プログラミング言語については、1つだけに集中する必要があることに同意します。
実際には、まだ持っていないものをお勧めします:Python。 Pythonは、習得が非常に簡単でありながら非常に強力な言語です。C++、Java、PHP、およびJavaScriptはすべて、はるかに複雑です。
Pythonを使用したプログラミングを教えるマニングの本がいくつかあります。 「Hello、World!」は、少し若い人口層を対象にしている場合でも、強く検討します。
C++を続行する場合は、この本をお勧めします。
それは「リファレンス」ではなく「チュートリアル」ではありません。私は良いC++チュートリアルに気づいていません-「C++を自分で教える」という種類の本はたくさんありますが、あまり役に立たないと思います。 (C++は学ぶのがかなり難しい言語ですまず;ほとんどのC++プログラマーはより簡単な言語から始めました)。
C++、Java、PHP、JavaScriptおよびAndroidについて(一度にすべてを習得しようとすると失敗する可能性があるため、それらを選択できるようにするため):
いずれにせよ、本当に重要なのは、これが楽しいと感じることです。あなたが物を作るということは、あなたはクールだと思います。それはあなたのニーズのいくつかを解決するか、それは遊ぶのが楽しいです。プログラミングはそれを楽しむ人のためのものです。数行のコードでアプリを構築できるツールセットが必要です。 JavaScript/CoffeeScriptが出発点として適しているかもしれません。
個人的に、私はあなたにRubyを紹介したいと思います。プログラミングについて多くのことを教えてくれました。プログラミングを始めたとき、それを知らなかったことを残念に思います。基本的に、手ごわい本が2冊あります(どちらも無料で入手できます)。
それに加えて、 shoes をチェックすることをお勧めします。リファレンス、チュートリアル、デモなど、優れた統合ヘルプを備えた優れたツールです。最初の作業は数日で完了します。
そして、おそらく後で、私はあなたに haXe を指摘したいと思います。私はそれが素晴らしい言語だと思います(私の選択した言語)、そして最近発行されたまったく新しい 初心者向けガイド があります。ただし、haXeには利用可能なツールがないため、JavaScriptやRubyの場合と同じくらい簡単にアプリケーションを作成できます。したがって、最初から退屈でいらいらすることさえあるかもしれません。それは目的全体を打ち負かします。
他の回答では言及されていないことが1つあります。
ご存知かもしれませんが、子供であること(私は14歳です)、退屈な本からプログラミングを学ぶように言われることは、最も簡単なことではありません。私はいつも気が散っています。前に、本を購入する必要はなく、オンラインチュートリアルだけを見ることができると言っていました。彼は私に本を使わせるだけです。
あなたは確かにその部分に取り組む必要があります。 インターネットはすべてのプログラマーの重要なツールであり、それを使用する必要があります。
まず、プログラミングは問題解決です。言語XYZでXを実行する方法がわからない場合は、グーグルで解決策を探します。 *ソリューションをすばやく見つけるi* sは、キーボードを使用するのと同じくらいプログラマにとって重要です。
次に、もう1つの重要なスキルは、ドキュメントを使用することです。書籍は通常、チュートリアルのようなものです。それらはガイダンスを提供しますが、完全な知識を提供するわけではありません-そして、これはドキュメントが役立つ場所です。たとえば、C++でプログラミングしている場合、1か月の経験があります。遅かれ早かれ(私はすぐに言いますが)、標準ライブラリを使用する必要があります...それとも、すでに使用しているのでしょうか?もしそうなら、それは良い兆候です、あなたの本はおそらくその場合悪いものではありません。とにかく、C++標準ライブラリに既に存在するものと存在しないものを知ることは有用です。そのためには、プログラミング中に常に http://cplusplus.com/ のような参照を開いておくと便利です。
インターネットは、コーディングにとって重要であり、コーディングの学習にとってさらに重要です。お父さんが理解しておらず、本だけを使ってプログラミングを学ぶことを期待している場合、彼のアプローチは逆効果であり、あなたの進行を遅くします(そして、おそらく悪い習慣を身につけます) 。
あなたの父親の意見は、あなたの学習プロセスを助長しません。はい、他の人が述べたように、プログラミングを学ぶにはいくつかの方法があります。しかし、私の意見では、C++の驚異的な進歩を示しています。あなたの追加するプログラムは、Javaプログラミングの最初の学期以降はほとんど扱えないものでした。
続行したい場合は、2つの点に取り組む必要があります。
1)お父さんを扱いなさい。
見て、すべてのお父さんは子供たちに贅沢な夢を持っています。しかし、彼らの期待は非常に高くなる可能性があり、最終的にいくつかのおとぎ話では不可能でさえあることにつながります。あなたの進歩をよりよく評価し、あなたの父親を地球に降ろすために、私は状況の外部に誰かを連れてくることを勧めます。プログラミングの経験がある知っている家族や友人と話してみるか、このコミュニティの人々が私たち自身の経験と知識のために彼にメールを送ることができます。お父さんがクールダウンしないと、一緒に興味を失うので、これはすべての中で最も重要なステップです。
2)フォーカスを見つけます。
一度にすべてを学ぶことは助長しません。言語を選んでそれを使い続けます。あなたが特定の言語で本を読んでいるとき。本の例を逐語的に追うことは、正確に進む方法ではありません。逆流は、すべてではなく一部の学習プロセスです(特に私自身)。できる限り多くの角度から、そして興味のある角度から攻撃することが重要です。同じ言語で異なる著者による本をプログラミングすることは、言語の使用方法に対する洞察と洞察を深めることができます。プログラミングからのあなた自身の欲求(ゲームを作る?アプリケーションを設計する?テスト?ect、ect)。また、個人的な冒険でプログラムを作成することもできます。現時点でわかっていることに関係なく、何をしたいのかを理解し、プログラムを作成しながら調査します。時が経つにつれ、関連するかどうかに関係なく他のプログラミング言語を試してみたいと思うでしょう。また、プログラミングをすべて一緒に行いたくない場合もあります。
何よりも、重要なのは最終結果ではなく、旅です。楽しんでください!
私はあなたが今より正式なものを片付けるべきだと思います、そしてスクラッチを見てください- http://scratch.mit.edu/ -それはあなたがより簡単にほとんどのプログラミング構造に対処することを可能にしますループなどの必要なものを学習しながら.
また、手作業で行うのがおそらく最も困難であり、今日の世界で興味深い結果をもたらすために必要な、完璧なマルチスレッド化も可能になります。
それはプログラミングに色とレゴブリックのようなアプローチを使うので、それを過小評価しないでください。技術的な詳細に迷うことなく、多くのことができます。
お父さんにあなたの年齢で高層ビルを設計できるかどうか尋ねてください。それがプログラミングです。学ぶことがたくさんあるので、学ぶには時間がかかります。これは自転車に乗るようなもので、ペダル、ギア、ハンドル、ノブを1,000個持っているだけで、いつ使用するかを選択することはできません。練習が必要です。
疑う余地はありません。プログラマーになるという目標の早い段階でC++に手を出しています。 meにはそれが印象的です。
頑張って、プログラマーとしてのキャリアを頑張ってください!
あなたはあなたの状況のプログラミングの側面についていくつかの良いフィードバックとアドバイスを与えられました。しかし、別の視点から何かを追加したい...
お父さんについてネガティブな考えを経験していると思います-彼はあなたにプレッシャーをかけ、あなたにいくつかの悲しみと心配を引き起こしたコメントをしました-そしてプログラミングの面白さを奪いました。それは残念なことであり、私はここのほとんどの人がプログラミングが楽しいことに同意するだろうと思います-私は30年以上プログラミングをしていて、それでも楽しいと感じています。
しかし、あなたのお父さんは本当にあなたの味方だと思います。彼は正しいと思ったことをしました、彼は助けようとしていました、彼はあなたにあなたに良いスタートを与えるためにあなたに本を買いました。しかし、彼はそれを誤解しました(そして、私はお父さんとして話します、私たちは時々間違ったことをします!)。彼にとって、本はおそらく彼が彼の建築のキャリアで始めたところです(私はこれがインターネットとwwwが一般的に利用可能であったとしても、一般に利用可能になる前に始まったと思います)。彼の考え方では、本はあなたが始めるところです。
だから、あなたのお父さんがあなたの側にいると仮定すると(そして私は彼がそうだと私は確信しています)、問題は彼があなたが最初にプログラミングを開始するときそれがどれほど難しいか理解できないことです-それで彼にあったすべての答えを見せてくださいここに投稿されました-あなたのお父さんはいい人だと思います。彼は理解し、あなたをサポートします。
そして、あなたのプログラミングの幸運-あなたは素晴らしいスタートを切っているようです。
私はすでに多くの答えがあることを知っています。しかし、私はこのアドバイスを見ていません:あなたの父にあなたを助けさせてください。 C++の本で毛むくじゃらの何かを選んでみてください。理解して彼に助けを求めることができます。
彼に本を渡して、C++でクロールさせます。これにより、コードの作成がいかに難しいかを彼が理解できるようになると確信しています。
この状況を自分の利益のために変えてみてください。今までに成し遂げたことが十分ではないことを受け入れて、もっと上手くやってみてください...上司から働き始めて、今から改善し始めなければ、上司のために働くとき、このような十分な苦労を経験するでしょう。 。
私があなたの年齢だったときに私が二倍頑張ったら...
1か月で期待するのはかなり難しいことです。むしろ、一度に1つの言語またはパラダイムの学習に集中する必要があります。そうしないと、圧倒される可能性があります。一度に過剰に押し込まれすぎることも、それを無効にする良い方法です。興味のある特定のプログラムに取り組むことで、よりよく学ぶことができます。 Android電話が興味のある場所である場合、おそらくC++よりもJavaを使用するほうがよいでしょう。彼はいくつかのwhiz-bang UIのことを期待しているかもしれません。典型的な顧客として彼の失望に落胆しないでください:)
ヘッドファーストの本の中には、本にこだわる必要がある場合に、学習を少しドライにするのに役立つものがあります。
プログラムに傾倒するプロセスについて、彼はまったく知りません。あなたはそれらすべての本を読むことができますが、それでもまともなものを書くことはできません。何よりも時間がかかるのは、あなたができることとそれへの取り組み方の真の理解だからです。
あなたはお父さんにプログラミングを楽しんでいると言いました-彼にそれを台無しにさせないでください。そして、確かに、少なくとも今では5つのプログラミング言語を試して学習しないでください。 Javaのような比較的単純なものを使い続けます。習得したら、他のJavaに転送できます。
本に関しては、ところで、あなたは言語について正しい方法を学ぶので、それを行うには正しい方法です。以下のチュートリアルは、多くの場合、悪い習慣などを拾うことにつながります。
幸運を祈ります。そして、あなたがそれを適切に行っていることを彼に知らせてください、進歩は遅いですが、あなたはそれをしている間あなたはとても多くを学んでいます。
25〜35歳以上のプログラマーの多くは、ニンテンドーとセガをプレイして育ったと思います。それらのかなりの部分/私たちはあなたがあなた自身のものを作ることができるときになぜゲームをするのかという精神的な移行をしました。それはあなたをより良いプログラマーにするためにあなたを駆り立てることができる非常に利己的な動機です。それは始まりです。人生の後半では、ビデオゲーム(仮想問題)の作成から、より高い賭け金(現実の問題)のゲームに移行する可能性があります。この患者のためのこの処方箋が他の処方薬と悪影響を及ぼさないように、これらのトラックは汚染を減らすために最小量のガスで最大量の配達を行うことができますか、またはこの在庫の購入が確実に購入できるようにする方法何千もの他の人が同時にそれを買うとき、私が欲しい価格で。あなたのお父さんはあなたがこれらの現実世界の問題を解決することに感銘を受けると思いますが、彼はあなたがそこに到達するためにあなたが赤ん坊のステップを踏まなければならないことを理解する必要があります。
建築は、生まれてから学んできた物理的な世界に根ざしています。建築大学生にとって、レゴで遊ぶのは時間の無駄です。あなたのお父さんは、あなたが数学を知っているので、あなたは基礎に精通していて、あなたはものを作り始めることができるはずであると仮定します。まあそれは真実ではありません。彼はプログラミングについての最初のことを知りません。なぜなら、それは数学の分岐ではないことにさえ気づいていないためです。
プログラミングは新しい世界です。それに慣れるための最良の方法は、実際の世界を学んだようにそれを学ぶことです。つまり、play。レゴの時間です。
比較のために、宇宙飛行士を考慮してください。彼らもまた、まったく準備ができていない新しい世界を持っています。彼らは部屋の中を移動する方法のような基本から始めなければなりません。
次のステップとして、コンピューターが乱数を選択し、それを推測しようとするゲームを作ることをお勧めします。これにより、推測が高すぎるか低すぎるかがわかります。
たくさんの異なる言語も試してみてください!一度にすべてではなく、一度に1週間程度。
ある程度の経験を積んだら、本格的なビデオゲームを作成することは、ジャーマンプログラマーとして取り組むことができる最大の課題の1つです。ビデオゲームは私たちの分野のほぼすべての隅々に触れており、ビデオゲームを構築することはあなたのスキルを構築する素晴らしい方法です。また、より高いレベルのスキルで実験や学習を行うのに最適な場所でもあります。
プログラミング言語の学習に自分の時間をかけてください。練習すればするほど、プログラミングに慣れるようになります。今回は、初心者にとって非常にかわいい非常にシンプルなプログラムを作成しましたが、上達するにつれて、必ず作成するようにしてください。あなたのお父さんが実際に使用できる良いプログラムです。もしあなたが私に尋ねたら、これは私の父が彼の仕事を手伝った方法です。
ちょうどあなたのお父さんと一緒に言葉を持っていて、彼に事を説明してください、そして私は彼が本当に理解するであろうと確信しています、そしてあなたがいつかあなたが優れた開発者になることを確信しています。
私はソフトウェアエンジニアとして勉強しており、私の教育におけるプログラミングの学習の進歩は、単に本を読んでいるだけではありません。
まず第一に、Cを学ぶことをお勧めします。Cはイージー言語であり、他の多くの言語(C++、objective-cなど)はCに基づいて構築されているからです。私たちが行った方法は、マイクロチップ(私たちのケースでは、STK 500キットを備えたAtmel Mega16、つまりLEDとボタンが付いたボードです)を試してみて、プログラムをプログラムし、bipとbopにしました。これは、Hello WorldプログラムIMOを読み書きするよりも楽しいです。
Cがあなたの代わりに公園を散歩したら、C++とオブジェクト指向プログラミング(OOP)に進んでください。 OOPは、多くの言語とプログラミングの考え方において重要な概念であり、プログラミングに真剣に取り組んでいる場合は必須です。OOPそれに入る前に-そうでなければ、それは難しいプロセスかもしれません:-)
最後に大事なことを言い忘れましたが、スタック、キュー、ヒープなどのさまざまなデータ型を研究することをお勧めします。これらは、新しい言語についてプログラミングや読んでいるときに理解するのに非常に役立ちます。
幸運を、我が友よ!
文句を言わないでください。もしそうなら、自信がつきすぎて時間を無駄にするだけです。私には彼の息子を信じない父親がいます。以前は怒っていましたが、今はそうではありません。それが彼の高い期待のせいではないのなら、今日はおそらく乞食になるでしょう。プログラミングの学習を本当に楽しんでいる場合(そうでない場合)、学習を続け、自分にプレッシャーをかけないでください。プログラマにとって、最初のプログラミング言語は本当に最も難しい部分です。一度習得すれば、他のプログラミング言語も簡単に習得できます。
問題はありません。最初にC++を読んでください。あなたがこれを読んだとき、あなたは新しいもののためにあなたの心を育てることに興味を見つけたからです。
あなたはあなたが5冊の本を持っていると言います、彼らはお互いに違いはありません。
C++とJavaは基本的な本なので、最初に読んでください。
web開発用のphp本とAndroidモバイル用のモバイルアプリ開発用のAndroid本(C++とJavaの十分な知識が必要で、8か月以上の時間がかかりますこの本を読む必要がある場合)。
ありがとう
第一言語としてのC++?本気?印象的です...そしてあなたのプログラムは素晴らしい問題です...そしてねじ込むことは仕事の一部です-あなたは基本的なプログラムをスクラッチし(目の前の問題に向けて)、その後私たちはそれを完璧にし始めます(例外処理、リファクタリング)など)。
より大きなシステムがある場合でも、ソリューションが正しいことを確認し、アルゴリズムをより大きなシステムに適用するために、小さな小さなプロジェクトが必要になる場合があります。
注目に値するいくつかの大学からのいくつかの記録されたコンピュータサイエンスコースがあります。それらはプログラミングではなく、コンピュータサイエンスを学ぶのに役立ちますが、それらはまだ見る価値があります。 MIT、プリンストン、スタンフォードなど。
私はスタンフォードから1つとMIT=から1つを見て、どちらも本当に良かった。
http://see.stanford.edu/see/lecturelist.aspx?coll=2d712634-2bf1-4b55-9a3a-ca9d470755ee http://ocw.mit.edu/courses/electrical-engineering- and-computer-science/6-002-circuits-and-electronics-spring-2007 /
まだ始めたばかりなので、代わりに入門コースを試すこともできます。 http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/
以前のポスターで述べたように、1つの言語のみに集中することをお勧めしますが、Javascriptを選択します。
グラフィックスをオンにしてWebページを作成し、いくつかのjQueryを使用して移動、フェード/トランジションなどを行うのは比較的簡単です。コーダー以外の人には見栄えがよく、C++よりもはるかに簡単です。 JQueryドキュメントの例から始めて、ビットを追加するか、それらを組み合わせることができるかどうかを確認します。
Douglas Crockfordの「JavaScript-良い部分」も参照してください。
任意のWebブラウザーで結果を実行できます。またはPhoneGapを使用して、Android、iPhone、Windows Mobileなどのモバイルアプリに結果を変換できます。
ハードコアサーバープログラミングに参加したい場合は、node.jsを使用してJavascriptでも実行できますが、そのスキルはほとんど他の言語に転送できます。
あなたは本当に楽しんで開発/プログラミングしたいですか?
ここに私が自分の息子に与えるだろういくつかの考えがあります:
そして、あなたが始めてあなたが本当に欲しいものを本当に楽しんだ後、その時までに、あなたはあなたが何ができるかを正確に知っており、すべての夢が真実であり得る:)
YouTubeで これらのビデオ をご覧になることをお勧めします。これらは、スタンフォードコンピュータサイエンスクラス106a-"プログラミング方法論"に関するMehran Sahami教授による講義です。自分のプログラムの作り方を理解できたところで、お父さんが何を言っても印象に残ったら、動画をフォローできると思います。
私は他の人よりも自分を感動させるようにプログラムしています。私はアプリケーション自体よりもコードの設計に多くの注意を払っています。つまり、私が作ったものを他の人に見せようとすると、彼らはあまり感動しません。私は3年間プログラミングをしてきましたが、今でも同じです。
たとえば、私のプログラムの1つは、外側では、0から100までカウントするもののように見えます。しかし、それだけではありません。コードはとても美しいものです。基本的には、私がrunloopと呼んでいるものでしたが、他にもいくつかの用語があります。たとえば、関数を10秒で実行するようにスケジュールし、10秒後にその関数を実行します。また、10秒ごとに関数を実行することもできます。これが私にアイデアを導きました。値を割り当てると、その値にスムーズに移行するクラスを作成できます。アニメーション、基本的に。自動的に。プログラマーの介入なし。そしてそれがプログラムでした。 main()関数の行数は、おそらく6行程度でした。他のすべてのコードには他にも多くの用途があり、その1つのプログラムの一部とは言えません。そして、それは私にとって美しいものでした。私はQAをしている私の父の友人にそれを見せました、そして彼はそれについてあまり興奮していなかったようです。
基本的に私が言っていることは、あなたは他の人の意見があなたを落胆させてはいけないということです。彼らはそのすべての力と美しさを理解していないだけかもしれません。あなた自身の楽しみのためのプログラムを作成してください。そうすれば、あなたは幸せになり、もっと学びたいと思うでしょう。そして、見返りとして、あなたが作る次のプログラムは、多くの人々に感銘を与えるかもしれません。
編集:プログラマーになったことをお祝いします。多くの人にとって、アプリケーションの使用からアプリケーションの作成への移行は非常に困難です。あなたはその移行を成功させたようですが、あなたは自分を誇りに思うべきです。あなたの父親の考え方を持つその人々は決してプログラミングすることができません。プログラミングは、コンピュータにこれを実行するように指示するだけではありません。
JavaまたはC++)で考える方法を本当に学びたい場合は、無料バージョンの Thinking in Java および Thinking in C++ をダウンロードしてください。 Bruce Eckel著の本(2巻)。言語を教えるだけでなく、オブジェクト指向の概念を「理解する」のに最適です。Eckelは、物事を説明する優れた方法と豊富なコード例を提供しています。Bruceの本は本当に考えることを教えてくれます;彼らはあなたが一週間で忘れる言語の詳細を教えるだけではありません。
正直なところ、Ruby and Why's Poignant Guide and Shoes and the other stuff)を使用すると、もっと楽しくなると思います。上記の@ back2dosをお勧めしますRubyは学習がはるかに簡単であると同時に、非常に実用的な言語です。
私はあなたのお父さんと一緒に10分あれば、彼はこのことについて何かを学びたいと思う十分なイニシアチブを持つ子供を持っていることを誇りに思うべきだと彼に言うべきだったと思います!私は彼を真っ直ぐに見て、あなたにいくつかの深刻な信用を与えるように彼に言います!