プログラミングに夢中になる前に知っておくべきこと





エントリー



このhabratopikは、魔法のようなプログラミングの世界に没頭したいが、どこから始めればよいかわからないすべての人を対象としています。 すでにプログラミングを学ぼうとしているかもしれませんが、絶望的に行き詰まっています。



そのため、約4〜5か月前に、新しい趣味で余暇を少し多様化し、Webプログラミングに密接に取り組むことにしました。 どうしてそのような人生に来たのかは、まったく別の記事のトピックであり、今はそれについて語りません。 それは、私が遭遇した困難についてであり、それに対して私は絶対に準備ができていませんでした。 おそらくこのトピックは、私の間違いを繰り返さずに、準備を改善するのに役立つでしょう。



だから、この不思議な工芸を少なくとも少しマスターしたいという強迫観念に気付いた後、誰もが絶対に論理的な質問をする-「どこから始めればいいのか」? スクリーンキャスト、書籍、コース、オンライントレーニング、フォーラムなど、多くの回答があります。初心者向けのサービスもあります。 教えて、私はしたくない。 そして、プログラミングには自習の一般的に受け入れられたシステムがないので、何日も無差別に何でも見たり読んだりできます。 必要に応じて読書にdrれますが、自信を持って知識の梯子を上に移動するには、時間と労力を明確かつ効率的に費やす必要があり、どこから始めてどこに移動すればよいかわからない場合は、単に密林にさまよいます。最後に、あなたは正しい道に行かないでしょう。 あなたがまったく離れる場合-あなたは単にこの全体をすぐに飽きる大きなチャンスがあります。



私自身もこの方法で行った-ビデオの雲をダウンロードし、さらにいくつかの本を買って読んで投げた。それは、すべての資料が「初心者」向けであったにもかかわらず、知識と準備がまだなかったからだ。 私は常にさまざまな小さなことをグーグルで検索し、フォーラムでヌビアの質問をし、マイナスをつかんで、独学を続けたいという欲求を殺しました。



はい、知識と蓄積された(グーグル?)経験は確かに役立ち、役に立つでしょうが、あなたの目標は、あなたが学びたいことを学び、予見可能な未来に少しの結果を見ることですよね?



私の目に留まったすべての資料は、簡単な紹介の後すぐに急いで駆けつけ、特定のトピックに関する読者のソリューションと例を提供しました。 私はオタクのクラスで絶対的なドッペルゲンガーのように感じました、そして私は常に同じ問題に直面しました-しかし、本の著者は、他の教育資料のように、一見、直接プログラミングのない基礎の基盤を持っていることを示唆しました関係。



たとえば、クレーンオペレーターとして仕事に来た場合、最初の日にタワーに連れて行かれ、「さあ、幸運を!」という言葉で肩をpatでたようなものです。 しかし、安全上の注意事項と、何をすべきで何をすべきでないかについての基本的な説明はどうでしょうか? ツールの使用方法 利用可能なツールは何ですか? 仕事を始める前に知っておくべきことは?



記事は本質的に純粋に推奨事項ですが、半年前にそのようなトピックを見つけた場合、生産性を大幅に向上させ、自分自身のために多くの時間を節約し、私の愚かな質問に答えたフォーラムの多くの人々を節約します。 各項目について、トレーニングを開始するための出発点としていくつかのリンクを追加しました。 テキストは絶対的な初心者を対象としています(そして、私はまだそのように考えています)-私は非常に簡単かつ明確に話します。



それでは、プログラミングに参加する前に知っておくべきことは何ですか?



1.ターミナル



私はあなたに非常に正直になります。 半年前に誰かが私に、この惑星の人々がコマンドラインを使用していると言っていたら、洗練されたグラフィカルインターフェイスと最も先進的なオペレーティングシステムでさえ、私はこの人を直接笑ったでしょう。 しかし、最初のスクリーンキャストを見始めた後、私はもはやそれほど面白くなかった-美しいMac OSの代わりに、90年代に私が前に見たように見える黒い窓が厳しく見えた。 ほんの数日後、私は次第に抑制されずに笑い、スクリーンキャストの男たちがテキストコマンドの助けを借りて巧みにアクションを実行する様子を見ました。 この問題がどのように私の学習プロセスを遅らせたのか、あなたは理解しています。 私は、端末は不要なものであり、次のスクリーンキャストの人がショートカットとマウスを最大限に使用することを確実に繰り返しましたが、奇跡は起こらず、拷問は続きました(Node.jsに興味を持った後)あきらめた。



プログラミングの自習をさらに成功させるには、ターミナルの使用方法を学ぶ必要があります。 プログラミング言語との直接的なやり取りに加えて、ターミナルの使用方法を学習することで、いわばコンピューター言語とファイルシステムデバイス全体をよりよく理解することができます。これは正しい方向への小さな一歩です。 さらに、端末が常時使用されているスクリーンキャストの学習を開始した後、感謝します。



自己学習


すべてのMacユーザーが端末について知っておくべき25のこと

ターミナルプロになる方法 -Tuts +の優れたスクリーンキャストシリーズ



2.正規表現



アルファベット、アルファベット、象形文字を詳しく調べることなく外国語を学ぶことにしたと想像してください。 もちろん可能です。 しかし、これはプロセスと物事の本質を理解する道をどれほど複雑にしますか? 決定は疑わしいですね。 したがって、正規表現(最初の音節に重点を置いたrekseks )は、平易な言語ではある程度プログラマーの補助アルファベット、またはウィクショナリーの言語では「テキスト内の部分文字列を検索および操作するための正式な言語」です。メタキャラクターの使用に基づいて"



