「TypeScript」を含む日記 RSS

はてなキーワード: TypeScriptとは

2023-08-22

Nvidiaの株が上がるたびに、俺の機嫌が悪くなる

俺たちの敬愛するAppleが斬ったはずの、あのNvidiaがっ!

Linux生みの親のライナスが "fxxk you Nvidia!" と叫んだ、あのNvidiaがっ!

なんで調子がいいんだよ畜生

MicrosoftIntelNvidia帝国は早く地の底に沈めよ!

世の中にはAppleLinuxがあれば十分だろ!

どうして自由を愛するエンジニア敵対する奴らばかり、調子がいいんだよ!

イライライラ...

これ何ていう病気?死ななきゃ治らないやつ?

MSといえば、VSCodeTypeScriptの人気は揺るぎを見せないし

ほんと、アンチMSアンチWintelを気取りたいエンジニアにとっては地獄の日々やで...

2023-08-10

プログラミングこそ独身孤独救済ツールである

弊方30歳。

プログラミングは元々やってたがいわゆるSIer上流工程コードほとんど書いてこなかった。

最近仕事も落ち着き、時間も空いてきたので夜はやることがなくなってきた。昔は友達と飲みに行くこともあったが、コロナと周りの結婚で気軽に飲みに誘える友達も減ってきた。晩婚化というは嘘だと思っている。(正確に言えば恋愛市場二極化)

受動的に楽しめるyoutube なども娯楽ももパターン化されて飽きてきたのでプログラミングを始めた。

学生時代理工学部だったしJavaは触っていたので最低限の下地はあるので理解はそこまで困らなかった。

最近TypescriptNext.jsNest.jsなどを使って簡易的なアプリケーション作成しているがこれがまた面白い。今までの技術歴史を振り返りながらこの技術がなぜ出てきたのか、なぜ前の技術ダメだったのか、色んな考察をしながら進めていくといくらでも時間を使える。新しい技術いくらでも出てくるからコンテンツとして終わることもない。今後もJavascript(Typescript)関連はある程度追っかけておいて60歳になってもWebアプリが作れる人間になれればと思う。その頃にWebアプリ存在するかどうかは分からないが。

だらだらと書いてしまったが独身時間を潰すならプログラミングは最高である

2023-07-31

anond:20230731104947

最近最前線から離れててあんまり追えてないけど、現役のとき2008年くらいか10年くらいの間で、仕事のやり方や設計の考え方が大きく変わったIT技術要素で、いまぱっと思い浮かぶのはこんな感じかな。

分野にもよるし、調査して試作した結果自分業務には採用しなかった技術とかもある。流行ると思って使えるようになったけど流行らなかった技術を入れるとたぶんもっとある。

あと、新機種が出てOSが新しくなったり、ミドルウェアの新バージョン対応テスト手法進化もけっこうカロリー高いけどここには書いてない。

自分フロントエンド専門でReactしかやらない」みたいに分野を絞れば大分減るけど、その技術が何年持つかわからいか普通リスクヘッジのために他の技術も齧らざるを得ないし、バックエンドとかの人と議論するのに結局他分野の知識もそれなりに必要

ソーシャルコーディング(GitHub)

スマホアプリ(iOS, Android)

NoSQL(memcached, Redis, Cassandra)

暗号通貨

クラウドアーキテクチャ、XaaS(AWS, Google Cloud, MicrosoftAzure)

CI/CD(Travis CI, CircleCI, Jenkins)

トランスパイラ(Browserify, webpack, CoffeeScript, TypeScript)

システム(Rust, TypeScript, Haskell)

テスト自動化(xUnitSelenium)

クリーンアーキテクチャ

コンテナDocker

オーケストレーション(Ansible, Kubernetes, Terraform)

機械学習(Python, MATLAB, 線形代数数学知識)

HTML5(WebGL, WebAudio他)

SPA(React, AngularJS, Ember.js, Vue.js)

マイクロサービスアーキテクチャ

3Dゲームエンジン(Unreal Engine無償化、Unity5)の他分野への普及

GraphQL

機械学習ライブラリ(Tensorflow, PyTorch, Chainer)

