feature image

2022年3月25日 | ブログ記事

プログラミングの道しるべ

こんばんは。朝ならこんにちは。21B のゆきくらげです。
これは 新歓ブログリレー17日目 の記事です。

今回の記事はプログラミングでどんなことができるのか知りたい初学者の方、ある程度学習が進んで次に何をすれば良いのかわからない方に向けた、ロードマップです。

記事としてはあまり詳しい場所に突っ込まず、より広い事を重要視してまとめました。とはいっても、プログラミングでできること全てをまとめるのは不可能なので、主に traP での活動から近い分野をピックアップしています。

例えば機械学習や組み込み系もメジャーな分野ですが、traP としての活動から遠いため今回は軽く触れるのみです。ご了承ください。

今回の記事は @hijiki51 さん、 @trasta さん @mehm8128 くん、 @irori くんの協力のもと作りました。ありがとうございます。

全般

まずはプログラミングをするにあたっての分野によらないお役立ち Tips です。

ググりフォース

ググりフォース は、分からない事に直面したときにいかに検索して解決できるかの力のことです。プログラミングにおいては、下手に自分で解決しようとせず、先人の肩に乗ることが大事です。

実際「検索」という行為は以外と難しく、きちんとしたクエリを投げないときちんとした答えは返ってきません。ググり力を磨く方法を書き始めると長いので書きませんが、色々な記事を読んで自分なりのググり力をつけましょう。

人に聞く

ググっても分からなかったら人に聞きましょう。Twitter でも、質問専用サイトでもどこでも良いです。学習のため自分で解決したいという気持ちもあるでしょうが、ググって分からなかったようなバグは、非直感的な闇仕様などから来ていることがほとんどです。同じ轍を踏むのは時間の無駄ともいえるでしょう。

traP はこのような「人に聞く」が気軽にできます。tech 系の質問サイトなどのハードルが高いと感じるなら、traP に入って聞いてみるのも手です。

Progate

最近熱いプログラミング学習サイトです。便利

Web 開発

Web 開発は Web アプリ / Web サイトを作り、保守すること を目的とする分野です。大企業はもちろん、個人開発も積極的に行われている分野で、トレンドの移り替わりが速いとも言われています。

traP SysAd 班でも開発を行っているものの多くは Web アプリです。例えば、traQ という部内 SNS を開発しています。

SysAd班
このページではtraPのSysAd班について紹介します。 SysAdとは “System Administrator” の略語で、直訳するとシステム管理人のことです。この言葉から分かるように、SysAd班は主にサークル内での交流や開発を支援するための活動を行なっています。‌‌まずはSysAd班で開発している主なサービスや利用しているアプリケーションについて紹介していきたいと思います。 SysAd班で開発しているサービスここでは、SysAd班が一から制作し、運用しているサービスについて紹介します。 traQtraQは、slackライクなコミュニケーションツールです。traP内部での会話や連絡は基…

新歓ブログリレーでも Todo リストを作ろうという記事が連載中です。基礎からわかりやすく書かれているのでおすすめです。

ReactでToDoリストを作る(前編)
こんにちは。21Bのmehm8128です。この記事は新歓ブログリレー10日目の記事です。 普段はSysAd班でフロントエンドを担当してWebアプリを作っています。アルゴリズム班で競プロもしてます。 次回 → 明日投稿します Github(今回の最終的なコードを確認できます) → https://github.com/mehm8128/ToDoList/tree/day-1 この記事について 今回はReactでToDoリストを作っていきたいと思います。traPでは入部後に数日で強強エンジニアになるための「Webエンジニアになろう講習会」という講習会が開かれますが、traPのサービスのフロ…

そんな Web 開発ですが、主に次 4 つのサブジャンルが存在します。

フロントエンド

Web アプリの仕組みを単純化して図示すると次のようになります。

フロントエンドはこの左下、ユーザーに提供する画面やブラウザで動くロジックを提供します。

使用される言語は主に HTML、CSS、JavaScript です。

以下、フロントエンドを進めるにあたって重要な概念を列挙していきます。焦らず、順番に習得していくのが大事です。

バックエンド