正規表現は、たとえば次のようになります。



((?=.*\d)(?=.*[az])(?=.*[AZ]).{8,15})







正規表現の目標は、プログラマーが何かを見つけやすくすることです。 これから説明します。



私のプログラムで、 car (car、carrot、cartoon)という単語が含まれるすべての単語を検索したい場合、正規表現は次のようになります。



/車/



「car」という単語だけが興味がある場合は、次のように書きます。



/ \ bcar \ b /



もっと楽しい。 単語、文字、希望する結果の前後の単語を除外することで検索をフィルタリングできます...正規表現を使用したフィルタリング結果のリストは非常にエキサイティングであり、上記で説明した端末と組み合わせて、このことは信じられないほどクールです。 個々のOOP代表者の構文は異なりますが、それらの多くは正規表現をサポートしており、正規表現を使用する人々の時間を大幅に節約します。



「まあ、検索、誰が必要ですか? 言葉を探すのではなく、プログラミングを学びます!」 私はあなたの声を聞いて理解しました。 したがって、正規表現に煩わされる必要性をまだ疑っている場合は、単に私の言葉を受け入れてください-それらは便利になります。 多くの書籍やスクリーンキャストでは、何が起こっているのかをまったく説明せずに、例で正規表現を使用しています-著者は、これらの基本をすでに所有していると考えており、特に書かれたものを噛むことに集中していません。



それらを詰め込むことはまったく必要ではありませんが、このトピックに関するいくつかのスクリーンキャストを表示しても、明らかにあなたを殺すことはありません。



自己学習


Tuts + Screencasts- 実行中の正規表現



3.開発ソフトウェア-武器を知る



ルールナンバーワン-あなたは最大限にあなたのツールを知り、所有するべきです。 すぐに奇跡を起こし始める、厳選された研究されたエディターで、私は完全に選択されたサムライの剣と簡単に比較できます。 目隠しの兵士は自分のマシンを組み立てたり分解したりします-それはあなたが使用するソフトウェアを手に入れるのにどれほど優れているべきかです! 簡単な機能を一文字ずつ書いている間、敵はエディターの潜在能力を最大限に活用して、いくつか書きます。



Web開発には、単純なテキストエディターから複雑なクラウドソリューションまで、膨大な数のプログラムがあります。 この記事では、これらのエディターを互いに比較することはしません。自分でやらなければなりません。このエディターと一緒に暮らし、悲しみと喜びの両方で彼を見つめているからです。 Sublime Text 2エディターを選択しました。 Sublimeには数多くの機能がありますが、シェアウェアであり、多くの優れたドキュメントがあります。 おそらくすぐに、Sublimeのすべてのトリックを学び、プラグインをSublimeに接続する方法を学ぶと、同様の行が一般的になるでしょう:



div>(header>ul>li*2>a)+footer>p



(興味がある場合はEmmetプラグインが使用されます)



自己学習


フロントエンドのSublimeの準備

Tuts + -Sublime Text 2の最初のステップ



4.バージョン管理システム



「さて、これは他に何ですか?」あなたは尋ねます。 ああ、バージョン管理システムは素晴らしいものです。今日では、それなしでは真面目な開発者はできません。 ウィキペディア次のように述べています 。「バージョン管理システムにより、同じドキュメントの複数のバージョンを保存し、必要に応じて以前のバージョンに戻したり、誰がこれを変更したかを判断できます。」など、多くのバージョン管理システムがあります。私は言います-以下では、共同プロジェクト開発のための最大のサービスであるGitHubのみに焦点を当てます。



合理的な質問:「これまでのところ広めるものがないので、なぜこのGithubをマスターする必要があるのですか?」そして、これにはいくつかの理由があります。 独自のリポジトリのコンテンツに加えて、GitHubは、まず、開発者の巨大なコミュニティの一部として自分自身を認識するのに役立ちます(おそらく、読者の一部は今ニヤリと笑っていますが、これは特にトレーニングの初期段階で本当に重要です!) さらに、他の人のソースコードを見て、ダウンロードしてフォーク(コピー)する方法を学ぶことができます。 将来、GitHubはさまざまなオンラインコースやスクリーンキャストで頻繁に表示されるようになります。もちろん、著者はgithubの使用方法を知っていることを確認するでしょう。 そのため、週に時間があれば、自分でお願いします-Gitを試してください。



自己学習


Tuts + gitの基本

gitを試す



5.歴史と文化



この項目はおそらく補助的なものですが、尊敬するプログラマーがSteve Jobsと呼ばれる場合は、読み続けてください。 プログラミングには豊かで興味深い歴史があります(最初の卒業証書の歴史家として教えます)。少なくとも一般的な教育については、もっと深く掘り下げる必要があります。 何かをするとき、彼の足がどこから成長するかを知ることは常に役に立ちます。 さらに、主題の歴史に関する知識がなければ、その本質を完全に理解することは不可能であり、したがって、その開発において究極の成功を達成することは不可能であると心から信じています。 したがって、しばらくして、Linus TorvaldsやGrace Hopperのような名前が空のフレーズにならない場合は、敬意と敬意を払ってください。



覚えておいてください-歴史を学んでいない人はその間違いを繰り返します。



おわりに



このテキストがあなたを怖がらせず、むしろ正しい方向に向けることを願っています。そうしないと、生徒の進路で常に発生する困難を回避するのに役立つでしょう。 フィードバックやコメント、または自己学習の初心者を支援する追加リソースへのリンクを喜んで受け取ります。



あきらめないで!



All Articles