「競技プログラミング」を含む日記 RSS

はてなキーワード: 競技プログラミングとは

2023-03-27

anond:20230327124548

プログラミング好きは寝ても覚めてもコーディングしてる」ってなんか、よく聞くけど

それ「うまい絵師手書きで正確な円が書ける!!」

みたいな世迷い事だと思うんだよな

外資系だといわゆる競技プログラミングみたいな問題入社試験で解くけど

あれは解法を覚えるゲーム

練習問題を多く訓練的にこなせばできるようになるものなんだよ

からIT企業にいるのは「程よく与えられた問題をこなせる優秀者」であって

1000年に一人の天才とかではないってこと

IT企業といってもサラリーマンから天才性の強すぎる人は会社員にならないんだよね

2023-03-03

ADHD当事者リアル感覚

ふと、ADHD当事者リアル感覚表現したいと思った。

物心ついた頃から現在までのことを(ボカしやフェイクを入れつつ)時系列で書かせていただく。

N=1の話で恐縮だが、読者には少しでもADHDについて知って欲しいし、それにより社会の分断がなくなって欲しいと思う。

と、ここまで書いて思ったのだが、私は数日前よりADHD治療薬を断薬しており、マトモに「書く」ことができないことに気がついた。数日ぶりに薬を飲むこととする。

1.〜小学生

およそ30年前、共に高卒の両親から長男として産まれた。

母親専業主婦だったり、少しパートをしたりしていた。

父親について覚えているのは、しょっちゅう会社を辞めてしまうということだ。それも突然に。

故に、夫婦喧嘩が絶えない家庭だった。

何かが(主にカネ)キッカケで口論となる。

不貞寝する父親。怒り狂う母親

暴力を振るう父親実家電話しようとする母親

電話線をハサミで切り、電話機を叩き潰す父親

父親包丁を突きつける母親。まだ産まれたばかりの弟を盾のように前に突き出す父親

床にぶちまけられる牛乳

警察を呼んだ方がよいのか本気で悩む自分

私が思い出せる小学校低学年頃の家庭の記憶はほぼこれだ。

弟が1歳の頃、「ハロワいけ!」と喋ったことを覚えている。母親の真似である

自分自身について書くと、忘れ物の多い子供だった。

教科書を忘れ、資料集を忘れ、宿題の提出を忘れ…

机をくっつけて、隣の席の子しょっちゅう見せてもらっていた。授業はまあまあ理解できていたと思う。

宿題に関しては「忘れる」というより「やろうとしても動けない」が正しい感覚

テコでも動けなかった。

宿題の代わりに家で何をしていたかというと、デュエル・マスターズデッキを組んだり、ミニ四駆カスタマイズをしたり、スマブラDXをしたり…?あれ、そんなもんかな。当時何してたか自分…あまり思い出せない。熱中すると深く深くどこまでも熱中し続ける性格だった。(過集中)

同じマンションに1つ下、1つ上の子供が何人か住んでいたので、毎日遊んだ河原秘密基地作ったりとかしていた。

また、男女分け隔てなく誰とでも遊ぶ子供であった。

違う。

(上で挙げたマンションの住人以外の)男の友達がどうしても出来なかった。

全く交流できないということではなかった。

あいさつはするし、何人かでサッカーをする時は参加していた。

同学年で話したことがない人は恐らくいない。

誰とでもそれなりの雑談ができた。

しかし、そこ止まりだった。

輪に入れはするが、誘われる人間ではなかった。

故に、常に疎外感を感じていた。

今になって振り返ると、原因は恐らく「自分の話ばかりして止まらない」から嫌われたのだと思う。

次第に、無理してグループにいなくてもいいと思うようになり、休み時間教室でひとりでボーっとしていた。

かねた心優しい女子グループが、自分を輪に入れてくれた。情報量0のどうでもいい雑談がとても楽しかった。自分が輪に誘われたことが、なんだか初めて他人に受け入れられたようで、とても嬉しかった。

通信簿の「担任からコメント欄」には毎年「男女分け隔てなく仲良く友達がおり〜」と書かれていたので、客観的にはそう見えていたようだ。

2.中学高校大学

地方なので中学受験をする人なんてひとりもおらず、当然のように地元公立に進む。

当時は中学受験という言葉すら知らなかった。

中学での成績は150/200あたりだった。

日々の勉強時間は0分。

たまに一夜漬けの過集中が爆発して、50番あたりになった。

国、社、英は不得意で、理数が得意だった。

相変わらず宿題はできないし忘れ物は多かった。

勉強をしない分の時間は何をしていたかというと、運動部活動をするか、家のパソコンニコニコYouTubeを見たり、携帯を買い与えてもらえたのでモバゲーMixiをやっていた。

中学3年で麻雀を覚え、どハマりした。

