プログラマー101:コーディングの方法を自分で教えてください


自分でソフトウェアを構築する方法、またはたまにスクリプトを盛り上げる方法を学びたいと思っていましたが、どこから始めればよいかはわかりませんでした。幸いなことに、このWebには無料のリソースがたくさんあり、すぐにプログラマーに変えることができます。

インターネットの発明以来、プログラマーはそれを使用して、ソフトウェア開発手法について議論し、チュートリアルを公開し、他の人がオンラインで学習して使用するコードサンプルを共有しています。プログラマーになる方法に興味がある場合は、たくさんの無料のWebベースのチュートリアルとリソースを使用して、ランニングスタートに参加できます。

最初に最初に:言語を選ぶのに夢中にならないでください

初心者にとって一般的な落とし穴は、最初に学ぶのに最適なプログラミング言語を把握することに立ち往生することです。そこには多くの意見がありますが、「最高の」言語は誰もいません。ここにあります。最終的には、言語はそれほど重要ではありません。データと制御構造と設計パターンを理解することは非常に重要です。すべての言語は、シンプルなスクリプト言語であっても、他の言語でも使用する要素を持ち、学習に役立ちます。クラスでは、コンピューターサイエンスの学位を取得し、Pascal、Assembly、Con Languagesでプログラムしました。私は自分のキャリアで使用したすべての言語を学び、すでに知っていた概念を再利用し、その構文を学ぶためにドキュメントと本を参照しました。ですから、最初に学ぶ言語に夢中にならないでください。あなたがしたい開発の種類を選んで、機能するものを使って始めましょう。

Webからデスクトップ、スマートフォン、コマンドラインまで、さまざまなプラットフォームでできるさまざまな種類のソフトウェア開発があります。この記事では、主要なプラットフォームごとにプログラムする方法を自分自身に教えるためのお気に入りのスターターチュートリアルとリソースのいくつかの概要を説明します。私たちはあなたが精通したユーザーであると仮定しますが、それはコードスニペットを争うことに関してはNEWBなので、私たちは物事を初心者レベルに保ちます。初心者向けプログラミングチュートリアルをフォローしても、どこまで手に入れることができるかを喜んで見ることができます。

デスクトップスクリプト

WindowsまたはMacのデスクトップのプログラミングで手を試す最も簡単な方法は、スクリプトまたはマクロプログラムから始めることです。AutoHotkey(Windows用)または自動車(Macの場合)。現在、Lifehackerの読者の中で筋金入りのコーダーがモニターに向かって叫んでおり、AHKやApplescriptは「本当の」プログラミングではないと述べています。それは真実かもしれません - 技術的には、これらのタイプのツールは高レベルのスクリプトを行うだけです。しかし、自分の足を濡らしたいと思っているプログラミングの新しい人にとっては、デスクトップでアクションを自動化するために、これらの無料ツールは素晴らしい方法です。

たとえば、Adamは私たち全員が知っている、愛しているスタンドアロンのWindowsアプリケーションを開発しました。テキスト、Autohotkeyを使用するため、このスクリプト言語は、単なる小規模自動化プロジェクト以上のものができます。 Autohotkeyを始めるには、Adamのチュートリアルをご覧くださいAutoHotkeyを使用してアクションをキーボードショートカットに変える方法。 (次に、チェックしてくださいTexterのソースコード本格的なAHKベースのWindowsアプリケーションの内部を見る。)

Web開発

特定のプログラミング言語と特定のオペレーティングシステムのルックアンドフィールにバインドされる代わりに、キラーアプリケーションをブラウザに入れて、WebAppとしてクラウドで実行できます。 Web開発の素晴らしい世界へようこそ。

HTMLとCSS:Webサイトを構築するために最初に知っておく必要があるのは、HTML(Webページを構成するページマークアップ)とCSS(そのマークアップをきれいに見えるスタイル情報)です。 HTMLとCSSは、真のプログラミング言語ではなく、ページ構造とスタイル情報のみです。ただし、WebページはすべてのWebAppのフロントエンドであるため、Webアプリケーションの構築を開始する前に、Simple HTMLとCSSを手作業で作成できるはずです。これHTMLチュートリアル開始するのに適した場所です。

