本年度より小学校でプログラミング教育が導入されるなど、近年プログラミングに熱い視線が注がれている。大学生になってプログラミングを始めようと考えている人も多いのではないだろうか。一方で、学習したいが何から始めればいいか分からない、勉強しているが将来何に生かせるのか分からないという人も少なくないだろう。プログラミング学習の意義や魅力、上達の方法について、LINE株式会社のエンジニア採用チームマネージャーの藤原聖さんと開発型プログラミング学習サークルut.code();に取材した。
(取材・友清雄太)
開発者との共通言語に
「実践的な技術を習得したのは就職してからです」と語る藤原さん。高校時代はプログラミングに触れたことはなく、東大では授業で学習する程度だったという。工学部電子情報工学科を卒業後に、当時出始めだったAndroidのエンジニアとして複数のサービスの立ち上げに携わった。
コンピューターの処理を指示するプログラミング言語には、汎用性が高いC言語やJavaの他に、機械学習に用いられるPythonやウェブページ作成に用いられるHTML、CSS、JavaScriptなど目的に応じて多様な種類が存在する。これらの言語の多くは20年以上前に開発され、IT業界の技術者を中心に使われてきた。
プログラミングを生かす職業の最たるものがエンジニアだ。ひとえにエンジニアと言っても、多様な職種が存在する。例えばLINE株式会社では、①開発、②機械学習、③データサイエンティスト、④インフラ⑤セキュリティの5種を募集している(LINE株式会社新卒採用2022より)。例えば、②では、ユーザーの行動ログを分析し、コンテンツを推薦する機械学習システムの構築や画像処理、自然言語処理を用いたサービスの向上などを、④ではネットワークやサーバーの運用、データベースの構築や運用などを担う。どの職種に就くにしてもパソコンやソフトウェアの仕組みに関する基礎的な知識は必須だと藤原さんは語る。「技術は日々進歩していますが、基礎的な部分は不変です。あるエンジニアに言わせれば、プログラミング言語の違いは方言のようなものです」。全てに共通する基礎知識があれば、新技術も体系的に習得できるという。
エンジニアの中には大学入学以前にプログラミングを学び始めた人もいるが「決して敷居が高い職業ではありません。大学から学び始めた人もたくさんいます」。エンジニアを採用する際は、技術に加え、主体性と協調性を重視しているという。「チームでプロダクトを作る時代です。コミュニケーション能力やチャレンジ精神を持った人を歓迎します」
一方、近年では情報系専攻でない学生がプログラミング言語を学ぶことも珍しくない。スマートフォンやIoTサービスの普及、人工知能の発展などで情報中心の社会システムが拡大したことが背景にある。LINE株式会社でも大学では情報系以外の学問を専攻し、自学して就職する人が少なくないという。藤原さんも就職後に実践的な技術を身に付けてきたひとりだ。
エンジニア志望でない学生にもプログラミングを学ぶ利点はあると藤原さん。「今後、あらゆるサービスにインターネットやソフトウェアが関連してきます。エンジニア以外の仕事に就いた場合でも、プログラミングの経験があれば同じチームで働く開発者側と共通言語ができ、意思疎通が容易になるでしょう」
具体的な目標を持って
ut.code();は2019年に設立された東大の開発系プログラミング学習サークルだ。現役部員3人にプログラミング学習のコツや魅力を聞いた。
プログラミング経験を教えてください
永谷さん(工・3年) 小4の時にC言語の学習を独学で始めたのが最初です。何かかっこ良さそうだったので。ですが、学習を進めるうちに、当時の自分には難しく感じ、代わりにVisual Basicを始めました。その後は、小6の時に学級新聞作りをしていて、そのウェブ版を作りました。HTMLなどのコードは自分で書きました。中学以後は本格的には触れておらず、大学2年になってクラウドソーシングで開発を受注し、再びプロダクトを作り始めました。
阿南さん(工・3年) 高校時代に少しUnityに触れたくらいで大学入学までほぼ経験はありません。前期教養課程の「情報」や「アルゴリズム入門」、「宇宙科学実習」の授業でPythonやC++などを学びました。ut.code();で活動を始めたのは工学部内定後の2Aセメスターです。永谷さんが作った学習教材や勉強会などを活用し、HTML、CSS、PHP、JavaScriptを学びました。
関本さん(理Ⅰ・2年) 大学入学後に始めました。もともとプログラミングに興味はあったのですが、高校時代は部活が忙しく時間が取れなかったので。現在は主にウェブ開発をしています。
ut.code();設立のきっかけを教えて下さい
永 プログラミングで実用的なものを作るサークルが今までなかったこと気付いたのがきっかけです。また、ビジネスをやりたい人が集まると面白いものができるのではという期待もありました。現在は、私が作った教材を基に、不定期で勉強会を開催しています。
プログラミングを始めるに当たって注意すべきことは
永 プログラミングにはプロダクト開発、データ分析、情報科学の大きく3種類があると私は考えています。具体的には、プロダクト開発ではアプリケーションやウェブサービスなど直接ユーザーに触れ合うものを作ります。データ分析では、最近流行りの機械学習や統計を基にデータを分析。情報科学は数理的解析を駆使してアルゴリズムや情報技術の開発などを扱います。プログラミングを始めるときに、自分は何をしたいのかを明確にするといいでしょう。
プログラミングの魅力を教えてください
永 自分たちが開発したものが実世界で動いていて使ってくれている人がいることです。
関 自分が便利だ、面白いと思えるものを実際に創れることです。プログラミングでできることとできないことの境界を知ることもできました。
阿 手軽に個人でものづくりができることです。僕はSlackなどで使える実用的で便利なアプリケーションを作るなどしています。
初心者にオススメの言語を教えてください
永 データ分析や情報科学を学びたい人はPythonが一番使いやすいと思います。開発系だと自分の目標に応じた言語を選択するのが一番です。
関 ウェブ開発だとフロントエンド系でHTML、CSS、JavaScriptなどが有名で使いやすいと思います。
実用レベルまで腕を上げるには
永 まずは、作りたいものや目標を定めるのが一番重要です。そして、完成までの道筋を知っている人に相談すること。ut.code();にはそのような人がいるので興味を持ったら連絡を下さい!
※新聞の購読については、こちらのページへどうぞ。