ハンゲーム天鳳毎日夜中まで打つようになった。

高校受験は持ち前の過集中で上振れを引き、偏差値50位の公立情報学科に滑り込んだ。

元がアホなので上振れしてもこの程度である

地方偏差値50なんてハナクソオブハナクソである

なぜ情報系にしたかというと、自分専用のパソコンを親に買ってもらう為だ。

高校では朝読書時間があったので、とつげき東北氏の「科学する麻雀」を何度も何度も読み込んだ。熱心に読みすぎて、本の小口が手垢で黒くなった。点数計算を覚えたり、チンイツの牌効率を考えたり、24時間麻雀のことを考えていた。

この頃はもう自分の行動を制御できなくなっていた。自室のPC毎日朝までニコ生をしながら天鳳を打っていた。学校の授業は全部寝ていた。教師は注意しても無駄だと悟ったようだった。自分人生天鳳の段位とレーティングが全てだった。

謎の過集中で競技プログラミングが少し出来たので(当時はchokudai氏もまだ大学生で、AtCoderもない時代だった)、大会に参加して何度か受賞するなどした。

その後、持ち前の過集中により小論文面接突破し、AO(アホでもオッケー入試)により近所の私大に滑り込む。

麻雀への情熱大学に入っても変わらず、1限どころか2限3限も出席できなかった。たまに講義に出ても何も分からなかった。

イプシロンデルタはみんなも分かってないようだったが。

情報系科目だけはテストだけ出て100点を取るという天才ムーブかました(自慢)。

数学情報科学だけは好きだった。

麻雀サークルに入った。楽しかった。今でも付き合いのある友人が数人できた。

2年次が終わった時点で16単位しか持ってなかった。中退した。

3.社会

バイト経験すらないない、学位すらない、麻雀廃人の二十歳が社会放出された。

なんていうか、普通に死のうと思った。

ある日、ふと一回死んだ。

自○未遂をしたということではない。

自分は今死んだ。そして新しい自分が今生まれた。そう思うことにした。

どうせ一回死んだのだから、もう好きに生きよう。

それでなんともならなくなったら、生活保護でも受けよう。

それもダメなら最終的に死ねばよいだけだ。

とにかく今死ぬのはもったいない、と思うことにした。

一応、親は家に住まわせてくれた。

速やかに就職して家を出ろということだったので(言われなくてもそうするが)仕事を探し始めた。

やり方がわからなかったので、若者向けハローワーク的な所に行った。色々親身に相談に乗ってくれて、クソみたいな人売りSIerを紹介していただき内定が出た。

自分内定が出るということは、「バイト経験すらないない、学位すらない、麻雀廃人の二十歳に内定を出さざるを得ないクソ企業であることが導かれるのである

人売りのクソさを書くと主旨がブレるので割愛する。

結果的に、一年半で会社を辞めた。

自分特別社会適応できなかったのかは分からない。他にも大勢辞めていたから。

この辺で(不快になる方もおられると思うので大変恐縮なのだが)所謂理解ある彼女ちゃんが突然地面から生えてきて、家を出て2人暮らしを始めた。

会社を辞める前に人生初の精神科に行き、うつ診断書を書いてもらい、色々金に困らないような諸手続きをした。こういう手続き自分では何もできないので、理解ある彼女ちゃんサポートしてくれて本当に助かった。

うつ治療で通院する中で、医師よりADHDについて指摘された。

ストラテラというADHD治療薬を飲み始めた。

3割負担だとバカ高かった。1ヶ月分で5000円以上したのではないだろうか。当時はジェネリックがなかったと思う。無職にはとても支払えなかった。

色々手続きをして、1割負担になった。

4.現在

ストラテラを飲み始めてから、本当に変わった。

脳の中の話なのでうまく言語化するのは難しい。

簡単にいうと頭がめっちゃ良くなる感じだ。

特に「読み書き計算」がすごい。

今まで自分は文をうまく読めなかった。

脳のメモリが小さいので、読んだ瞬間内容を忘れてしまい、戻り読みばかりしていた。

また書くのはもっと苦手だった。いくら考えても頭にモヤがかかり、表現が出てこなかった。

そして計算は最も苦手だった。一時的に何かを記憶しておいて、他のことを考えるのが無理だった。

プログラミングが得意だったのは、自分計算する必要がなく脳のメモリがあまり要らないからだろう。

皆これが普通だと思っていた。

薬を飲む前は苦手だとも思っていなかった。

当然みんなもそうなんだと思っていた。

こんな「脳縛りプレイ」で学生生活を送ったら、そりゃ、こうなるわと思った。

薬を飲んでからは夜更かしが減った。

自分の1日を計画コントロールできるようになった。

アホみたいな情熱に突き動かされることはなくなったが、その方が穏やかで心地よかった。