Jupyter Notebook

NFT

モバイルアプリフレームワーク(React Native, Flutter/Dart)

シングルサインオン

多要素認証生体認証

メタバース

2023-07-18

略称

プログラミング言語 C++話題の中で Template Meta-Programming のことを TMP と略することがある。

しかし TMP を下ネタだと読み取ってしまうやつがいて、ほんまにもうクソ面倒くせぇなってなる。

ツイッタで JavaScriptJS と略したり TypeScriptTS と略したりしてもなんかアレな感じになる。

2023-06-22

2023年時点で許されるロックインと許されないロックイン

許される

GitHub

VS Code

Swift

Kotlin

TypeScript

Google スプレッドシート

・(とても微妙だが)AWS

許されない

Slack

Flutter

Salesforce

Azure

・Notion

後者の使いこなしを自信満々に技術ブログ採用情報掲載しているような選定力が無いところは、即切りします。

2023-06-17

anond:20230617000650

TypeScript+ReactというかJavaScriptになるのは誰でもできるしできる人口も多いってのが前提にあるからじゃね

あと近年はUIがあるものは基本Webって流れになってるから

2023-06-14

金欠鬱病短期お金を少しだけでも稼ぐ方法を教えてください。

無職鬱病なんだけど、現在金欠に陥っていて困ってる。

どうにかしてお金を稼ぎたいが、鬱の症状もあって毎日アルバイトとか、肉体系の労働は無理だと思っている。

日払いとか週払いでお金を稼ぐにはどうするのがいいか教えて欲しい。

おすすめサイトとかがあれば教えて欲しい。よろしくお願いします。

以下スペック

2023-06-08

TypeScript使わない現場なんてあるの?

Vue3のComposition API文句言ってる人がいて、何言ってるのこいつとか思ったらJavaScriptだった

そりゃJavaScriptならComposition APIなんて面倒なだけだろうね

ただ今時TypeScript使わない現場なんて存在するのかね

そこそこ現場見てきたけどJavaScriptソース基本的にマイグレ前提で放置されてるレガシーになってたけどな

そいつを救出するならTypeScript必須だし、そうなるとComposition API必須だと思うけどな

その段階でReactに、とかいうのは全然分からんくて、Vue3になった時点でReactよりリアクティブに書けるんだからVue3でいいじゃん、という感想

2023-06-06

Rustばかり書いてきたSWEPHPプロジェクトに携わって思ったこ

スコープ限定することができなくてデバッグの時に訳が分からんくなる。

 ・メソッドを分けて切り分ければよいのか?でもこれをするとパフォーマンスが低下するしな。

・型の情報がほぼ無いか知識を引き出す為の取っ掛かりがつかめない。

 ・Github Copilotに頼り切りになってる。それが無かった時はフレームワーク機能を丸暗記してたのか?

 ・RustやTypeScriptではVSCode上に表示されるドキュメント情報を読みながらコードを書いていたので、それができないのは本当につらい。

・nullがあるのが気持ちが悪い。Optionが無いとエラーハンドリングバグまくりそう。

・まだPHPやLaravelの機能を完全には把握していないから、これから深淵を覗くことになりそう。

2023-06-01

anond:20230601143446

Pythonは幅広い用途で使えるから良い選択だと思うけどな。

Pythonについてはあまり知らんけど、バックエンドフレームワークだとDjangoがよく使われてる印象があるな。

あと、最近はFastAPIが流行りかけてるみたいな話を聞いた。

Webアプリケーションの開発ならフロントエンドTypeScriptとReactも使うことになると思う。

2023-05-15

[]なんか勝手に見ているページから情報を抜き出すんだな…

GPT-4 AI Tutor Prompt: A tool for creating personalized learning experiences using GPT-4 and LangchainJS, a drag and drop UI for building LLM flows.

Pandas AI: A Python library that adds generative AI capabilities to Pandas dataframes, making them conversational.

FigmaChain: A set of Python scripts that use GPT-3 to generate HTML/CSS code from Figma designs. It also has a chatbot interface for interactive code generation.

Sui: A smart contract platform with high performance and an asset-oriented programming model based on the Move language.

