プログラミングと受験を両立するには【その後】

ITテクノロジープログラミング生活

※この記事は、2020年12月14日にZennで公開し、QiitaのLife is Tech!Members Advent Calendar 2020に参加した記事「プログラミングと受験を両立するには」を加筆・修正したものです。当時私は高校3年生で、1か月後に共通テストを迎えるといった状況でしたが、当時Life is Tech!スクールに参加していたことによりSwiftでのアプリ開発にも積極的に取り組んでいて、大学受験とプログラミングを並行してやっているといった状況でした。その状況をつづった元記事は、わずかながらも百何十~200人かにはご覧いただけましたが、私はこのたびQiita/Zennのアカウントを運用取りやめにしたので、当サイトに記事を転載しました。

あとがきに執筆から4年半経った現在の状況と、現在高校生のプログラマーに向けた今後のためのメッセージも載せているので、それも含めることで記事に深みを持たせることができるのではないかと思います。そのせいで文字数が本編の倍くらいになっちゃいましたが。

以下、原文ママ(一部太字で強調)

永遠の命題「プログラミングと受験は両立可能か?」

昨今、プログラミングにいそしむ中学生や高校生が増えてきました。僕もその一人です。

部活やバイト、趣味や推し活動など、今までやってきたことを受験のために一旦休止する人って多いと思うんですよ。「部活と勉強を両立する!」みたいに掲げた目標を入学時に掲げた人もいたかもしれませんが、それは、大概3年生になってことごとく打ち砕かれてしまうのです。そして、プログラミングもその例に漏れない…。

これは本当なのでしょうか。

でもプログラミングの場合は、僕は将来に役立つと信じているので、事情がちょっと違うと思います。

ということで、今日は、プログラミングをやっている全中高生がほぼ確実にぶつかるであろうテーマ「プログラミングと受験の両立」について書いていこうと思います。1受験生の意見ですが、ぜひ見てください。

勉強とプログラミングを両立することで得られるもの、失うもの

勉強とプログラミングを両立する上で、何がメリットになって何がデメリットなのか意外とわかっていない人も多いんじゃないでしょうか。これについて考えてみました。

メリット

将来の仕事に直結できる

特に部活や趣味は自分の将来とはあまり直結しない場合がほとんどですが、好きでプログラミングをやっている場合、その多くが将来と直結することが多いです。今のうちに腕を磨いておけば、将来お金の心配はないでしょう。

プログラミングの場合、むしろやらないと技能が落ちることもありますからね。可能な限り続けた方がいいです。

モチベーションを維持できる

勉強をしていると絶対的に辛くなる瞬間があるわけですよ。そうした時に、気分転換にプログラミングができる。これほどいいことはないんじゃないですか。

論理的思考力が身につく、受験に役立つ

最近、ますます受験で論理的思考力(考える力)が問われるようになってきました。最近、大学の出願時に「主体性・協働性・多様性」に関する記述を求められることがあります。この対策にもプログラミングが有効です。人と協力して共同開発した時には、協働性や多様性が強く意識される活動になります。

さらに入試にも役立つことがあります。推薦で役立つのはもちろん、一般入試でも、既に慶應義塾大学などでは、情報科目での受験が実施されています。2024年度からは大学入学共通テストでも受験科目として「情報」が追加される見込みです。それらの対策を直接的に、しかも楽しみながらできる手はプログラミング以外にないですよ。

デメリット

大事な勉強時間が奪われる

これが一番ですよね。どうしても趣味には時間を割きます。

パソコンにのめり込んじゃう

上とほぼ同じですが、これはプログラミングがパソコンを使う趣味だから言えることです。プログラミングがめちゃくちゃ好きな人だったらプログラミングにのめり込んでしまい、本分の勉強が疎かになってしまうことが懸念されます。楽しすぎていつの間にYouTubeの虜となって抜け出せない状態になっちゃったなら、それは本末転倒です。特に受験間近の高三においては、中毒性をコントロールする手立てを考え実行した方がいいです。

