アルゴリズム脳を身につけるためには、まずは再帰処理だ その1
アルゴリズムの基本の基本である再帰処理を0から考えることができていない。
例えば、ハノイの塔のアルゴリズムを考える際、3つの円盤を左の杭から右の杭に移動するだけのプログラムだと簡単にできる。
var n = 3; var hanoiList = init(n); console.log(hanoiList); moveDisk(0,2); moveDisk(0,1); moveDisk(2,1); moveDisk(0,2); moveDisk(1,0); moveDisk(1,2); moveDisk(0,2); function init(n){ var list = [[],[],[]]; for (var i = n; i>0; i--) { list[0].push(i); } return list } function moveDisk(from, to){ var disk = hanoiList[from].pop(); hanoiList[to].push(disk); console.log(hanoiList); }
しかし、円盤の数がN個になるとこの処理を沢山記載しないといけない。。くそだりぃ。
なので、そこでハノイの塔を動かすための規則性を考える。
①初期状態
0:n, n-1, ・・・3, 2, 1 1: 2:
②杭0から円盤を杭1に移動させる
0:n, n-1, ・・・3, 2 1:1 2:
③杭0から円盤を杭2に移動させる
0:n, n-1, ・・・3, 1:1 2:2
④杭1から円盤を杭2に移動させる
0:n, n-1, ・・・3, 1: 2:2,1
⑤杭0から円盤を杭1に移動させる
0:n, n-1, ・・・ 1:3 2:2,1
①〜⑤の処理を繰り返していくと下記の状態になる。
0:n 1:n-1, ・・・3, 2, 1 2:
⑥杭0から円盤を杭2に移動させる
0: 1:n-1, ・・・3, 2, 1 2:n
①〜⑥の処理を繰り返していくことで、杭3に移動することができる。
0: 1: 2:n,n-1, ・・・3, 2, 1
次回は、これをプログラミングに起こしてみる。
Yahoo! JAPAN Tech Conference 2018 基調講演レポート
■基調講演 藤門さん CTO
- 未来を創る
- Update japan
- yahooが成し遂げたい世界を動画で発表
- Mission
- 課題解決エンジン
- 課題を解決する →未来を帰る →未来を創る
- ヤフーサービスの変遷
- 1996年型 ディレクトリ型
- 2008年型 最適化 タップができたり、見やすくしたいり
- 2015年型 パーソナル化 ユーザ毎に必要されるサービスが提供するものが違う
- サービス数100位上
- スマートアプリ数 4.7億円
- 技術的なのは資料参照
- ビッグデータ基盤
- Yahoo japan流ものづくり
- 安心安全なインターネットを創る
- データドリブン開発
- データ=ガソリン
- User(サービス提供) → Data(データがたまる) → AI(データから気付きを得る)
- 例)ヤフートップページ
- デザインを変えずに、検索クエリと行動ログからトップページの滞在率が7パーセント向上に成功。
- 例)混雑状況予測
- 過去の検索ログ、未来の検索ログから乗り換えアプリの機能に提供する予定
- ものづくりを変える技術
- 最後に
- 未来を創る
- 見え合いは予想したり想像しらりするものではない、創るもの
2018年のエンジニア成長戦略を考える その1
2018年の正月から今後のキャリアをずっと考えていた。
ちなみに今のスペックはこんなかんじ。
- 26歳
- 職業:アプリケーションエンジニア
- 技術的に業務の中で困ることはないけど、何か得意なことがあるわけでもない。
- 英語は苦手
これから、技術よりに進んでいくのかそれともビジネスサイド側に走っていくのかをずっと考えていた。そんな中、自分の中で1つの決断がついた。
30歳まで技術に進んでいく方向性で頑張ってみようと。技術をつけながら事業を想像できる人間を目指す。
では、どうやってこれから普通より雑魚な私のようなエンジニアが更にランクアップできるか。
エンジニアとしての希少性をどう高めるか。
今考えてるのは、Android(Kotlin)でアプリを作れるエンジニア。
希少性がまだ足りていない。
というか全然足りていない。
コメント等で何かあれば気楽にください。
またその2までには、具体的な戦略を考える。
社会人4年目だからこそ読む意味のある本
エンジニアなら一度は、聞いたことのある「達人プラグラマー」。
- 作者: Andrew Hunt,David Thomas,村上雅章
- 出版社/メーカー: オーム社
- 発売日: 2016/10/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (7件) を見る
社会人の最初に、リーダブルコードを読んだことがある。その当初読んだときは、なるほど凄い大事なことが買いてあるなぁ。と思いながら、次の日には、書いていたことを忘れていた。しかし、社会人の経験も4年目になって、同じ系統である達人プログラマー読んでから、読んだ次の日には、読んだことを実践していた。
やはり、ある程度経験を積んでから、あるべき姿論系の本を読むべきだなぁと感じる。
一人暮らしからシェアハウス暮らしをしてみて気づいたこと
どうも、絶賛サービス作成作りをしているサルです。
最近、会社をやめて、社宅での一人ぐらしから男友達1人とのシェアハウス をはじめました。
1週間、シェアハウス生活をしてみて気づいたことをかいてみたいと思います。
1 規則正しい生活ができる
私は、普段何か作業する前にだらだらする時間があるのですが、今友達と同じ部屋で作業をしていることが多いので、だらだらする時間が減りました。
やはり、だれかに見られているという意識が少なからず働いているので、意識的に規則正しい生活ができますねぇ。
2 困ったことがあればわりとすぐ相談できる
相方の友達も現在サービスづくりをはじめていることもあって、お互いに悩んでいることが似ていることがあります。同じような環境で同じようなことを始める人が近くにいるのは、本当にこころ強いですね。
3 読書の時間が減る
私は、以前まで読書=家でするというのが習慣になっていました。
読書するときは、一人だから本でも読むかという感じで読書をしていたので、現在は作業を同じ部屋でしているので、読書を全くしていないです。
なので今後は、読書する時間をどこかで意識的にとる必要があるなぁと感じています。
以上が気づいた点になります。
まだまだ、シェアハウスをはじめたばかりなので今後さらに気づいた点があれば記載したいと思います。
それでは、サービスづくりに戻ります。。