人生も徐々に良い方向に向かった。

5.総括

長々と書いてしまった。

もし読んでくださった方がいるのだとしたら、とてもありがたいと思う。

自分ADHD当事者として、発達障害で苦しむ人の気持ちが分かる。

「○○ができないだけでしょ?」「やれないっていうかやろうとしてないだけでしょ」のような反応を見ると、心が痛む。

かに、その瞬間を点で見ればただそれだけのことである

しかしながら、発達障害はその「できない」「うまくやれない」があらゆるライフステージで常に足枷となり、人生全体に負の影響を及ぼし続ける。

そして大人からは常に怒られ続け、自己肯定感もなくなり、「自分可能性」を信じられなくなる。

その一瞬だけではないのだ。「常にその状態が続く」ことによる不利が、生まれた瞬間からその人にはあるんだということを、できれば理解してほしいと思う。

そして、今小さい子供を持っている親に言いたいこと。

もし子供が何かをできなくても、その全てを無条件に受け入れてあげてほしい。

学校安心感を得られない子供には、家庭しか場所がない。

そして、もし発達障害の疑いがあるなら、早い段階で医療アクセスしてほしい。

子供保険証を持って一人で病院に行くことなんてできない。親が全てだ。

治療は早ければ早いほどよいと個人的に思う。

子供の1日1日はかけがえがない。その1日をデバフがかかった状態で過ごすことの影響は、子供の一生を左右しかねない。

2023-02-08

[]自称インテリの子育ては早期参入性にこだわる

最近、ある疑問が浮かんできた。

競技プログラミングで赤になる人を見てきたが、不思議だったのは、高IQが失敗していることはあるが、それよりもIQの低い人がずっと成長すること。

例えば思考パターンの差は関係するだろうか。BFS思考の人は可能アルゴリズムアイデアをたくさんブレーンストーミングして問題解決しようとするが、DFS思考の人はアルゴリズムを選び、それをより深くより複雑にして、最終的に問題解決しようとするかもしれない。もっと良いのはA*思考の人。

人間がなぜ「知能」という広い概念を「符号なしchar」に詰め込もうとするのかよくわからない。確かにIQは何かを表していて、それが特定スキルとうまく相関している可能性もあるが「競技プログラマー競技プログラマーとして特殊能力を持っている」と言ったほうが近いのではないか

問題を早く解決できればできるほど、より多くの問題解決でき、より多くを学ぶことができるので、コーディング一種自己改善能力とも言える。

一方で残念なのは、paizaレーティングツイートしているような人たちで、明らかに努力痕跡が見られる人を馬鹿にするように、たった数回でトップレーティング上り詰めるような人がいることである。これは「IQが高かったから」なのか、それとも別の要因が背後にあったのか。

もしIQとはあまり関係がなく、継続的努力することが成功要因であれば、年齢ができるだけ若いときに参入した者の勝利である。そういうわけで、プログラマー子育てをすると躍起になる傾向にある。

2023-01-19

[]能力主義のフリをしたポピュリズム

Q: 政治では「誰が何に値するか」についての議論が盛んであるあなたなら、どうやって「誰が何に値するか」を定義するだろうか。

 

能力主義が本当に悪いのかとふと思った。

大衆権利についてのゲームを「人狼ゲーム」に喩えるなら、能力主義は「チェス」だと私は考えている。

私が得意なのはどちらなのかと考えるとチェスの方だ。

ここでいう「チェス」は実際のところどんなジャンルでも良い。

能力を正当に評価する方法存在し、かつそのジャンルが多様であるほど良い。

では「受験勉強必死にやり、学歴を得て、その学歴を用いて就職する」という一見能力主義に思えるプロセスがなぜポピュリズムなのか。

よく考えてみると、大衆が望むようなタイプ能力で一律的に評価をしていることに関係する。

「(遺伝意味でも)暗記が得意」「努力評価する」「外れた人間を叩く」こういう性質を持つ大衆について聞き覚えは?

このような大衆が、受験戦争に躍起になるのは必然ではないのか。なぜならそれが彼らが信じる大衆権利からだ。

要するに大衆側が「俺達は努力をして学歴を得たんだ。それが尊重されるべきだ」と言っているのである

私はチェス好きな人間なので、そういうくだらんポピュリズムはクソだと思う。

個人能力を様々なジャンルにおいて多様な方法可視化し「僕が思う最強の能力評価指標」などという独善支配されない能力主義指標が要るのではないか

しかもその多様なジャンルというものが、個人経済状況に影響されない、公平なものであるのが好ましい。

喩えで言うなら、オンラインチェス競技プログラミングは(不正を検出できれば)能力主義指標としては比較的優れていると言えるだろう。

このような能力主義が「多様な」ジャンル評価されるのが、本当の能力主義だと私は思っている。

