Rubyで開発しているWebサービス(Cookpad、食べログ、クラウドワークス、freee)の特徴、Ruby on Railsのメリット・デメリットを説明する。システム業界におけるRubyの立ち位置はかなり変なヤツだ。
Rubyが採用されるシステムは情報配信型のWEBサービスが多い(Cookpad、食べログなど)。
情報配信型のWEBサービスは、小さなサービス(システム)としてスタートし、PVに比例した広告収入などの収益に応じて機能(システム)を建て増ししていく。
情報配信型のWEBサービスの業務要件は曖昧で、ユーザーニーズに合わせて機能追加、変更が頻繁に発生する。
ウォーターフォール(要件定義→基本設計→詳細設計→製造→単体テスト→結合テスト→総合テスト→運用)のような工程が完璧に終るまで次の工程には進まない管理手法では、頻発する仕様変更に対応するのが難しく、アジャイルのような管理手法が適している。
一般的なシステム開発の工程である、業務要件やユーザー要件を定義し、設計書を書き、設計書に基づき製造(コーディング)し、単体テスト→結合テスト→総合テストと段階を追って試験し、運用に乗せるといった工程の大部分を割愛し、要件と大まかな設計書でコーディングして十分な試験をしないでリリースする。
問題があれば、即ソースコードを修正してリリースするといった運用をしている。
また最初から大きな予算をかけて開発しても、サービスが利益につながるビジネスになるか不明確なので、できるだけ少ない予算でスタートする必要がある。
これはどのような情報配信型のWEBサービスでもほぼ同じだ。
仕様変更が頻発し低予算で開発するケースには、Ruby、Python、PHPが適している(JavaやC++では予算がかかり過ぎるでの選択できない)。
低予算の小規模システムではJavaやC++を採用するよりRuby、Python、PHPの方が安価にあがるが、品質とはトレードオフの関係にある。
情報配信型のWEBサービスのように見えるが、ビジネスモデルが全く違う業務システムもある。
例えば「リクナビ」や「スーモ」は、情報配信型のWEBサービスのように見えるが、「リクナビは就活産業」であり、「スーモは不動産業」だ。
「リクナビ」や「スーモ」は、情報配信型WEBサービスのように見えるが全く異なる。
業態が元々存在するので「十分な予算」があり「Java」が採用されている。業務システムと同様で、障害は事故扱いで損害が発生する。
古典的なビジネスとして元々成立しており、それをデジタル化しただけである。この場合、最初から大きな予算で堅牢なシステムを開発できる。使用する言語はJavaが主流だ。
フレームワークは、BFF(backend for frontend)には「Spring Boot(Spring Web Flux)/ Kotlin」、Backendには「Spring Boot(Spring MVC)」を採用している。
ミッションクリティカルなシステムではないのでサーバーは「AWS」、ミドルウェアは「Google Cloud BigQuery」「Gatling」「Fluentd」だ。サーバー運用管理は「Datadog」「NewRelic」を採用している。
リクルートではプライベートクラウドを構築しているので、AWSでの運用が上手くいかない場合は、プライベートクラウドに専用環境を構築できる強みがある。
引用元 Javaエンジニア(SUUMO/じゃらん/ホットペッパー等オープンポジション)の募集内容|キャリア採用|株式会社リクルート
引用元 Recruit (@recruitengineers) on Speaker Deck
Rubyを採用したサービスで例外もある。会計サービスの「freee」だ。
「freee」は小規模事業者・個人向けのクラウド会計ソフトで2024年時点での導入は54万事業所ある。
会計ソフトなのでミッションクリティカルなシステムとは違い、障害が重大な影響(損害)に繋がりにくいが、会計という業務と規模を考えると、長時間のシステムダウンは許されないシステムと言える。
また、会計は複雑な処理が多く、Rubyを採用した場合、設計方針(ルール)、コーディング規約などの決め事を細部までおこなわないと品質管理が難しい。
素晴らしいサービスであることは間違いなのだが、残念なのは「freee」の公式サイトには利用企業として「MS&AD」「野村証券」「関電」「川崎重工」「伊藤忠」「アイシン精機」「富士通」「三菱重工」など日本を代表する企業がロゴで紹介されている。
これらの企業は、独自の会計システムを構築しているかSAPを導入しており、会計処理に「freee」は利用していない。
サービスを大きく見せたい気持ちはわかるが、ユーザーに誤った認識を与えるような広告行為は節度ある企業のすることではない。
サービス | 言語 | フレームワーク | データベース ミドルウェア | サーバー |
---|---|---|---|---|
freee | サーバーサイド: Ruby、Go、Java、Scala フロントエンド: Node.js、TypeScript、JavaScript、React、webpack、ESLint | サーバーサイド: Ruby on Rails フロントエンド: Jest | Aurora MySQL、DynamoDB、Redis、 Elasticsearch、 Datadog、 Insight Hub(BugSnag)、 CI/CD(GitHub Actionss、CircleCI、ArgoCD) | AWS(EKS、S3、SQS、Kinesis、Lambda) |
Cookpad | Ruby | Ruby on Rails | ||
食べログ | Ruby | Ruby on Rails | ||
クラウドワークス(Web) | サーバーサイド: Ruby フロントエンド: JavaScript, TypeScript, CoffeeScript | サーバーサイド: Ruby on Rails フロントエンド: Vue.js | Amazon(RDS), Elasticsearch | Amazon(ECS, ALB, RDS, S3, Redshift, ElastiCache, SQS, SNS), Google(BigQuery) |
クラウドワークス(アプリ) | Swift、Kotlin |
資料 Ruby Association Ruby活用事例 freee株式会社 | Ruby Association
資料 Ruby Association Ruby活用事例 株式会社クラウドワークス | Ruby Association
資料 freee Developers Hub Ruby カテゴリーの記事一覧 - freee Developers Hub
資料 freee Developers Hub Ruby on Rails カテゴリーの記事一覧 - freee Developers Hub
資料 freee Developers Hub Ruby on Rails カテゴリーの記事一覧 - freee Developers Hub
資料 freee Developers Hub AWS カテゴリーの記事一覧 - freee Developers Hub
資料 日経クロステック マイクロサービスとモジュラーモノリスが併存、これがfreeeの最適解 | 日経クロステック(xTECH)
資料 クックパッド開発者ブログ クックパッド開発者ブログ
資料 Tabelog Tech Blog Tabelog Tech Blog
資料 ElasticsearchElasticsearch:公式分散検索および分析エンジン | Elastic
資料 ElasticsearchElasticsearch & 導入支援 | NTTテクノクロス株式会社
資料 ECS(Amazon Elastic Container Service) Amazon ECS(Docker コンテナを実行および管理)| AWS
資料 ALB(Amazon Application Load Balancer) Application Load Balancer | Elastic Load Balancing | Amazon Web Services
資料 ALB(Application Load Balancer) Application Load Balancer とは? - エラスティックロードバランシング | AWS
資料 RDS(Amazon Relational Database Service) Amazon RDS(マネージドリレーショナルデータベース)| AWS
資料 S3(Amazon Simple Storage Service) Amazon S3(拡張性と耐久性を兼ね揃えたクラウドストレージ)|AWS
資料 Redshift(Amazon Redshift) Amazon Redshift(高速、シンプル、費用対効果の高いデータウェアハウス)| AWS
資料 ElastiCache(Amazon ElastiCache) Amazon ElastiCache(インメモリキャッシングシステム)| AWS
資料 SQS(Amazon Simple Queue Service) Amazon SQS(サーバーレスアプリのためのメッセージキューサービス)| AWS
資料 SNS(Amazon Simple Notification Service) Amazon SNS(サーバーレスアプリのための pub/sub メッセージングサービス)| AWS
資料 SNS(Amazon Kinesis) Amazon Kinesis(ストリーミングデータをリアルタイムで収集、処理、分析)| AWS
資料 SNS(AWS Lambda) AWS Lambda(イベント発生時にコードを実行)| AWS
資料 Google BigQueryGoogle BigQuery データ ウェアハウスから自律型データ AI プラットフォームへ | Google
RubyやRuby on Railsはプログラミング言語のなかではマイナーと言わざるを得ない。マイナーということは仕事も少ないし技術者も少なく、技術書も少ない。
そんなシステム業界ではマイナーなRubyだが、Rubyを愛しRubyしか教えたくないというド変態なプログラミングスクールがRUNTEQ(ランテック)だ。
記念すべきぶった斬り第1号プログラミングスクールは「RUNTEQ(ランテック)」だ。
人月単価300万円以上の筆者(現在は人月という概念では仕事はしていない)が、たまたま目に留まったプログラミングスクールの目に余る「情弱狩り&補助金ビジネス」に驚嘆し、組織でエンジニアの育成を手掛けてきた経験からプログラミングスクールの評価を試みた。
長年システム業界に従事してきたが、プログラミングスクール RUNTEQ(ランテック)には驚きのあまりあんぐり口を開けたまま、脳みそが毛穴から出そうになった。
キャッチコピーは「何者でもない自分から誇れる自分へ」「超実践型プログラミングスクール」、「専門実践教育訓練給付金制度」の対象だ。
身に付くスキルは「Ruby」「Ruby on Rails」「データベース」「HTML CSS」「JavaScript」「開発工程」「サーバー」「ネットワーク」「クラウド」「Linux」「プロダクト開発」「Git Git-flow」「Docker」。
現役ベテランエンジニアからのRUNTEQ(ランテック)評価は以下のとおりである。
「RUNTEQ(ランテック)を選択する意図不明」
エンジニア志望でRUNTEQ(ランテック)を選択する意図がわからない。
「サポートが充実していないオンラインスクールに価値はない」
オンラインプログラミングスクール(動画配信型スクール)の場合、プログラミングの学習で必ずつまずく(初心者の場合は100%近い確率)。「教室で質疑応答」または「Zoomなどのリアルタイム双方向で質問可能な充実したサポート環境」がないプログラミングスクールは価値はない。
オンラインスクールで充実したサポートがないプログラミングスクールは、乱暴な表現だが「売りっぱなしでオシマイのビジネス」で「雑なプログラミングスクール」と考えてよい。
配信内容がいかに優れていようが、充実したサポートなしで現場で通用するエンジニアは育たない。
「動画配信型プログラミングスクールだが9ヶ月の制限有り」
オンラインプログラミングスクール(動画配信型)で配信期間制限があるのは理解しがたい。
サポートの打ち切りはあって良いと思うが、配信の受講に期間制限を設ける意図があるとすれば、サーバー負荷になる同時接続数を減らしたいだけであり、教育機関として理解しがたい。
「ツッコミどころ満載のWEB系企業就職率94%」
就職率に関しては「WEB系企業就職率94%」と驚異的な数字を出しているが、ツッコミどころが多すぎでかなり呆れた。「大卒の就活・転職」をまったく理解していないようだ。
特定業種の更に小さなカテゴリーであるWEB系の就職率94%という数字は、超難関大学卒でも狙って出せる数字ではない。
前提条件は「RUNTEQ受講生のうち所定の学習を履行された方およびRUNTEQ Agent経由で転職活動を履行された方に関する就職率(2023年1月~2023年6月の当社統計より)」となっている。
「所定の学習を履行された方」とは卒業できた受講者で「RUNTEQ Agent経由」に限定された就職率を公表している。
「RUNTEQ Agent」は株式会社RUNTEQ(ランテック)の経営なので、確実に就職できそうな受講生に絞って人材紹介(企業側から成果報酬を得る)りしているのが「RUNTEQ Agent」だろう。
「WEB系企業就職率94%」が確認できる1番目の画像と、「WEB系企業就職率94%」の説明がどの程度の大きさで表示されているか?2番目の画像左下で確認できるが、極小の文字サイズ(RUNTEQサイトはfont-size:10px 当サイトはfont-size:16px)と白抜きで書かれており、ほぼ読めないのがわかると思う。
この表記はさすがに作為を感じざるを得ない。
RUNTEQ AGENT公式サイトで書類通過率は70%となっている。
書類通過率で70%であり、SPIなどの試験・面接を経た就職率は大幅に低くなる。書類通過率は70%ですらRUNTEQ AGENTの主張なので実態は不明だ。
「就職できた卒業生インタビュー」を集計してみたので参考にしてほしい。ほぼ全員大卒で正規雇用者が転職しているケースに絞ってインタビューしているのがわかる。
「WEB系企業就職率94%」が「受講者全体の就職率」と大幅に乖離していた場合、確実にJARO行き案件だ。
「言語にJavaがないのは致命的」
大多数のエンジニアが従事する業務システム、特に大規模業務システムでJavaは必須言語であり、日本の大規模システム開発(業務システム)でRubyを採用しているシステムはゼロだ。
1万人月を超える大規模システムではJava以外の選択はないと考えてよい。
情報配信型WEBサービスの「Cookpad」や「食べログ」、マッチングサービスの「クラウドワークス」はRubyを採用しているが、障害が発生しても大きな損害に直結しにくい。
業務システムでの障害は、事故扱いとなり損害が発生するケースが多い。業務システムと情報配信型WEBサービスでは求められる品質も規模も全く異なる。
この違いが、コンパイル言語であり変数宣言が必要(静的型付け言語)で言語仕様がしっかりした「Java」か、インタプリタ言語であり変数宣言を必要としない(動的型付け言語)安価に開発できるが品質管理が困難な「Ruby、Python、PHP」などのを選択するかに、判断が分かれる。
Rubyを採用したサービスで例外もある。会計サービスの「freee」だ。
「freee」は小規模事業者・個人向けのクラウド会計ソフトで2024年時点での導入は54万事業所ある。
会計ソフトなのでミッションクリティカルなシステムとは違い、障害が重大な影響(損害)に繋がりにくいが、会計という業務と規模を考えると、長時間のシステムダウンは許されないシステムと言える。
また、会計は複雑な処理が多く、Rubyを採用した場合、設計方針(ルール)、コーディング規約などの決め事を細部までおこなわないと品質管理が難しい。
素晴らしいサービスであることは間違いなのだが、残念なのは「freee」の公式サイトには利用企業として「MS&AD」「野村証券」「関電」「川崎重工」「伊藤忠」「アイシン精機」「富士通」「三菱重工」など日本を代表する企業がロゴで紹介されている。
これらの企業は、独自の会計システムを構築しているかSAPを導入しており、会計処理に「freee」は利用していない。
サービスの調査のために課金しているケースはあると思われるが、freeeで売上1兆円を超える企業の会計業務はできない。
導入事例を見てもわかるが、エンタープライズパッケージでも導入企業の多くは売上数億円~最大で数十億円だ。
数百億円以上の売上高のある企業の会計システムは、汎用的なパッケージでは機能が足りない。また予算管理システムと会計システムは連動する必要があるので、会計システムと予算管理システムは統合されている。
サービスを大きく見せたい気持ちはわかるが、ユーザーに誤った認識を与えるような広告行為は節度ある企業のすることではない。
「リクナビ」や「スーモ」は、情報配信型WEBサービスのように見えるが全く異なる。
業態が元々存在するので「十分な予算」があり「Java」が採用されている。業務システムと同様で、障害は事故扱いで損害が発生する。
最低でも数十年使用する業務システムと、短命な情報配信型WEBサービスでは、開発規模(予算、工数)も体制(人数、要求スキル)が全く異なる。
プログラミングスクールで学ぶなら、長くシステム開発業界で仕事を続けるられるスキルセットを最初に学ぶべきである。
企業情報では資本金が「未記載」であり、入居中のビル「〒150-0042 東京都渋谷区宇田川町36-6 ワールド宇田川ビル5階B室」は1975年竣工の築50年のビルで評価は低い。
企業情報では「新型コロナ感染拡大防止の観点から全従業員テレワーク(在宅勤務)に移行しております。お電話が繋がりにくい可能性がございますので、お問い合わせの際はお問い合わせページからご連絡を検討頂けますようお願い申し上げます。」の記述があり、電話連絡先が記述が株式会社RUNTEQの公式サイトの企業説明にない。
プログラミングスクールを運営をしている企業が、総合受付の電話番号を公開しないことは通常あり得ない。電話は絶体に出たくないようだ。
プログラミングスクールは性質上教室で質疑応答が必要だが、RUNTEQ(ランテック)には教室はなく、教室での質疑応答に近いオンラインサポート(Zoomなどでリアルタイム双方向で質問可能)もおこなっていない。
人も教室もコストがかかるので、できるだけコストをかけずにプログラミングスクールを運営したいようだ。
経営者のYouTubeの配信を見た率直な感想は、プログラマー的な発想で「要件定義→基本設計→詳細設計→製造→試験→教育→運用」というシステム開発の全行程を俯瞰的にみることができていない。
経営者は大規模業務システムの上流工程に従事した経験はないのではないか?
参考資料 人生を救ってくれたエンジニアという生き方 - Speaker Deck
参考資料 「天才じゃなくても世界を変えられる」。菊本久寿氏が語る、「エンジニア×スタートアップ」のキャリアが最高な理由 | アンドエンジニア
参考資料 株式会社スタートアップテクノロジー代表 菊本 久寿氏-社長の履歴書
経営者(菊本 久寿)の経歴は、私立進学高から大学へは行かず音楽活動に専念、音楽系の専門学校に行くが中退、その後、音響系の専門学校を卒業。
HTMLを独学で学習しゴルフ用品販売企業の社内SEとして正規雇用。SESに転職、株式会社フラクタリストに転職、ngi group株式会社に買収(旧ネットエイジ、現ユナイテッド)を退社し、フリーランスを経て2014年に株式会社スタートアップテクノロジーを設立し、2019年にプログラミングスクールRUNTEQを始める。
C++、Java、Perl、ColdFusion、PHP、Python、Rubyなど10以上の言語で開発をおこなう。
経営者の経歴は、最初から大きな予算があるシステム開発ではなく、新規事業として立ち上げる予算しては小さな規模の開発を手掛けることが多かったようだ。
小さな規模の開発からスタートしても事業拡大が成長軌道に乗った場合、システム開発予算も比例して大きくなるので必ずしもミニマムのプロジェクトのみということではない。
SIerが手掛ける、予算数十億円~数千億円単位の開発を上流工程から下流工程まで俯瞰的におこなった経験はないようだ。
SIerの工程
図)システム開発事業者の全工程
大手SIerでは、新卒で入社後すぐに研修、SE、プロジェクトマネジメント、コンサルティング、営業(場合によってはプログラマー)などを経験後、専門分野(PM/SE、コンサルタント、営業、R&D)のスペシャリストに分かれていく。
RUNTEQは経営者の経歴を色濃く反映したプログラミングスクールと言える。小さな規模のプロジェクト(Ruby採用)をアジャイルのような工程管理でおこなうには、RUNTEQのカリキュラムは向いている。
公式サイト | https://runteq.jp/ |
---|---|
料金(税込)と受講期間 | Web開発スタンダードコース(5~9ヵ月間):550,000円 |
就業実績 | 就職実績公開なし。就業率不明。 |
受講条件 | 18歳以上 |
学習形態(場所) | オンライン(動画配信型)※教室なし |
学習形態(学び方) | 自己学習形式 |
受講期間 | 9ヶ月(期間終了後はサービスも終了) |
時間 | 24時間 |
言語 | Ruby |
データベース | 不明 ※Oracleではない |
OS | Linux |
その他スキル | Rails、HTML、CSS、JavaScript、Git、Git-flow Docker、開発工程、サーバー、ネットワーク、クラウド |
無料カウンセリング | 対面なし。オンラインあり(Google Meet)。 |
無料体験レッスン | なし |
学習サポート体制 | 対面なし。Zoomなどのリアルタイム双方向なし。AIチャットあり。対人チャットあり(平日11:00~22:00、休日10:00~18:00、水・祝日休み)。質問フォームあり(回答遅い)。 |
就職支援 | 模擬面接なし。就職支援なし。 |
返金保証 | なし |
その他 | チャットで毎週の学習振り返りを実施。 専任キャリアトレーナーと毎月マンツーマンの面談を実施。 交流会やイベントを定期的に開催。 |
運営企業 | 株式会社RUNTEQ - 企業情報 |
法人番号 | 1040001087651 |
資本金 | 非公開 |
RUNTEQ(ランテック)が公式ホームページで紹介している就職できた卒業生のインタビューだ。
前職は派遣社員1名、新卒1名を除き、全員正規雇用の社員または公務員で、フリーター、職歴ナシは存在しない。
学歴は不明2名、大学中退1名をを除き全員大卒。不明2名のうち1名は国家公務員(税関)だったので大卒とみるべきだろう。
残り一名は介護士をしながら社会人野球に取り組んでおり、膝の故障で野球を諦め地元の印刷会社に就職しているので、大卒、高卒どちらの可能性もある。
年齢 | 性別 | 学歴 | 前職 | 前職 雇用形態 |
---|---|---|---|---|
20代 7名 30代 3名 40代 1名 不明 1名 | 男性 7名 女性 5名 | 大卒 9名 大学中退 1名 不明 2名 | 国家公務員 2名 地方公務員 1名 民間企業 9名 | 正規雇用 11名 派遣 1名 |
つまりインタビュー対象の全員大卒の可能性(1名大学中退)があり、新卒1名を除く全員が正規雇用の職歴もあるので転職は十分可能なキャリアで、見栄えのよいキャリアの持ち主を選んでインタービューしている。
前職が国家公務員、地方公務員の方もいるのは少し驚く。
RUNTEQ(ランテック)に紹介してもらいたいのは、フリーターから中小零細のシステム関連の会社でよいので正規雇用のインタビューだが、実績があれば掲載すると思うので「実績なし」と考えるのが妥当だろう。
年齢/性別 | 履修期間 | 前職/雇用形態 | 学歴 | 就職先企業 | 給与 | 業務内容 | インタビューページ |
---|---|---|---|---|---|---|---|
30代 男性 | 2019年9月~2020年2月 | 国家公務員 | 同志社大学卒 | 株式会社Relicホールディングス傘下 | 不明 | 不明 | 国家公務員から未経験エンジニア転職 |
20代 女性 | 2024年1月~2024年10月 | 金融機関(社員) | 大卒 | 不明 | 不明 | バックエンドエンジニア | 金融機関の営業職からWebエンジニアへ転職 |
20代 女性 | 2024年1月~2024年10月 | 国家公務員(税関) | 不明 | 不明 | 不明 | 不明 | 国家公務員(税関)から自社開発のバックエンドエンジニアへ |
40代 男性 | 2023年10月~2024年7月 | 製薬会社(社員) | 大卒 | 不明 | 不明 | データ分析、DX人材育成支援、研修企画、生成AI社内活用 | MR・人事を経てデータサイエンティストへ |
20代 男性 | 2023年4月~2024年1月 | 証券会社(社員) | 大卒 | Web系自社開発企業 | 不明 | 保守・運用・新規機能開発 | 証券会社の営業から自社開発のWebエンジニアへ |
不明 男性 | 2023年4月~2024年1月 | 印刷会社(社員) | 不明 | 不明 | 不明 | バックエンドエンジニア | 自社開発企業のフルスタックエンジニアへ |
20代 男性 | 2023年1月~2023年10月 | 一般企業 | 大卒 | 不明 | 不明 | バックエンドエンジニア | コンサル会社からWebエンジニアへ |
20代 男性 | 2022年2月~2022年8月 | 地方公務員 | 大卒 | 不明 | 不明 | プロジェクトマネジメント、開発 | 地方公務員からフルリモートの受託開発エンジニアへ |
20代 女性 | 2021年11月~2022年5月 | 航空会社(社員) | 大卒 | 不明 | 不明 | SI | 客室乗務員からWebエンジニアへ転身 |
20代 女性 | 2021年8月~2022年5月 | 新卒 | 大卒 | 不明 | 不明 | 新卒で受託開発企業から内定獲得 | |
30代 男性 | 2021年7月~2022年3月 | 広告代理店(社員) | 大卒 | 不明 | 不明 | 保守・新規機能開発 | エンタメ系自社開発のWebエンジニアへ |
30代 女性 | 2020年10月~2021年5月 | 派遣社員 | 大学中退 | 株式会社Beer and Tech | 不明 | 保守・新規機能開発 | 派遣社員がWebエンジニア(自社開発企業)に転職するまで |
疑問に思ったのは、もしわたしが知人に「WEB系エンジニアになろうかと考えている」と相談されたら、エンジニアの面白さも説明するが、それ以上にエンジニアの不安定な状況も説明する。
特に大手の上場企業のグループ中核企業であれば職の寿命と、上場企業によるレイオフは日本では現状不可能なので安定も担保されるが、非上場、特に中小零細では実質的なレイオフは普通にある事実を説明する。
企業名 | 事業内容 | 上場非上場 | 資本金 | 従業員数 |
---|---|---|---|---|
GMO MEDIA | インターネットメディアの開発・運営、ポイントサイト構築支援、コンテンツ制作 | 東証グロース | 7億6197万円 | 209名 |
チームラボ | スマートフォンアプリ開発、WEBサイト開発 | 非上場 | 1000万円 | 不明 |
SARAH | FoodDataBank、SARAH、もぐナビ | 非上場 | 1億円 | 不明 |
L&E Group | ASP事業、デジタルマーケティング支援事業、インキュベート事業 | 非上場 | 不明 | 不明 |
XIAN シアン | mediable、marketing DX | 非上場 | 不明 | 不明 |
株式会社 CI | Webアプリケーション開発、モバイルアプリ開発 | 非上場 | 不明 | 不明 |
SENRI | SENRI | 非上場 | 不明 | 不明 |
ファーモ | 農業用IoT製品の開発・販売、ITサービスの開発・販売 | 非上場 | 1億円 | 31名 |
Relic | インキュベーションテック、事業プロデュース/新規事業開発支援、イノベーター人材育成支援、地方創生・地域イノベーション事業、イノベーション・ワークプレイス事業 | 非上場 | 5400万円 | 350名 |
ゴーガ | ITコンサルティング、ウェブサイト設計・構築、システム設計・構築、ソフトウェア開発、インターネットサービス運営 | 非上場 | 1500万円 | 不明 |
しくみ製作所 | ITソリューションサービス | 非上場 | 1915万円 | 不明 |
株式会社palan | AR作成サービス『palanAR』及びARデジタルマップ『AR Maps』の運営 | 非上場 | 不明 | 不明 |
ファンリピート | ITシステム開発事業 | 非上場 | 2000万円 | 不明 |
オンラインプログラミングスクール(動画配信型スクール)で学ぶより、洗練された書籍で学んだほうが短期間で技術習得が可能だ。動画配信で学ぶ現役エンジニアはゼロと言ってよい。
未経験者も同様で多くのシステム開発事業者(SIer、メーカーなど)は書籍とOJTが中心になる。
表現は乱暴だが「配信型でチンタラ学んでいるような技術者は現場ではやっていけない」というのが率直な意見だと思う。・・・続き「現役エンジニアや新卒はどのように学んでいるか?」
小規模開発ではPython、Rubyを採用するケースもあるが、Python、Ruby、PHPなどの変数宣言を必要としない言語(動的型付け言語)は品質を担保することが困難で、システム開発に向かない言語とされている。
Pythonは生成AIの開発に必要なライブラリが充実しており、生成AI関連では採用されることが多い。
小規模かつアジャイル開発のようなスピード重視の開発に採用されるケースはあるが、決められた「品質」「予算」「納期」を実現する言語としては適切ではない。
Python、Ruby、PHPはいずれもインタプリタ言語であり、処理性能が重要な大規模システムではボトルネックになる。それぞれ非公式なコンパイラもあるが、信頼性が低く採用できない。
Cobol、C++、Javaなどの変数宣言が必要な言語(静的型付け言語)は品質管理が容易であり、コンパイル言語なので実行速度も速い(厳密にはJavaは中間言語)。
システム開発で重要なことは「品質」「予算」「納期」だ。変数宣言が不要であったり、スコープが曖昧な言語は、動かすことは簡単だが品質管理は難しい。
変数宣言が必要で言語仕様が明確なコンパイル言語は、正しく記述しなければコンパイルエラーで動かない。
動かすことが面倒な言語だが、システム開発で重要なことは「品質」「予算」「納期」であり、これらの条件に沿った言語だ。
プログラミングスクールでJavaが学習対象にない理由は明確で「教えるのが難しい」からだ。Javaはオブジェクト指向で変数宣言が必須でありコンパイル言語だ。
書いたプログラムをレンタルサーバーにアップロードすれば動かせるPython、Ruby、PHPとは違い、JVMを起動させる必要があるし、WEBシステムならJVMと連動させる必要もある。
プログラムを書いてもコンパイルしなければ動かない。コンパイルでエラーがあればコンパイルすらできない。
Python、Ruby、PHPはインタプリタなので書けばなんとなく動くが、Cobol、C++、Javaは違う。
つまり、Cobol、C++、Javaを避けて、Python、Ruby、PHPを教えたがるプログラミングスクールは、現実のシステム開発を知りつつ、大多数のエンジニアが従事する業務システム、特に大規模システム(業務システム)ではまったく意味がないことを教えているボッタクリスクールと言える。
オンラインプログラミングスクール(動画配信型スクール)で学ぶより、洗練された書籍で学んだほうが短期間で技術習得が可能だ。動画配信で学ぶ現役エンジニアはゼロと言ってよい。
未経験者も同様で多くのシステム開発事業者(SIer、メーカーなど)は書籍とOJTが中心になる。
表現は乱暴だが「動画配信でチンタラ学んでいるような人は現場ではやっていけない」というのが率直な意見だと思う。
筆者が新卒・中途の未経験者の教育で使用している書籍が「10日で覚えるシリーズ」だ。新卒未経験者にはこの本で10日間でMVCモデル2(Java Servlet JSP Oracle)開発できるようになってもらう。
中途未経験者の採用試験でも使っており、10日間時給を支払い、複数いる場合は協力し合ってこの課題をおこなわせる。
すべて完璧に理解・実装できる必要はないが、重要な部分は10日間ですべて理解・実装できないと合格できない。
できるか?できないか?グダグダ考える前に「読んで手を動かせ」ば、大卒・専門卒・高卒問わず10日間でできるようになる。
もう1つ、この10日間でやることには意味がある。
システム開発は気の知れたチームでおこなえることの方が少ない。多くのプロジェクトは、流動するSE・PG・コーダーを調達し、チームを作りプロジェクトを推進する。
自分が流動する人材を向かい入れる側になることもあれば、1人で誰も知人のいないプロジェクトに放り込まれることもある。
全員知らない人は普通で、物怖じしたりグダグダしている暇はなく、現場に入ったら即順応して仕事を始める必要がある。それが即戦力だ。
フットワークが重い人は戦力にならないので短期間で「ダメなヤツ」という烙印が押されてプロジェクトから放り出される。
未経験者でも課題を10日間でやり切る人は「心も作業もフットワークが軽く」近い将来1人で放り出されてもやっていける。
通常の学習や、受験、試験でも同様なことが言えるが「いかに要点を短くわかりやすくまとめた参考書」を見つけられるか?が学習を進めていく上で最も重要な技術の1つだ。
技術習得も同様で、自分にあった「要点を短くわかりやすくまとめた技術書」を見つけられるか?は、システム業界で生きて行く上で必須能力になる。
ひとそれぞれ、好みや、わかりやすいと感じる書籍は違うが「わかりやすさ」とは「クドクド長い説明ではなく、必要な要点を端的に説明する」ことだ。
分厚い参考書では挫折するが、薄っぺらいが重要な要点を網羅した参考書では挫折しない。
特に現役エンジニアは、実業務をこなしつつ余剰時間で新たな技術習得をする必要があり、ほとんどのエンジニアは就業時間中に新たな技術を学ぶ余裕はない。
では、どのように学習しているのか?
ペラッペラで良いので、必要な要件だけ書かれた書籍で学んでいる。もしくは、必要な部分のみ抜粋して学んでいる。
エンジニアは技術書を頭から読まず、目次を見てパラパラめくって必要な情報に辿り着く。速読に近いことを多くのエンジニアはしている(ダメなヤツはできない)。
本 | 動画 | |
---|---|---|
1)目次・索引から目的の情報を開く | 〇 | × |
2)速読 | 〇 | △ 書籍の速読より劣る |
3)再読(理解できない場合など) | 〇 | △ 書籍は目線を動かすだけ 動画は戻る必要あり |
4)説明を読みながら作業 | 〇 | × |
5)1ページの情報量 | 〇 | × |
6)操作説明などに伴う画面の変化の説明 | △ | ◎ 圧倒的に優れている |
これが出来なければ、一生うだつの上がらないシガナイコーダーで終る。
受験を思い出してほしい。
毎日コツコツと積み上げて、自分の知識として定着されるのは絶対条件だが、勉強ができる人はノートを綺麗に書くし、要点をとらえるのが上手く、短期間で詰め込む要領の良さがある。
勉強をやらなかった、もしくは勉強のやり方を知らずに勉強をしてできなかったことに問題はないが、勉強をやってもできなかったのは問題がある。
脳の良し悪しはあるが、プログラミング(コーディング)程度なら早稲田慶応の理工学部の現役大学生は、技術書のみで1ヶ月でそこそこ書けるようになる。勉強をやってもできなかった人は、おそらく1ヶ月で書けるようにはならない。
高卒でも「学習用の技術書を選択」と「進め方」さえ間違わなければ、フルタイムで学べば1ヶ月でかなり書けるようになる。
難関大学の理工学部卒から、高卒まで幅広い学歴を持つ経験者・未経験者の教育をおこない、高卒を上場企業に即戦力として中途採用されるレベルのエンジニアに育成することもおこなってきたが、プログラミングに関して言えば、学歴や理系・文系は関係なく誰でも普通にできようになる。
プログラミングは限りなく奥深く、広い知識が必要だが、ありがちな業務システムや配信型WEBシステム程度なら、難易度の高い実装(複雑なトランザクション処理やビジネスロジック)を除けば、2ヶ月フルタイムで学習すればそこそこ現場の戦力になる。
「UI」や「データベースの参照・更新」程度なら大した技術は必要なく、誰でも短期間で出来るようになる。高校の数学、物理、英語の方が遥かに難しい。
プログラミングスクールに何十万円もかけて行くとかオンラインで学ぶという感覚は、システム業界の人間にはまったく理解しがたい感覚だと思う。
そこそこ大きな書店で気に入った本を買ってきて読めば十分わかる話だ(※アマゾンでポチるという考えはない。良本か?自分に合っているか?などはパラパラめくってみないと判断できないからだ)。
プログラミングとはその程度の話で、手に職を付けるといったレベルのものではない。プログラミングだけで一生食っていける可能性はかなり低い。
システム開発全般に対する理解、最低でも下流工程の設計能力がなくては50歳まで現役で働くことすら難しいだろう。