2019年12月15日Go言語(golang)の現役エンジニアにどうやって学習したかを聞きました。習得されたので、Go言語(golang)の独学方法が知りたい人はぜひ本記事をご覧ください。関連記事Go言語(golang)を学べるプログラミングスクールを紹介【挫折した】Go言語(golang)を学べるプログラミングスクールを紹介します。残念ながらGo言語はラインナップされていませんが、PythonやRubyといった人気言語も学べます。サーバーサイドを触るなら必要不可欠なデータベースの知識も学べるので興味がある方はぜひ会員登録してください。並列処理が前提となっているGo言語(golang)を学ぶ以前に必要な知識Go言語(golang)を学ぶだけならば前提知識はプログラミングの基礎知識くらいで、特別な知識は必要ないと思います。Go言語(golang)は日本でも大手で採用事例が増えていますので資料も日本語で豊富にそろっています。英語がわかることに越したことはありませんが、とりあえず開発を進めるうえで英語は前提ではないでしょう。Go言語(golang)は継承がないために、複雑なオブジェクト指向の知識を前提としません。これも初心者がとっつきやすい理由の一つだと思います。いえ、あったほうが良い知識もあるので、Go言語(golang)に直接は関係ないけど、知っておいた方が良い知識が掲載されている書籍も後ほど紹介しますね。スポンサーリンクGo言語(golang)の独学に役立つサイト2選まずはGo言語(golang)の独学役立つサイトを2つ紹介します。Goの日本語訳サイトです。このサイトは対話的にGo言語(golang)の基本文法を学べます。InterfacesおよびConcurrency)が少々わかりにくいかもしれませんが、無理に理解しようとせずにインタラクティブ画面でコードをいじる程度でよいです。練習問題が少々レベルが高いので飛ばして構いません。このサイトを取り組む姿勢は、全てを理解するのではなく、とりあえずGo言語(golang)の概要が学べたらOK!という感じでOKです。次に紹介するサイトは、Gihyo.jpで提供されているJxck様の記事です。このサイトにはサンプルコードがたくさん載っていますので、説明を読みながらサンプルコードを動かし、Go言語(golang)の文法に慣れましょう。この第2章まで完了すればGo言語(golang)の基本フローはほぼ理解できます。上記のサイトで理解できなかったり、物足りなくなってはじめて書籍を購入するのが良いと思います。私がGo言語(golang)の学習に使ったおすすめの書籍を紹介します。2015/07/17Amazon楽天ブックスYahooAmazonの情報を掲載しています初級者向けです。Go言語(golang)を体系的に理解する場合にまず一読すべき本です。技術的な詳細には踏み込まずにまず動かすことにフォーカスしています。サンプルコードがシンプルなのでGo言語の理解がぐんぐん進みます。MacおよびWindowsすべてに対応しているので環境を選ばずに実行できるのも良いです。2016/04/15Amazon楽天ブックスYahooAmazonの情報を掲載しています中級者向けです。基礎からわかるGo言語(golang)よりも技術的な言語仕様が細かく説明されています。Goのパッケージです。6ではGoツールが簡潔にまとまっていますのでプログラミングする際に必要な操作はしっかり頭に入ってきます。Goのパッケージではよく使うパッケージについてまとめてあります。ファイル、正規化表現、json、httpが含まれますので、こちらを読めば実際に使えるアプリケーションが作成できます。2016/09/09Amazon楽天ブックスYahooAmazonの情報を掲載しています中級者向けです。体系を学ぶというよりも、実際の開発ノウハウをまとめた書籍です。個人的には第4章のコマンドラインツールを作るがおすすめです。それほど難しくない記述でコマンドラインができます。ツール作成を通しながら自分のGo言語(golang)に対する知識が広がっていくのが実感できました。全体を通して開発プロジェクトで使えるノウハウ満載です。チーム開発を進める際には必読です。Go言語(golang)の学習のコツGo言語(golang)を学習する際には以下の4つを明確に分けて勉強すべきと考えています。書きつつ覚えていくしかないので、この記事では詳しくは触れません。それ以外について触れていきます。ポインタ・構造体・配列・スライス・マップC言語開発が少なくなった現在ではポインタを利用する機会はほとんどありません。現在人気ある言語であるJavaやPythonなどではポインタを利用することがないかと思います。ポインタを完全に理解しようとすればそれだけで本が一冊書けます。そのためポインタはサンプルコードでとりあえず書き方に慣れるだけでよいでしょう。最初のうちはポインタを利用すると値を簡単に書き換えできるということだけ把握していればよく、必要になった場合のみ勉強をしましょう。それからでも遅くないです。構造体・配列・スライス・マップは他のプログラミング言語でも似た概念があります。使い分けがわかりにくい概念でもあります。こちらも開発を進めるにつれて、使い分けが徐々に理解できますので、最初に無理にすべて暗記する必要はありません。後々重要になってきますのでその覚悟はしておきましょう。関数・メソッド・インタフェースこれらのことはソースコードをきれいに書くために欠かせません。初心者のうちは、自分で無理するよりは、良質なサンプルコードをたくさん読み、そのサンプルをまねしながら自分のコードに導入していくのが良いかと思います。他のプログラミングをしている限りは並列処理について気にする必要はあまりありません。Go言語(golang)自体が他のプログラミング言語と比べると並列処理を利用しやすいために、Go言語=並列処理のイメージがあります。こちらはパフォーマンスの改善やWebアプリの作成などをすれば自然に利用することになるので最初の段階ではあまり気にしなくてよいと思います。Go言語(golang)に直接関係ないけど読むと良い書籍Go言語(golang)に慣れてくると、次のステップとしてはデータベース連携です。Go言語(golang)からデータベースを操作できるようになれば、処理した内容を記録したり、必要に応じて条件を指定して取り出すことができます。データベース本はちまたにたくさん出ていますが、SQLの初歩から知りたいという人には下記がおすすめです。2018/11/30Amazon楽天ブックスYahooAmazonの情報を掲載していますこの本は問題形式でSQLを勉強できます。SQLは本を読むだけ(インプット学習)だけではまず身につきません。アウトプット学習がカギになります。はいってもいきなり複雑なアウトプットができるくらいなら学習本を読むことはないでしょう。その点この本に記載されているSQL問題は基礎と発展に分かれているうえに問題として適切なレベルです。データベース環境もクラウドベースで用意されています(dokoQL)。自分で環境を用意する必要がありません。この本のドリルを終えるころには間違いなくデータベースを使いこなせるようになっているでしょう。2017/06/06Amazon楽天ブックスYahooAmazonの情報を掲載していますGo言語(golang)の言語仕様に踏み込んでいくには基本となるアルゴリズムの理解が欠かせません。はいってもいきなり難しいアルゴリズムに踏み込んでも難しいので上記のような優しい本をおすすめします。この本はわかりにくいアルゴリズムをこれでもかというくらいに図解しています。内容が少々薄いのではないかという話もありますが、この本でアルゴリズムは図解できるということを知っていれば今後どんな難しいアルゴリズムを勉強するときにも図解して学ぶ癖がつくようになります。コーディングだけではなかなか具体的にアルゴリズムの動きが把握できません。この本を読んでアルゴリズムとは難しいものではないということを感じてみてください。2017/03/16Amazon楽天ブックスYahooAmazonの情報を掲載しています最後にWeb技術系書籍です。http関連の処理をするならばWeb技術の知識は必須です。RFCなどを読んだとしても間違いなく挫折します。一冊ということであれば下記がおすすめです。自分が学び始めたときにこの本があれば、ずいぶん効率よく勉強できたのではないかと思います。この本を読んだうえで、サンプルコードが乗っているWeb関連の書籍を読めばより理解が深まるのでおすすめです。Go言語(golang)関連のおすすめサービス、アプリGo言語(golang)を書いたり、スキルをあげる上で、便利なソフトやアプリを使うのは重要です。ここからはそれを紹介します。CodeGo言語を開発する環境は、効率的に開発を進めるうえでの鍵となります。Codeはマイクロソフトが提供している開発環境です。これにGo言語拡張機能(これもマイクロソフトが提供)を導入することでかなりお手軽に開発環境が構築できます。デバッグやテストも追加の設定をすることで可能です。gofmtGo言語(golang)で提供されているソースコード整形ツールです。自分が開発したソースがGo言語(golang)の標準に沿っていないのではないか、そのような心配はこのツールを利用すれば無用になります。書いたソースコードをgofmtに通せばインデントや空白・タブ変換などを自動でGo言語(golang)の標準に合わせてくれます。gorenameGo言語(golang)用リファクタリングツールです。gofmtと似ていますがよりリファクタリングに特化しています。サクラエディタメモ帳をエディタとして使っているならばすぐに導入すべきテキストエディタです。各種プログラミング言語に対応していキーワードを色でハイライトしてくれます。正規化表現に対応したGrep機能が付いていますので、検索時にも目的となる対象キーワードを柔軟に見つけることができます。FiddlerFiddlerはHTTP通信をキャプチャするツールです。ネットワークキャプチャツールとしてはWiresharkが有名ですが、Fiddlerはhttp通信に特化しており、初心者でもすぐに使えます。Webアプリケーションを作成しだしたらまず一番に導入すべきツールです。Serverなどがあります。いずれも環境設定に手間がかかる上に、管理も少々時間がかかります。そのようなときにはSQLite3がおすすめです。無料だからいまいちではないかという心配は不要でして、ライセンスについて考慮する必要もないのでいい感じです。標準SQLに対応しているのでSQL操作で問題が起きることはまずありません。軽量、高速ですので自宅のパソコンで十分に動かせます。最後にあまり興味がないかもしれませんが、私がGo言語(golang)を選んだ理由を紹介しつつ、記事を終わりにします。簡単な文法Go言語(golang)はC++などに比べると文法が簡単です。プログラミングに慣れている人ならば1日でもある程度に理解できる言語だと思います。実行時の環境について考えなくて良いコンパイルしたときに実行形式ファイルが一つであるために実行時の環境について考えなくてよいです。少々わかりにくい考え方ですが、他の言語では自分が作ったプログラムはライブラリと呼ばれる共通で利用される環境に依存しています。そのために開発したプログラムを別の環境で動かそうとするとエラーが出ることがままあり、このトラブルシューティングには時間がかかります。Go言語(golang)にはその心配がありません。並列処理が前提となっているGo言語(golang)は言語として並列処理が前提になっています。他の言語では並列処理を組み込もうとすれば例えばライブラリを読み込んで、特別な書き方でプログラムを記述してとなります。Go言語(golang)は最初にデザインされたときに並列処理を想定していますので、「え、これで並列処理できるの?」とびっくりするくらいに簡単に記述できます。独学に参考にされば幸いです。関連記事Go言語(golang)を学べるプログラミングスクールを紹介【挫折した】Go言語(golang)を学べるプログラミングスクールを紹介します。無料プログラミングスクール11選:騙されないためにエンジニアが解説おすすめ記事TwitterSharePocketHatenaLINEコピーする-プログラミングauthor関連記事プログラミングGo言語(golang)を学べるプログラミングスクールを紹介【挫折した】Go言語(golang)を学べるプログラミングスクールを紹介します。...プログラミングプログラミングでわからない時の質問の仕方を練習する方法【無料】どうも、プログラミング歴6〜7年のSE兼プログラマです。プログラムって何年やってもわからないことだらけですよね。それは初心者プログラマもベテランプログラマも同じことです。社会人がプログラミング独学する手順を知りたい。プログラミングスクールとか流行っているみたいだけど高額だから独学がいいんだけど。私は侍エンジニア塾卒業後に社内SE兼プログラマとしてプログラムを書いています。趣味でもプログラミングをしています。...プログラミングプログラミング中級者になる方法【実体験】プログラミングの入門書はとりあえず読んだ。...PREV世界でいちばんやさしい教養の教科書:感想と要約NEXTブロガーがウェブライターに挑戦【ブログは実績になる!1文字1円以上で契約】セミリタイア目指してますフォローしていただけると喜びます。@sokusyohyou「本読んでるだけで暮らせないか?」とも思っています。転職2019/06/04通信制大学に30代で通った感想:卒業は難しい転職2019/06/02なめらかなお金がめぐる社会。AFFINGER5.。