対して、上図の左下以外、サーバー側で動くプログラムをバックエンドといいます。大量のデータの保存と配信、またアプリケーションとしての機能を提供をしています。

使用されている言語は様々ですが、主に Go、Java、Ruby、JavaScript (nodejs) などです。SysAd 班では主に Go を用いています。

データベースって何

データベースはバックエンドにおいてデータをためておく場所のようなものです。MySQL などを通して操作されます。

感覚的にはエクセルのようにデータが保存されていて、例えば、「列 A の値が 1 の行だけとってきて」みたいな命令をして管理します。

インフラ

インフラでは、インターネット周りの設定などを行います。詳しくは AWS、GCP、オンプレ、などで調べるといろいろと出てきます。

簡単に言うと、Web アプリのコードを書いて、いざ配信したくなったときにどうする?となった段階の話です。サーバーを自宅で立てるのか、あるいはクラウドを借りるのか、データベースだけ使うのか、などなど……時と場合に応じて適切な選択と設定をする必要があります。またネットワークに起因するバグの調査や修正もします。

デザイン

ユーザーが操作しやすく、目を惹く UI / UX を考える分野です。デザインの作成には Figma や Adobe Illustrator などを用います。

ちなみに SysAd にはデザインチームがあります。気になったら所属してみてはいかがでしょうか。

デザイン部 - 東京工業大学デジタル創作同好会traP
『デジタル創作同好会traP』は、東京工業大学で活動するデジタル創作・プログラミング系サークルです。ゲーム制作を中心に、アプリ、音楽(DTM)、グラフィック(イラスト、3Dモデル、ドット絵、動画)などのクリエイティブ活動の他、競技プログラミング(競プロ)やCTFも行っています。

ゲーム開発

ゲーム開発は最も人気のあるジャンルの一つです。

traP でもプロジェクトとしてチームを結成しゲームを作ることがあるほか、ichigo jam などのゲームを短期間で作るイベントなどがあります。ここではプログラミングに限らず、ゲームを構成する要素についてまとめていきます。

ゲーム紹介 - 東京工業大学デジタル創作同好会traP
『デジタル創作同好会traP』は、東京工業大学で活動するデジタル創作・プログラミング系サークルです。ゲーム制作を中心に、アプリ、音楽(DTM)、グラフィック(イラスト、3Dモデル、ドット絵、動画)などのクリエイティブ活動の他、競技プログラミング(競プロ)やCTFも行っています。

※ 以下、traP のゲーム開発における構成を参考にしています。

プログラマ

ゲームシステムを作ります。Unity や Unreal Engine などの既存のゲームエンジンを用いることもあれば、ゲームエンジンを自作したりすることもあります。

使う言語は Unity の場合 C#、Unreal Engine の場合 (おそらく) C++ が多いです。

ベクトル (や 3D ゲームなら四元数) などを扱うため、数学的な知識が必要になる場面も多いです。

シェーダー

特に 3D ゲームなどに用いる、影の描画などをコントロールしたりします。規則的な模様なども作れたりします。GLSL などの言語を用いることが多いです。

Twitter で #つぶやきGLSL などと調べると新たな世界の扉が開くかもしれません。

モデラー

3D モデルを作ります。Blender や Metasequoia を用いることが多いです。

また、人型のモデルなどは Vroid などの便利な作成ツールがあるので、ここから初めてみるのも良いかもしれません。

3Dモデリング - 東京工業大学デジタル創作同好会traP
『デジタル創作同好会traP』は、東京工業大学で活動するデジタル創作・プログラミング系サークルです。ゲーム制作を中心に、アプリ、音楽(DTM)、グラフィック(イラスト、3Dモデル、ドット絵、動画)などのクリエイティブ活動の他、競技プログラミング(競プロ)やCTFも行っています。

イラストレーター

ゲームのイラストを描きます。クリスタ、Adobe Illustrator、Adobe Photoshop などを使います。

traP にはグラフィック班が存在し、ゲームのプロジェクトではイラスト担当をすることが多いです。