Jailbreak for ChatGPT: A project that allows ChatGPT to predict the future, opine on controversial topics, and assess what is true. It may help us understand LLM bias.

ML Observability in a Notebook: A tool to uncover insights, surface problems, monitor, and fine-tune generative LLM, CV and Tabular models.

System Design Primer: A resource to learn how to design large-scale systems and prepare for the system design interview. It includes Anki flashcards.

Next.js 13 App: An open source application that showcases the new features of Next.js 13, such as router, server components, and more.

TypeScript: A superset of JavaScript that compiles to clean JavaScript output.

Media Downloader: A desktop utility to download images/videos/music/text from various websites, and more.

AI Pull Request Fixer: A tool to fix issues with AI-generated pull requests, powered by ChatGPT.

Chat Chat: An app that lets you deploy your own AI interface and chat with different LLMs in one place.

2023-05-05

弊社の一部のプロジェクトの開発を外注してるんだけど

TypeScriptの型がほぼ全てanyに置き換えられていて発狂しそう

2023-04-23

ベンチャーCTOがアホだと絶望

業務提携で某小規模ベンチャーと付き合ってるんだけど

CTOバカすぎて話にならない

どうもそのCTO初期メンバー最初プロダクトコード作成したらしいんだけど

その後に入ってきたメンバーほとんど綺麗に書き直して、今はそのメンバーの下にCTOが入ってコーディングしてるそうな(コードレビューを部下にお願いしてるらしい)

噂では結構酷いコードばかりなのだ上司なので気を遣ってレビューしてる、みたいなことを人づてに聞いた

とはいえCTO職は解けないらしく、外部や他の幹部との交渉CTOがやってるっぽいんだけど

技術力が低いだけじゃなくて絶望的にアホで

TypeScript?なんですかそれは?うちは最新のJavaScriptですよ?」

「この動きとか良い感じにAjaxしてますよね」

「ここは同じ機能なんで、全部コピペを繰り返せば作れますよね」

みたいな名言を連発してる

極めつけはとにかく工数を出すことに必死

ソフトウェア工数ってほとんどあてにならないですよ?」

って言ってるのに全然理解してない

「例えば必要機能を具備したライブラリ存在したら1時間で作れますが、無かったら1ヶ月ぐらいかかる場合もあるし、下手したら特許関係実装不可というのが判明するかもしれませんよ?」

っていう話をしたんだけど、その時は「分かりました」って言うくせに次の日には「とりあえず3日でいいですよね?」みたいなことを言う

多分あの優秀な部下の社員は辞めるんだろうなぁと思ってるし、そうなると真剣にヤバくなるだろうから手を引く準備はしてるけど

ベンチャーCTOちゃんと選んだ方がいいし、なんなら途中で交代させた方がいいと思うな

2023-01-12

anond:20230112221133

・色んなこと満遍なくやりたい

・やべー案件に何年も磔にされたくない

これが多様なサービスアプリ作ってみたいという話なら高単価SESに行くしかない。

かなりの経験を積んだベテランじゃないと入れない世界出身学部も見られるから相当に厳しいと思う。

フロントバックエンドインフラなどもやってみたいという話なら自社でウェブサービス運用している上場企業正社員で入るのがいいだろう。

ただし正社員ということはリリース日には何が何でもサービスインさせる立場になるということでもある。定時退社の社風であっても進捗上がってないなら稼動上げて対応ということは普通にある。

派遣で入ればそういうことは無い。上場企業ならコンプラ厳しいからね。でも数ヶ月程度、長くて数年のスポットになることがほとんどなので長期的にはどうなんだろうな。

ここでは俺の経験を踏まえて「自社でウェブサービス運用している上場企業正社員で入る」という前提で話す。

アピールすると良いのは使える言語インフラの知見、構築と運用経験

全部が強い必要は無い。どれか一つが強くて他はまあなんとか程度でいい。逆に言うと全くダメですが一つでもあると厳しい。

使える言語では、C#,Javaを大きめな規模のバックエンドとして使ってるとこが多い反面、対応できる人はフリーにも派遣にもたくさんいるのでちょっと弱い。SIer出身コード書いてたなら当然できるよね、というレベル