JavaScript:HTMLとCSSを使用して静的Webページをレイアウトできるようになったので、JavaScriptを学ぶ時が来たので、物事は楽しくなります。 JavaScriptはWebブラウザのプログラミング言語であり、動的な内部効果をもたらすマジックです。 JavaScriptもブックマークレットのものでもあります。Greasemonkeyユーザースクリプト、およびajax、それがあらゆる種類のウェブグッズを作るための鍵です。ここでJavaScriptの学習を開始します

サーバー側のスクリプト:Webページ内で物事を実現するのが得意になりたら、その背後に動的なサーバーアクションを置く必要があります。そのためには、PHPなどのサーバー側のスクリプト言語に移動する必要があります。 Python、Perl、またはRuby。たとえば、ユーザーが入力したものに基づいてどこかにメールを送信するWebベースの連絡先フォームを作成するには、サーバー側のスクリプトが必要です。 PHPのようなスクリプト言語は、Webサーバーのデータベースにも通信できます。そのため、ユーザーがログインして情報を保存できるサイトを作成したい場合は、それが進むべき方法です。優れたWeb開発サイトwebmonkeyさまざまなWebプログラミング言語のチュートリアルがたくさんあります。彼らを見てください初心者向けのPHPチュートリアル。準備ができたら、PHPを使用してデータベースに相談する方法を確認してくださいWebMonkeyのPHPおよびMySQLチュートリアル。 PHPのオンラインドキュメントと関数リファレンスは、Webで最高です。各エントリ(このエントリのようにstrlen関数)ドキュメント自体と同じくらい役立つことが多いユーザーコメントを下部に含めます。 (私はたまたまPHPに部分的ですが、代わりに一緒に行くことにするかもしれないサーバー側のスクリプト言語がたくさんあります。)

Webフレームワーク:長年にわたり、Web開発者は同じ問題を解決して解決し、同様のコードを書き直して動的なWebサイトを構築する必要がありました。すべての新しいWeb開発プロジェクトのすべてのホイールを再発明させるために、一部のプログラマーは、あなたのためにいくつかの繰り返しの仕事をする開発フレームワークを思いつきました。人気Ruby on Railsたとえば、フレームワークはRubyプログラミング言語を採用し、一般的なWebアプリケーションタスクを実行するためのWeb固有の構造を提供します。実際、アダムはレールを使用して、彼の最初の深刻な(そして印象的な!)ウェブアプリケーションを構築しました。mixtape.me。これがそうです経験なしでゼロからウェブサイトを構築する方法についての彼の考え。その他の人気のあるWeb開発フレームワークには含まれますcakephp(PHPプログラマー向け)、Django(Pythonプログラマー向け)、およびjquery(JavaScript用)。

Web API:anAPI(アプリケーションプログラミングインターフェイス)さまざまなソフトウェアが互いに通信するためのプログラム的な方法です。たとえば、Webサイトにダイナミックマップを配置する場合は、独自のカスタムマップを作成する代わりにGoogleマップを使用する必要があります。GoogleマップAPIJavaScriptのページにプログラムでマップを簡単に含めることができます。あなたが知っているほぼすべての最新のWebサービスには、Twitter、Facebook、Googleドキュメント、Googleマップなど、アプリケーションにデータとウィジェットを含めることができるAPIがあります。 APIを介して他のWebAppsをWebアプリケーションに統合することは、リッチWeb開発の最終的なフロンティアです。すべての優れたメジャーWebサービスAPIは、徹底的なドキュメントと何らかのクイックスタートガイドを試してみるためのクイックスタートガイドを提供します(ここにありますTwitterの、 例えば)。夢中になります。

コマンドラインスクリプト

テキストまたはファイル入力を取得し、何か有用なものを出力するプログラムを書きたい場合、コマンドラインはそれを行うのに適した場所です。コマンドラインは、WebAppやデスクトップアプリほどセクシーで見栄えが良くありませんが、プロセスを自動化するクイックスクリプトを迅速に開発するために、それを打ち負かすことはできません。

LinuxベースのWebサーバーで動作するいくつかのスクリプト言語も、Perl、Python、PHPなどのコマンドラインで動作します。そのため、これらの悪役の1つを学習すると、2つのコンテキストで精通します。私の道は私をPerl Roadを遠くに連れて行ったことはありませんでしたが、私は優れた無料のオンラインブックを使用してPythonを学びました。Pythonに飛び込みます