グラフィック班
traPのグラフィック班では、ドット絵、デジタルイラスト、3Dモデル、アナログイラスト、ロゴなどの制作を行っています。 制作した作品は、チームで制作するゲームに用いられたり、各種イベントの広告ポスターに使用されています。 新歓で配るチラシ、イベントポスター、コミケで頒布するCDのレーベル、部内サービスのロゴなどのデザインも全てこのグラフィック班で行っています。 グラフィック班は仕事が多く、各種イベントやプロジェクトから重宝されています。 また、絵やデザインを大学から始めた人も多いので 経験がなくても全く問題ありません。 好きなアニメのキャラクターを描けるようになったり、描いたイラス…

余談ですが、traP の「班」という概念の拘束力は強くなく (創作活動を行う意思表明、とされている) 、別にグラフィック班じゃなくてもイラストを描いても良いですし、複数班に所属しても全然 OK です。

サウンドクリエーター

BGM や SE を作ります。 Studio One や Reaper、CUBASE などを用います。

サウンド班 - 東京工業大学デジタル創作同好会traP
『デジタル創作同好会traP』は、東京工業大学で活動するデジタル創作・プログラミング系サークルです。ゲーム制作を中心に、アプリ、音楽(DTM)、グラフィック(イラスト、3Dモデル、ドット絵、動画)などのクリエイティブ活動の他、競技プログラミング(競プロ)やCTFも行っています。

いざゲームを作ろうとなったとき、SE が忘れられがちなのですが、SE も BGM と同じくらい大事です。

プランナー

ゲームのアイディアを考え、立案します。

traP においては定期的にゲームのアイディアを発表してプロジェクトを立てる場が用意されます。

また、traP のプロジェクトではその後の進捗管理なども続けてやることが多いです。企業などでは進捗管理を別の係がやることもあり、ディレクターなどと呼ばれます。

競技プログラミング

問題が与えられ、その解を求めるようなプログラムを書く競技です。速く、多く解くほど点数が与えられるものが基本的な競技内容です。

競技時間はほとんどの場合数時間程度ですが、中には1週間程度やる長丁場のものあります。

競技プログラミングができる有名どころのサイトとして次のような場所があります。

特に AtCoder は国内人気が高いです。

traP にはアルゴリズム班があり、コンテストの部内解説会などを行ったりしています。

アルゴリズム班
アルゴリズム班では主に競技プログラミングを行う班です。 競技プログラミングとは競技プログラミングとは、与えられた問題に対して正確な回答を出力するような高速なプログラムを書きその時間を競う競技です。 問題の例A - chukodai 英小文字からなる文字列 S が与えられます。 S の先頭から a 文字目と b 文字目を入れ替えて得られる文字列を出力してください。AtCoder Beginner Contest 236 A - chukodai このような問題文が与えられ、問題文中の変数Sやaなどを入力にとるプログラムを書いていきます。そして、問題文で要求される答えを正確に出力できれば正解となり…

新歓時期ということもあり、一部解説会を公開しています。

AtCoder Beginner Contest 243 部内解説会の様子を公開します
こんばんは。朝ならこんにちは。21B のゆきくらげです。 前回の AtCoder Beginner Contest 243 の解説会を部内で行いました。今回、新歓時期ということもあり録画したものを Youtube に配信することになりました。次回 ARC (3/19)、あるいは次回 ABC (3/20) の前に少し覗いてみると良いかも……? https://youtu.be/dS_mAauKHUk <iframe id=“player” type=“text/html” width=“640” height=“360″ src=“http://www.youtube.com/embed…
AtCoder Beginner Contest 244 部内解説会を配信します
こんにちは。夜ならこんばんは。ゆきくらげです。 先の AtCoder Beginner Contest 244 の解説会を 今日 Youtube にて リアルタイム配信 することになりました。ハッシュタグ #traP解説会 を拾いながら行うので、ぜひ参加してください! 内容日時3/23 21:00 ~ Youtube Live URL問題D Swap Hats解説: ゆきくらげ @yukikurage E King Bombee解説: ゆゆ @yuyu_5510 F Shortest Good Path解説: すく @0214sh7 G Construct Good Path解説 tatyam…

数学の知識を使う問題も多いです。(グラフ理論など)

CTF(Capture The Flag)

CTF はセキュリティの穴を見つけて機密情報に見立てたフラグを回収する競技です。

下の記事に詳しいことが載っています。