今ならtypescript(javascript), pythonあたりができてgo あるいは Rust勉強してます、というのがけっこう強い。

分かってると思うが言語が使えるというのは、まっさらPCを与えられて主要なウェブフレームワークセットアップしてローカルホストを立てるとこまでを含む。

JavaならSpringboot+gradle+JUnit、PHPならLaravel、pythonならdjangotypescriptならNode+React+knex、あとJestかDreddも入るかな。

インフラ知識では、クラウドオンプレ両方のメリットデメリットを把握しているとよい。

AWS,Azure,GCP,Oracle Cloudのどれでもいいけど実際に使った経験があるとよい。俺は個人GCP契約してkubernetesVM、LBを使っている。

ネットワーク知識は薄くでも持っていた方がよい。HTTPとかcookieとかセッションとか知りませんCORSって何ですか?レベルでは無理。まあここら辺はウェブサービスを作れば必ずやるので大丈夫だろう。

LetsSSL証明書を作ってopenssl検証してnginx適用してHTTPS化ができるならアピールになる。

dockerはもうそろそろ使えて当然のレベルになってきているので必須。実際ウチではdockerが分からない使えない人は面接へ進めないようになっている。

構築と運用では、予算内に収まるような構築と運用サービスインした後のトラブルシューティング経験があるとよい。

常にコスト意識を持っていることが必要クラウドは油断すると100万程度すぐ飛ぶ。コスト意識が無い人を運用担当として採用することは絶対にない。

トラブルシューティングで重視されるのはベンダー対応よりもエンドユーザー対応の方。

サービスを早急に復旧させること、そのためにどういう仕組みが必要なのか、構築するところから語れる知見があるとよい。もちろんそこにもコスト意識必要

CI/CD、PrometheusやDatadogによる監視アラートについて語れるとよい。

CI/CDを扱うということは当然gradle,maven,yarn,シェルスクリプトは書けて使えてwebpack,minify,Jenkinsコンフィグもできるということである


どうだろう、かなり雑に書いたが雰囲気は伝わると思う。

あ、git使えないは論外。もし使えないなら今すぐ使えるようになるか諦めるかのどちらかで。

2022-12-11

今更typescript勉強しだしたんだけど

やっぱなんか辛いな。javascript呪縛のせいで奇々怪界なシロモノになってる気がする。

2022-12-10

anond:20221210211237

>nodejsについて、nodejs+expressローカルマシンで動かす場合使用する言語javascriptなのでしょうか?

現在はDenoが強く推奨されているようですが。

基本的にはそうなります

ECMAScriptが標準になりますが、Node.js独自ライブラリーExpressを使うなら当然Expressライブラリー、その他の外部ライブラリーなどが普通に使われます

外部ライブラリ使用可能にするには事前にインストール必要です、外部ライブラリを使う場合には「require()」などで参照が必要です。

なので当然ECMAScript以外の勉強必要です。

素のJavaScriptは大規模開発に適さないので、TypeScript化することで大規模開発に適します、小規模開発なら素のJavaScriptおkです。

TypeScript学習難易度が高いのがデメリットです。

2022-10-13

anond:20221013145402

ほいノ

学歴

中学ん時の偏差値は60くらい。

高専行こうと思えば行けたんだけど、実家離れるの怖くて偏差値45の工業高校へ。

もう全然馴染めなくてさっさと中退

17歳までニート

18歳までフリーター

18歳〜21歳まで定時制に通った。

英語個人的にそこそこ勉強したけど、数学なんかはⅠの後のAが半分も終わらなかったレベルバカ校。

大検で足りない単位取って3年で卒業した。

職歴

21歳〜24歳まで契約社員

この時期は暇で、なぜかやる気に満ち溢れてたから、TOEIC700近くとか日商簿記2級とか色々資格を取った。

24歳でうつになって、30歳くらいまで日雇い派遣無職を半々くらいでリピートしてた。

30歳で製造業正社員になった。

これが人生初めての正社員だった。

やってる仕事は大したことなかったけど、幸い仕事中にPCをめちゃくちゃ使うのでやりたい放題だった。

