-
エンジニアにオススメする書籍の紹介
エンジニアとして読んで欲しい書籍を紹介します。数ある中から一部を、あくまでも個人的な見解と感想を交えて紹介します。■ウェブプログラミング編ウェブ専門言語として3大言語とは何かとすれば、PHP、Ruby、Pythonと決めつけるつもりはありませんが、定番と言っても過言ではありません。主流としてなぞられているこの3つの言語を知るための技術本を紹介します。※Perlをディスっている訳ではないので悪しからずプログラミングPHP 第3版 [オライリー・ジャパン]https://www.oreilly.co.jp/books/9784873116686/言語仕様を詳細に解説しているPHP定番とすべき本だと思います。この本を置いて詳解があるとは思いません。初心者には読みづらさはありますが、繰り返し読むこともオススメしたい本です。PHPを知り尽くしたい人はまずこの本を買うべきです。Rubyベストプラクティス [オライリー・ジャパン]https://www.oreilly.co.jp/books/9784873114453/Rubyのテクニックや実践としてのライブラリなどを紹介してくれている素晴らしい本です。バージョンとしては1.9と古いですが、基本を学ぶ上でも一度読むべき本だと思います。パーフェクトPHPパーフェクトPythonパーフェクトRubyonRailsパーフェクトシリーズとして有名なこの三冊。サンプルソースコードによって解説しながら読みやすい本でもあります。初心者から中級者向けの良い本だと思います。■JavaScript編個人的には、JavaScriptとCをマスターしたエンジニアを尊敬しております。その一つとしてJavaScriptを理解するための本として紹介です。JavaScript 第6版 [オライリー・ジャパン]https://www.oreilly.co.jp/books/9784873115733/この本を読んだことがない人にはJavaScriptを語る資格はない、とさえ言わしめるほど素晴らしい本です。JavaScriptの核心を知ることができます。考え方が変わります。jQueryクックブック [オライリー・ジャパン]https://www.oreilly.co.jp/books/9784873114682/jQueryが重い、使いづらい、本当に必要なのであろうか、そう思う人には読んでもらいたい本です。jQueryが存在して何が変わったのかを再認識、もしくは気づかせてくれることでしょう。シングルページWebアプリケーション [オライリー・ジャパン]https://www.oreilly.co.jp/books/9784873116730/シングルページのアーキテクチャとして有名な本です。jsによるフロントからバックエンドまでの紹介となります。■SQL編エキスパートのためのMySQL[運用+管理] [技術評論社]http://gihyo.jp/book/2010/978-4-7741-4294-4MySQLのことをどれくらい知っていますか。そんな人に読んでもらいたい本です。MySQLはDBの主流として多く利用されてきました。パフォーマンスや構築手法、運用詳細を専門家が徹底して紹介してくれてます。プログラマのためのSQL [翔泳社]https://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AESQL-%E7%AC%AC4%E7%89%88-%E3%82%B8%E3%83%A7%E3%83%BC%E3%83%BB%E3%82%BB%E3%83%AB%E3%82%B3/dp/4798128023大型本です。SQLのジョー・セルコが著した日本語版です。SQLプログラミングとは何か、全般的にこれほど詳しく解説しているものはないと思います。内容が濃すぎます。■知るべき編人月の神話https://ja.wikipedia.org/wiki/%E4%BA%BA%E6%9C%88%E3%81%AE%E7%A5%9E%E8%A9%B1ソフトウェアのプロジェクト管理について開発に関する実体験を記している本です。1975年に出版された本ですが、歴史は繰り返すことを再認識できることだと思います。リーダブルコード [オライリー・ジャパン]https://www.oreilly.co.jp/books/9784873115658/美しさ、優れたコーディングを考える本です。プログラマには絶対に読んで欲しい本です。コードコンプリート大手企業のOJTや新人教育の教材としても使われる本として有名です。良いプログラマとして特に若い人には読んで欲しい本だと思います。エリックエヴァンスのドメイン駆動設計DDDとして概念を理解する本ですが、非常に読みにくいです。しかし繰り返し読むべき本です。ドメインとは何か、そして設計におけるメソッドフローによってアジャイル開発の考え方をしっかりと理解するべきだと思います。人を動かす道は開けるカーネギの人としてどう生きるべきかを考える本です。人生観と価値を豊かにするべく、何かに躓いたときに読むのも良いと思います。孫子古代中国の孫子の兵法で知られる軍略家の本です。兵法とは何か、そして理論に基づいた人間の考えや心理、現在の生き方にも大きく影響してくれます。君主論自助論自分と向き合う、そして何をすべきかを考えさせられる本です。小さなチーム、大きな仕事小さな組織として成功体験に基いて記している本です。いま自分に何が必要なのかを考え行動できるヒントとして読んでも面白いです。lsを読まずにプログラマを名乗るな!lsコマンドにこれほど情熱を注げる本はないと思います。よくここまでやるなぁと感心しますが、個人的にはとてもおもしろかったです。■ネットワーク編マスタリングTCP/IPプログラマとして最低限のネットワーク知識を取り入れたい人にもオススメしたい本です。 -
エンジニアにオススメするオンラインツールの紹介
エンジニアとして業務効率化を目指すためのオンラインツールを紹介します。あくまでも個人的に利用したものを中心に、有料無料含めて解説いたします。GitLabhttps://about.gitlab.com/githubはご存知の通りですが、githubクローンとして自前サーバに構築できるのがGitLabです。個人的には、自分で作ったサイトやツールを管理しております。高機能で快適に動作します。これがあればgithubはいらないとさえ考えさせられます。githubはpublicのみ無料ですが、GitLabですべてのことが可能となります。また、商用利用としても活用している大手企業もあり、セキュアな管理も行うことが可能です。ソース管理の決定版と言えます。owncloudhttps://owncloud.org/DropBoxなどでファイル共有を行うことは多々あると思います。それと同じことを自前サーバで実現できるオープンソースです。Windows/Mac用のクライアントや、スマートフォン用アプリも存在しており、大変重宝しております。サーバ環境の設定にも依存しますが、構築によっては素晴らしいオンラインストレージ環境が実現できます。taigahttps://taiga.io/プロジェクト管理ツールとして、今流行りの看板UIです。redmineやBacklogに成り代わって重宝します。UIもとてもシンプルでアジャイル開発手法に則った管理が可能です。slackhttps://slack.com/いまでは言わずと知れたチャットツールの定番です。特にアプリが優れいてることは申し分ないでしょう。チャットツールとしてではなく、サーバ環境によるあらゆるアラート通知に利用することが多く、インフラエンジニアの間でも重宝しております。G suits(旧GoogleApps)https://gsuite.google.com/Googleが提供している業務効率化用ツールです。なんといっても、独自ドメインをGmailサーバに紐付けて利用することが可能です。メール機能を利用するためだけでも充分に課金する価値はあります。LetenCrypthttps://letsencrypt.jp/SSLを無料で使える時代になりました。メールアドレスとドメインを登録するだけで利用することができます。基本的に証明書の試用期間は3ヶ月ですが、証明書を更新すれば継続できます。AWShttps://aws.amazon.com/jp/こちらは世界的に有名なクラウドサーバで誰もが知っていますね。GUIベースでサーバインスタンスを設定するだけで構築が可能です。何よりも素晴らしいのが、データ保存のストレージS3、スケーリング運用可能なRDS、NoSQLを分散型データに管理するDynamoDB、モニタリングツールのCloudWatch、様々なPush通知に対応SNSなどなど、便利なサービスやAPIが豊富です。料金が割高なのはすこし気になりますが、使いこなせば誰でも簡単に大規模なサーバ構築が実現できます。CODEPENhttp://codepen.io/オンライン上でフロントコーディングを確認できるツールです。フロントエンジニアには大変重宝します。次回は、エンジニアにオススメしたい書籍を紹介したいと思います。 -
エンジニアにオススメするソフトウェアの紹介
Windows/Mac用で、エンジニアにオススメするソフトを紹介します。あくまでも個人的に利用したものを中心に、有料無料含めて解説いたします。■テキストエディタ編プログラミングを行う上で絶対に必要なソフトがエディタです。軽量から高機能まで様々なものがありますが、長年使ってきたエディタを紹介します。Sublime text 3 [Windows/Mac]https://www.sublimetext.com/3Windows、Macともに愛用しているエディタです。有料ですが、無料でも制限なく利用することもできます。なんといってもサードパーティによるプラグインが豊富で、カスタマイズもできるところが素晴らしいです。また、ショートカットキーを活用できれば、開発スピードは遥かに向上します。gitやSSHの連携も可能、diffやファイル検索、grep機能も充実していることも高評価です。PhpStormhttps://www.jetbrains.com/phpstorm/PHP専用としてIDE決定版といえるシェアウェアのソフトです。こちらも多機能でありながら、操作性も抜群です。コードを書く上でとても強力に手助けしてくれるところが素晴らしいです。また、SQLをGUIで操作ができる点も素晴らしいです。同じくgitやSSHもサポートしており、Sublime Textにある機能はすべて網羅しております。秀丸 [Windows]http://hide.maruo.co.jp/software/hidemaru.html今更ですが、秀丸は昔からあるシェアウェアのエディタですが、軽量且つgrep機能が素晴らしい点があります。まだ当時、秀丸よりgrep機能を越えるWindows用エディタが存在していない時代に大変重宝しました。画面分割機能は独自にショートカットを割り当てて、とても快適に扱えるところが魅力です。一押しはマクロ機能だと思います。名前がダサいところは意見が分かれます。Atomhttps://atom.io/2016年現在、一番人気があるエディタです。Atomはgithub開発者が生み出したエディタにして、Emacsのような高機能を目指して開発されたようです。Sublime textに非常に似ている部分がありますが、多少重さを感じる部分が難点だと感じます。Vim [Linux]言わずと知れたエディタですね。多機能且つプラグインも豊富です。紛争になるのでこれ以上のことは申し上げません。■ターミナル編Poderosa [Windows]https://osdn.jp/projects/sfnet_poderosa/Windows用としてずっと愛用しているターミナルツールです。本家は開発が終了しているようですが、オープンソースとして公開されており、いまも第三者から開発が行われているようです。Windowsソフトの中で、ターミナルツールとして最初にタブ機能を取り入れたソフトです。画面分割も便利です。iterm2 [Mac]https://www.iterm2.com/Macで愛用しているターミナルツールです。正直、Windows版でも欲しいくらいです。サクサクと動作するショートカットも魅力です。Macデフォルトのターミナルも素晴らしいですが、本当にこのソフトはそれ以上に素晴らしいです。画面分割やタブ機能、背景を透過させるだけでも使う価値はあります。■転送ソフト編WinSCP [Windows]https://osdn.jp/projects/winscp/転送ソフトの中でこれ以上のものが無いと思わせる、それがWinSCPです。近年ではタブ機能が追加されましたが、転送における使いやすさが本当に素晴らしいです。Macにも同じものがあればどれくらい幸せかを考えてしまいます。ちなみに、Macにも様々な転送ソフトはありますが、WinSCPと比べて使い勝手に不満があり、コマンドで転送しています。それくらい、このソフトに成り代わるものがありません。■仮想環境編VMWarePlayer [Windows]https://my.vmware.com/jp/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0Windows用としては、このVMWarePlayerを使っております。ローカル環境でLinux環境を構築する手軽さもありますが、WindowsとLinux間でのファイル共有が手放せません。vagrant+VirtualBox [Mac/Linux]https://www.vagrantup.com/downloads.htmlhttps://www.virtualbox.org/Macでは、vagrantを使ってVirtualBoxを利用しております。使い分けている理由はOS環境ですね。MacはUNIXベースなので、vagrantが扱い安い点ではWindowsは向いてないのと、手軽さでは圧倒的に違いがあるからです。■その他・便利編WinMerge [Windows]http://freesoft-100.com/review/winmerge.phpファイルやフォルダなどを比較、差異を確認するためのソフト。決定版です。SourceTree [Windows/Mac]https://ja.atlassian.com/software/sourcetreegitをGUIで扱えるソフト。gitは高機能で使いこなすのに学習コストがかかります。しかしGUIベースで学べる、簡単に扱える点ではこれは最強だと思います。個人的にはLinux上でコマンド操作しておりますが、慣れるまではこれを有効活用するのにオススメです。TortoiseSVN [Windows]https://tortoisesvn.net/downloads.htmlSVN環境の開発もまだ沢山存在していると思いますが、それの決定版だと思います。標準diff機能も便利です。次回はオススメしたいオンラインツールを紹介します。
1 / 5