良いプログラマーになるには
更新:外出先で学べる素晴らしいプログラミング ポッドキャストのリストを追加しました。
今、かつてないほど、技術はすべての産業における革新のための最も基本的な部品の1つになっています。 これは、世界中のプログラマと開発者のための巨大な需要をもたらした。
優れたプログラマーになるために、ロケット科学者である必要はありません。
難しいように見えるかもしれませんが、実は思ったより簡単なのです。 でも、これって日頃からやっていることではありませんか?
まず最初に。 セミコロンで頭を悩ませる前に(今はわからないかもしれませんが、信じてください。 後でわかるようになりますよ😂)、コンピュータサイエンスの基礎の資料と良いテキストエディターが必要です。
Teach Yourself Computer Science
このウェブサイトは、コンピュータサイエンスとプログラミングについて学ぶためのかなり良い出発点を与えてくれます。
Git
Git はバージョン管理システムで、コードのバージョンを管理するものです。 これは、何かを変更したときに、新しいバージョンで何か問題が発生した場合に、別のバージョンに戻ることを可能にします。 このウェブサイトは、git の学習を始めるのによい場所です。
Github
これは非常に重要なリソースです。 ほとんどすべてのプログラミング会社が、何らかのバージョン管理システムの経験を求めています。 GitHub は、git を使用したバージョン管理のためのウェブベースのホスティングサービスです。 主にコンピュータのコードに利用されています。 Gitの分散バージョン管理、ソースコード管理機能をすべて提供し、独自の機能も追加しています。 また、他のプログラマーとの共同作業も可能です。 また、個人的なプロジェクトのファイルを保存するための静的なHTMLホスティングとしても使用することができます。
Bitbucket
Bitbucket は Github と同じですが、ソーシャル・プラットフォームを除いたものです。 また、この2つの大きな違いは、Bitbucket ではプライベートリポジトリを作成することができますが、Github ではこの機能を利用するためにお金を支払わなければならない点です。 また、静的なHTMLホスティングとして、個人プロジェクトのファイルを保存することもできます。 実際にBitbucketからウェブサイトを提供することもできます。
コマンドを学ぶ
コマンドラインは、ほとんどのマジックが起こる場所です。 ですから、コマンドラインのスキルを身につけることは本当に重要です。
テキストエディタ:
古き良きSublime。 私の意見では、このエディタは最高のものの 1 つです。 多くのプラグインとコードスニペットを備えています。 また、パフォーマンスや生産性の面でも本当に信頼できるエディタです。 今でも使っていますが、新しいことを試すのが好きなので、最近Visual Studio Codeに乗り換えました。 サポートされているのは Windows、Mac OS、Linux
Visual Studio Code
Visual Studio CodeはMicrosoftによって開発され、かなり新しいにもかかわらず、2017年の上位テキストエディタに名を連ねるようになった。 そのため、私はSublime textから乗り換えることになりましたが、かなり素晴らしいテキストエディタだと言わざるを得ません。 今のところ、後悔はしていない。 サポートされているのは Windows、Mac OS、Linux
Atom
Githubによるこのテキストエディタは、私が好んで選んだものです。 本当に豪華で、セットアップもとても簡単です。 Sublime に戻した唯一の理由は、時々かなり遅くなることがあるという事実と、minified ファイルを開くとクラッシュすることがあったという事実です。 しかし、全体的にはまともなテキストエディタです。 サポートされている環境 Windows、Mac OS、Linux
Notepad++
Notepad++ は、まともなプログラムを書くために必要な機能を備えた、基本的なテキストエディタです。 そのシンプルさからこちらを好む人もいます。 個人的には、VS code や Sublime のような大胆なテキスト エディタの方が生産的だと思います。 対応機種 Windows
VIM
Hacker, this one’s for you. このテキストエディタは、より技術的で、より多くの設定を必要とします。 Mac OSやほとんどのUNIXベースのシステムでデフォルトで搭載されています。 サポートされているのは Mac OS、Linux、そして最近では Windows
Remember: いつでもお好みのテキスト エディタを使用することができます。 これらは、トレンドと私の経験に基づいた最高のものです。
このように述べた上で、プログラミング スキルの向上に役立つ学習リソースをいくつか紹介します。 これは、私が Web 開発のキャリアを開始するために使用した最初のリソースの 1 つです。 そして、私は本当にそれが好きでした。
Code Academy
Code Academyは、実際に開始するのに最適なリソースの1つです。 そのため、このような弊害が発生することはありません。
Ruby Monk
Ruby MonkはRubyを学ぶのに非常に良いスターターチュートリアルです。
CodeWars
Code Warsは、コーディングを学ぶのにとてもクールな方法です。
Railsforzombies.org
このサイトもプログラミングを学ぶのに最適な方法ですが、このサイトを試す前にRubyの基礎知識を持っていることをお勧めします。
CodeSchool
CodeSchool は、自分の興味に基づいてどのプログラミング課程に進むかを決定できる学習経路を備えた、豊富な種類のコースを提供しています。 このような、「痒いところに手が届く」ようなサービスを提供することが、私たちの使命だと思っています。
Udacity
私は数回しか使ったことがありませんが、Udacityについてたくさん読み、とても素晴らしいものだと思いました。 初心者のための無料コースと、「Nanodegrees」と呼ばれるものを提供しています。 Nanodegreesは、基本的に特定のトピックに関する初級から上級までのコースの精選されたリストであり、かなり有望であるように見える。 例えば、フルスタックウェブデベロッパーのNanodegreeは、フロントエンドのウェブ開発からバックエンドのウェブ開発まで、すべてをカバーしています。 これらのNanodegreesは、Google、Amazon、IBMなどの大企業と共同で作成されていることを指摘しておかなければならない。
Udemy
このコースについては、ほとんど忘れていました。 Udemyは、おそらく最も人気のある学習プラットフォームの1つです。 15,000以上のコースがあり、通常、かなり安いです。 このリソースは、急いでいて、特定のスキルを早く習得する必要がある場合にかなり適しています。 私は大学時代、この教材をよく利用しました(現在80以上のコースがあります)。 正直言って、ひとつひとつは終わっていませんが😂.
Devslopes
Devslopes は Kickstarter キャンペーンとして始まり、すぐに好きになりました。 また、このコースは、自分のポートフォリオに使用するプロジェクトと、様々な質の高いプログラミングコースを提供しています。 そのため、私は、このプロジェクトに貢献し、その代わりに、彼らがリリースするすべてのコースとバージョンに無料で生涯アクセスする機会を得ました。 今なら、Devslopes 2.0をリリースしようとしているところなので、この特典を手に入れることができるかもしれませんし、プロモーションも行われていました。 まだ利用可能かどうかは分かりませんが。 でも、これは私が手に入れた中で最もお得なものの1つです。
Treehouse
正直なところ、以前はこれを考慮したことはありませんでしたが、Tomáš Vorelに勧められ、Facebook& Youtube広告に数週間表示された後、私はこれを試してみることにしました。 この学習教材はとてもよくまとまっていて、教え方もとても気に入っています。 これは、新しいスキルを学ぶための最も伝統的で、時には最も効果的な方法です。
私が役に立つと思った本のリストです:
この本は少し「退屈」かもしれませんが、コンピュータサイエンスとアルゴリズムの基本をカバーしています。
Cracking the Coding Interview
この本は、就職の面接で聞かれるかもしれないプログラミングの質問について、一般的な概要を説明しています。
The Innovators: この本は、イノベーションとテクノロジーの歴史について書かれています。
Learn Python the Hard Way
この本は基本的にワークブックである。 実践しながら学ぶのです。 日常的に練習できるような課題を与えてくれます。
ソフトスキル:
The software developer’s life manualは、プロのソフトウェア開発者としてより満足のいく人生を送るためのテクニックと実践を提供する、ユニークなガイドです。 その中で著者は、キャリアや生産性から、個人の財務や投資、さらにはフィットネスや人間関係まで、重要な「ソフト」トピックを幅広く取り上げ、すべて開発者中心の視点から述べています。 ほとんどの人は、この部分は無駄だと考えてスキップしますが、実はとても役に立ちます。 他の開発者と1、2時間話すだけで、どれだけのことが学べるか、きっと驚かれることでしょう。 例えば、私が初めて参加したミートアップでは、Advanced Custom Fields(世界的に評価の高いWordpressの開発者向けプラグイン)の開発者の一人に会う機会があり、私は実際にこのプラグインをよく使っています。 また、Wordcamp Miami 2018 WordPress Conferenceのスタッフにもなることができました。
以上、私がミートアップやカンファレンスに使っているプラットフォームをいくつか紹介します。
Meetup
このアプリは、近くのコーディング会議を探すことができます。
Co-working spaces
「コワーキングスペース <YourCity> 」を検索すれば、近くのコワーキングスペースを簡単に見つけることができました。 コワーキング スペースでは、他の開発者と知識を共有し、自分のコードベースに対する実際のフィードバックを得ることができます。
プレイグラウンド
プレイグラウンドは、基本的に仮想エディタで、ラップトップまたは PC に負荷をかけることなく、外出先で練習できます。 これにより、時間を節約し、あらゆるプログラミング言語においてより良くなることができます。 これらの仮想プレイグラウンドの最も良いところは、どこからでもアクセスできることです。
Cloud9
この仮想プレイグラウンドは、実際には Linux をベースにしたフル機能の IDE です。 それは、Linux マシンで行うすべてのことをターミナル経由で行うことができ、ライブラリのインストールさえも行えるということです。
Codepen
私はこれをよく使っています。 Codepen はウェブ開発者にとっての聖杯です。 ユーザーが作成した HTML、CSS、JavaScript のコード スニペットをテストし、展示するためのオンライン コミュニティという感じです。 ただし、もう少し「フレンドリー」です。 また、かなり強力です。
Orion
Orion は Java で遊ぶためのオンライン IDE です。
Python Fiddle
Python は過去数年で多くの人気を集めました。 これは、あなたのスキルに Python を追加したい人のためのコーディング環境です (少なくとも基礎は学ぶべきです)。
Codeanywhere
Codeanywhere はクロスプラットフォームなクラウド IDE です。 Web ブラウザやモバイル デバイスから、Web 開発プロジェクトを即座に作成、編集、コラボレーション、実行できます。
Reply.it
これは Vic A. が提案したものですが、かなり有望と言わざるを得ません。 この仮想プログラミングプラットフォームでは、アプリケーションの開発、テスト、デプロイを行うための仮想プレイグラウンドを作成することができます。 また、独自の採点システムを備えた、かなり素晴らしい🔥教育プラットフォーム機能もあります。
Codesandbox.io
この素晴らしいリソースは、第10回マイアミWordcampに参加していたときに思いつきました。 スピーカーの 1 人がライブのコーディング デモに使用し、私はその魅力に取りつかれました。 これは、移動中にアプリケーションのプロトタイプを作成するための、迅速で信頼性の高いクラウドベースのソリューションです。 Ask someone
The beauty of being a developer living in the 2018, is that there’s a lot of people already went through most of the struggles you’re going to have.これは、2018年の開発者であることの美しさは、あなたが抱えている苦労のほとんどを経験した人がたくさんいることです。 あなたがコードの一部で抱えているのと同じ問題を他の誰かが抱えている可能性が高いのです。 プロプライエタリなコードに取り組んでいるのであれば別ですが。 その場合でも、厄介なバグに対処するためのヒントは見つかるはずです。 さて、これはすべて私の経験に基づいています。
ここで、あなたが実存的危機に陥り、隅で泣いてしまうことがないように、苦労を助けるサイトやリソースのリストを紹介します。 (やったことないけど😅🤣):
Stack Overflow
プログラマーのバイブルとも呼ばれる。 Stack overflow は、プログラマが学び、質問し、共有し、さらには仕事を見つけるための最大のオンライン コミュニティの 1 つであり、そうでない場合もあります。
Stack Exchange
Stack Exchange は、シンプルな質問と回答のウェブサイトです。
Quora
私は Quora を Stack Exchange のプロ版のように見ています。 Quoraは、知識を得て共有するための場所です。 それは質問をし、ユニークな洞察力と質の高い答えを提供する人々と接続するためのプラットフォームです。
Github
繰り返しになりますが、Githubは最もよく使われているオンラインコミュニティの1つです。
すでにご存知の方もいらっしゃるでしょう。 しかし、学んだり、質問に答えたりするためのリソースとして使用することを考えたことがありますか? さて、多くのユーザーを抱えるTwitterには、その分野の専門家がそれなりの数いることをお伝えしておきましょう。 質問をツイートして、ハッシュタグ##it
いや、ミームやGIFのためだけではないのです。 また、Redditは、解決策を見つけたり、新しい技術を学ぶための強力なリソースとなります。
Hacker News
このリソースは、技術産業に関する重要なアップデートやニュースの非常にシンプルなフィードです。 本当に便利です。
Producthunt
さて、Producthuntですが、このサイトがどれほど好きか、言葉では言い表せません。 文字通り、毎日のように使っています。 常に新しいツール、アプリ、フレームワーク、ウェブサイト、さらにはガジェットの精選されたリストがリリースされています。 ほとんどが技術関連です。 だから、常に新しいものを試して学ぶことができます。
Podcasts
私は今からほぼ2年前にPodcastを聞き始めましたが、これは私が持っている最高のリソースの1つです。 私はよく運転するので、ポッドキャストを聴くことで外出先でも学習でき、時間を無駄にすることがありません。
Syntaxfm
これは個人的にお気に入りです。 フルスタックデベロッパーの Wes Bos と Scott Tolinski がホストを務める Syntaxfm は、Web 開発者に役立つリソースやヒントがたくさんある「おいしい Web 治療」のポッドキャストです。 React のような JavaScript フレームワークから、CSS の最新の進歩、Web ツールの簡素化までカバーしています。
Shop Talk Show
ShopTalk は、フロントエンド Web デザイン、開発、UX についてのポッドキャストです。
The Web Ahead
最新の Web トレンドを常にアップデートするための非常に優れたリソースです。 変化するテクノロジーやウェブの未来について、世界の専門家と対談します。
Code Pen Radio
CodePen の共同創設者であるクリス・コワイエ、アレックス・バスケス、ティム・サバトがウェブソフトウェアビジネスの裏表について語る。 このポッドキャストは必見です。
Learn to Code with Me
ローレンス・ブラッドフォードが作成したLearn to Code With Meポッドキャストは、技術業界への移行を目指す意欲的な技術者や独学のコーダー向けのものです。
結論
読む、実践する、共有する、尋ねる…繰り返す
これはすべて学習経路です。 ただそれに専念し、多くの忍耐力を持つことです。 誰も、生まれながらにしてその道のエキスパートであるわけではありません。 私もまだまだ学ぶべきことがたくさんあります。 良い開発者になるための最も重要な部分の一つは、実際にコミュニティの一部を形成することであることを忘れないでください。 ですから、自分自身に何か違うことを試す機会を与え、ミートアップに行き、新しい人々に会い、フィードバックを受け、コードを批判し、楽しんでください。