この時にプログラミングを始めた。

33歳で正社員社内SE転職

年収めっちゃ下がった。

34歳でWebスタートアップ転職

ここで年収どんどん上がった。

36歳でうつが再発して辞めて今に至る。

プログラミング遍歴

略歴・技術スタック

基本は、仕事で使えそうなもの必要ものをその都度吸収していった感じ。

Webが中心ではあるけど、組み込みとかのハードが絡む分野以外は結果的に広く浅く手を出してる、つもり。

言語的なやーつ
Excel VBA 1年
VB.NET半年
JavaScriptNode.js 4年
HTML 1年
SQL 4年
GAS 3年
C# 1年半
TypeScript 2年
Java半年
C++半年
ラダーFB三菱シーメンス 1年

実務経験があるって胸張って言えるのはこれくらい。

大体習得順。

他には、Python、Julia、R、Fortran、Rust、GoDart、Shell、Deno、CSSなんかは少しずつかじってる。

最近Webに関してはほとんどJSTS)で済む感じになったので楽。

なんでPLC最後やねんってツッコミは置いといて、Web系寄りでラダーも触ってるって人は観測範囲ではあんまりいないので、それが俺の数少ない強み。

それ以外のなんかなやーつ

RDBPostgreSQLSQL Server、MySQLSQLiteの順で実務経験あり。

NoSQLはFirestoreが実務経験あり、実務なしだとNeo4jとか。

PaaSGCP(Firebase)、AWSの順で実務経験あり。AzureADVM周りをちょっと触った程度。

Dockerはよく使うけどKubernetesとかまでは行ってない。

後は産業用の通信プロトコル的なやつを無駄に色々触ってる。Modbus TCPとかORiNとかCC-Linkとか。PLCもそうだけど、あの辺は日本ドイツアメリカが未だに既得権益で幅利かせててまじで闇深い。その代わりそれをブレイクスルーできればめっちゃ稼げる分野だと思う。

閑話休題

俺のキャリア形成方法と、簡単アドバイス

まずはカイゼンをしよう

フリーターでどんな仕事してるか知らないけど、仕事で一日の半分が無くなっちゃうじゃん?

から、その時間をまず有効に使う。

以下、俺の場合ね。

次長クラスの人が「この製造番号でクレームがあったんだけど、作業当時どんなことあったか覚えてない?」みたいなことをわざわざ現場まで何度も聞きに来るんだよ。

作業したのなんて半年前だったりするから一々覚えてないっすよ、って言ってるのに何度も聞きに来るからイラッとして仕事用のPC勝手Excel業務日報を付けるようにして、イントラファイルサーバーに置いて「そういう時はこれ見て下さい。次長の貴重な時間が勿体ないです」って言ったのよ。

それだけでめちゃくちゃ喜ばれる。

で、今度はその次長が「この製造番号どれくらいの時間作業終わった?」みたいなことを現場までわざわざ何度も聞きに来るから、俺はその時またイラッとして、Excelストップウォッチもどき作って製造番号とか工程ごとに時間計測して記録して、やっぱりファイルサーバーに置いて「これ見て下さい」って言ったのよ。

それでまた、めちゃくちゃ喜ばれる。

俺のプログラミングの始まりは、ひたすらそれの繰り返し。

最初プライベート時間結構使ってやってたんだけど、そういう周りに喜ばれる効率化を繰り返してると、少しずつ業務時間内で自分スキルアップに直結する時間を作れるようになる。

自分でこれ面倒くせーな、効率よくできねえかなって思ったら、じゃあどうやって?てのを考える。

これがカイゼン英語Kaizenって言っても通じる。

ちなみにPCがなくても、たとえばメールアドレスさえあれば今の時代カイゼンはできる。

大きな会社に勤めてるとかだと使うのが難しいんだけど、IFTTTとかが良い例かな。

https://ifttt.com

これはiPaaSっていうサービス一種で、まあ言葉意味は覚えなくて良いんだけど、要は「イベントAが発生したら別のイベントBを起こせ」っていうのを登録して、自動化できるWebサービス

例えば、あなた日雇い会社にいて、毎日違う現場に働きに行くとする。

