完全な初心者から開発者への論理的なジャンプをしますか?


12

私はここ数年、非常に軽くプログラミングを行ってきましたが、あまり進歩していません。それは間違いなく私の興味を引くものですが、私はやる気を起こしていないだけです。それから、私は何が私を殺しているのかを理解したと思います。私が読んだすべての本、私が見たすべてのスクリーンキャストは、1つの重要なことを見逃したようです。

印刷ステートメント、変数などからより複雑なものにするにはどうすればよいですか?

たとえば、Posterousのようなサイトを見てみましょう。知らない人のために、それは電子メールでブログ投稿を受け入れるブログプラットフォームです。ブログの作成者には、ブログの投稿を送信する特別な@ posterous.comメールがあり、自動的にフォーマットされて投稿されます。

開発者は、バックエンドでこのようなことを達成するために、関数とステートメントのツールボックスをどのように使用しますか?

この質問が本当に広範であるように思える場合、申し訳ありません。私は基本的な概念を十分に把握しているように感じますが、実際に何かをする方法がわかりません


電子メールを解析し、エンコードを保持し、テキストをデータベースに挿入します。次に、すべての投稿を選択して、特定のページに表示するという簡単な作業を行います。あなた自身のプログラミング能力の欠如を説明するために、あなたはそれをもっとすることからそれを改善することができます。
ラムハウンド

これまでのところ、多くの驚くべき答えがあります。すべてが少し明確になりました。みんな、ありがとう!
ブレアベックウィズ

回答:


12

重要なのは、タスクを、実行方法がわかっている(または実行方法がわかる)個別のステップに分割することです。あなたがする方法を知っていることはあなたの経験レベルに基づいています。

あなたのPosterousメールの例を見てみましょう:

要件:@ posterous.comのメールを受け入れ、フォーマットし、ウェブサイトに投稿します。

タスク1)メールを受け入れます。

ほとんどの場合、メールはメールサーバーから取得する必要があります。特定のメールサーバーからメールを取得するには、API呼び出しを調査する必要があります。また、電子メールの本文(おそらく別のAPI呼び出し)からコンテンツを抽出する方法を理解する必要があります。

タスク2)メールをフォーマットします。

タスク1から、おそらくどこかにメモリにコンテンツが保存されています。手順3に準拠するようにフォーマットします...

タスク3)ブログにコンテンツを投稿します。

このemail2blog機能を追加する場合、おそらくブログ投稿を投稿するためのメカニズムをすでに持っているでしょう。そのメカニズムを使用し、Webサイトのテキストエリアからの入力を受け入れる代わりに、ステップ2のコンテンツに置き換えます。

では、各ステートメントを実行するifステートメントと関数を、printステートメントからどのように取得しますか。

タスク1でAPI呼び出しを2回言及したことに注目してください。API呼び出しは、本質的に他の誰かが作成した関数なので、その機能を使用できます。関数の呼び出し方法がわかっている場合は、メールサーバーからメールを取得するために必要な正しいAPI呼び出しを調べることができます。

書式設定についてはあまり議論しませんでしたが、文字列操作の方法を知っていれば、書式設定の方法を知っています。HTMLページのフォーマットは、<b>bolded text</b>文字列内などのタグをどこかに追加する際の練習です。

タスク3では、ブログを投稿するための何らかのメカニズムがあると述べました。これが既存のブログプラットフォームである場合は、これに十分な知識があるでしょう。しかし、そうでない場合は、HTTP Postやその他のWebフレームワーク関連のものについて学ぶ必要があります。

これをすべて読んだ後でも、私が話していることについて何の手がかりもない場合は、経験に代わるものがないことを確信したことを願っています。だからそこに行って何かを構築してください!すべての開発者はかつてnoobだったので、noobを間違えることをあまり心配しないでください。


5

主なことは、やりたいことを見つけてそれやることです。

それが、ほとんどの優れた企業の始まりです。

  • グーグル?BrinとPageはWebのインデックス作成に熱心でした。

  • メタフィルター?Matt Haugheyは執筆と共有に熱心でした。

  • ツイッター?ドーシーはシンプルさに情熱を傾けており、140文字以上のシンプルさは得られません。

  • スタックオーバーフロー?ジョエルとクルーは答えに情熱を傾けていました。

PHP、Perl、Python、Rubyなどの言語はすべて同じ方法で設計されました。GNU / Linuxもそうでした。誰かが傷を負い、その傷をかゆみ始めた後、一般消費向けにツールをリリースしました。

だから、周りを見て、あなたのかゆみがどこにあるかを判断し、そのかゆみを掻くためのプログラムを書き始めてください。ゲームをしたいので、ゲームを書くことができます。おそらく、mp3コレクションのID3タグに問題があり、それを修正する必要があります。または、家族の歴史に興味があり、ウェブをクロールして、歴史の人々や場所への参照を探したいと思うかもしれません。または、何らかの方法で現実の世界とやり取りしたい場合があります。または、FLOSソフトウェアを開発したい場合は、GitHub、Gitorious、Sourceforgeをご覧ください。

