「高速フーリエ変換」を含む日記 RSS

はてなキーワード: 高速フーリエ変換とは

2022-12-05

anond:20221205195519

コンピュータ概念すら存在しなかった頃に何故か高速フーリエ変換アルゴリズムを知ってたガウスかいマジで転生者なんじゃねーかこいつっていう存在が既にいるんだよなあ。

2021-06-17

anond:20210617075257

web技術ってつくづく興味湧かねーな…。技術と言うよりは技能なんだよなあ。原理がなくてノウハウの寄せ集めでしかないというか。それはそれで世の中には求められてるんだけどさ。

高速フーリエ変換のような高度な数学必要ないが

FFTは「高度な数学」ではないだろ。

経験から1ヶ月でWeb企業就職する勉強法

取り上げた技術は、本格的な開発でも役に立つもので、最も学習コストが低いものを選んだ。

重要度が低いものは載せていない。たとえばHTMLCSSなんてググりながら書けば全く問題ない。Bootstrapなどのフレームワークも全くやる必要はなく、仮に就職先で使っていたら覚えればいい。

逆に言えば以下に挙げる技術は、そもそも概念自体プログラミングにとって普遍的ものであり、(基礎的な部分を)調べながら使うようではエンジニア失格ということ。

基本的現在では、バックエンドフロントエンド運用保守全てができないエンジニア価値は無い。

以下に挙げた技術(①⑤⑥は他の言語フレームワーク代替可能)が身に付いていなければまともな企業就職することは難しい(もちろん、下らない業務システム下請けで作ってる底辺企業には入れるだろうが)。

経験者でも、これらができない/わからないのは、相当恥ずかしいことだと思った方がいい。

特定言語フレームワークの書き方を知っていること自体意味は無い。

重要なのは、他の言語フレームワークにも共通する基礎を理解すること・保守性やセキュリティなどの品質を高める使い方ができること。

PythonJavaScriptマスターする

この2つは習得が容易だし、今覚えておけば向こう10年腐ることはないだろう。

プログラミング言語完璧理解する必要がある。

基本的な構文や、よく使う標準ライブラリは勿論、高階関数クラス・非同期処理等の発展的な機能も知り尽くしていなければならない。

言語のみではなく、パッケージ管理単体テストタスクランナー等の周辺ツールの使い方も熟知している必要がある。

また、「リーダブルコード」や「コードコンプリート」に書いてあるような良い作法も身に付ける必要がある。


Gitの基本操作を覚える

Gitを使えないのはプログラマーとして論外。細かい機能は調べればよいが、

等の基本的フローは必ずできなければならない。


Linuxの基本操作を覚える

多くの場合、本番環境テスト環境Linuxサーバーであるから、以下のような基本的概念と使い方を知っておく必要がある。


Dockerの基本操作を覚える

環境構築、CIデプロイなどは、現在コンテナを使って行うことが当たり前になっている。

これも細かいことをすべて覚える必要はないが、Dockerfileの書き方や、docker-composeの使い方などは知っておかなければいけない。


⑤ Flaskを覚える

Flaskは、数あるWebフレームワークの中で最も簡単。本当に呆れるほど簡単で、Pythonさえ書ければすぐにアプリを作れる。

フレームワークを覚えること自体重要なのではなく、Web開発の基本を習得することが重要HTTPルーティングデータベースSQL認証セッション管理などは当然すべて覚える。

データベースは、就職したらMySQLPostgreSQLなどを使うことが多いかも知れないが、今はPythonの標準ライブラリにあるSQLite3を使えば十分。

作ったアプリを公開したければ、「Heroku」などにデプロイするのが良いだろう。

追記 2021/06/17 14:07

ブコメで指摘をいただきました。HerokuではSQLite3は使用できないようです。公式ドキュメントに従ってPostgreSQL使用して下さい。

SQLite3はファイルデータを持てる簡易DBなんだけど、Herokuデプロイしてもストレージ的な使い方はできないから、結局PostgreSQLを使う必要あるから注意してね。(DAOを丸ごと書き換える羽目になる)

参考: https://devcenter.heroku.com/ja/articles/sqlite3

ありがとうございます

Vue.jsを覚える

今の時代フロントエンドフレームワークなしで作るのはただのバカ

2021年現在実用的なフロントエンドフレームワークはReactとVueしかない。Vueの方が少し簡単なのでこちらを選んだが、JavaScriptをしっかり理解しているなら大差は無い。

フロントエンドには膨大なパッケージ群があって全部覚えるのは大変だが、とりあえずまずはVue完璧に使えればいい。Webpackの設定などは既存のものを流用すればいい。



基本的アルゴリズムを学ぶ

アルゴリズムは全てのコンピュータ技術の基礎であり、絶対に知っていなければならない。

高速フーリエ変換のような高度な数学必要ないが、クイックソート木構造のような基本的アルゴリズムは当然、その性質を知っていなければならない。

それらは言語組み込み関数や標準ライブラリでも使われており、理解していなければ、それらの機能を正しく使うことができない。

また、プログラムを読み書きする際には、そのコード計算量を見積もれなければならない。

セキュリティを学ぶ

セキュリティは言うまでもなく学ばなければならない。

有名な脆弱性攻撃手法XSSSQLインジェクション・CSRFなど)が何だか理解していて、その対策実装できなければならない。

各種暗号化技術署名などについても、実装の詳細は知らなくていいが、共通鍵暗号や公開鍵暗号などの特性理解する必要がある。

認証パスワード管理などを実装する際は、当然ベストプラクティスに従わなければならない。

2021-05-02

anond:20191113175923

高速フーリエ変換が未だによく分からないので誰か教えてください

回転子とか使った解説の方が分かりやすい感じがしたんだけど途中で投げてる

2020-10-28

別に高速フーリエ変換アルゴリズムは知らなくてもいいけど、Web制作者ならPNGJPEGの違いくらい知っててくれ。

2018-12-31

anond:20181231202418

普通にコード書いたけど、リアルタイムなら特にコード最適化してないプログラムinMBPでも N=2000位まではいけるっぽい。

cos()とsin()を大量に計算するだけなので、最適化すれば多分44.1Khzくらいまではレイテンシ1秒以内で計算できるんちゃうかな。

γ線かになると流石に不可能ってのは理解したが。(そのために高速フーリエ変換があるってのはわかった)

2018-07-31

数値計算問題をいまどきの言語で教わりたい

横軸に言語を並べる。 Fortran, C, C++, Python, Go, Rust, Kotlin, あとなんか好きなもの並べる。

おっさんに対抗するためにFortranとCとPythonは必ず書いておく。

縦軸に数値計算関連のキーワードを並べる。

標準で扱える数値の精度、複素数, 多倍長演算, 特殊関数, 線形代数, 乱数, 高速フーリエ変換, 統計, その他いろいろ。

交差するところにライブラリ名前を書く。標準で持ってるなら標準装備とか○とか書いとく。

という作業を誰か俺の代わりにやってくれるか既にあるなら教えてください。

 
ログイン ユーザー登録
ようこそ ゲスト さん