で、出勤前、現場到着時、勤務終了の時にLINE毎日報告しなきゃいけないとする。

で、その報告を受けた事務方は、Googleスプレッドシートにその都度入力する。つまり、それだけの為の事務員が一人いる。

面倒くさいし、お金がかかる。

そこで、「特定グループLINEを受信したら(イベントA)、特定Googleスプレッドシート情報を記録せよ(イベントB)」っていうのをIFTTT登録すると、少なくとも事務員入力の手間は省けるってえ寸法だ。

IFTTTはたくさんイベントを処理させたい場合は有料になっちゃうけど、個人で試すぶんにはクレカ登録しなきゃいいだけだから試してみるといいよ。

プログラミングを学ぶならN予備校

月1000円で学べる。コスパは圧倒的。

テキストベースだけど、Web講義とかチャット質問できる。

入門コース学習に180時間と公称してる)がしっかり理解できていれば、Webで大抵のものは作れる。

ただし、大筋は問題ないんだけど、細かい部分で最新技術キャッチアップできてない可能性があるので、そこは注意した方が良いかも。

https://www.nnn.ed.nico/pages/programming/

安定志向なら中小企業社内SE転職する

N予備校の入門コース終わらせたら、基本情報技術者応用情報技術者を取る。

そしたら、職歴書の作り方次第で中小企業社内SEにはまず転職できる。

中小企業社内SEは、ITリテラシーの低い社員が多い中で「Excelセルの色が変わらなくなっちゃったんだけど!」とか「複合機が紙詰まりって言ってるけどその紙が見つからない!」とかクソイージークエストをこなすだけでおちんぎんが貰える、人によっては天国、人によっては地獄のような職業だ。

ごめん、流石に言い過ぎた。実情は色々と面倒くさい。DXとかバズワードを聞きかじったクソ重役から突然言い渡される重めのミッションとか。

けど安定なのは間違いない。

上昇志向なら中小製造業生産技術転職する

N予備校の入門コース終わらせたら、基本情報技術者応用情報技術者を取る。ここは社内SEと同じ。

生産技術ってのは、誤解を恐れずにすげえ簡単に言えば、カイゼンばっかりやってる人たちのことだ。

あんまり詳しくは言えないんだけど、俺が最後にやっていた仕事は言わば生産技術だった。

で、中小企業生産技術は、Webに強い人材をかなり欲しがっている。有り体に言うとIoTとかね。

IoT最近セキュリティの強化がかなりクローズアップされていて、そのせいで二の足を踏んでる企業が多い。

そこに滑り込むのはアリだと思う。

まとめ

よく「T型人材」って言われ方をするけど、どっちのスペシャリストの言うこともある程度分かる「橋渡し」的な人材になると途端に貴重になって需要が増すので、上昇志向があるなら「Web+何か」の組み合わせでお金稼ぐのが良いんじゃないかな。

ま、橋渡しって自然プロマネとか任されがちで、裁量大きくて大変なんだけどね。

質問あればどうぞ。頑張って。

2022-10-07

Javascript学習してるんやが学習ロードマップわからん

現状PHPと平行に学習してるからそっちはいいんだけど

次はjquerybackbone.js? typescript? webpack? react?

必要になったのを学習してるんだけどjavascirpt幅が広すぎて何から手をつけたらいいかがわから

2022-09-08

また出たTypeScript経験が浅いか見送り

また出たTypeScript経験が浅いか見送りITエンジニア歴15年以上、JavaScript7~8年の経験よりもTypeScript経験1~2年を優先する..TypeScript経験がそんなに大事なの?お宝なの?

一通りTypeScript勉強して、やっぱり重要なのはまずはJavaScript理解で、JavaScriptを補助するのがTypeScriptだと実感したから余計に納得がいかなくなった。てか、必要なら現場で身に着ければ十分だとも思ってる。

JavaScriptはやればやるほど分からなくなるので、理解してるとは言えないけど😅少なくとも、JavaScript2年、TypeScript2年よりはいいと思うんだけどなあ。

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-08-20

アカデミアやめて本当によかった

