こんにちは。一松です。 開発新卒に捧ぐシリーズ第3回の今回は、アルゴリズムとあわせておさえておきたいデータ構造についてお話します。データ構造を理解することで、プログラムの目的に沿って適切な構造を選べるようになるので、動くだけのコードからの質の高いコードを書くステップアップとして読んでみてください。 データ構造とは そもそもデータ構造とは何でしょうか。データ構造は、データをコンピュータの中で扱う際にデータを格納する一定の形式のことです。例えば、プログラミングを経験したことがある人は配列やリストを使ったことがあると思います。じつは、それらもデータ構造の一種です。プログラムを書く際にはどのような処理を行うのかを事前に考え、その処理にとって最適なデータ構造を選択する必要があります。そのためにも、それぞれのデータ構造の特徴(長所、短所)を知っておくことが大切です。特徴を考える要素として、データに対し
僕は日頃から日本語を介さない英語学習を勧めています。 ただ、中1の1学期くらいで英語につまづいてしまった方は、“How are you?” 言った簡単な文章さえわからないため、日本語を介在させるなと言われても途方に暮れてしまうようです。これはこれでよくわかります。 中級者になると、今度は文法をどう日本語を介さずに学習すればいいのか疑問が湧いてくるようです。 この記事では、まず中学英語で落ちこぼれてしまった超初心者に的を絞ってお話ししたいと思います。 なぜそもそも「日本語を介在しない英語学習」を推奨しているのか? まず、どうして僕がそもそも「日本語を介在させない英語学習」を推奨しているのかお話ししましょう。 これには3つの理由があります。 日本語を介しての英語学習に反対する1つ目の理由は、「まず日本語で言いたいことを思い浮かべ」→「該当する構文や英単語を思い出して文を作る」という、いちいち日
※しれっと、はてなからnoteに乗り換えてみました。これまで書いたWEEKLY人工無脳の記事はこちら ① Googleが圧倒的な自然言語処理手法を発表。東ロボくんの仇はGoogleが討つのか?機械学習クラスター周りで今週最も話題になってたのはこれでしょうか。 Googleが公開した自然言語処理手法(新たな汎用言語表現モデル)が、これまでの自然言語解釈タスクでぶっちぎりの精度を出したという話。すごくざっくりいうと、機械による文章読解精度が劇的に上がったということ。 人工知能が昨今こんなに注目されている理由の根っこには、『「画像処理タスク」において人間のような高い精度を出せるようになったから』というところが始まりだったりします。2012年の画像解析コンペにおいて初めて深層学習手法であるCNNが使われ、二位にダントツの差をつけて優勝したあたりから社会的にも「AI(≒深層学習)がなんか凄いことにな
インターナショナルチームでプログラミングの仕事をしていると、いろんなところで同僚との差を感じてしまう。いろんな国の人がいて、レベルは人によりそれぞれなんだけど、一般的にいうと、アメリカのプログラマのレベルは平均してとても高い場合が多い。とにかくコードがきれいでシンプルで仕事が早い。 彼らがなぜそれができるのかを観察しているが、一つ気が付いたことについてその対策も含めて書いてみたい。 彼らがプログラマとして優れているところ USにいるとお客様の技術レベルが高いとか、新しいことにチャレンジするとかいろいろ要素はあるのだけど、個人の生産性、コードの美しさをみても、平均値を観察するとアメリカの人が一番に感じる。その他にも、ドキュメントを見てすぐ理解できる能力は、アメリカの人はおろか、ヨーロッパ圏やインドの人と比べても、私は圧倒的に負けていると感じる。 Williams 衝撃の読解力 新しいライブラ
今日はプログラミングの生産性に対して気づきがあったのでシェアしてみたい。 なぜ米国の人は生産性が高いのだろう プログラミングの生産性に関しては以前から興味がありいくつかのポストで考えたことをシェアしてきた。私は職業柄、いろんな国でいろんな人々とプログラミングを一緒にする機会が多い。その時に頻繁に感じるのは、平均的に言うと、アメリカの人プログラマが生産性が高い確率が高くて、しかもコードもきれいだという傾向にある。アメリカでお客さんと一緒にコードを書くと、お客さん自体が物凄く良く知っているし、実行力もある。アメリカの次と言うことでいうと、英語がネイティブの国もそれに近く、フランスなどの言語が近いところが続く感じなので、英語が物凄く影響すると思っていたし、実際すると思う。そのあたりの話はこちらのポストに書いてみた。 simplearchitect.hatenablog.com 定義での理解と、例
The new style versus test-driven developmentAs part of Limbo on the Cheap, we invented a new programming workflow. I introduced “test && commit”, where every time the tests run correctly the code is committed. Oddmund Strømme, the first programmer I’ve found as obsessed with symmetry as I am, suggested that if the tests failed the code should be reverted. I hated the idea so I had to try it. The f
@rana_kualuさんの2018年の最先端バックエンドエンジニアになろうという翻訳記事がとても興味深かったのですが、記事内で提示されているロードマップに関して微妙に違和感を感じる部分もありましたので、 記事に記載されているスキルは現場でどの程度必要なのか 記事に記載されていないが現場において重要なスキルは何か といった辺りを、自分なりの意見を交えてちょっと書き出してみました。 自分をエンジニアとして最先端だとは全く思っていないのですが、最近のバックエンドのトレンドに一応多少なりともきちんとキャッチアップしてるかなとは思うので、若い方や、まだ経験の短いエンジニアの方たちのご参考になりましたら幸いです。 言語 ロードマップに記載されていた言語のうち、私は一応 Elixir Scala Java .NET (C#とVB.NET) Python Ruby PHP TypeScript Gola
テクノロジー×人~Evolutionするメルカリで起きていること―メルカリCTO名村卓氏、執行役員VP of Engineering是澤太志氏に訊く 2018年10月に開催されたMercari Tech Conf 2018。日本から世界に挑戦するテックカンパニーメルカリの、エンジニアリングの現状と未来を思う存分堪能できるイベントでした。 gihyo.jpでは、メルカリCTO名村卓氏、執行役員VP of Engineering是澤太志氏の両名に独占インタビューを実施したので、その模様をお届けします。 名村卓氏(左)と是澤太志氏(右) 2017→2018のEvolution Q:前回のMercari Tech Conf(MTC)から1年が経過しました。昨年と今年で、メルカリとして変わったこと、変わってないことについて教えてください。 名村:まず、最も変わったのは人数が増えたことですね。昨年のM
[レベル: 上級] SEO と相性がいい Lazyload の実装を解説するドキュメントを Google はデベロッパー向けサイトで公開しました。 3つのアドバイス ドキュメントには3つの指針が書かれています。 1. viewport 内で見えるようにする viewport 内にあるコンテンツは、必ず Google にも見えるようにしておきます(viewport は簡単に言えば、スクリーンに表示される領域)。 つまり、重要なコンテンツが viewport に入ったときは確実に読み込ませます。 IntersectionObserver API と polyfill を実装するように Google は指示しています。 2. 無限スクロールでは paginated loading を使う 無限スクロールを採用している場合は、paginated loading を実装します。 paginated
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く