Unix Ninjaになることがプログラマーの目標の1つである場合、Bashでシェルスクリプトで絶対に上手くなければなりません。 Bashは、A *nix環境のコマンドラインスクリプト言語であり、データベースとファイルの自動バックアップのセットアップからユーザーインタラクションを使用した本格的なアプリケーションの構築まで、すべてを実行できます。バッシュスクリプトを12行を超えて書いた経験がなく、私はBashの完全な個人ToDoリストマネージャーを開発することになりました。todo.txt cli

アドオン

現在、最新のWebAppsとブラウザは、それらにボルトを固定して機能を追加するソフトウェアを備えた拡張可能です。アドオン開発は、FirefoxやWordPressなどの既存のソフトウェアを見て、「しかし、これができるなら...」と考えているため、アドオン開発が人気を博しています。

HTML、JavaScript、およびCSSの習得だけで、あらゆるWebブラウザで多くのことができます。ブックマークレット、Greasemonkeyユーザースクリプト、およびスタイリッシュユーザースタイルは、通常のWebページを作成するのと同じコードで作成されるため、コードの小さなスニペットで既存のサイトを微調整したい場合でも、学習する価値があります。

Firefox拡張機能のような、より高度なブラウザアドオンでは、もっとやりましょう。たとえば、Firefox拡張機能を開発するには、JavaScriptとXML(HTMLに似ているマークアップが、形式がより厳格です)に精通している必要があります。 2007年に私は逃げましたFirefox拡張機能を構築する方法、無料のチュートリアルに出くわした後、私が拾ったスキル。

WordPressやMediaWikiなど、多くの無料で愛されているWebアプリケーションも拡張フレームワークを提供しています。これらのアプリはどちらもPHPで書かれているため、PHPの快適さは開始の前提条件です。これがそうですWordPress用のプラグインの書き方。 Google Waveの最先端に乗りたいと思う開発者は、HTML、JavaScript、Java、およびPythonでガジェットとボットを書き始めることができます。私はこれに続いて私の最初の波のボットを書きましたある午後のクイックスタートチュートリアル

デスクトップのWeb開発

1つのコンテキストでプログラミングを開始することの最大の部分は、それらのスキルを取り入れて他の場所に適用できるときです。 Web開発の学習最初は、デスクトップアプリケーションで作業するスキルを置く方法があるため、開始するのに最適な方法です。例えば、Adobe Airクロスプラットフォームのランタイム環境であり、アプリを1回ビルドしてリリースして、エアが実行されるすべてのオペレーティングシステムのデスクトップで実行されます。 AIRアプリはHTML、Flash、またはFlexで記述されるため、デスクトップコンテキストでWeb開発スキルを適用できます。 AIRは、デスクトップアプリを展開するのに最適なオプションです。Adobe Airのインストールに値するトップ10のアプリ

モバイルアプリ開発

iPhoneやAndroidスマートフォンで実行しているようなモバイルアプリケーションは、今すぐ怒りであるため、次のキラーアプリでiTunes App Storeで豊富に衝突することを夢見ているかもしれません。ただし、新しいコーダーの場合、モバイル開発に向かって最初に飛び込み、JavaやObjective Cなどの高度なプログラミング言語で快適にする必要があるため、大まかな学習曲線になる可能性があります。ただし、iPhoneやAndroid開発の見た目をチェックする価値があります。チェックアウトこのシンプルなiPhoneアプリケーション開発の例iPhone開発者がしていることを味わうために。 AndroidアプリはJavaで記述されています「hello android」アプリケーションのワークフローの構築がどのように見えるかのフレンドリーなビデオチュートリアル

忍耐、肘のグリース、試行錯誤

優れたコーダーは、試行錯誤の長い道のりに沿って来る小さな勝利に夢中になっている永続的な問題解決者の特別な品種です。プログラムする方法を学ぶことは非常にやりがいがありますが、イライラして孤独な経験になることもあります。可能であれば、途中で仲間と一緒に仕事をさせてください。他のものと同様に、プログラミングが本当に上手になることは、それに固執し、物事を試してみて、あなたが行くにつれて経験を得ることの問題です。

この記事は、初心者向けの独学のプログラマーの最上位の推奨事項にすぎません。経験豊富なプログラマー:何が恋しいですか?スキルレベルに関係なく、初心者向けの考えや推奨事項をコメントに追加してください。

ジーナ・トラパニ、LifeHackerの設立編集者は、最高のプログラマーが独学であると考えています。彼女の毎週の機能であるSmarterwareは、毎週水曜日にLifeHackerに登場します。 Smarterwareタグフィードを購読して、ニュースリーダーで新しい分割払いを取得します。