タグ

programmingに関するtoshi-tomaのブックマーク (21)

  • 株式会社リクルート エンジニアコース新人研修の内容を公開します!(2023年度版)

    こんにちは! 2023年度エンジニア新卒の、吉田です。 株式会社リクルート 新卒エンジニアコースでは、部署への配属前に、BootCampと呼ばれる新人研修を行っています。 日は2023年度の研修の内容を、実際に受講した新卒の立場から紹介させていただきます。 研修の内容については毎年反響をいただいていますが、今年度も一段と進化し、より充実した研修でした。 ページ下部に研修資料を公開していますので、ぜひ研修の雰囲気を感じ取っていただけると嬉しいです。 研修の概要 エンジニアコースの新人研修は、配属後にスピード感を持って成長できるようになることを見据え、 「さまざまな技術領域の講座を受け、興味関心を広げて、知らなかった好奇心に出会う」 「現場で求められる『仕事への取り組みスタンス』をつかむ」 「気軽に相談できる仲間(同期)をつくる」 の3点が目的とされています。 今年度は、入社前に行われたスキ

    株式会社リクルート エンジニアコース新人研修の内容を公開します!(2023年度版)
  • 保守性の高いソフトウェア開発のTips集

    保守性の高いソフトウェアの開発に役立つ様々なTipsを書いた。 特定の言語にとらわれずあらゆる場面で役立つことを集めた。

    保守性の高いソフトウェア開発のTips集
  • 米ハーバード大学のプログラミング授業「CS50x」日本語訳が無料公開

    米ハーバード大学がオンラインで無料公開している、PythonJavaScriptプログラミング学習とコンピューターサイエンスの入門講座の日語訳ページ「CS50.jp」が無償公開されました。2022年8月31日に2022年度最新版の日語化が完了しました。講義動画の日語字幕の翻訳化を順次すすめています。学生向けですが、年代にかかわらず、コロナ禍で学習環境やキャリアに悩んでいる誰もが学ぶことができます。 ハーバード大学のCS50xとは ハーバード大学のCS50xとは、日語翻訳ページ「CS50.jp」によると、コンピューターサイエンスとプログラミング技術を紹介するオンラインコースです。この講義がオンライン上で無償公開されており、世界で282万人が履修登録しています。 edX - CS50s Introduction to Computer Science 学べる内容はPythonのプロ

    米ハーバード大学のプログラミング授業「CS50x」日本語訳が無料公開
  • 良いコードとは何か - エンジニア新卒研修 スライド公開|CyberZ Developer

    CyberZ CTO室のメンバーの森 (@at_sushi_at) です。 先日、株式会社サイバーエージェントの2021年度 エンジニア新卒研修でコードの品質に関する講義を行いました。 そこで話した内容とスライドを完全公開します。 45分の内容のため、かなり長いですが、個人的にぜひ一読して欲しい内容になっています。 はじめに こんにちは、森 篤史と言います。2019年度入社で今年で3年目になります。株式会社CyberZのOPENREC.tvというプロダクトでAndroidアプリチームのリーダをやっています。 最近はプログラムを書く仕事以外に、次世代マネジメント室という全社横断組織でDevelopers Blogの改善プロジェクトを実行したり、CyberZ CTO室で組織活性化に取り組んでいます。 あと、2019年度の未踏スーパークリエータにも認定されました。 メインの仕事としては、入社して

    良いコードとは何か - エンジニア新卒研修 スライド公開|CyberZ Developer
  • コードリーディングのコツは極力コードを読まないこと|牛尾 剛

    私はクラウドのプロダクトチームで働いているが、何を隠そう一番苦手で克服できていないことが、コードリーディングだ。ものすごーく時間かかるし、時間かかったうえに読み間違えたりするし、しかもめっちゃ頭使うのに他の人はずっと速いので敗北感しか残らない。先日もマネージャの Pragna に相談したら、最初は2時間かかるけど、3か月もしたら5分で終わるわよ。って言われたけど、いや、そもそも俺4時間は最低かかるねんけどな、、、って感じ。 技術イケメンの皆さんのアドバイス よくよく私のキャリアを考えると、OSSにコントリビュートとかしていることはあったが、めっちゃくちゃ巨大でややこしいコードベースを読んで理解する必要が無いことが多かった。1からコードを書くのは得意だが、他の人のを読んでがっつり理解してとか、どうやったら出来るのかわからない。 当然自分の周りの技術イケメンの皆さんにコツを聞いていたのだが、ど

    コードリーディングのコツは極力コードを読まないこと|牛尾 剛
  • シンプルさの必要性 · eed3si9n

    2013-06-24 2012年4月23日にテキサスの Austin で行われた RailsConf 2012 での Rich Hickey (@richhickey) さんによる基調講演、Simplicity Matters を書き起こして翻訳しました。 Rich Hickey さんは Clojure や Datomic の作者です。 この翻訳は Creative Commons Attribution ShareAlike 3.0 ライセンスに基いて公開します。 Rich Hickey 講演 e.e d3si9n 訳 談: こんにちは。ご招待いただきありがとうございます。 聞く所によると RailsConf はいつもコミュニティーからかなり外れた人を選ぶらしく、今回は僕ということになりました。 僕の電話ボックスは外に駐車してあります。(会場、笑) だけど、今日は言語の壁を越える話題を持

  • shiodaifuku.io

    Webエンジニアのブログです。

    shiodaifuku.io
  • プログラミング上達したい人に繰り返し読んで欲しい4冊|erukiti

    プログラミング上達したいんだったら、四の五の言わずに、 ・クリーンアーキテクチャ ・レガシーコード改善ガイド ・アジャイル・サムライ ・リファクタリング 系のどれか を、全部最低5回読み返して欲しい。それでプログラマとしては圧倒的に成長できるんだから、マジで読んで — Next.js + Hasura 最速プロトタイピング @技術書典9 出す予定 (@erukiti) July 27, 2020 先日、こういうツイートをしたらバズってしまいまして。これらのを理解できるまで読みこめばプログラマとして成長できますよーというもので、 ・ クリーンアーキテクチャ ・ レガシーコード改善ガイド ・ アジャイルサムライ ・ リファクタリング 系のどれか(例えばリファクタリング第二版) の4冊を挙げました。いろいろな人の感想を読んで、補足が必要そうだなと思ったので記事として書きなおしています。 追記

    プログラミング上達したい人に繰り返し読んで欲しい4冊|erukiti
  • The 2020 Developer Survey results are here! - Stack Overflow

    Depending on how you count it, this is the 10th year Stack Overflow has been conducting its annual developer survey. The software industry has changed substantially over the last decade, but it’s also true that no single technology has been quite as disruptive, at least in the short term, as the public health crisis the entire world is experiencing right now. The results of this survey reflect the

    The 2020 Developer Survey results are here! - Stack Overflow
  • 高階関数は何であるかを簡潔に説明する - Qiita

    はじめに なんか、高階関数で、一部界隈が盛り上がっているぽいので、なんとなくエントリを書いてみました。一言で言うと、「関数を引数に取る関数」あるいは「関数を返り値とする関数」が、高階関数と呼ばれます。それだけです。 あとは、各言語で、引数や返り値になれるような「値としての関数=第一級関数」をどのように実現するかが問題になります。ここで、「関数を引数に取る」というのは、「値としての関数」を引数に取る、という意味であることに注意してください。 というわけで、以降、いくつかの言語で、第一級関数をどのようにして表現しているかについて述べてみたいと思います。他にも方式があると思いますが、ツッコミ歓迎。 いわゆる「関数型プログラミング言語」の場合 多くの「関数型プログラミング言語」では、「関数」それ自身がプリミティブでかつ値なので言うまでもないのですが、いくつか例を挙げます。 たとえば、Schemeで

    高階関数は何であるかを簡潔に説明する - Qiita
  • モデリングもしないでアジャイルとは何事だ

    32. アジャイル時代のモデリング <<平鍋さんの記事>> Modeling in the Agile Age: What to Keep Next to Code to Scale Agile Teams http://www.infoq.com/articles/kenji-modeling-agile

    モデリングもしないでアジャイルとは何事だ
  • Google エンジニアリング・プラクティス ドキュメント

    Google エンジニアリング・プラクティス ドキュメント このページは、Google Engineering Practices Documentation の非公式な日語翻訳です。元のドキュメントは、クリエイティブ・コモンズの「CC-By 3.0」ライセンスで公開されています。 Google には、あらゆる言語・あらゆるプロジェクトをカバーする一般化されたエンジニアリング・プラクティスが数多く存在します。こうしたドキュメントは、私たちが長年に渡って開発してきたさまざまなベストプラクティスの経験が集結したものとなっています。オープンソース・プロジェクトやその他の組織でも、こうした知識から恩恵を受けられるかもしれません。そのため、私たちは可能な限り、この知識を公開するように努めています。 現在、以下のドキュメントが公開されています。 Google コードレビューガイドライン (Googl

  • 初心者プログラマが犯しがちな過ち25選 - Qiita

    以下はThe Mistakes I Made As a Beginner Programmerの日語訳です。 The Mistakes I Made As a Beginner Programmer 初心者プログラマが犯しがちな間違いと、それらを特定し、避けるための習慣を学ぶ方法。 まず最初に言っておくことがあります。 この記事は、誤りを犯すことを悪いと糾弾するために作成されたものではありません。 むしろ貴方が誤りに自ら気付き、あるいはその兆候を見いだし、それらを避けられるようにするために書かれたものです。 私は過去これらの誤りを犯し、それぞれから学びを得てきました。 今ではこれらを避けるようなコーディングを習慣付けるようにしています。 貴方もそうしましょう。 紹介は順不同です。 1) 設計せずに実装する 高品質なコンテンツは、一般的には容易に作成できるものではありません。 それには慎重

    初心者プログラマが犯しがちな過ち25選 - Qiita
  • コーディング面接対策のために解きたいLeetCode 60問

    自分がコーディング面接対策のために解いてよかった LeetCode の問題をコンセプトごとにまとめました。カバーするコンセプトは LinkedList Stack Heap, PriorityQueue HashMap Graph, BFS, DFS Tree, BT, BST Sort Dynamic Programming Binary search Recursion Sliding window Greedy + Backtracking です。 これらの問題が 30 分以内に実装できれば面接の準備は整ったと言っていいと思います。Easy と Medium で問題は構成されてます。進捗を管理するためにGoogle Spreadsheetを用意しました。コピペしてご自由にお使いください。 これらの問題は、LeetCode のリスト機能でも公開されています。クローンすれば自分がすでにど

    コーディング面接対策のために解きたいLeetCode 60問
  • プログラマだったら当然知ってるよね?という知識一覧

    2019年11月11日追記 ただのタイトルで煽ってるだけの記事に半年経っても未だに大量のアクセスがあるので追記しておきます。 ここで言いたいことは、「プログラマならコンピュータサイエンスを勉強してると役に立つよね」、ということ だけ です。 この一文以上に有用な言葉は以降の文章では出てきません。みなさんの時間を無駄にしないために注意書きをしました。 それでも良いという人は読んでみてください。 Twitterで「〇〇ができるという人が面接に来たけど、『じゃあXXXやYYYって知ってます?』というと知らないという人が多いんだよねぇ」とかいうツイートを見かけて、私はXXXやYYYってのを知らなかったので調べた見たところ、常識とまでは言えない概念だったり、名前は知らなくても誰もが知ってる概念だったり、むしろもっと良いアプローチがあるのではという思想だったりでなんだかなぁと思っていたところ、半日くら

    プログラマだったら当然知ってるよね?という知識一覧
  • LeetCode: コーディング面接に向けた練習に使えるサイトの紹介 - 今日も窓辺でプログラム

    この記事について LeetCode Online Judge というアルゴリズムやデータ構造に関する問題を解いて、オンラインジャッジまでできるサイトがあるので、どのようなサイトかを簡単に紹介します。 LeetCodeとは? LeetCodeとは、下記サイト LeetCode Online Judge の運営団体、および下記サイトそのもののことです。 leetcode.com 上の画像のように、Google, Facebook, Microsoftをはじめとした、世界トップレベルのIT企業のエンジニアの面接で実際に使用された過去問がたくさん掲載されています。 Online Judgeというぐらいなので、実際に自分のコードを提出し、自分の書いたコードが正しいのか、他の提出者に比べてどの程度の速度のコードを書いているのか、などがわかるような仕組みになっています。 一部機能は有料ですが、無料でも十

    LeetCode: コーディング面接に向けた練習に使えるサイトの紹介 - 今日も窓辺でプログラム
  • エンジニアが何か問題にぶつかったときにあるといい力を5個 - Mitsuyuki.Shiiba

    最近ちょこちょこ相談されることがあって、直接のスキルではないけど、こういうのもスキルだよなぁって思ったので、思いついた順に書いてみる。5個になった。 ## 1. 問題を切り分ける力 「これがなぜか動かない」って相談されたときって、いくつかの要素が絡んでることが多い。 なので「ここは明らかに問題ないでしょう」という一番土台のところからチェックを始める。そうすると「え?そこは問題ないと思いますよ?」って言われるので「うん、それを『問題ないと思う』じゃなくて『問題ない』って断言できるようにしようと思って」みたいな会話をよくする。 可能性をひとつずつつぶしていくと「ここだなぁ」って場所が見つかって、そしたら、もうあとはそんなに難しくない。ひとつずつ確認していくのって遠回りに見えるけど、結局その方が確実ではやいと思う。 ## 2. 想像と事実を切り分ける力 ↑と絡んで、想像や思い込みなのに、「ここは

    エンジニアが何か問題にぶつかったときにあるといい力を5個 - Mitsuyuki.Shiiba
  • JavaのGCの仕組みを整理する - Qiita

    最近メモリを大量に使うJavaのプロセスに関する仕事があり、GCの知識が必要になったので調べたことをまとめておきます。調べたら色々出てくる時代ですが考えを整理するために書きました。間違った認識をしている可能性はあるのでそこはご指摘いただけると幸いです。 注: この記事は最新のGC事情を整理するものではなく、古典的?な手法について書いてます。 JVM まずはざっくりJavaの基的な仕組みから。 JavaのプロセスはJVMと呼ばれる仮想マシンの上で動作します。この仕組みは様々なOSで動作し、環境の差異を気にする事なくコンパイルされたJavaのコード(クラスファイル)を様々な環境で実行可能にしてくれます。 JVMにはいくつ種類がありますが、記事はOpen JDKで用いられるHotSpot VMの場合を想定しています。(他のJVMとの違いはわからない) ヒープ領域 Javaのプロセスを開始する

    JavaのGCの仕組みを整理する - Qiita
  • 小さなチーム、大きな仕事を実装するモブプログラミング / Mobprogramming as Change The Way Your Work Forever

    とある会社の社内勉強会にて!

    小さなチーム、大きな仕事を実装するモブプログラミング / Mobprogramming as Change The Way Your Work Forever
    toshi-toma
    toshi-toma 2019/03/31
    モブプログラミングについて資料。あとで読む。
  • シャローコピーとディープコピーの違い - くろの雑記帳

    なにそれ? シャローコピー(Shallow Copy)、ディープコピー(Deep Copy)、どちらもコピーすることには変りないのですが、何をコピーしているのかが違います。 はじめて聞いた人は何を言っているか訳がわからないと思いますが、 特にオブジェクト指向プログラミングにおいて、これを知らないと確実にハマります。 シャローコピー シャローコピーというのは、コピー元のオブジェクトとコピー先のオブジェクトがメモリ上の同じデータ(インスタンス変数)を参照しています。 分かりにくいと思うので、図で示すとこんなイメージでしょうか。 ですので、コピー元のオブジェクトに対してインスタンス変数に変更を加えると、コピー先のオブジェクトが参照しているデータが同じ物なので、コピー先のオブジェクトから見たインスタンス変数も変更されることになります。 シャローコピーは、参照のコピーのみを行うということですね。 デ

    シャローコピーとディープコピーの違い - くろの雑記帳
    toshi-toma
    toshi-toma 2019/02/11
    シャローコピーとディープコピーの違いについてだいぶ分かりやすい記事。