そしてそれは「人狼ゲーム」よりはまともな社会ではないか

ポピュリズムとはつまりカルト宗教(創価学会, 統一教会, Google)が政治癒着して無能洗脳して権力を得る世界のことである

エリート」と「大衆」を区別する必要はない。

正当な評価方法確立されれば、多くの人が何かしらの得意分野を持つことができる。

誰もが、あるジャンルでは無能であり、あるジャンルではエリートになれる。これを「多元主義」と言う。

多元主義以外のアプローチについてあなたアイデアがあるなら是非聞いてみたいものだね。ま、無いと思うけど。

2023-01-17

いじめられっ子の親に元いじめられっ子が言いたいこと

n=1の意見貴方のお子さんは同じ考えではないかもしれないてあくまで参考程度に聞いてください。ポイントは下記の2点のみです。

不登校になったら学校に掛け合ったりしないで欲しい

不登校を選んだのは学校経験した事象を経て、苦しんで苦しんで苦しみ抜いた上で選んだ選択なので、不登校になった頃には学校に関わるあらゆる物が苦痛で仕方が無かったです。その状態の子供に克己心を持たせようとするのは死人にムチを打つような物なので、子供の心に蟠りが生じます。私は親に「ちょっとリビングに降りておいで」と言われて降りたら当時の担任が居たことは今でも親への不信を抱く理由の一つになっています

安心して勉強が出来る環境を整えてあげてほしい

学校で沢山嫌な思いをした子供学校に関連するものが大嫌いになっています勉強が好きでもない子供にとっての勉強なんて「良い学校へ行くための苦行」ぐらいの認識ゆえに、学校行きたくない子供にとって勉強をしない事が最も学校から遠ざかることができる手段になりますしかし、子供学力だけは守って上げてください。勉強習慣を身に着けさせ、勉強への心理的障壁を取り払う事は学校に行かせるよりも重要だと考えます学校嫌いで勉強嫌いの子供は学校に通い続ける限りそれは身につきません。基礎学力が高ければ高い程、子供選択肢は増えます。これから引きこもりになっても、基礎学力が高ければ、競技プログラミングにも取っつきやすいですし(数学力がないと苦労します)、インターネット海外の人とコミュニケーションだって取ることだって出来るようになります。要は引きこもりながらできる遊びの幅が増えるのです。勝手自己学習して自走してくれる子供ならいいのですが、不登校になった子供にそれは無理なことが多いので、「学校には行きたくないならもう行かなくていい」「しかし、勉強だけはしっかりやって欲しい」事は明確に伝えてください。家庭教師個別塾が理想ではあるのですが(学校から離れたところでモラルのある生身の人間と接するのは、学校以外のコミュニティ認知視野の広がりに繋がります。何よりもモラルのあるコミュニティに触れることで社会への希望も持てます学校の生徒同士のコミュニティモラルは大体糞でした)、今は五教科e-learningで学べたりするので、私の学生時代よりも引きこもりに優しい時代になってきたと思います

もしも中学生なら高校なんてどうでもいいと思ってるかもしれませんが、高校卒業してほしい旨と、週一のスクーリング卒業できる通信制高校があることを教えてあげてください。

私は親に無理やり学校に行かされた結果、中学生で頭が白髪だらけになり、学校に居てもずっと寝てるだけになり過眠症も併発。精神は常に不安を抱え、対人恐怖症と人間不信になりました。(大人になってから精神科で社交不安障害と診断されました)

中学卒業した頃に私が手に入れた物といえば、偏差値40程度の糞みたいな学力と、常に霞がかかった脳みそと、精神疾患と、社会生活の諦めでした。

おわりに

子供の頃の経験というのはとても大切なものです。今思えば、私の親も私に普通の子供のように普通学校に行って他の子供と同じような経験をさせたかったのだと思います子供の為を思って。しかし、それは私のためにはなりませんでした。どうか貴方のお子さんが私のようにならず、幸せ人生を歩めることを心より祈っています

2023-01-14

詐称はNFTで防げる?資格ランキング化する理由とは

abemaで「資格を取ることに価値があるのか」みたいなことをやっていた。

固定の暗記知識を使うタイプ資格はNFT化によって価値が下がる可能性がある。というのも「証明」が一般化することによって焦点になるのは希少性だからだ。暗記知識の希少性は低い可能性がある。

「あるSNSアカウントが、本当に本人であるのか」「資格学位を取ったと言う人は、本当に取ったのか」「障害者を名乗る人が本当に障害者なのか」「このコードサイトコピーライトは?」そういうのはおそらくNFTで防げる。

こういうことを言うと「なぜそんなことを証明しなければならないのか」と言う人もいるかもしれない。シナリオを列挙すればわかるだろう。

要するに、詐欺師が生きにくいシステムを作れる。

