はてなキーワード: プログラミングコンテストとは
「月刊・競技プログラミングは役立たない」がはじまったのは2010年ごろでAtCoderができるより前なのよ
昔からやっていた人たちは仕事や趣味でプログラミングを覚えて遊びとしてやっていたから
役に立たないといわれても「たしかにそうだ」と単純に同意していた
上の世代の競技プログラマーは仕事や趣味で活躍している人たちで
ところが下の世代はコンテストで活躍すれば先輩のようになれると思ってはじめているから苦痛に耐えて努力していて
自分たちは優秀だと思うんだけど、どこかでもしかしたらそうじゃないかもしれないという不安を持っている集団ができあがったんだ
だから、ことあるごとに自分たちの先輩はグーグルで活躍している、君たちもできるかもとかいうでしょ
どっかで見たけれども最近はグーグルも競技プログラマーをあんまり取らないらしいね
さらに、AtCoderの問題の質がよくないからレーティングに信用がならない
ICFPプログラミングコンテストというコンテストで単独優勝した人だと思うんだけど
その人はAtCoder水色
「上には上がいることを知っているから謙虚です」とか言っているじゃん
あれ、おかしいよねー
AtCoderのレーティングは競技プログラミングの能力の証明として信用できないので謙虚ですっていわないと
そうなると「競技プログラミングは役立たない」と言われた時の反応が変わってくる
関連記事を一通り読んでみたけどハッカソン関係者の憎悪の対象になるような人間にはとても思えなかったよ。
むしろかなり優秀な人なんじゃないのとすら思った。
だって、
・受けそうなアイデアが思いつける
・メンバーのやる気を引き出す話術を持っている
・プレゼンスキルがある
・ちゃんと賞を勝ち取ってくる
こんだけの事ができるんでしょ?どう見ても優秀なリーダーだよ。
それなのに技術力がないというだけでボコボコに叩きまくられてて可哀想だな。
技術力がない人がハッカソンに出場するのってそんなに許されないことなのか?
そもそもハッカソンって技術力だけを審査する場じゃないだろ?だから審査員に非技術者が含まれてるんだよ。
石崎仁一の技術力の低さを見抜けない審査員をディスってる馬鹿がいたけど勘違いも甚だしい。
チームビルドから企画力、マネジメント、プレゼン等のあらゆる能力が試されるのがハッカソンなんだよ。
純粋に技術力だけで評価されたいならガチのプログラミングコンテストに出場しろよ。
原文: https://icfpcontest2021.github.io/rules.html
------
本コンテストは、オープンコンテストです。ICFP2021コンテスト主催者を除き、どなたでもICFP2021プログラミングコンテストに参加できます。
出場者は、自由にチームを編成することができます。出場者は、1つのチームにのみ所属することができます。コンテスト開始後にチームを分割、合併、共同作業することはできません。
チームは、コンテスト期間中に登録を行い、認証情報を取得する必要があります。コンテスト中に2つ以上の認証情報を使用したチームは失格となります。
賞品の獲得を希望するチームは、コンテスト終了時にソースコードを提出しなければなりません。コンテストへの応募に関する詳細は、コンテストの開始時に発表されます。コンテスト期間中、チームは複数回応募することができます。初期の応募作品はコンテスト期間中にライブランキングとして評価されることがありますが、賞品の検討対象となるのは、ライトニング部門およびコンテスト全体の最後の応募作品のみです。
主催者は、参加者およびチームの提出物、その他のコンテスト関連活動、またはその欠如を監視、記録、および調査する権利を有する。記録は審査のみを目的として使用され、コンテスト関連のイベントが終了すると破棄されます。
コンテスト参加者は、コンテスト用サーバーへの攻撃を試みないようにお願いします。これは、他のチームや主催者の楽しみを奪うことになります。これらのルールに違反したり、コンテストのインフラの完全性を損なわせようとしたり、他の出場者を妨害しようとしたり、チーム間で結託したり、コンテストの精神に反する行為を行った場合、関係する出場者やチームは失格となります。
応募者は、応募前に保有していた応募ソリューション、ソースコード、カスタムツール、および関連資料(以下、「応募作品」といいます)に関するすべての知的財産権を保有しています。提出の条件として、応募者は主催者に対し、提出物の使用、複製、公開、配布、公の場での上演および公の場での展示に関する非独占的、恒久的、取消不能、全世界的、無償のライセンスを付与し、主催者が本コンテストの目的のために提出物をテストおよび評価することを許可するものとします。
https://mh-procon.zone-energy.jp/explanation/
フォートランとベーシックしか使ったことがないし,もう全然使ってないし環境もないんだけど。
正答例のC++はさっぱりわからなくて。
なんの言語でもないデタラメだけどこんな感じで答えは出るかしら?
maxN1=0, maxN2=0, maxN3=0, maxSCORE=0
loop01 N1=0 to 47
LINK(50)=0
loop04 j=0 to 499
read=n1,n2
next04
maxN1=N1
endif
next03
next02
next01
「グラフ理論」というのか。
ここに引っかかってる人がいるみたいだけど、何が悪いのかわからん。
別に女性にコンピュータ好きがいないなんて言ってない。あくまで比率での話でしょ?
女性にコンピュータ好きが少ない、という共通認識があるからこそ、増田も言ってるような「女性限定プログラミングコンテスト」があるんじゃん。
コンピュータ好きには元来男性が多く、従ってIT界隈の技術職にも男性が多い。そこに近年のジェンダーレスの流れが来ており、「男性が多いのは女性差別である」という号令の元、女性優遇文化が跋扈している。
女性というだけで採用されるし、評価も甘い。これは特定の企業だけでなく普遍的に発生しており、「同じ能力なら男性より女性」という事態が発生している。
当然実害も発生している。有名所ではGAFAMのうちの一社が、とある有名OSSの担当者に女性エンジニアをアサインした。この女性エンジニアはエンジニアリング能力は高くないことはGitHubの履歴などから明らかだった。にもかかわらず「弊社は女性エンジニアも活躍しています」というアピールのため有名OSSの担当者になり、そのOSSは目も当てられない品質になった。公に語られることは少ないがこの一件はハイレベルなエンジニアの中で「性別ではなく能力で優遇すべき」と思わせる一件となった。
「男性限定プログラミングコンテスト」「男性のためのキャリア相談会」のようなものはまず無いし、そんなものを開催するとなったらバッシングされるだろう。しかしそれらの女性版は実在する。明確な性別による区別がIT業界には存在している。そのように人を性別で区分けをしていながら、もう一枚の舌で「私たちはジェンダーによる差別が無い世界を目指しています」と言うわけである。何が何やらわからない。
日本のみならず世界的にIT業界はリベラルな思想の人々が多い業界とされている。それは体感的にもその通りなので、ここではこれを真として扱う。だからこの業界は男性含めほとんどの人々は性差別を無くそうと本気で考えている。しかし女性は女性であることの権利を活かし「女性限定○○を開催しよう」と言うし、能力を棚上げして男女比を50:50に持っていくために「女性を採用しよう」と言うし、男性エンジニアも協力して稼いだお金を「女性支援団体に寄付しよう」と言うわけである。これに反対すると「男性はこれだから」「女性差別主義者」「保守思想」といったレッテルを貼られてしまう。だから誰も女性優遇措置には反対できない状況が続いている。
我々男性エンジニアが望むのは、性別によって優遇不遇されることが無い世界である。性別に関わらず能力が優れた人が高い給料をもらい、昇進する世界を求めている。しかし実態はその真逆を行っており、ジェンダーギャップの少ない世界にしようと声高に叫ぶ人たちが女性優遇をしているのである。
【追記】
話を理解してない人が多くて困る。男性が優遇されてる会社や時代ではあることは認めるよ。
だからといって男性差別したらダメでしょう。我々は平等な社会を追求すべきであって、
「男性は優遇されてたから不遇な目に遭うべき」のような理屈は通らない。
それは都合が悪いから無視か?弱者男性の声は聞くに値しないのか?
お前らの正義感は歪んでる。
【追記2】
前提として、以下を読みました。
1. 元記事 https://nuc.hatenadiary.org/entry/2021/03/31
2. chokudaiさんの返信 https://chokudai.hatenablog.com/entry/2021/04/01/115755
3. nucさんの謝罪(?) https://nuc.hatenadiary.org/entry/2021/04/02
ふだんはインターネットのあれこれについてROM専ですが教育と教育倫理に携わる者の端くれとして3の記事に対し、このような方が教育を大声でかたることの危険を感じたため筆をとった次第です。
私は教員→ソフトウェアエンジニアとして数社→公教育ではないとある教育機関で勤務、といった経歴にあり、大学で学ぶ程度の教育学と小中高領域の教育に関しては多少通じています。ちなみに務めた会社にGoogleは含まれず、競技プログラミングについてはソフトウェアエンジニア時代にちょっとかじった程度で歴史やコミュニティに詳しいわけではありません。
1の記事についても賛同・異論含めていろいろあるのですが、そちらは各個論点についての意見が異なる程度の話ですので割愛します。なお、両者の知り合いでもないので通りすがりによるネットの怪文書程度の位置づけで結構です。
いきなり教育の話から逸れて恐縮ですが、謝罪慣れしていない方がやりがちな失敗がいくつもあり、謝罪文として看過できない点をいくつか指摘します。
教育哲学・児童心理などを学んだり活用する立場にある私にとって、トラブル対応や謝罪について考え実践する機会は山程あるのでその経験から思ったことでもあります。
他人のためを思ってやったことが相手に対して失礼だったとき、傷つけたとわかったとき、「そんなつもりはなかった」と言い放つことがどれほどひどいことか、私は見てきました。
ハラスメントやそれらにまつわる謝罪で最も悪手の1つです。間違えた側にできるのは一切の言い訳なく謝ることです。
https://note.com/tm88817/n/ne5025239f31a から私が肝要と思っている節を引用しました。
この文章がタイトルに示されるような謝罪文であるならば、この一点においてすでに重大な間違いを犯しています。
余談ながら、謝罪の本質を中学生ぐらいの子どもにそのように教える機会があります。経験上、成績がよく普段は問題を起こさないが内実プライドが高く誤り慣れていない子どもは「そんなつもりはなかった」「相手が勘違いした」といった言い訳をする傾向にあります。私の個人的な体感ですので一般化はできませんが。
これについては、意図せず失礼なことを書いたとお詫びしたいと思うと同時に少し背景の説明と本来の意図をご説明させてください。
先述と同様です。失礼なことを書いたと自覚しているなら本来の意図の説明は不要です。
背景と意図を説明するのは「自分に過失がないと確信しており、誤解を解くために誠意を尽くす」場合です。過失が誰にもなくても誤解やすれ違いというのは生まれるものですから、そのときは真摯に伝え直すのみです。
私は、このけんちょんさんのために仕方ないと思って記事を書いたのですよ。本当に面倒で書きたくなくて、他に書くものもあり、ツイッターで書こうかなと宣言して自分を鼓舞までしたのに、2ヶ月以上かかりました。
nucさんがchokudaiさんを不快にさせる文章を書いたことについて謝るために、矛先を向けさせるような形で第三者を巻き込む必要もなければ、あなたの事情を説明する必要もありません。
また、自分を鼓舞までして2ヶ月以上かけて書いた事実があったとして、謝罪を受けた側に何の意味があるでしょうか。過失を避けるように努力したのであれば法的にも情状酌量の余地はありますが、「努力をしてやったことだから引き起こしたことの罪が軽くなる」、なんてことはないのではないでしょうか。
言いたいことはたくさんあるのですが、「教育者として避けてもらいたいこと」に焦点を絞ります。
結論だけ言うと、これだけの悪手を悪意なく行う人に、教育者として後進の育成に関わってほしくないと感じました。成功者だけでなく被害者が生み出されることを危惧しています。直接指導でなくとも、技術力を活かして別の形で関わって頂くこともできるのではないでしょうか。
そりゃそうじゃないですか、「競技プログラミングをする」という表現は当時はなくて、「プログラミングコンテストに出る」と言っていたわけです。だから、競技プログラミングといえば、自分たちが大学生の頃の集まりを指すわけです。
発端となった1の記事では田舎初段といった言葉を用い、まさにそのことをご自身で説いておられたかと思うのです。
特に後者の「競技プログラミングといえば、自分たちが大学生の頃の集まりを指す」は少なくとも私にはまったく自明ではありません。ある程度客観性を持った事実なのかどうかを確認するためGoogleで「競技プログラミング」について検索をかけてもnucさんと同じ解釈を見つけることはできませんでした。
5歳くらい歳が離れると一部の言葉が通じなくなることがあるのは、少し前に「アンチ」という言葉で強く実感したことがあります。これもそうなのでしょう。
唐突に、。穿った見方をすれば、今回のコミュニケーションの失敗の原因を年齢差に帰しており、自身には過失がないといった主張に読み取れます。
歳が離れると一部の言葉が通じなくなることは、年の離れた相手の教育に携わっていればどうやってもわかることです。
ですがこれを理由にしてこちらから対話を閉じたり、「言ってもわからないだろう」といった態度をとるような方に教育を声高に語っていただきなくないです。
私がかつてドラゴン桜に対して抱いた印象を思い起こさせます。東大に入るのは「かんたん」、かんたんには但し書きのカッコが付きます。
ただし適切な素地があり適切な対策を十分かつ継続的に行えた場合、です。場合によっては家庭からの適切なサポート、障害やハンディキャップを持っていないこと、も条件に含まれます。
1の記事で以下のように述べられており、大学院に行くことが人生の選択肢にない人の存在にショックを受けたとありますが、そのときに培われた想像力を今一度働かせて頂ければと思うのです。
まさか戦後生まれで大学院に行くことが人生の選択肢にないことがあるとは思わなかったので、私は本当にショックでした。30を過ぎるまでこれにまったく気が付かなかった自分自身への怒りで、視界がおかしくなっていました。
とある医学部教授から「読んだよー。文章はいいけど、お前が卒業生をひょいひょい適当にエンジニアにすると教授会で問題になることがあるから、するんだったら出来の悪いのにしてよね。いいね。ほんと頼むよ。特にそこにいる生徒会長みたいなのはだめだから。」ということなので、今後は、あらかじめ「出来が悪いかを問い合わせる」約束をしてきました。
ちょっとした怒りが湧きました。
今後nucさんに面接対策を依頼し、OKをもらえた学生は医学部教授が出来が悪いと認定した医学部生になる、ということとなります。
このような文書を公開し、残し続ける限り、nucさんの生徒・元生徒が目にする可能性があります。
教え始める前にせよ後にせよ、もし私がnucさんの生徒としてこの一文を見たらと思うと激しい動悸がします。
この一文をどんな思惑があって追加したのかわかりませんが「諸事情により今後は医学部生の生徒を取ることを控える可能性がある」程度で良かったのでは。
「かわいそうなことに、りりあんさんは、いかれた3人の模擬面接官が今まで何をやっていたんだと慌てふためいたことにより、2週間のリアルタイムアタックを宣告され、無理やりクリヤーさせられました。コスパがよかったですね。でも、こっちの胃までおかしくなるから真似しないでね。」で終わるのですが、これだけ書いてもぜんぜん広まらなさそうですよね。そこに、フィロソフィーと教育関係の問題意識の話を突っ込むとこうなります。
1の記事における教育関係の問題意識の話については首肯できる箇所もあり、志の高い方という印象を受け共感もありました。しかしながら1の記事で持ち込まれた教育関連の話が、自身の記事を広めるための方便・道具であったことをここで暴露しておられます。
自身の教育論を手段として使われることは主張自体の価値や正当性を毀損するものではないですが、3の謝罪文の端々にあらわれる不味さから、教育を声高に語らせてはいけない方だという印象に修正されました。
特に教育と一言に言っても指す領域は広いことを認識されておられない点。アカデミックな領域についてはnucさんは私などより遥かに広く深い見識をお持ちなのだと思いますが、それが全てであるかのようには誤解されたまま教育問題をバズるための方便として喧伝することは事実認識を歪めることにつながります。
以上が教育関連で私が主張したいことです。
プログラミングコンテストに出てるキッズに「わからせ」したい奴多そう
プログラマ35歳定年説が何の根拠もないデマであることは常識となった昨今であるが、
歳を取った技術者は人の管理、適性がなければ設計という仕事に移行するのが王道と考えられている世の中である
40、50すぎてプログラムの実装なんてやってるのは、どちらにも行けなかった落ちこぼれの窓際プログラマ扱いだ
ところで、世の中にはプログラムコンテストというものがあるが、どうも参加者の年齢層的に若い人が多いようだ。
若く実績が少ないが、腕には覚えのある若手プログラマが、
成果を残してプログラマとしての名を挙げることを目的に挑戦しているようだが、
いっそ60歳以上プログラマ限定コンテストでもやってみたらどうか
今更、そこで成果を残したところで、前途有望な若者と違って別に何も起こらないだろうが、
少子高齢化とIT化が叫ばれる昨今、世の中のプログラムコンテストが若年層ばかりに偏っている現状に、
いたずらに一石を投じてみるのも、余興としては面白いと思われる
ルール無用の殴り合いで"最も強いAI"を決める"裏"プログラミングコンテスト
どもども。
わたしは「なにか作ってみろ」系の言説にはまったく同意しません。
わたし自身、会社に3ヶ月間みっちり導入教育をしてもらい(COBOL85とPL/I。時代がわかる……)、基本的なアルゴリズム(コントロールブレーク、マッチング、マスタ-トランザクション、ソート、マージ、etc.いよいよ時代がわかる……)の演習を(給料をもらいながら)やって、その後もプログラムとつかず離れずでフラフラと生きてきました。
こういう経験は新卒カードがあるから有効なもので、では1から始めるとしたら……、というときに、プログラミングスクール(専門学校)というのは悪くない選択肢ではないかと思います。が、行ったことないので正直わかりません。
実際自分が1から始めるという立場になったら、まったくオロオロして元増田さんのように世のなか(の気にいらないヤツら)に呪詛を吐いて満足するだけだったと思います(当然ながらそれをいくらやってもプログラミングは上達しません)。
話をプログラミングだけに限っていえば、一番大事なのはやりかたじゃなくて動機だろうと思います。
「なにか作ってみよう」というのは、なにか作ってみようと思ってない人にはまったく心に響かないでしょう。
動機ドリブンで「なにか作ってみた」人といえば思いだすのは、MikuMikuDanceの樋口優さん(ミクを簡単に踊らせたい!)とhinadanの若宮正子さん(高齢者にも遊べるゲームが欲しい!)でしょうか。
ただかれらはわたしから見れば(モチベーションを維持しそれを行動に移す)天才で、あんまり参考にならないのも確かです。
あと、元増田さんの動機は「プログラミングを生業にしたい」ということなので、野良プログラマでは履歴書上でのアピール力が弱いかも、と思います。
ビジネスで使われるアルゴリズムにはそれなりのルールがあります。安全な(バグの出にくい)コードの書きかた、「車輪の再発明」はぜず、枯れた(将棋で言えば定跡のような)アルゴリズムを使う、ほかの人に使ってもらえるための工夫(可読性の向上など)、etc.です。
「なにか作ってみよう」を繰りかえしても、そういった作法的なものが身につくかどうか、それは才能に関わってくる問題だと思います。才能だのみの手法を推奨するのは無責任だと思いますね。
また、たとえば「例をコピーして解析する」というのもある意味有効なプログラミング学習法ですが、「下手に習うと下手が伝染る」ともいいます。どれがお手本として優れているか、それを見る目はある程度ビジネス用途のプログラムに関わっていないと持てないというジレンマがあります。
野生のプログラマで就職に有効なくらいの力を見せるとしたら、なにかのコミッター(なにする人かよく知りませんが)とかになって「××ならこの人」となったり、プログラミングコンテストで上位の成績を残したりしなければいけないのかもしれません。
どうしたものでしょうね。ブクマカのみなさんの反応を見ると、専門学校でもあまり就職に有利にならない(ホントか?専門学校の意味あるのか?)という話ですが、目的が就職ならば、一番の近道のような気がします。
そこらへんからは、元増田さんがなにをしたいか、あるいは聞いてみたいだけだったのかによります。仕事には適性とやる気が大事です。あとは年齢と必要性かな。進路はオーダーメイド以外にはありえないので、提示された案を自分で選んでそれに賭けるしかないのかな、と思います。
さて、この文章は実はこの一文に反応してのものです。(↑のは前書き)
GWあたりからトシも考えずにRubyの再入門をしていまして、手始めに「首相動静」の整形ツールを作ってみました。
初心者で(Rubyに関しては仕事で使ったことないので)なにか作ってみよう、というとこの程度ですね。
これで就職に有利になるかというと、あんまりそうは思えないなあ。Excelのマクロが組めるとかのほうがどこかの事務所に潜りこめそうですよ(でもそれも最近はインフレ気味かもしれませんね)。
朝日新聞の首相動静は詳細ですが、改行が入っておらず、大変読みにくいものです。こんな感じです。
【午前】9時31分、自民党本部。33分、同党役員会。10時2分、官邸。5分、閣議。21分、宇宙開発戦略本部。34分、柴山昌彦文部科学相。38分、岩屋毅防衛相。41分、山下貴司法相。11時3分、安全保障と防衛力に関する懇談会。
【午後】0時11分、政府・与党連絡会議。44分、山口那津男公明党代表。1時27分、日韓議員連盟の額賀福志郎会長、河村建夫幹事長。2時20分、行政改革推進会議。52分、兼原信克官房副長官補、秋葉剛男外務事務次官。3時36分、麻生太郎財務相、財務省の岡本薫明事務次官、太田充主計局長。4時7分、太田氏出る。可部哲生理財局長加わる。15分、全員出る。25分、黒川弘務法務事務次官。34分、谷内正太郎国家安全保障局長、北村滋内閣情報官、宮川正内閣衛星情報センター所長。41分、谷内、宮川両氏出る。5時3分、北村氏出る。10分、東京・永田町のザ・キャピトルホテル東急。宴会場「鳳凰」で中曽根康弘世界平和研究所設立30周年記念式典に出席し、あいさつ。20分、官邸。6時18分、ガーナのアクフォアド大統領を出迎え。記念撮影。19分、儀仗(ぎじょう)隊による栄誉礼、儀仗。27分、アクフォアド大統領と会談。7時12分、署名式、共同記者発表。32分、公邸。首相主催の夕食会。8時43分、アクフォアド大統領を見送り。9時、ヨルダンのアブドラ国王と電話協議。
ただ、これはフォーマットがはっきりしており、
と、例を見るかぎりキッチリとしたルールに則っているようです。
なので、「これだったら整形できるかも」と思い、再び学びはじめたRubyで整形ツールを作ってみることにしました。
【午前】
10時02分、官邸。
10時05分、閣議。
10時21分、宇宙開発戦略本部。
【午後】
01時27分、日韓議員連盟の額賀福志郎会長、河村建夫幹事長。
02時20分、行政改革推進会議。
03時36分、麻生太郎財務相、財務省の岡本薫明事務次官、太田充主計局長。
04時15分、全員出る。
04時34分、谷内正太郎国家安全保障局長、北村滋内閣情報官、宮川正内閣衛星情報センター所長。
04時41分、谷内、宮川両氏出る。
05時10分、東京・永田町のザ・キャピトルホテル東急。宴会場「鳳凰」で中曽根康弘世界平和研究所設立30周年記念式典に出席し、あいさつ。
05時20分、官邸。
06時18分、ガーナのアクフォアド大統領を出迎え。記念撮影。
06時19分、儀仗(ぎじょう)隊による栄誉礼、儀仗。
あと、午後の時刻を24時間制にしたいな、とも思いますが、それは今後の課題(つぎに首相動静が話題になったとき)とします。全角数字の計算ってどうやるんだろう?
たぶんRubyistにいろいろ突っこまれると思うけど、こんな感じです。
プログラマは玉石混淆ですが、これは石のほうの例だと思っていただければさいわいです。
※ はてな記法にはシンタックスハイライトあるけど、増田だとInternal Server Errorになるのではずしました。見にくくてスマソ。
# encoding: utf-8 # 漢字コンバータのライブラリを取りこむ(Stringに漢字変換メソッドを付けてくれる。神) require 'kconv' # 正規表現パターン # 時刻をh時m分形式からhh時mm分形式にする # 否定後読みを使用する # 時は行頭にある OneDigitHour = /^((?<![0-1])[0-9]時)/ # 分は時のあとにある。このパターンとマッチすると、92;1が時、92;2が分になる。 OneDigitMinute = /^([0-9]{1,2}時)(?<![1-5])([0-9]分)/ # 分のない、時だけの行のパターン。否定先読みを使用 HourWithoutMinute = /^([0-9]{1,2}時)(?![0-5]?[0-9]分)/ # 行頭のh時m分をhh時mm分にするサブ処理(これは関数といっていいの?) def convTopHourMinute2TwoDigits(oneLine) # 時を変換 oneLine.sub!(OneDigitHour, "092;92;1") # 分を変換 oneLine.sub!(OneDigitMinute, "92;92;1092;92;2") # 分がない場合"00分"を追加 oneLine.sub!(HourWithoutMinute, "92;92;100分") # 戻り値 oneLine end # 入力ファイルの名前 InputFilename = "首相動静2018年12月11日.txt" # 出力ファイルの名前 OutputFilename = "首相動静2018年12月11日_編集済.txt" # 入力ファイルをオープン inFile = File.open(InputFilename, "r") # 出力ファイルをオープン outFile = File.open(OutputFilename, "w") # 時刻パターンはシンプルに、h時、m分、h時m分、という3パターンを結合する # 1つのパターンで全部カバーするよりこちらのほうが見やすい。というか、脳の容量の問題で1文に書ききれなかった jikokuPattern = /[0-9]{1,2}時[0-9]{1,2}分、|[0-9]{1,2}時、|[0-9]{1,2}分、/ # 午前/午後 ampm = /(【午前】|【午後】)/ # 午前/午後、あるいは時刻の前で改行するためのパターン kaigyouSign = Regexp.union(ampm, jikokuPattern) # ファイル一括読み込み # 昔は1行ずつ読みこんでました。メインメモリが3MByteとかだったので contents = inFile.read.toutf8 # 入力終了。閉じておきます inFile.close # スコープの関係から、ここでローカル変数に代入 # ※ Rubyのスコープと暗黙の型には泣かされました。これに慣れるのがRubyのコツかしら # 明示的な型宣言はあったほうがいいと思うなあ。エラー出力の理由がわからなかったりするので。 hour = "" # デバッグ行はコメント化しています # 時刻パターンチェックのため、コンテンツを出力してみる # p jikokuPattern.match(contents) # エントリを改行サインで行に分ける contents.gsub!(kaigyouSign, "92;n92;92;&amp;") # "92;92;&amp;"はマッチした文字列そのもの。2重のエスケープ"92;92;"が必要 # 改行チェックのため出力 # p contents # 入力を行で分割して各行ごとに処理 contents.split("92;n") do |oneLine| # 午前/午後を示す開きカッコ"【"があるか if (oneLine =~ /^【/) then # そのまま出力 outFile.write(oneLine + "92;n") # p "午前午後:" + oneLine next # 空白行は無視(スキップする) elsif (oneLine =~ /^[92;s ]*$/) then # 出力しない # p " 空白行:<skip>" next # 行頭に「時」があるか elsif (oneLine =~ /^[0-9]{1,2}時/) then # あったら時間表示を抜きだしておく hour = oneLine.match(/^([0-9]{1,2}時)/)[0] # p " 時:" + oneLine outFile.write(convTopHourMinute2TwoDigits(oneLine) + "92;n") next else # 「時」がなければつけて出力 oneLine = hour + oneLine # p "普通の行:" + oneLine outFile.write(convTopHourMinute2TwoDigits(oneLine) + "92;n") end end
手でやったほうが早いね。
以上
ハードウェアをシミュレーションするの技術を身に着けたいんですけど、
そういうプログラミングコンテストってありませんか。
習得したいことは
C++で、
メモリ→メモリアロケーションとかガーベジコレクションとか
CPU→アセンブラで命令を与えてCPUの挙動をシミュレートしてみるとか
ハードディスク→保存・削除を何万回実行する、とかディスクフラグメンテーションとか
自分で作ってみたりはしてるんですが、どうも抜けや漏れがあるだろうし、
コンテスト形式で動作確認ができるのであれば利用したいのですが・・・、
AtcoderとかTopCoderとかって数学とか計算機科学とかで
Kaggleは機械学習だし、AI系のコンテストはわりとあるんですが・・・。
誰かご存知ありませんか?
これ読んで思うことがあったので書きます。
今現在、客先常駐の派遣技術者(非正規)と言う立場で働いています。はじめはこんなポジションに付くつもりは全くなかったんですけど・・・
なぜ非正規でいるのかって所にスポットを当てたいので過去のお話は省き経緯とこれからを書きます
そうです決められていたのです、5年間のひきこもり生活から抜けて情報系の専門学校に通い卒業の年。
当時は正社員で雇ってくれる大手や中小の求人の条件には漏れなく「大卒以上」の文字が記載されていました。
学歴より新卒+資格(基本情報・CCNA・LPIC lv.2・ORACLE MASTER Bronze)と知識でどうにでもなると言う勢いで20社以上に挑みましたがエントリー段階で全滅。
今ほどweb系にスポットがあてられていない時代だったので他を探すとなると中小零細SIerしか選択肢がなく否応なくそこに入社。
「大卒」と言う学歴の強さを思い知った出来事でした、今はweb系と言う選択肢があるので専門卒でも幅広い選択肢がありますね。
これは周知の事実です、つまり大手に行けなかった人は漏れなく「非正規」の仲間入りです。
派遣会社に正社員として採用され客先に常駐してる人は全員含まれているでしょう(正社員だけど派遣社員)
私はIT業界を目指しておきながらプログラミングに興味がなく、ネットワーク構築やサーバー構築が好きな人間です。
今でも家にCiscoの中古ルーター(当時1万以上した!)とかCento OSが入ったファイルサーバー(電源壊れて動かない)やライブカメラサーバが
あります、最近はLeafletに興味が沸いたのでJavaScriptの勉強を暇なときにしています。
前の会社を「これ以上、派遣できる現場はないから有給取って転職して出てって」と事実上の解雇宣告を受けてからネットワーク構築やサーバー構築や
インフラ系の保守運用の職種に行きたいと思って転職活動を始めました。
web系やSI系を歩き回り、だいたい10社くらい受けましたがweb系は「実務経歴がない知識だけの人に来られても困る、プログラミングできれば別だけど」などと言われ不採用に
SI系は「この職種は辞める人が少ないから空きがないんだよね、3年以上の実務経歴があれば違うんだけど」と言われ不採用になりました。
転職活動を始めて3か月くらいの時にやっと2社から採用通知が来ましたがどちらも客先常駐メインの自称SIerでした。
今、2社のうちの片方を蹴って某客先常駐メインのSIerで仕事をしています。
雇用条件や求人条件通りか念押ししましたが実情は予想通りでした、ネットワーク関係の仕事は元請けメインで緊急時に下請け派遣が行う現場でした。
日常業務はヘルプデスク・定例会資料の作成・カスタマーエンジニア的な仕事・事務処理がメインで面白くない仕事です。
ただ前の会社と違い有給と休日出勤時の代休が取れて夜勤も滅多にないため妥協しそうな自分がいます。(期限付き資格の有効期限は既に切れ済み)
正規のネットワーク・インフラエンジニアはプログラマに比べて空きがかなり少ない職種でした、就職活動の時は「大卒」が大きな壁になり
転職時は「実務経験」が大きな壁になりました。1度でも非正規に足を踏み入れると非正規で培った経験と知識で転職市場に売り込むこと
になるためなかなか「非正規」と言う立場から抜け出すことが出来ません。非正規が転職市場で歓迎されるのは35歳までです、36歳以上は余程の実務経験と知識がないとゴミ同然です。
プログラミングが注目を浴びている今はインフラやネットワークの知識はあまり喜ばれないので何とか実務経験を積んでステップアップするしか非正規から
抜け出す方法はありません。その入りやすさと抜けにくさにはまった私はもう2年か3年くらい非正規でいることになります。
なぜ非正規でいるのか、それは入りやすさにはまったまま抜け出せなくなった人が仕方なく選択しているからです。
非正規も暇ではありません、正社員もしくは元請け正社員と同等の働き求められるため一部の人で言われている「非正規は責任がないから楽」は過去のものです。
そんなパフォーマンスを求められ有給取得もままならない環境のまま36歳になってしまってから気が付いても、もう転職市場では歓迎されません。
転職時にわかりましたがweb系も年功序列思考がうっすら残っています、そこそこ名の知れたweb企業の面接官に
「一人前になるのは20年、二十二歳で入れば42歳でうちの給与水準通りの働きをしてくれるけど君30歳でしょ?」と言われ不採用の通知が来ました・・・・現実は厳しいものです。
そんな現実があるので、解雇制限がなくなったら非正規がみんなハッピーになれるとは思いません。
元のブログは「みんな非正規にしてしまえ」と言う結論でしたが、転職市場では年齢制限が当たり前のように存在するため
正社員と言うポジションがなくなった瞬間相当数の労働者が路頭に迷うことになるか低賃金でボロ雑巾のように働かせられる事になると考えています。
小学生のプログラミングコンテストを見て、この内の何人が社会人になってもキラキラした技術者になれてこの内の何人が非正規に追いやられるのかなと考えてしまいます。