スペックアラサーIT系人材Web系はだいたい一通り触れてきてフロントエンドバックエンドもある程度できるけどインフラは最低限くらいにしかできない程度に苦手。言語PerlJavaScriptから始まってPHPRubyPythonGoTypeScriptあたりは言語レファレンスを見なくてもある程度は書ける。非WebだとC++とかも一応書けるには書ける。フレームワークで言うとRailsとかDjangoみたいな全部込み込みのものからFlaskとかpeeweeとか選定して作るみたいなレベルまで色々経験してきたし、フロントエンドもnodeとio.js喧嘩してた頃からAngularとかBackboneを経由してReactやVueなんかに触れてきた。某転職サイトでは得意な言語は一通り偏差値65-70で某ポートフォリオサイト技術スコアは3.6くらい。運良く趣味やらバイトやらでWeb系をやってきたから外向きに見せられる実績もある程度あるしエンジニア人材マーケット内でもそこそこ需要があるといった感じ。ずば抜けた才能があるわけではないけどどんな現場でもそれなりにスキルを発揮できる器用貧乏タイプだと思う。

そんなこんなで博士に至るまでIT系スキルを活かしつつだいぶウェット寄りの分野でプログラミングを駆使して色々なことに取り組んでた。民間エンジニア人材としては平々凡々でも周りがプログラミングできない連中だらけのアカデミアの世界では神扱いされてちやほやされた。そんでもてはやされて勘違いして工学じゃなくて科学博士課程に進んだのが間違いの始まりだった。

身バレするのが嫌だから詳細は伏せるけど、まあパワハラアカハラなんて日常茶飯だった。指導教員はまともに指導なんてしないし周りの教員たちも工学的なことばっかやってるのを見て好き勝手言ってきた。正直進む道を間違えたのは自業自得だけど、そのくせ「せっかく進学したのにやめちゃうの?」みたいなこと言って引き留めてくるからタチが悪かった。今からして思えばプログラミングができるレアな便利人材を手放したくなかったんだろうなって感じがする。

そんなこんなで博士の終わりが迫ってくる頃にはアカデミアに対してこれでもかというくらい嫌気が差していたけど、それでもやりたいことがあるから一応就活アカデミア系と民間系で両方やってた。どちらもオファーが来たけど結論から言うとお話にならないくら民間の方が条件が良かった。

まず給料民間が1.5倍以上、アカデミアの技術職との比較だと2倍以上の開きがある。しかもこれは「民間の一番下」と「アカデミアの一番上」を比較した数字でそれぞれ逆をとったら正直目も当てられない。その上福利厚生もさまざまな手当も民間の方が条件がいい。給与の伸び代も民間の方がいいし就労条件も民間の方がいい。そもそもアカデミアでフルリモート可なんて存在しないんだから勝てるわけがないんだけど。その上で民間原則として終身雇用に対してアカデミアは任期付きのポストばかり。就活を始める前からわかってたけどいざ現実として待遇の違いを突きつけられるともはや笑うことしかできなかった。

「それでもアカデミアは自分研究ができるんだからいいじゃないか」と言う意見を目にするけど、結局はPIとして独立するまでは他の先生ラボで雇われになる。その間にうまくやらなきゃ一生そのまま下請け仕事をし続けることになる。そしてたとえ独立できたとして、選択と集中の名の下に文科省にとって都合のいい研究テーマ立案しなければまともに研究費を取ることすらできない。大口予算を取ろうと思ったらいかビッグマウス役人丸め込んでそれっぽいことをやれるかで全てが決まる。

自分が外れ値であることは否定しない。プログラミングが楽しくてWeb系の技術が好きで、可処分時間を使って夢中になって勉強したり色んなものを作って遊んだらして過ごしてきたからこそ今がある。でも正直少しでもプログラミングができるならアカデミアに残るより民間就職した方が待遇ワークライフバランスもいい。きちんとリサーチすればカルチャーだってすごくいい会社はたくさんある。

それを承知の上でアカデミアに残る人は正直すごいと思う。自分がその立場にいることを想像したら気が狂いそうになる。もし似た立場で迷ってる人がいたら心から伝えたい。アカデミアやめて本当によかった。

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