頭にプログラミングのことが急によぎり集中できない

プログラミングではこんなことは起こりにくいかもしれません(むしろTwitterやYouTube、ブログとかで起こりやすい)が、ひょっとしたら、急にアイディアや音楽(SNSでは新着のコンテンツ?)などがよぎって創作意欲が勉強のモチベーションを邪魔することがあるでしょう。

やはり受験勉強においては、何より自分を管理する能力が求められます。よぎるPCの誘惑をどう管理するかによって、自分を管理する能力も鍛えられると思います。

僕ならこうする

これはあくまで僕自身がこうすると言ったものなので、参考程度に見ていただければ幸いです。

受験まであと○ヶ月!もういい加減勉強しなきゃ!っていう人は…

まさに今の僕ですね。受験まで程近い受験生には、以下のような考え方や方法が有効なんじゃないでしょうか。必要な勉強量などの兼ね合いにもよりますが、勉強しなきゃいけないけど、うまくプログラミングもしたい、という欲張りセットを堪能したい方は、以下のような考え方をすることをお勧めします。

  1. 気分転換として
  2. パソコンを物理的に離す 
  3. 時間を決める 
  4. 場所を決める(例:スクールだけでプログラミングをする)

また、プログラミングスクールにおいては、自宅で次の授業の日までに何かをしてこいみたいなのがあると思います。その場合は、機械が自動でやってくれるアップデートを宿題にしたっていいでしょう。プログラミングに大いに関係あるわけですから、きっと咎められないでしょう。メンターもその辺は配慮してくれると思います。

本分は勉強なので、勉強の合間を見つけてプログラミングをするのがいいと思います。

あるいは、どうしても勉強量が追いつかないなど、最終手段として、やめるという手もあります。塾や学校の先生などからやめるように言われたら、プログラミングの時間を極限まで減らすか、素直にやめましょう。

受験までまだ時間がある人、内部進学の3年生、志望校がめちゃくちゃ簡単なレベルの人は…

まだまだ時間はあります!プログラミングライフをエンジョイして、大学生になった時のために今のうちから知識を身につけましょう!

あと、受験の時になってプログラミング活動を休止したいっていう人は、後悔しないように区切りのいいところで開発の進捗を終わらせてくださいね。

最後に

プログラミングは、情報社会の現代において、将来絶対に役立つ職業です。中学や高校の頃からプログラミングでものづくりをして、遅くとも受験半年前になったら気持ちを切り替えて、勉強モードに入ったら個人的にはちょうどいいんじゃないかと思います。

その勉強モードにおいても、プログラミングを完全に切り捨てるわけはなく、ちょくちょくプログラミングのもの自体には触れておくべきです。

本来私は受験勉強をするべきなのですが、来年はスクール生ではなくなるので、是非ともMembers Advent Calendarに寄稿してみたく思い、時間を惜しみながら書いてみました。

Members Advent Calendarで、他の皆さんは多くが技術系のTipsを書いてくれたみたいですが、私の記事はそれらとは全然関係なくて浮いてしまいましたね。なんかごめんなさい。

うまく説明できたかどうかは不明ですが、一応今の私の気持ちは吐き出せたんじゃないかと思います。

それでは、みなさんがプログラミングと両立しながら、良い大学に進学をできることを祈ります。

私も頑張らなくちゃ…ですね。

あとがき(ここから2025/7/15追記)

プログラミングをやっている中高生を取り巻く状況もここ数年で、だいぶ変わってきました。5~10年前は、中高生によるプログラミングというのは限られたオタクだけで、徐々に中高生向けのプログラミング教室ができて学びの門戸が開かれつつあったという状況でした。

それが、2020年からの義務教育課程・2022年からの高校教育課程において、プログラミングが必修ということになっていて、今や本編で言及した情報科目の共通テストもすでに始まっているという状況です。しかもその内容は、小中学校でやるようなゲーム感覚で楽しめるような知育的な感じのプログラミング(Scratch, Minecraftなど)ではなく、教育現場によっては本物のコーディングが必修のところもあるようです。例えば、今AIがキテるからといって高校生にPythonに挑戦させる現場は多いことでしょう。

