はてなキーワード: pythonとは
PCのリースなら許可いらない。けど古物商は取っといて損しない
https://kyoninka-support.net/43/
子供向けについて
案外、エクセルのショートカットを壁に貼って覚えましょうねみたいなのもウケるかも?
最近だと情報の授業で基礎=低レイヤのことも学ばせるみたいな話がある。勉強し直さなきゃ
大人向けについて
PythonとJavaScriptでいいだろ
既に動く環境を貸出PCに作っちゃって、講師の助けいらなくなったら貸出料だけもらって…みたいにしちゃえば解決すると思った
最近はスマホ持ってるけどPC無いみたいな人も多いしいけると考えてる(個人で細々やる分には)
----
自分の中の知識を外の人に伝えて、知識の希少価値を下げ、自身を希薄化させたいのかもしれない
身内に不幸があった2日後に泣きながら講師労働をした経験があり、自分に向いていると感じている
----
あとで考えとく
コーンフレークじゃなくて、Haskellだとして、全体のネタを書き直してくださいっていう指示した結果
ボケ&ツッコミ「お願いしますー ありがとうございますー」
ツッコミ「あー ありがとうございますー ねっ 今Githubでスターをいただきましたけどもね」
ボケ&ツッコミ「ありがとうございますー」
ツッコミ「ねー 有り難いですよ ほんとにね」
ボケ「入れておきましょう」
ボケ「いきなりですけどね うちのオカンがね 好きなプログラミング言語があるらしいんやけど」
ツッコミ「プログラミング言語の名前忘れてもうて どうなってんねそれ」
ツッコミ「分からへんの? いや ほな俺がね おかんの好きなプログラミング言語 ちょっと一緒に考えてあげるから どんな特徴ゆうてたかってのを教えてみてよ」
ボケ「あのー関数型言語で、型システムが強力で、遅延評価するやつやって言うねんな」
ツッコミ「おー Haskellやないかい その特徴はもう完全にHaskellやがな」
ツッコミ「すぐ分かったやん こんなんもー」
ツッコミ「いやそうやろ?」
ボケ「オカンが言うには 将来の夢はそれで書かれたOSを使うことやって言うねんな」
ツッコミ「あー ほなHaskellと違うかぁ Haskell製のOSなんてまだ無いもんね」
ボケ「そやねん」
ツッコミ「HaskellはOSを作るのには向いてへんからなぁ」
ボケ「そやねんな」
ツッコミ「な? Haskell側もOS開発に任命されたら荷が重いよあれ」
ボケ「そやねんそやねん」
ツッコミ「Haskellってそういうもんやから ほなHaskellちゃうがなこれ」
ボケ「そやねん」
ツッコミ「あれほなもう一度詳しく教えてくれる?」
ツッコミ「Haskellやないかい モナドは確かに難しいねんHaskellの でも俺はね あれはHaskellの良いところやと思うねん 俺の目は騙されへんよ 俺騙したら大したもんや」
ボケ「まあねー」
ツッコミ「ほんであれよー いざ使ってみたらね モナドのおかげでコードがスッキリするねん 俺は何でもお見通しやねんから Haskellのモナドなんて」
ツッコミ「そうやろ」
ボケ「オカンが言うには プロダクションで使うにはまだ早いって言うねんな」
ツッコミ「ほなHaskellちゃうやないかい プロダクションでHaskell使ったら 上司がひっくり返すもんね Haskellはねー まだ研究段階やから実務では使いにくいねん」
ボケ「そやねんそやねん」
ツッコミ「な? Haskell使ってみたらだんだん罠が見えてくるから 最後ちょっとだけ避けてまうねんあれ」
ボケ「そやねんそやねん」
ボケ「そやねんな」
ツッコミ「Haskellちゃうがな ほな もうちょっとなんか言ってなかった?」
ボケ「学生の頃 なんでみんな憧れるんか分からんかったらしいねん」
ツッコミ「Haskellやないかい 学生の頃はHaskellとOCamlとLispに憧れるんやから あとSmalltalkも憧れたな Haskellそんなもんよ」
ツッコミ「そうやろ」
ボケ「オカンが言うには 関数型プログラミングの教科書に必ず載ってるっていうねん」
ツッコミ「ほなHaskellやないかい 教科書のサンプルコードにHaskellのコードが出てこんわけないやん」
ツッコミ「Haskellはね 関数型プログラミングの王道中の王道やねん」
ツッコミ「Haskellや絶対 ほな ほなもうちょっとなんかゆうてなかったか?」
ツッコミ「Haskellやないかい Yesodとかあるやろ な? RubyとかPythonの次はHaskellが来るって言われてるねん 俺はそう思うよマジで Haskellや絶対」
ツッコミ「そうやて」
ボケ「オカンが言うには ジャンルでいうたら数学やっていうねん」
ツッコミ「ほなHaskellやないかい ジャンルで数学言うたらHaskellしかあらへんやん な? Haskellは数学の理論がベースになってるんやで ラムダ計算とか圏論とかな」
ボケ「そやねんそやねん」
ツッコミ「ほなHaskellに決まりやないかい ほなもうちょっとなんかゆうてなかった?」
ツッコミ「Haskellやないかい Haskellは変数が不変やから 変数に感謝するのは当然やねん ね? 状態変更せんと安心して使えるからな」
ボケ「そやねんそやねん」
ツッコミ「Javaとかの変数は裏切るからアカンねん Haskellの変数は一生そばにおってくれるから最高やで」
ボケ「でも分かれへんねん」
ツッコミ「分からへんことない おかんの好きなプログラミング言語はHaskell もぉ」
ボケ「でもオカンが言うには Haskellではないって言うねん」
ツッコミ「ほなHaskellちゃうやないかい オカンがHaskellではないと言うんやから Haskellちゃうがな」
ボケ「そやねん」
ツッコミ「先ゆえよ 俺がラムダ計算の説明してる時どう思っててんお前」
ツッコミ「ホンマに分からへんがなこれ どうなってんねんもう」
ボケ「んでオトンが言うにはな」
ツッコミ「オトン?」
やめたい。文字をグダグダ書き込んでしまうという悪癖→これしかたない。
Youtubeにポストしたいのが、Vrewだとそれも可能なのだが、制作数制限がかかっちゃう。
ほんとう、Pythonのコードとかで文字列ぶちこんだら、画像まで生成してくれればいいのだけど・・
べつにそんなに難しいハナシでもないようなきがする。
ショート動画に限る。おそらくしゃべらせて一分以上の濃ゆいなかみになることなんて、めったにないし、・・
これは別に難しくなさそう。たとえば文字数が40こえるたびにタイムスタンプをうつ。
時間は、文字数×比例定数でいいでしょう。そしてSRT形式で保存する。
スマホからショートをなげこむのなら、Youtube側で生成してくれる.
無能のデスクにどんどん仕事が溜まっていくので仕方なく一部の仕事を肩代わりすることにした
1000枚くらいの伝票からPCにデータを起こす作業なんだけど
「この①Excelファイルにまず伝票番号と種別を打って、次にもう一回伝票を見て②Excelファイルに日付と数量を打って、
最後にもう一度伝票を見ながら③Excelに数量と種別を打ってそれぞれ間違いがなければExcel内の集計結果が一致します」
こんな新人とかバイトにでもやらせた方がいいバカ向けの作業をそのまま実行するほど暇ではないので
まず生データのExcelファイルを作り伝票番号、数量、種別、日付を一通り入力してそこから3つのExcelにデータを転記するPythonを書いて仕事の手順を簡略化した
これで無能が1週間かけてやっていた作業が1日で終わるようになったが、一通り処理して伝票と集計結果を無能に渡したところ
「引き継ぎの時に言わなかった自分も悪いが伝票は役所に提出する関係でこういう順番に並び替えて持ってきて」と鼻で笑って突き返してきた
Vimを使っている開発者が、pythonコードのインデントをスペース2として書いていた
他の開発者はpep8に従っているのでインデントはスペース4である
Emacsでは、tabを押せば即座にスペース4として補完されるのでタイプ数が増えるということはない
ところがこのVim利用者はスペースを2連打して入力していたようである
コーディングスタイルは、原則としてグローバルスタンダードとなっているものを採用した方が良い
pythonであればpep8を使えば、他のコードとの整合性もとれる
もし他の開発者が「スペース2のほうが生産性が高い」というなら、tab一回の入力で補完されるような環境設定を推奨すべきである
つまり、コードブロックを視認するためには4ぐらいの幅があったほうが見やすいということだ
いや上手い下手じゃなくてPythonとかRなんて環境が入ってるやつがゼロや
プログラミングなんて一切やってない
気が利いたやつがERP的なアプリケーションのセッティングしたりとかレポート作ったりとかはあるけどプログラミングやるやつは、まあ当たり前だが、ガチでゼロ
職場にリーマンショック世代の30半ばくらいのおっさんがいるんだが
マヂで無能すぎる…
英語もダメ、パソコンやプログラミングもダメ、会計も苦手、データ分析もできないetc.
前に飲み会の時に聞いたら、就活の時はTOEIC600点しか取れなかったって言ってて驚いたわ
じゃあ何ができるかって聞いたら「コミュ力」があるとかそんなことを言ってて呆れたわ
と言うか10年くらい前ってTOEIC600点でも評価されたってのが驚きだわ…今なら最低750点がマストだぞ
しかも10年前だから会計の国際的なコンバージェンスの進んでない時期だから、収益認識や棚卸資産とか最新の会計基準の知識に乏しい
正直ここ10年くらいで新卒や若手に求められるスキルセット、特に文系向けのスキルセットが変わって
従来の単純なコミュカだけから、PythonやRといった基礎的なプログラミングのスキルや統計解析といったデータサイエンスの知識がほぼ必須になってるんだわ
多少デグレしても問題ないシステムなら適宜コード直せばいいけど元増田見たら社外とデータやり取りするシステムっぽいし
こういう『明らかにゴミだけど直した副作用で問題起きたら100%いじったやつの責任になるから手出しできない』系のものはそこらじゅうの会社にあるよ
俺は社外に出ない資料作る仕事してるから1回数時間かかるゴミVBAをPythonに移植して数秒で終わらすみたいなこと気軽にしてるけど移植とかコード書き直して一発で綺麗に決まることあんまないから俺が元増田の立場なら多分システム直すより転職考える
この日記の内容は、会社の後輩から「最近エクセルマクロを勉強し始めて(キラキラ)」という話を聞いて、先輩ムーブをかますために話した内容になります。
とにかくこれから説明する「計算用シート」が憎くて憎くてたまらず、ちょっと引かれるほど熱弁してしまいました。
ただ、他の方がどうされているのかや、逆に「計算用シート」を愛用する方の意見も聞きたくなり、増田に書いてみました。
エクセルマクロのお作法とか書きましたが、要するにエクセルマクロで「計算用シート」って色々な意味でよくないよね、という話をしたいです。
3行でまとめます。
〇 エクセルシートはユーザーインターフェース(インプット)か出力結果(アウトプット)のためのものとすべき
〇 データ加工をする場合には、原則配列や辞書型配列(連想配列)に格納して加工を行い、最後の結果だけシートに出力するべき
〇 何事にも例外はある。
エクセルマクロにも色々あると思いますが、今回は下記を想定します。
日付や人物名などを入力し、データベースや別のエクセルファイル、別のシートから取得したデータを入力された値を基に加工し、加工後のデータをシートに出力する
この場合、入力欄があり編集可能なシートがユーザーインターフェース、最終的に加工されたデータが出力されるシートが出力結果です。
(もちろん、ユーザーインターフェースの別の欄(セル)に出力する場合もあるし、その場合はユーザーインターフェースと出力結果が一体のものとみなします。)
また、データ用シートは同じエクセルファイル内に基となるデータが含まれる場合を想定します。
(これ自体が非推奨で、SQLデータベースかせめてAccessを使え、という意見はありますがそれは別にして…)
ではここで定義する計算用シートとはなにかというと、文字通り計算を行うためのシートです。
1.元となるcsvファイルをエクセルに読み出してシートに格納
2.そのデータは日付が数値型になっているので、日付(数値型)の入った列を文字列に変換した日付(文字列型)列を新たに作成
これは極端な例ですが、とにかく変数や配列を定義せず(あるいはエクセルのセルオブジェクトを変数のように扱い)、エクセルに値を入力し、それを直接加工することで目的となるデータ加工をしたり、様々な処理をします。
なんかこんな感じの処理をしているエクセルマクロ、どこの会社でも腐るほどあるんじゃないでしょうか。
ある程度マクロに慣れた気の利く人なら、このシートはロックや非表示にして、ユーザーから触れないようにするでしょう。
・・・これ、やめたほうが良くないですか?。
ある程度詳しい人なら同意してくれると思いますが、このやり方でダメな理由はいっぱいあります。
後で説明する配列や辞書型配列(連想配列)と比べると格段に処理が遅いです。
ちょっと詳しい人が知っている「画面更新の非表示」を駆使しても、配列を使った処理からみれば止まったハエです。
いったんエクセルシートにデータを格納して加工しているので、コードとエクセルシートを両方見る必要があり、とても読みにくいです。
変数として命名されていないのも致命的で、処理の意図が余計に分からなくなります。
計算用シートを事前に用意して、別のセルに関数を格納しておき、マクロと関数を使ってデータ加工をするものも見たことがあります。
あまり知られていませんが、セルの最大文字数は32,767 文字です。
セルの最大文字数を超えると自動的に隣のセルに値が入り、シートが滅茶苦茶になります。
他にもエクセルの数値を丸める自動変換の仕様とか文字列→日付の自動変換とか、いくつものバグに苦しめられます。
できる人だと、いちいち最大文字数が多い場合の処理を書いたり自動変換機能を殺したりしてくれますが、そんなことに手間をかけているから日本のGDPは上がらないんだと思います。
他にも、データが大きくなると処理が重くなり不安定になる、計算用シートを人が触ってしまうリスクがある、などいくらでも理由は上げられます。
(逆に利点は、目の前でガチャガチャ動いてスーパーハッカーになった気分になれるくらいしか思いつかない・・・)
配列を使いましょう。
配列とは何ぞや、という人はググってください。
配列にデータを入れて、データ加工は配列や変数に対して行い、一番最後の出力だけセルに値を格納する。
個人的にオススメしたいのは辞書型配列(連想配列)で、うまく使うとデータの管理が簡単になり、処理も爆速になります。
(参考)【VBA】大量データから高速で値を検索【Dictionaryを使う】
csvファイルもなまじエクセルで開けるだけに別のブックやシートで開きがちですが、これは悪魔のささやきです。
直接ファイルを読み出してLine InputやSplitで配列に格納しましょう。
エクセルとして開くやり方はコード書くのは簡単でも、実行時間に天と地ほどの差が出ます。エクセル開くと処理もめちゃ不安定です。
(参考)Excel VBAでCSVオープンするときのパフォーマンス比較
いや、冒頭のマクロを書く人の気持ちも分かるつもりです。自分もコードを書き始めたころは全部シート上で操作していました。
冒頭のマクロのほうが直感的なんですよね。自分が手で書くことをマクロにやらせる、というマクロ本来の趣旨にはあっていますし。
途中の計算過程もすべて目の前で展開されるから分かりやすいです。
ただ、それではダメなんです。。。処理は遅いし挙動は不安定だし後で改修・保守する人が死にます。
あと、エクセルシートやセルは当然エクセルにしかないので、エクセルマクロ(VBA)から他の言語に移れなくなります。
自分もエクセルマクロの里の出なので、計算用シート脱却には苦労しましたが、苦労して会得した配列や辞書型配列(連想配列)のスキルはそのまま他の言語に活かすことができました。
配列の中身を見る方法は別にある(ローカルウィンドウやDebug.printを使うなど)ので、リハビリに取り組んでほしいです。
(参考)VBA デバッグの仕方
計算用シートを許容できる、使うべきケースもあると思います。。
個人的には、
(最後のは、なんでも自分で確認しないと気が済まない上司の発注で、意味不明と思いましたしたがしぶしぶやりました。)
この場合、インプットのエクセルシートに直接加工するのは論外なので、計算用(加工用)のシートを用意してそこで操作を行うことは必要だと思います。
他にも、こういうときは「計算用シート」があったほうが良い、という状況があれば教えてもらえると嬉しいです。
そもそもツッコミとして、「データ加工するならエクセルマクロを使わずにpythonとかRとかもっとまともな言語使えよ」という言葉が来そうな気がします。
ただ、個人的にはエクセルマクロ(VBA)は大好きですし、初心者にもおすすめしたいです。
自分のような非エンジニアだと、セキュリティの関係などでPythonの開発環境とかすごく用意しにくいんですよね。
(あと、コマンドプロンプトの真っ黒な画面が怖かった)
その点エクセルマクロは、開発環境の用意はプロパティでチェック項目を一つオンにするだけだし、入門書がたくさんあるし、セルの挙動を追えば視覚的にプログラムを理解できるし、初心者に優しいです。
(そのやさしさが上述したとおり悪魔の罠なわけですが。)
最初は計算用シートに頼ってでもエクセルマクロからプログラミングを始めて、本格的なデータ加工をし始めたあたりで計算用シートという諸悪の根源から脱却する。
さらに本格的なデータ処理を行うために、PythonやRなど別の言語を習得したり、エクセルからSQLデータベースやACCESSなどに切り替えていく、というプロセスがいいのではと個人的に思います。
一線級になりたいとかないならそれくらいでいい。
バカ「Pythonやらないと死ぬぞ!Rustやらないと死ぬぞ!Reactやらないと死ぬぞ!うわあああああああああああああああああ」
二種類のバカを信用するなという話だ。
まだマシな方。しかしあまりにもメンタルがバカすぎるので真似してはいけない。
暇な時間、仕事の合間とかプライベートで普段やってる趣味とか飽きてきたくらいに
ちょろっとやるくらいでも全然いい。
後は多分別の機会でメンタルやられて死ぬか、融通が聞かないタイプのアホが多い傾向なので仕事をうまく回せなくなって死ぬ。
お前は逆に何もしなさすぎ。
老人見てるとわかるだろ?
こいつらは若年性アルツハイマーみたいなもん。ホンマにその病気の人はまだ同情できるけど
会社の付き合いなんにもしません、それ俺の仕事じゃないんで、聞いてません。
いや、プライベートを重点的に頑張るのはアリといえばアリだろう。
社内政治も頑張らない。
いや、良いんだけど、真似したいとも、助けたいとも思わない。
このバカ共と同じ分類をしてはいけないのは社内政治を頑張る方々だ。
社内政治とは少し大げさに書いたが、しっかりとしたものからコミュニケーション、いわゆる飲みレベルまでを含んでいる。
当たり前に思うだろうが、会社の付き合いや持ち回りのあれこれをこなす方々にとって
さっきの不安バカの説明でも書いたが、あれくらいの感覚だとIT知識を身につけるお時間はないということはあり得る。
今仕事でよくExcel VBA使ったツール作ってるんだけど、これがまためちゃくちゃ楽しくて、もっと出来ることを増やしたい
でもVBAは属人性高いからあんまり良くないよね、という話も聞く(たしかに、今のところ全部自分用のツールとして作っているから上手くいっているけど、他人に渡したときに想定していない動きをするのがかなり怖い)
このレベルの人間が次に勉強すべきところってどのへんなんだろう?そして、どんな仕事ができるんだろう?
やっぱりPythonとかなのかな……学ぼうとして一度挫折しているから重く感じてしまうんだよな……どう勉強したらいいのかもわからないし……
PowerQuery?とかPower BI?とかもよく聞くし気になるけど、仕事で使える場面あるだろうか……
結局仕事でやらなきゃいけないことがある→楽に処理したい→楽するためにツール作る、みたいな流れが一番楽しいし身になるんだよな……
↓追記
すごく今更だけどトラバがいくつかついてた。