それでは希少性の高い資格とは何なのか。希少性を与えることができれば、個人能力を真に証明するタイプ資格と言える。競技プログラミング成績、数学オリンピックIQオリンピックなどはそのようなものの一つである。希少性を与えるのは「ランキングである。もし社会が上手い方向に行けば、能力証明は「資格を持つかどうか」ではなく、何らかのランキングにおける順位によって証明を与えることになると俺は予想している。

 

参考: https://abema.tv/channels/abema-news/slots/9oDxFrsiHM6o27

 

追記

実際のサービスについてリンクシェアしてくれた人がいたので共有します。

anond:20230114204657 横だが、そんなものが実際にあるんだろうか?ってググったら意外にあった。NFT=アート思考停止してたわ https://www.skew-user.flict.co.jp/

2023-01-13

医学部廃止論

数学オリンピック世界王者とか

競技プログラミングの逸材とかが

医学部を志望して医療ドカタに身を投じる。

そら国力も弱るわ。

2023-01-04

技術レベル記事から推定しようとする統合失調症患者たち

患者妄想タイプその1: レベルが高いコードが書かれていればレベルが高い(進次郎)

記事からは、コードを書いた人が誰なのか証明する方法がない。アウトソーシングした可能性、コピペした可能性、アレオレ詐欺している可能性などがある。技術力を証明したければ競技プログラミング証明するので、記事でわかると考えるのは病人

 

患者妄想タイプその2: 肩書が納得できればまともなことを書いている可能性が高い

外資系企業データサイエンティスト()のRのコードとか酷いし、それを酷いとわからない時点でお前は肩書に騙される低能とわかる。

 

患者妄想タイプその3: ポエムは無価値

現実社会の大抵の問題政治的問題であり、政治的言及をしたければお前のいうポエムという形式になる。技術の部分は所属している会社の中で発揮すればよい。仮にオープンな何かがあるなら、完全な善意であるケースもあるが、それをオープンにすること自体に少々の政治があるケースが多いと考えて良い。ポエム技術記事かは、どのような政治形態を取るかという違いでしかない。

2022-11-30

anond:20221129085814

CS言葉イメージするものが人によって違う感じだな。

基本情報応用情報試験みたいなのとか、CPUの仕組み、コンパイラ実装分散システムデータベースとかそういうエンジニアリングガチ勢みたいなのをイメージして大学CSを学ぶとけっこうショックを受けるぞ。

俺の知ってるCSは、チューリングマシン表現能力とか停止性問題とかYコンビネーターとかチャーチ数とかの世界で、コンパイラといってもε-CLOSUREみたいな話をじっくりやる感じ。

具体的な話が全然出てこない数学の一ジャンルってイメージかもな。

競技プログラミングみたいなアルゴリズムもそれほど時間をかけない。ベイズ推定をギリやるかどうか。

そういう知ればすぐ身につくものよりも、めちゃくちゃ考えて濃厚なパラダイム時間をかけて吸収するような学問だった。

で、そんなCSを学んで直接役に立つのは多くの人の場合計算量のオーダーとかくらいかも。

モナドみたいな概念抵抗なくなるとか、ラムダ式意味を深く理解できるというのもあるけど、それSIとかWebスマホアプリの開発業務必要かというとね。

賢い人は、ちゃんSNSユーザー同士の関係性とかレコメンデーションみたいのにもCS知識を応用できると思うけど、一般人は賢い人が作ったライブラリを使う側だよね。

anond:20221129085814

コンピューターサイエンス競技プログラミング懐疑的な人たちは決まってソートアルゴリズムがどうとか言う傾向にあるけど、たしか増田の言う通り、ソートなんて自力実装するような時代ではないからその辺は無視してもらって構わないとは思う。

でもソートについて「ソートだけをして終わり」なんて実装をすることはなくて他の処理と組み合わせて存在しているものじゃない?

たとえば「配列ソートしてからサーチする」「ソートしていない配列に対して都度サーチする」「配列ハッシュマップに変換してからサーチする」要求に対してどれが効率的かみたいな判断は要る場面はあるでしょう。

「今書いているコードが呼び出す機能の一つ一つがどういうふうに書かれているかがわかったとして、一体何が嬉しいんだ?」

たとえば配列に対する.find() 的な関数があると思うが、これは「配列を先頭から順にチェックして、指定のものを見つける」ような実装であることが多い。内部的には配列長に比例する時間がかかるループが書かれている、O(N)の関数

これを自分実装するコードループ内で使うと、自分が書いたコード自体は一重のループしか見えないが、実は二重ループになっているということがあり得る。

その処理がやけに遅いと思ったとき、「find()は標準の関数から無罪!中身を見る必要なし!」って感じでスルーしてたらコード全体像永遠に見えないことになる。


とはいえ勉強したくないものを無理に勉強する必要もないとは思うよ。