このように、私が中等教育を受けた5年前や10年前とはだいぶ状況が違っているように思います。そんな中で、多様な児童・生徒がプログラミングを学ぶ中で、10代のころから学業の外でも積極的に技術を磨きその成果を世の中に公開する人もいれば、苦手ながらも赤点を取らないために学友に支えられながら授業のみでプログラミングをやっている人もいるかもしれません。

とはいえ、私の高校は先進的でして、私は高校では授業でもプログラミング教室でもSwiftをがっつりやっていたので、だいぶ状況は違うとは思います。上の記事は、特に私のように学業の外でもプログラミングをやってきたけど、受験と両立するために葛藤する生徒・学生に向けたものです。

当時と意見は変わっているか?

2025年現在の私も、上に書かれたメッセージには概ね同意しております。

私は、高校3年の後半は、Life is Tech!によって、大学後半の一時期(主に就活期間)よりもプログラミングに触れた実感があるという状況でした。やはりちょうどよい圧力をかけてくれる環境(プログラミングスクール)が存在すると、それがやる気のトリガーとなったり、技術力が落ちないためのジムのようなものになっていくものです。こうして中学や高校という多感な時期に付けたプログラミングの基礎体力は、1~2年程度のブランクで衰えることはないでしょう。

将来の仕事に直結できるという点では、私は本当にプログラミングに助けられました。実際、私は高校生の頃に、規模は小さいものの、自身のプログラミング作品を公開・メンテナンスし、10代からプログラミングに積極的に取り組んできました。しかし、私は大学生時代は専攻を文転したりして、プログラミングを極めて大手企業に入れるレベルになるまでには取り組んでいませんでした。それでも、就活の際に仕事は何にしようかと悩んだときに、プログラミングは無理なく取り組めて(=比較的嫌いではなく得意で)実績も出ており、仕事が割とある(高度なIT人材・AI人材の不足)といった状況ですので、ITエンジニアとしてのキャリアを築くのが最もふさわしいと思い、その道に進むことにしました。

もしどうしても会社勤めが似合わなくて独自のビジネスやフリーランスで成功できるというのなら、そちらでもいいかもしれませんが、親族がみな会社員の私にそのような発想はありませんでした。ただし、自己アピールに苦戦してたくさん祈られたのはいい思い出です。今後も祈られまくる可能性は無きにしも非ずですが。

ちなみに、就活市場などで、SIやSESはよく批判されがちです。私も心の奥底では、「本来はこういう業態は推奨されるものではなく、自社開発・社内SEの方が優れている」と思っていますが、実はある程度プログラミングを極めた層にとっては、自社開発・社内SEのみならず、SI・SESも悪くない選択だったりします。ここで働きたいという強い思いがある場合はそちらに従えばいいと思いますが、そうでない場合であっても、学生時代にプログラミングを仕事にする下地ができているのなら、SIやSESといったキャリア選択であっても必ずやキャリアの糧になることでしょう。

総じて、新卒IT採用市場はあなた方の高校生や大学生時代の経験を評価してくれます。大事なのは、学歴よりも経歴です。やる気や自己アピールがうまくなくても、経験があればその欠点もカバーできます。そして私も業態にこだわらずに就活をしました。

当時の自分に付け足したいメッセージ

私はすでに社会人となった身として、付け加えたいメッセージが2つあります。それらを紹介して、この記事の締めくくりとしましょう。

1. 大学でもプログラミングを続けて、将来についてしっかり考えよう

まず、大学でもプログラミングを続けられるなら、続けた方がいいと思います。その方がよりハイレベルな職場に行ける可能性が高まるからです。積極的にインターンなどにも参加して、見聞を広めてください。また、今触っている技術がすでに枯れた技術になったりその他運用上の困難に直面したりするかもしれないですが、様々な技術を触るべきです。AI時代では、時代の潮流に合わせて変化し続けられるエンジニアが求められます。挑戦を怠らないでください。興味を広げ、将来像を明確にしてください。