興味のあるものを見つけてプログラミングを開始すると、すぐに巨大なプログラムが実現します。そして、それがなんらかの計画を立てるのが良い考えである理由です;)


2

ゆっくりと徐々に。

通常、大規模なプロジェクトの場合、コードを書くだけでは始められません。どこかに誰かが計画を立てなければなりません。彼らは何か、彼らが望むシステムの機能を書き留めます。次に、最初のページ/ウィンドウ/何でも開始します。その後、彼らは別のものを追加します。その間ずっとゆっくりと機能を追加し、バグを修正します。それは存在するだけではなく、全体像、全体像が必要です。

良くするには、練習が必要です!小さなプロジェクトから始めます。シンプルで、それもあなたの興味を引くものです。あなたがそれを行う前に、何をやっている計画、あなたはそれが「実際にそれは難しいことではありませんわかりません何かを」。


1

スクリーンキャストを見たり、本を読んだり、チュートリアルを好きなだけフォローしたりすることができますが、どこへ行っても気分が悪くなることはありません。作成に興味のあるものを見つけ出す必要があります。次に、それを分解して作成してみてください。あなたはあなたが知らないかもしれない多くのことに出くわします。しかし、あなたはそれらを研究し、あなたが行くにつれてより複雑なタスクを学びます。


1

私もこの課題に直面し、全体として解決策を見つけました。生産性を高めるために外部ソースが必要でした。

誰もがテクノロジーに魅了され、プログラミングが誰と同じくらい興奮し、誰もが知的かつ迅速に学ぶことができます。それは、手を汚して何かをしなければ意味がありません。しかし、どこから始めるべきかを知るのは難しい場合があり、どこから始めるべきかを考えていても、ボールを転がすのは難しい場合があります。

あなたが優れた自発的であれば、おそらくいくつかのアイデアが必要です。プログラミングパズルを試してみるか、定期的に使用する簡単なユーティリティを見て、「これを作ってもいいですか。もし作ったら、何を変えますか」と自問してください。

開いているエディターまたは空白の紙の前に座って「わかりました、頭脳、作成してください!」と言うのは本当に大変です。そこから自分自身を運転すると、あなたはさらに遠くに行くことができます。

また、自分でコードを作成できない場合は、期限と要件などを含めて、誰かに仕事を任せてください。それはあなたをギアに蹴り込みます。


1

あなたが基本的な知識を持っているという事実は良いです-私はプロではありませんが、私は自分が作ったものを売ることができるので、私は正しいことをしなければなりません。あなたの言語についての基礎と、あなたが開発しているプラ​​ットフォームを学ぶことをお勧めします(そしてあなたが持っているように見えます)。

最初にあなたがやろうとしていることを計画し、それをどのようにやろうとしているのか、それはあなたがより速く物事を理解するのに役立つので、すべてを特定のものに煮詰めることについてのアイデアを得ます。スタックしている場合は、使用している言語で何をしようとしているのかをGoogleで検索してください-Stack Overflowで質問をしてください(私自身は70以上の質問をすでに聞いています)!

個人的にはグーグルで学んで、最初は基本的なことすら覚えていませんでしたが、それをやるべきでしたが、すでにかなり良いものを作っている頃には、「配列」が何であるかまだわかりませんでした。;)


0

インターフェースのバックエンドでスキルを開発するには、データの操作を開始する必要があります。大規模なプロジェクトのほとんどは、データの移動、変換、表示に関するものです。

私は、いくつかの異なる種類のデータアクセスとファイル操作に慣れるまで、より大きなプロジェクトを十分に把握できなかったことを自分で知っています。


0

頭上にある何かに飛び込んで理解することは、スキルを伸ばすための素晴らしい方法です。O'Reilly Cookbookシリーズのいくつかを見てみてください:

http://oreilly.com/store/series/cookbooks.html

それはあなたがなり、コードの「レシピ」を探している正確に何であるかもしれないような問題/ソリューション/ディスカッション形式のサウンドDO何か面白いし、それがどのように機能するかについていくつかの議論を。


1
あなたが購入することを決定した場合最初のクーポンコードを見つけるために、必ず:retailmenot.com/view/oreilly.com
DKnight

0

私はあなたが自分自身にもっと挑戦することに失敗していると思う。

あなたが本当に何かをする方法に興味があるなら、それを研究してください!Posterousの仕組みを知りたい場合は、必要なツールの種類、テキストボックスからWebサイトに情報を取得する方法など、小さなことから始めてみてください。その後、徐々にその上に構築します。次の質問は、Webサイトとデータベースへの電子メール接続のセットアップです。

インターネットには、これまでにない最高のツールがあります。


0

プロジェクトをタスクに分解することとは別に、重要なのはコードの再利用を学ぶことです。同じことをする必要がある他のプロジェクトで再利用できるモジュールにコードを分割します。

たとえば、このサンプルプロジェクトでは、ブログの投稿を保存するためのデータベース作業を行う可能性があります。データベースへの接続、クエリの実行、結果の取得などのためのデータベースクラスを作成できます。その後、今後のすべてのプロジェクトで同じクラスを使用して、データベースを簡単に操作できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.