
エンジニア力が欲しいか... 欲しいなら地底に落ちてこい!
どうも、デジタルハリウッド大学で一番存在感が無い12期生(現在3年生)のテルですw 某アザラシにアドベントカレンダーにぶち込まれたのでどうでもいい記事書きますw 真面目にこの記事を読もうとすると後悔するので脳死で読んでもらえると嬉しいですw
多分これを読んでくれてる人間の半分以上は僕のこと知らないので軽く自己紹介!
自己紹介
私は某ITベンチャーでファンコミュニティアプリを開発しているニワカエンジニアですw 主にNode.js・Rubyでサーバーサイドを扱っていますが、バイト先で無茶振り案件を振られまくって気づいたらVue.jsでWebフロント、KotlinでAndroidも書いてる人間に改造されました()
ちなみに、ReactやReactNativeもチョットワカルので関連の話にもニワカなりに付いていけますw
Welcome to Underground!
2chでこのコピペ流行ったよね... 厨二病でごめんねw 早速本題に入ります!
皆さんはインターネットのグレーゾーンに触れたことがありますか?例えばiPhoneをJailbreakしたり、WindowsPCでMacを動かす夢を見たり、AndroidでカスタムROM焼いたりetc... 規約的にはアウトだけど、犯罪じゃ無い部分ですね。多分物好きじゃ無い限りは触れたことがないはずです。通常の人間が触れない少し霧がかったここら辺のコミュニティですが、実は想像以上に技術力・検索力が試される場所なのはご存知でしょうか? 今回はアンダーグラウンドなコミュニティについて少し語りたいと思います。
最初に言っときますが、実践することは強く推奨しません。何があっても責任持たんぞ! フォーラム読むだけにしとけよ!!!
正解のないパズル
何故アンダーグラウンドなコミュニティに足突っ込むとなんでエンジニア力がつくかというと、正解のないパズルのような物になってるからです。どういうことかというと、自分のガジェット・環境に適したドキュメントなどは存在せず、フォーラムを漁って設定していくのが大半だからです。
だから、フレームワークみたいに公式ドキュメントは無く、カスタムドライバとかを有志で開発してるところを見つけダウンロードしていくという作業や、ブートローダーなどの設定をフォーラムの成功例を参考に設定していくなど... 必ず成功するというマニュアルが存在しません。全部自分で英語読んで探す必要があります。
そのため、自然と検索力がついて慣れると普通にフォーラムから目的な情報を入手することが出来ます。また、日本語のドキュメントや記事があまりないので英語を読むシーンが絶対出てきます。英語が読めなくてもニュアンスで理解できるようになりますよ。
天才達の巣窟
ここら辺の技術を支えてるのは世界中の天才達です。天才というと僕らが届か無い最強な経験を積んできたおっさん達というイメージを持ってる人がいるかもしれませんが、以外にも年齢層が幅広いのがこのコミュニティの特徴です。実際Jailbreakを技術を支えてるCoolstar氏という方がいるのですが今年で20才です。僕の年下です() 高校生からここら辺のコミュニティに参加して今は支えてる側の人間になってるというのが怖いよね...
このように好奇心に突き動かされてる天才達がうじゃうじゃいます。そんな人たちが書いたコードもGIthubにOSSとして公開されるので読むとめちゃくちゃ勉強になります。私も時たま読むんですが、何書いてるかわから無いのがほとんどですがねw
低いレイヤーがチョットワカル
普段アプリを書くとき、OSが提供してるAPIやライブラリ経由でデバイスを操作していると思います。実際ここら辺ってブラックボックス化されていてあんまし理解して無い人間はたくさんいると思います。
アンダーグラウンドなコミュニティに入れば嫌でもここら辺に触れることになります。例えばWindowsPCでMac動かすとき、macOSのカーネルにパッチしたりし無いと動かないのでちょっと知識ないとキツイですよ。また、iPhoneを脱獄して、普段できないことをやるのにも、OS側で提供されてないPrivate APIを叩くことになるのでそこらへんに触れる機会が大いにあるということです。案外ここら辺知ってると普段OS側に任せてる部分が理解できて強いコードが書けるようになります!
アングラネタはエンジニアに最適
アングラネタを扱うコミュニティにはエンジニアに必要な部分がぎっしり詰まっているので結果的に強くなれるのです!! ある程度は新し目の技術で日本語ドキュメントが無い物でも使えたり、独自のライブラリ書くときにめちゃくちゃ役に立ちます!!
また、普通の人間が触れてない部分なので他のエンジニアと差を付けたい人とかいいかもね(適当
まとめ
ここまで読んでくれてありがとう! とりあえず僕は興味あるフォーラム読むべきと言うことを伝えたかっただけですw
ちなみに僕はアングラな人間じゃないよ... うん... アングラなんて知らないからね...