私は、大学ではそんなにプログラミングに精を入れられず、将来像を明確にするのが遅くなりました。かつて触ってきたSwiftのUIKitは今は昔となり、アプリの維持費の負担が重かったり、モダンフレームワークのReactに挑戦しようとしたらチームメンバーに裏切られたりと出来事が積もり積もって、大学生の後半の頃にはプログラミングを全然しないようになりました。

そして、自分に迷い、いろいろな方向に手を出した結果、就活で何をしたらいいか分からなくなって、インターンには全然参加できず、私の実績に疑問を持たれ、私が今までやってきたことにおいては一貫性のあるアピールをすることが難しかったという反省があります。面接で自分をアピールできずこけまくった原因の一つは、プログラミングに集中・継続して実績を出せずにいたからかもしれません。

それでも、私が高校時代のころの実績とはいえアプリをリリースしていたから興味を持っていただけた企業も一定数ありました。そのため完全未経験よりは救いはあったのではないでしょうか。ただ、事実大学時代の実績の方が評価されやすいのは感じます。

もしあなたがITエンジニアとして何らかの形で雇われたい・仕事をもらいたい場合、クライアントや採用担当はあなたの直近の実績により重きを置きます。そのことに留意して、自分のポートフォリオの更新を怠らないようにしてください。

2. 人付き合いを学ぼう

これは「若いうちに青春をしておけ、恋人を作っておけ」と言うメッセージにも捉えられるかもしれません。確かにその通りだと思いますが、この記事を読むような層はすでに貴重な青春をプログラミングに費やして、それで学業との両立に悩むほどにユニークな青春を送られているので、恋愛なんてわからないよと思うかもしれませんし、無理に頑張る必要もないでしょう。ただし、もしあなたの身の回りにあなたのことを理解してくれる異性などがいたら、その人は絶対大事にしてあげてくださいといったところでしょうか。

それよりも重要なのが、「人と一緒に仕事をするためのコミュニケーション」と言う側面です。

この記事を読んでいる層の大多数が進むであろうプログラミングの世界でも、コードレビューやチーム開発などが発生し、同僚や上司、クライアントとのコミュニケーションは必須スキルです。それは会社勤めでもそうでなくても変わりません。特にオンラインになると、ある意味対面より高度な対人スキルが求められます。受験においても、友人との情報共有や先生への質問の仕方、面接での対応など、人とのやり取りが結果を左右しますよね。

もしかしたら、この記事を読んでいる層の中には、結婚できなくてもいいやと思っている人がいるかもしれません。私も他人が信用できなくなり、結婚しないとまではならないものの、時間が有り余る中学生〜大学生の時期に、チームでの開発など自発的な他人との協働を拒み、1人でプログラミングなどの活動を続けてきたことに後悔しています。しかし、人間は社会性の動物。結婚はしなくても、日々の生計を立てていくにはコミュニケーションが欠かせないのです。

人付き合いは、必ずしも時間の無駄というわけではありません。質問をしやすくなったり、詰まった時に助けを求めやすくなるためのこの社会における潤滑剤なのです。そして、ここができていないとみなされると、一緒に働く人間からの評価を損なう可能性があります。だから、最低限人と仕事するのに支障がないくらいにはコミュニケーションができると言えるくらいにはなっておかなければいけないのです。

オンラインコミュニティへの参加、勉強会での発言、クラスメートとの会話、大学での企画運営・共同研究など、若いうちから様々人と協働する経験をしましょう。そうすることで、社会人としてより評価を高めていけます。人脈を広めることだけにこだわる必要はありません。1つのコミュニティだけでも影響力を発揮することができれば、それすなわち、人間関係について私よりも深い学びをしていると思います。

私もまだまだ未熟者ですが、みなさんにおいては、多感な時期に人間不信になって協働の機会を損なわないように、エンジニアの卵として成長していってほしいと思います。

コメント

タイトルとURLをコピーしました