サンプルで実装してあげたものの一部改変などをしてもらうぶんには知識スキルもいらないだろうし。


GTAオンラインロードが遅い問題でこういうのがあった。

https://gigazine.net/news/20210302-hacker-reduces-gta-online-load-times/

JSONパースする処理や、配列から重複を探す処理など、増田が言う通りラップされたものを使うだけでできることではあるけど、求められる出力を満たせる部品をただ並べただけではこういうダサいことが起こりうる事は知っていてほしい。

2022-10-15

ひと月有給取るんだが

時間あったらなにがしたいですか?」

何かアイデアくれ。

子供いるので泊りがけの一人旅とかは無理。仕事IT系仕事は嫌いだが何か作るのは好き。読書は嫌い。多少金がかかってもいい。

今考えてるのは

なんかアイデアないですか。できれば消費系より生産系の方がうれしい。「3か月だったら○○あるのにな~」とかでもいい。

2022-08-27

センスの無い未経験年収300万強のプログラマとして就職して必要だったこ

学歴がよくなくて、就職が困難だったので中小 SIer で働いていた。 (プライム案件を取ってこれる分マシらしい)

レキサルティレクサプロデパスのお世話になって続けてたけど、結局は薬でどうにかできず、辞めてしまった。

参考程度だけど、未経験の人が 300万 をもらうために、どのようなスキル必要かを、まとめておく。

ちなみにどれくらいプログラムが書けなかったかというと、競技プログラミング努力しても AtCoder黄色になれず青色のままってくらい。

AtCoder でいう、初心者から抜け出せないという、要するにセンスがないということなのだけど、そういう人も居そうなので、参考までに。

要するに

経験プログラマに対して、これだけ要求されるのだから、未経験の人は覚悟するようにという指針を提供したいので書いた。

入社時に覚悟しておかなければならない事

誓約書

基本的に、損害を与えた場合には、それを作業者補填するという誓約書を結ぶ。

要するに、捨て駒として扱って、失敗したら賠償しろ、という事になる。

このことを認識して、失敗しないように振舞ないと、連帯保証人含めて迷惑をかける事になる。

要するに、低賃金で未経験プログラマ案件にノーリスクで送りこんで、稼ぐための手段です。

必要だったスキル

ディレクション

基本的に PL (夢想家) → PM (御用聞き) → プログラマ という環境なので、プログラマ自分ディレクションして意思決定する必要がある。

例えば、下請け場合は、PM の御用聞きの結果の WBS に合わせないと、顧客から DM瑕疵担保責任がどうとか言われる。

社内開発の場合は、PL の方から直接、長時間の叱責を受けなくてはならない。

そういう不幸を防ぐためにも自分ディレクションして、PM の決めた実態を反映していない WBS に合わせて作業するスキル要求される。

基本的に手戻りは個人の過失になってしまうため、手戻りしないように考え抜いて意思決定をする、というのが重要になる。

これこそ、ガクチカと呼ばれる、頑張れますというスキルなので、学生時代に頑張っておけばよかったなぁ。

デザイン

こう見せたい、こう表現したい、という事を伝えるには、必然的デザイン知識必要になる。

創造思考デザインは切っても切り離せない概念で、デザインとは創造なのだから、当たり前である

ソフトウェアアーキテクチャも、ソフトウェア設計も、コーディングデザインと言えるかもしれない。

言語技術 (言語能力)

顧客と 1:1 で話す事が DM でもボイチャでも突発的に発生するので、いつ、いかなる時でも論理武装していなければならない。

まぁ、顧客であったり PL であったりはキレるのが仕事なので、それに対して理路整然と説明する必要がある。

なんとなく、では納得しないし、すぐ損害賠償請求とかそういう話にいくので、答えられないと持ち帰りますお茶を濁して、エマージェンシーになる。

後述する設計能力においても、課題を把握するための言語技術(言語能力)は重要ファクターだと思う。

ソフトウェア設計

C/C++システムプログラムフレームワーク基本的に無いので、自分概念を整理して、どのような変更、拡張があるかを考えて設計する必要がある。

この能力が弱いと、手戻りが発生しやすくなり、瑕疵担保責任を問われることになる。

読んだ本の中だと、ボブおじさんの本が、やっぱりしっくりくるなという個人的な感想がある。

ネットワークプログラム (C)

UDP で送ってくるデータを受けて 24/365 で停止しない WebAPI への繋ぎ込みという簡単作業があって、振られた。

リークしてはいけないという事で malloc禁止で、グローバル変数を利用するという変なルールがあった。

Rust で書けばいいんじゃないかなと思ったけど、Rust 書くのもシンドイし、C/C++ で、しんどくて読みづらいコードを書いた。

あとで保守する人が大変そうだけど、そういうルールを決めたのは PL だしね。

