SKILLS
We appreciate these languages and techniques
SKILLS
We appreciate these languages and techniques
2022-11-19
初心者向けプログラミング言語の選び方
Programming
たまには学習者向けの記事を書いてみます。WEB系プログラマーにとって、HTML/CSSは必須として最初に学ぶと思います。近年では便利なHTML/CSSをしっかり書かなくてもよかったり、VS Codeの自動入力など充実しているので、がっちりコーディングする人も減っているかもしれません。プログラマーとして活躍したい人はデザインにはあまり興味がなかったりするので、この辺りは得意分野にしないかもしれませんが、UIデザインをしっかり考えれる人は少数派なので、個性を発揮しやすいところだなと思います。プログラマーを目指す人が、次に選ぶのはスクリプト言語が一般的と思いますが、何が候補でしょうか。WEB系エンジニアにとってjavascriptは必須科目ですが、なかなか難しいですよね。僕も最初はもうがむしゃらに、意味もわからず写経しました。知らないことが100個も200個もあり、1つづつ理解する作業なので、すぐには理解できないかもしれません。しかし分からなかったら諦めて次の言語を勉強しましょう。この頃、色々調べているとバックエンド言語というものがあることがわかります。DBと連携して、根本的なシステムを作る箇所です。php派、ruby派、python派と派閥争いが激しいゾーンです。どれがいいかなんてことは様々なブログやYouTubeで既出事項ですが、タイトルを「初心者向けプログラミング言語の選び方」としたのは、変わった切り口があるなと思ったからです。その前に個人的な感想をあえて書くとphp:何かと引き合いに出される言語。歴史の長い言語なので肥大化しているが、オブジェクト思考を学ぶにはピッタリ。ruby:巷でいう簡単というか、簡単にアプリケーションを作れるような工夫がある。python:フォルダ構成にかなりクセがあるけど、その他は概ね良し。どれがいい言語かは上級者になってからの話で、どれでも書き方によってはいくらでもダメな言語になります。個人的にはphp歴が一番長いので、rubyなんかはさっと流した程度ですが、これぐらい。しかし個人的には、Node.jsが一番シンプルで好きです。javascript関連を触るときには必ずインストールすることになるし、本当にシンプルです。そして変わった切り口があると申し上げたのは以下の通りphp:wordpressをカスタマイズするときに必須。一番汎用性が高い。ruby:最近他の言語に置き換わりつつあるが、過去の産物が多いので就職に有利。python:まだまだこれから。どちらかというとチーム開発で使われる。さていかがでしょうか。rubyとpythonは就職してサラリーマンプログラマーを目指す人向け、phpはWEB制作という感じ。WEBアプリケーションを作るには他にも様々な知識が要りますし、1人で全て完結するのは難しいです。しかしphpはwordpressという味方がいるので、独立しやすいかもしれませんね。会社に雇われれることなく、好き勝手やりたい人にとってはrubyは第一候補から外れるでしょう。わたくしの場合、フロントからバックエンド、DBまで手を出しているので、なかなか進みが遅い気もしますが。最近、フロントはNext.js(React)、バックエンドはexpress(Node.js)に落ち着きました。また、もっと高度なプログラムが書けるようになりたいとのことからrustも触っています。typescriptの登場でますますjavascriptに人的リソースが集約されそうですし、この調子でどちらも頑張って欲しいです。
2022-10-06
データセンターにて専用サーバーの作成
Technology
アメリカはカリフォルニア州のサクラメントにあるデータセンターに来ています。元軍事基地ということでインフラがしっかりしており、データセンターとしては好立地。昨日はENTERSIGHTで使用できる専用サーバーを作成しました。仕様は容量4TB、RAM160GB。昔は自作PCを作ったりして遊びましたが、久しく作っていなかったので非常に楽しいです。さてサーバーというと、クラウドではAWSやAZUREが人気ですが、ある程度の規模になると毎月のコストがかかります。また小規模でも、技術力のあるインフラエンジニアがいない限りはコストが高くなって結局は共用・専用サーバーの方が良いということになります。プログラムと睨めっこしていても、データがどういう状態で保存されているかは考えたことがないでしょう。基本的にはサービスとして使用する側である限りは、極限まで深ぼった考えには至りません。どんな場所で、どんな方法で管理されているかは技術者として貴重な体験です。ENTERSIGHTでは今後、APIやヘッドレスCMSなどのサービスを制作予定なので、そういう用途で使用します。最近売られている野菜のパッケージには生産者の顔が貼ってあったり、うんちくの書かれたラベルが貼ってあります。技術的な面でも、こういう側面があっても良いですよね。
2022-09-30
SQL徹底指南書について
Technology
WEBエンジニアとしての仕事内容は多岐に渡りますが、その中でも個人的に好きな領域がデータベース関連です。中々伝わりづらいことではありますが、データベースの設計がしっかりしていると、後々のメンテナンスもしやすくなり保守性が上がります。直接的な速度も全くと良いほど違います。「達人に学ぶSQL徹底指南書」はデータベースエンジニアのミックさんが書かれた本です。この方はさまざまなデータベースに関する本を執筆されていますが、特にこの本は名書。設計の仕方や最適解などが詳しく掲載してあり、とても参考になります。(人によってはとてもつまらないかも・・・)近年ではORマッパーを使用したクエリを流すことが主流だと思いますが、それも正しいDB設計がされているからこそ。ちょっとニッチなデータを取り出そうとしたものなら、複雑なSQL文を書かなければいけません。そうなってくるとSQLの知識はもとより、パフォーマンスにも影響が出てきます。正しい知識や手法を身につけておかなければいけません。RDBSはもう何十年も利用されていますが、近年ではGRAPHQLが人気ですね。この手法も割と昔に発明されていますが、フロントエンド技術の成熟によって使われるようになってきた印象。GraphQLはまた性質が全く違うものですが、こちらも早めに知識を成熟させておかなければいけませんね。
2022-09-30
良いコード/悪いコードで学ぶ設計入門
Others
著者は「ミノ駆動 @MinoDriven」というHNで活躍されている仙塲大也さんです。初々しいピヨピヨの頃は、コピペしてきて動く動かないを繰り返し。そして少しづつプログラミングが分かり始めるようになったら、自分の書き方が定着していく。しかし他の人のコードを眺めることになったら、「なんだこのクソコードは」と思いはじめ、自分の書き方も鮮麗されていく。さらにさらに良い書き方とは?を調べ始めて、やっと中級者になる。実際に現場にいくと、ずっと初級プログラマーの人も数多くいます。読みやすいコードを書けるのは素晴らしいことで、今後メンテナンスしていく上でのコードを最初から書けたに越したことはないです。この書籍を読んで感じたのは「あぁこんなことあったなぁ」と、思い出を楽しむかのように読むことができました。