文系の学科を出た人間がSEになった話(Advent Calendar 8日目)
この記事は、QiitaのAdvent Calendar 2017 文系プログラマ 8日目の記事です。
筆者は、学生時代は文系だったので、そのお話ができるかと思い、記事を投稿します。
言いたいこと
- 文系だから、プログラミングできない、ということはない
- きっかけさえあれば、誰でもできるし、できたほうが絶対に良い
- ガッツリ理系な内容は、プログラミングやる上でほとんど出てこない
- 国語力大事、超大事
ただ、文系という括りは広すぎるので、参考にならなかったら申し訳ないです。
筆者学歴
学歴等 | 学部等 | 主に勉強したこと |
---|---|---|
高校 | 商業高校 | 簿記 |
大学 | 経済学部 | 経営学・会計学 |
なお、大学では公認会計士を目指して、勉強していました。一応、当時の短答式試験には合格しています。
4回生まで公認会計士は受験していましたが、大学卒業後は、新卒で就職しています。
なお、学生時代にプログラミング等の経験は、一切ないです。*1
筆者職歴
経歴 | 業種 | やっていたこと |
---|---|---|
バイト(学生時代) | 飲食業 | 普通のバイト |
前職 | 会計、税務のパッケージソフト開発 | 税務・会計ソフト開発 |
現職 | SIer | ソフト関連はなんでも |
現在は、企業の社内システム等に関わることが多いです。
現在扱えるプログラミング言語や技能(言語以外も含める)
- C#(一番得意)
- Java
- Delphi
- Python
- VBA
- PowerShell
- SQL
- (XAML?)
- システムアーキテクト保有
- 設計技法はいろいろ学習
- 会計には強い(日商簿記1級、税理士試験簿記論、公認会計士短答式試験合格等)
プログラマになったきっかけ
別に、プログラマになりたいと考えていたわけではなく、会計の知識が活かせる会社を探したら、前職の会社だった、という感じです。
当時は、働きながら公認会計士を目指してもよいと考えていましたが、勉強を始めてから、プログラミングにのめりこみました。
楽しみ
いくつかあります。
一つ目は、自分が何かを生み出していると実感できる点です。
書いたソースが動いて、自分の思い通りに動くのが、単に楽しいです。
二つ目は、強力な問題解決手段を自分で行使できる、という点です。
知識を活用して、「ここはもっと楽にできますよ」というアイデアを出し、それを実現する、というサイクルを回せるのは、SEが持つ強みだと思います。
三つ目は、常に勉強が求められ、無駄にはならないという点です。*2
これは実感としてあるのですが、勉強し続けたエンジニアと、そうでないエンジニアを比べると、数年でとんでもない差が付きます。
なお、勉強しなくても、目の前の仕事は片づけられますが、逆説的ではあるものの、「目の前の仕事しか片づけられなくなる」ようです。
…私は、環境でそうなってしまうのが嫌で、転職しました。
プログラミングとは
問題解決の一手段です。これに尽きます。
プログラムは、「書いた通り」にしか動かないものです。
そのため、問題が複雑すぎたり、やりたいことが多すぎたり、個別にこうしてくれ、という内容が多い場合、まずは現実を単純化したり、何を自動化するのが最もメリットが大きいのか、という視点で分析します。
この試行錯誤が非常に楽しい、と私は思っています。*3
勉強のコツとか
私自身が、勉強嫌いではないので、本当に参考程度に聞いてください。
私が思うに、プログラマとして、エンジニアとして成長するために超えるべき壁は、まず暗記に頼ることから脱却することだと考えています。
プログラムを組んで解決する問題は、何らかの現実的な問題です。
プログラミングを何年もやってきた実感ですが、全く同じ問題を解決する場面に遭遇したことは、ほとんどありません。*4
プログラミングは、自分の知識プールを現実的な問題に当てはめて、問題解決する作業だと感じます。
そのためには、知識を状況に応じて自由に引き出す必要がありますが、暗記しているとそれができません。
暗記は、あくまで「試験でこういう問題が出たら、こう答える」みたいなものだと思っているので、それじゃ行き詰ってしまいます。
まあ、「暗記に頼るな」というのも、実感しないと分からないと思います。*5
大事なこと
上で、「プログラミングは現実的な問題を解決する」みたいなことを言いました。
そこで大事になるのは、「何が問題になっているのか、把握する能力」です。
言い換えると、相手の言っていることを理解できる力です。*6
ここに、理系の力なんて絡みません。
文章整理とか得意なら、思う存分、文系の力を活用できる場面ではないでしょうか。
今やっていること
私が今やっているのは、業務では企業内システムをいじる感じのことです。
普段は、まあブログを見てもらうのが早いです(笑)
機械学習とか、Pythonとか、いろんなものに手を出しています。
どうやってプログラミングの勉強を始めるか
私自身は、会社の研修で始めたので、最初はこういうのがいいよ!というのは紹介しづらいのですが…
手を動かして試せる参考書等を、なんでもいいから一冊やり切ってみてはいかがでしょうか?
業務効率化を目指すなら、『退屈なことはPythonにやらせよう』という、自動化を題材にした本もあります。
これをやる!という目標があると、プログラミングに限らず、勉強は捗ると思います。
なお、周りにプログラミングできる人がいるなら、その人に聞きまくりましょう。
勉強の捗り方が段違いだと思います。
最後に
文系だから理系だから、と言いますが、文系だからプログラミングができない、ということは(実体験からしても)無いです。
ただ、努力しないと本当に伸びないので、諦めない心が大事な気もします。
文系の人にとって、プログラミングが未知の領域であるのは、私自身もよく分かります。
その殻を破るのも、また自分ですので、一歩踏み込んでみるのも、楽しいかもしれません。
プログラミングできて損することは絶対にない、と断言できますので、是非やってみてください。