システムプログラム (C++)

なんか、特殊PCI Expressカードからベンダーが用意している SDKデータ引っこ抜いて Web API へつなぎ込む部分をやった。

データの中の特殊信号を取りたかったらしい。

一応、SDK の使い方をパラ見して 1 日で作ったので、別に負担じゃなかったけど、素人やらせるんなとは思った。

Webバックエンド (Express/Fastify + PostgreSQL)

当たり前だが、DB 作って RestAPI を生やすのは現代プログラマにとって自然にできなければならない。

なので、新規開発のサブモジュールバックエンドを任せられた。

だが、ORM の癖を把握したり、発行されるクエリ確認したりするのは、疲れる。 SQL を直書きするのはシンドイ。

結局 SQL を直書きすることにしたけど、あまりいい決断ではなかったと思っている。

それ以外は フレームワーク に乗ってしまっていいので、書き捨てる分には楽だった。

最近だと、TypeScriptPrisma 使うのが、型安全でよさそうだなと思っている。

Nest.js個人的には好み。

Linux操作 (EC2 とか)

デプロイEC2 直でやったり ECS にしたりとしていたので、ベアメタル知識必要になった。

要するに systemd のいじり方とか、死活監視の仕方とか。

個人的には、クラウド嫌いなので、ベアメタルの方が安心できる。

Bind権威DNS管理して、postfix絶対止めてはいけないメールサーバ管理するとかもあったけど、出来て当然ではある事だし。

Webフロントエンド (React/Vue)

会社Webアプリ案件を取ってきたので突っ込まれた。

経験プログラマでも、月単価 100 万以上で顧客請求してるんだから会社はそりゃ儲けるだろうと思った。

会社が一人前の経験N年のプログラマといったら、その通りに振舞う必要がある。顧客責任はないのだから

当たり前だが、WebディレクションWebデザインWebプログラミング, Webマークアップ は、全て作業者であるプログラマ仕事になる。

個人的には、これが分かれている理由が良く分からないけど、分けたい人がいるんだろう。

デザインで、CSSフレームワークを使うと、その色が出るという事で、全部 CSS手書きしていた。

tailwind が出た現在では使っていればよかったなと思う。

結局、全く分からない中、手探りでデザインし、コードを書いて、顧客に 1 日 5 ~ 10リリースするという行為をした。

顧客大手企業だったので、自社のエンジニアならもっと出来る、と叱責されまくったけど、だったら自社でやればいいじゃんと思った。

一応、今でもサービスは生きていて、ユニークユーザ数は上がっているらしい。

そして、焼き付け刃だったので、 WAI-ARIA を知らず、アクセシビリティへの配慮が足りない事が問題になってしまった。

これはなんとか保守対応ねじ込めたのでトラブルにならなかったけど、瑕疵担保責任と綱渡りだなと思った。

CI/CD 構築 (Azure Pipelines)

当たり前だが、リリースサイクルを短くしないと顧客はキレてしまうので、CI/CD を整えないといけない。

今は Github Actions とかあるけど、昔は無くて Bitrise が高いからみたいな理由Azure Pipelines で CI/CD フローを構築した。

もう Multi Stage Pipeline になってるだろうけど、Release Pipeline が GUI からしか設定できないのが辛みだった。

IaC (Terraform)

当然だが、デプロイするためには IaC を整える必要がある。

これを知らずに、コンソールポチポチしていたので、 IaC 出来てない事がバレた時に色々怒られてしまった。

今は CDK とか便利なものが出来てるんだなぁ。

自動テスト

本来テスト自動テストを整えて、質保証をしてバグを減らさなければならない。

だが、テストを書くという手間を払えなかったので、人力テストしかできなかった。

一応、リグレッションテストを人力でやりまくったので、バグ発見曲線が結合テストでの IF 不一致しかない、という結果にはなったけど

自動化できれば費用必要じゃなかったから、怠慢だと、責められてしまった。

同じような未経験の人へ

経験でも誓約書を盾に、振られた事全部を出来なくてはならない慣習があるので、プログラマはそんなに良い職業じゃないよ。

甘い考えで、プログラマになろうと思っているのなら、考え直した方がいいです。

2022-06-24

anond:20220624135852

おれも paiza 推しだわ。

プログラミング力で未経験就職なら paiza がちょうどいい。

正直、本気で競技プログラミングをやりたいとかプログラミング力を上げたいなら AtCoder の方が良いんだろうけど、AtCoder は paiza よりレベルが高すぎるので、未経験就職のためにベストとは思わないんだよね。

paiza B ランクなら未経験でも狙える範囲だろうし、それでそこそこの企業からオファーが来る。

2022-05-10

anond:20220510133011

あの作者さんwebデザイナー挫折した?っぽいのに技術知識がちらほら見えるのが不思議