CTF をやってみよう!
新歓ブログリレー10日目の記事です。 こんにちは、CTF班所属のあんこです。この記事では、CTF の問題をどうやって解くのか、実際に解いていく過程を見ながらCTFの楽しさを味わってもらいたいなと思います。 CTFとは何なのかについては以下の記事を読むと良いでしょう。 https://trap.jp/post/976/ CTF について知らない人が多いと思うので最初の紹介ではこの記事を引用します。 Capture The Flag とは Capture The Flag、縮めて CTF とは、サイバーセキュリティに関する競技の一つです。 サイバーセキュリティとはサイバーなセキュリティ…

traP には CTF 班があります。

CTF班
CTF班 CTF班は、CTF(Capture the Flag)という競技をしています。 CTF(Capture the Flag)とは、セキュリティに関する技術と知識を用いて、機密情報に見立てたFLAGを探し出す競技です。 CTF班では、個人または班内のグループで外部のCTFの大会に参加することを主な活動としています。 CTFの問題について 一口にサイバーセキュリティとっても様々な分野があり、CTFでも様々な問題が出題されますが、おおまかに以下のように分類できます。 Binary Reversing, Pwnに細分化されることもあります。 実行ファイル(elfやexeなど)を解析し…

また、CPCTF という新歓イベントの一環として traP が開催する CTF イベントもあります。ぜひ参加してください。

ネイティブアプリ開発

ネイティブアプリは、Web アプリのようにブラウザからアクセスするものではなく、端末にインストールして使うアプリのことです。

traP ではゲーム以外のネイティブアプリ開発の事例は少ないですが、traPCollection などが当てはまります。

ネイティブアプリは様々な方法で作ることができます。以下、いくつか技術をまとめます。もちろん、ここに乗せた方法以外でも作ることができます。

組み込み系

家電やロボットの制御のためのシステムを開発します。今回は省略しますが、組み込み系からプログラミングをやり始めた人も少なくありません。

機械学習

既存のデータから何かしらを推測する分野です。現在最も熱く研究されていますが、traP として機械学習をやっているわけではないので省略させていただきます。

Python とかが使われている印象が強いです。

もちろん traP 部員の中には個人で機械学習をやっている人が結構いて、らん☆ぷろで発表などをしています。

らん☆ぷろって?

部内ショートプレゼン会「らん☆ぷろ」の紹介【新歓ブログリレー12日目】
こんにちは、@d_etteiu8383です。この記事はtraP新歓ブログリレー2022 12日目(3/20)の記事です。 この記事では、traPのメンバー集会で行われている「らん☆ぷろ」という部内ショートプレゼン会をご紹介します。 メンバー集会 traPでは月1回から2回のペースでメンバー集会が行われます。ここでは事務的な連絡をはじめ、各班[1]やプロジェクト[2]の進捗報告会、そしてらん☆ぷろなどが行われます。 らん☆ぷろとは らん☆ぷろとは、部員が各々、興味のあるトピックや勉強したりやってみたりしたことについて5-10分くらいで発表する会です。 この名称は部内で運用されているSNS…

興味が出た分野などありましたか?

最後に個人的な話、ここに乗っていないプログラミングの分野として「ネタプログラミング」があります。変態言語に真面目に取り組んだり、これもこれで一大分野です。いつか紹介してみたいです。

明日の新歓ブログリレー担当は

です。お楽しみに

yukikurage icon
この記事を書いた人
yukikurage

色々しますよ

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

ERC20トークンを用いた宝探しゲーム(真)の提案【アドベントカレンダー2018 10日目】 feature image
2018年11月3日
ERC20トークンを用いた宝探しゲーム(真)の提案【アドベントカレンダー2018 10日目】
Azon icon Azon
2022年4月7日
traPグラフィック班の活動紹介
annin icon annin
2021年5月19日
CPCTF2021を実現させたスコアサーバー
xxpoxx icon xxpoxx
2023年4月27日
Vulkanのデバイスドライバを自作してみた
kegra icon kegra
2022年4月5日
アーキテクチャとディレクトリ構造
mazrean icon mazrean
2022年3月29日
課題・レポートの作成、何使う?【新歓ブログリレー2022 21日目】
aya_se icon aya_se
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記