SE(たぶん)の雑感記

一応SEやっている筆者の思ったことを書き連ねます。会計学もやってたので、両方を生かした記事を書きたいと考えています。 でもテーマが定まってない感がすごい。

文系の学科を出た人間がSEになった話(Advent Calendar 8日目)

この記事は、QiitaのAdvent Calendar 2017 文系プログラマ 8日目の記事です。
筆者は、学生時代は文系だったので、そのお話ができるかと思い、記事を投稿します。

言いたいこと

  • 文系だから、プログラミングできない、ということはない
  • きっかけさえあれば、誰でもできるし、できたほうが絶対に良い
  • ガッツリ理系な内容は、プログラミングやる上でほとんど出てこない
  • 国語力大事、超大事

ただ、文系という括りは広すぎるので、参考にならなかったら申し訳ないです。

筆者学歴

学歴等 学部等 主に勉強したこと
高校 商業高校 簿記
大学 経済学部 経営学会計学

なお、大学では公認会計士を目指して、勉強していました。一応、当時の短答式試験には合格しています。
4回生まで公認会計士は受験していましたが、大学卒業後は、新卒で就職しています。

なお、学生時代にプログラミング等の経験は、一切ないです。*1

筆者職歴

経歴 業種 やっていたこと
バイト(学生時代) 飲食業 普通のバイト
前職 会計、税務のパッケージソフト開発 税務・会計ソフト開発
現職 SIer ソフト関連はなんでも

現在は、企業の社内システム等に関わることが多いです。

現在扱えるプログラミング言語や技能(言語以外も含める)

プログラマになったきっかけ

別に、プログラマになりたいと考えていたわけではなく、会計の知識が活かせる会社を探したら、前職の会社だった、という感じです。
当時は、働きながら公認会計士を目指してもよいと考えていましたが、勉強を始めてから、プログラミングにのめりこみました。

楽しみ

いくつかあります。

一つ目は、自分が何かを生み出していると実感できる点です。
書いたソースが動いて、自分の思い通りに動くのが、単に楽しいです。

二つ目は、強力な問題解決手段を自分で行使できる、という点です。
知識を活用して、「ここはもっと楽にできますよ」というアイデアを出し、それを実現する、というサイクルを回せるのは、SEが持つ強みだと思います。

三つ目は、常に勉強が求められ、無駄にはならないという点です。*2
これは実感としてあるのですが、勉強し続けたエンジニアと、そうでないエンジニアを比べると、数年でとんでもない差が付きます。
なお、勉強しなくても、目の前の仕事は片づけられますが、逆説的ではあるものの、「目の前の仕事しか片づけられなくなる」ようです。
…私は、環境でそうなってしまうのが嫌で、転職しました。

プログラミングとは

問題解決の一手段です。これに尽きます。
プログラムは、「書いた通り」にしか動かないものです。
そのため、問題が複雑すぎたり、やりたいことが多すぎたり、個別にこうしてくれ、という内容が多い場合、まずは現実を単純化したり、何を自動化するのが最もメリットが大きいのか、という視点で分析します。
この試行錯誤が非常に楽しい、と私は思っています。*3

勉強のコツとか

私自身が、勉強嫌いではないので、本当に参考程度に聞いてください。

私が思うに、プログラマとして、エンジニアとして成長するために超えるべき壁は、まず暗記に頼ることから脱却することだと考えています。

プログラムを組んで解決する問題は、何らかの現実的な問題です。
プログラミングを何年もやってきた実感ですが、全く同じ問題を解決する場面に遭遇したことは、ほとんどありません。*4

プログラミングは、自分の知識プールを現実的な問題に当てはめて、問題解決する作業だと感じます。

そのためには、知識を状況に応じて自由に引き出す必要がありますが、暗記しているとそれができません。
暗記は、あくまで「試験でこういう問題が出たら、こう答える」みたいなものだと思っているので、それじゃ行き詰ってしまいます。

まあ、「暗記に頼るな」というのも、実感しないと分からないと思います。*5

大事なこと

上で、「プログラミングは現実的な問題を解決する」みたいなことを言いました。

そこで大事になるのは、「何が問題になっているのか、把握する能力」です。
言い換えると、相手の言っていることを理解できる力です。*6

ここに、理系の力なんて絡みません。
文章整理とか得意なら、思う存分、文系の力を活用できる場面ではないでしょうか。

今やっていること

私が今やっているのは、業務では企業内システムをいじる感じのことです。
普段は、まあブログを見てもらうのが早いです(笑)
機械学習とか、Pythonとか、いろんなものに手を出しています。

どうやってプログラミングの勉強を始めるか

私自身は、会社の研修で始めたので、最初はこういうのがいいよ!というのは紹介しづらいのですが…

手を動かして試せる参考書等を、なんでもいいから一冊やり切ってみてはいかがでしょうか?

業務効率化を目指すなら、『退屈なことはPythonにやらせよう』という、自動化を題材にした本もあります。

honto.jp

これをやる!という目標があると、プログラミングに限らず、勉強は捗ると思います。

なお、周りにプログラミングできる人がいるなら、その人に聞きまくりましょう。
勉強の捗り方が段違いだと思います。

最後に

文系だから理系だから、と言いますが、文系だからプログラミングができない、ということは(実体験からしても)無いです。
ただ、努力しないと本当に伸びないので、諦めない心が大事な気もします。

文系の人にとって、プログラミングが未知の領域であるのは、私自身もよく分かります。
その殻を破るのも、また自分ですので、一歩踏み込んでみるのも、楽しいかもしれません。

プログラミングできて損することは絶対にない、と断言できますので、是非やってみてください。


*1:基本情報の勉強を、3ページで止めたほど、勉強しなかった

*2:方向性を間違うと無駄になる

*3:やや設計技法等に絡んでくるので、プログラミングの範疇は超えた話とも言える

*4:自分が何度もやる作業は、自動化の対象とはなる

*5:プログラミングの参考書に載っている場面と全く同じ場面に遭遇することは、全く無いので、参考書を丸暗記する意味は全く無い

*6:洞察力も必要だろうけど、それより何より、人の話を聞けないとやばい