CSSおかしいところ指摘するところとか競技プログラミングとか。

エンジニアwebデザイナーマンガ描いてるんかな?

2022-05-08

anond:20220508112227

なるほど。実はちゃんリンク先見れてなかったけど、見てみると結構お高いのね。

機械学習にも興味はあるが、確かに競技プログラミングとかの方により興味があるので、院の方の成績がどう扱われるかを確認して、問題なさそうだったら受けないかも。なんにせよありがとう

もし何年かして受かったらまた増田投稿してみるよ。もし見かけたら是非コメントしていってくれ。

2022-05-07

anond:20220507150454

元増田です。

おすすめありがとう。Courceraもたくさんあるからおすすめがあるとありがたい。

Build a Modern Computer from First Principlesってやつが特に気になるな。日本語でもオライリーから本が出てたやつの大元っぽいな。

競技プログラミングちょっと好きだし、Algorithms, Part Iってのも面白そうだ。

色々なサイトを組み合わせて学ぶのが良さそうだね。ありがとう

2022-05-06

anond:20220506204537

元増田です。

なるほど。スクリーニング突破した後に競技プログラミングが活きてくるのか。仕事に役立つとか考えず、完全に趣味でやってたけど、役に立つならよかった。

となるとやはりアプリ作りと英語勉強やな。何とか頑張っていきますアドバイスありがとう

anond:20220506203156

競技プログラミングやっているなら尚更都合がいい。書き忘れたけど、欧米企業はほぼ100%技術試験は出る。口頭での技術試験に加えてコーディングテスト

コーディングテストは応募後、スクリーニング突破できたら、期限内に成果物を提出するように、問題メールで渡されることが多い。

問題はいろいろあって、こういうのを作ってってパターンと、競技プログラミング系が多い。前者のほうが多いけど。自分海外企業応募するかーってなったら、その準備として競技プログラミングはやる。日々やれればいいんだけど、座学によるinputも大事というかそっちにも時間取られるんだよね。

anond:20220506201627

元増田です。親切な助言ありがとう

なるほど。やはりリモートにせよなんにせよ、GitHubちゃんとしたコードを載せないといけないよな。(当たり前か。)

いつも作るアプリネタが思いつかなくて結局ほとんど何も作れてないが、もう何でもいいから作る事から始めてみるよ。

(代わりにAtcoderとかの競技プログラミングとかならやってるけど、残念ながらギリギリ緑色くらい。まあ競技プログラミングコーディングテストとかくらいしか役に立たなそうだな。アプリ作りに専念しよう。)

英語勉強の方は、貯金が無いから当分は働きながら勉強する感じになるな。貯金ができたら英語勉強に集中することも考えてみるよ。

なんにせよ、少し道筋が見えてきたような気がする。ありがとう

2022-04-27

chokudaiにリムられてガチ凹みしてる人、競技プログラミングオンサイトで「フォローしてくれませんか?」っておずおずと言ってきた人じゃん フォローという行為に関してかなり価値を感じてるんだろうなあ

2022-04-12

趣味類型

休みの日にあなたは何をしているだろうか。 Youtube を見ている?アニメを見てる?競プロをしている?

お金をもらうわけでもなく自発的に行うそれらの活動趣味と呼んでも差し支えないだろう。 人生を豊かにするためには趣味の充実が不可欠だ。 私は趣味は以下のような4つ種類に類型化できると考える。

体験型体験することに価値を見出す。 登山釣り旅行スポーツなどこれに該当する。

求道型は能力の向上に意味を見出す。 数学競技プログラミングなどの学問的なもの将棋筋トレなどが該当する。

また、消費以外の全てのタイプ趣味は求道型の要素を含んでいる。 スポーツ釣り、絵を描く、どれも能力の向上も重要目的だろう。

しかし、それらは求道型とは異なる。 なぜなら多くの場合能力の向上自体目的ではないからだ。 (もちろん人によって例外はある)

創作型は自分で何かを創作することに価値を見出す。 絵を描く、音楽を作る、小説を書く、編み物をする、歌を歌うなどがこれに該当する。

消費型は消費したコンテンツ自体価値を見出す。 見た映画面白ければ嬉しいし、つまらなければがっかりする。

私はこの4つのうち全てをバランスよく行うのが最適だと考える。 少なくとも現状は消費型に偏りすぎている人が多いと感じる。 私の場合で言えば YouTube を見すぎている。

消費ばかりをしていては人生は豊かにならないのではないか最近私は考えている。 問題はそこじゃないとつっこみが入りそうだが。

(追記)

コメントを読んでいると同じ趣味でも異なるタイプとして受容されることがあるようだ。

前述した類型化は趣味のものというよりも趣味に対する向き合い方の類型化と捉えたほうが良いのだろう。

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