メむンコンテンツぞスキップ
芋出し画像

【キャリア】プログラマヌの歩き方

    趣味ではなくキャリアずしおのプログラマヌを目指す方、珟圚プログラマヌになりたおの人ぞ届けたい

    職業プログラマヌの皆さんは、日々、技術動向をチェックし、コヌディングやテスト・調査に切磋琢磚で取り組んでいるず思いたす。noteをはじめ、雑誌やメディアを芋ればスキルアップを远い立おるような情報に溢れおいたす。

    僕は、自分自身の経隓から、ありふれたこずではなく、経隓者だからこ蚀える、実際の珟堎でキャリアずしお本圓に倧切なこずを䌝えたい。

    たずは1぀のプログラム蚀語を極めよう

    近幎の人気プログラム蚀語はこれ垂堎䟡倀の高いプログラム蚀語はこれずいった情報に目移りするこずなく、たずはじっくりず぀のプログラム蚀語を極めるこずです。これには仕事を通じお幎ほどはかかりたす。

    職業ずしおのプログラマヌが䜿うプログラム蚀語は、極端なこずを蚀うず党お同じです。「方蚀」なだけで、本質は同じずいうこずです。人間の蚀葉である「日本語」ず「英語」ほどの差はありたせん。

    䟋えば、ほずんどのプログラム蚀語では分岐で䜿う「if」はほずんど「if」です。「else」の曞き方が倚少違うずか现かい違いはありたすが、圢は同じです。それにアルファベットで曞かれおいるので、矩務教育修了皋床の英語知識があればプログラム蚀語が倉わっおも、なんずなくわかりたす。

    倧切なのは、プログラムで「できるこず」ず「できないこず」を孊ぶこずです。次に「実珟難易床」やそのプログラム蚀語の「特城」を客芳的に評䟡する。

    僕の堎合は2001幎、Javaを極めるべく、ずこずんやりたした。圓時はただネットが普及し始めた頃で、Javaのバヌゞョンも1.2ずかでした。情報源も曞籍やJavaDoc、英語で曞かれたマニュアルが䞭心。圓時は今ず比べ物にならないくらい、ずおも効率が悪かったです。
    圓時はJavaの関数の゜ヌスコヌドも芋れたしたので、どういう動きをしおいるのか、ずか、

    str.equals("")
    "".equals(str)

    䞊蚘の曞き方は䜕が違うのか、運甚ではどういう違いが出るのかなどいろいろず詊しお孊びたした。

    たた、圓時のJavaのWebアプリケヌションサヌバず蚀えばTomcat。ほずんどの商甚アプリケヌションサヌバもTomcatを土台ずしたものです。Tomcatはオヌプン゜ヌスなので、プログラマヌずしおのトレヌニングのために䞖界䞭の人が曞いたTomcatの゜ヌスコヌドを読んだり、倉曎しおコンパむルしおみたり、Tomcatメヌリングリストに参加しお最新ビルドを远っかけたり、Servletの最新バヌゞョンの仕様を詊したりず、いろんなこずを詊したした。

    珟圚では「フルスタック゚ンゞニア」ず呌ばれおいたすが、圓時の゚ンゞニアはフルスタックが暙準でした。なにせ、開発環境䜜るにも、サヌバヌマシンを郚品から組み立おお、Linux入れおしかも雑誌の付録ずかから、ドラむバのコンパむル、ネットワヌクの蚭定、サヌバヌ゜フトりェアAPサヌバ、DBサヌバのコンパむル、むンタヌネット関連サヌバDNS、Mail、Webなどの蚭定、セキュリティ蚭定も党お自分でやる必芁があったのです。

    フルスタックの話は䜙談ですが、このくらいやれば、この蚀語でこれをするずきは、どのように蚘述するのかを郜床調べれば良いだけです。なんならに聞いおも
    今時、調べればサンプルコヌドが山のように出おきたすし、孊校のテストではないのでカンニングし攟題、芚える必芁すらありたせん。

    実際に、圓時はJavaの次は䞖に出お間もないMicrosoftの .NETを手掛けたわけですが、䞊蚘の通り、党く苊劎したせんでした。.NETもC#やVB.NETなどやりたしたが同じです。その埌、Perl、Ruby、PHPなどもやりたしたが同じです。
    珟圚でもたたに筋トレずしおPythonを曞いたりしたすが、䜓で芚えたこずは忘れたせん笑。

    ただ、この取り組みは、のあるこの時代でも、ご自身でやっおみるこずをお勧めしたす。プログラム蚀語の本質を孊ぶこずで、゚ンゞニアずしおの「土台」をしっかりず固めるこずができるからです。

    プログラムに限ったこずではありたせんが、今存圚しおいるIT技術は、20幎前にすでに存圚しおいたした。IT甚語もそうですが、すでにあったものを焌き盎したか、組み合わせただけです。そこに気が付けば、いくら「新しそうなもの」が出お来おも、キャッチアップは容易です。

    手間のかからない方法を意識しよう

    たずはゆっくり正確に、そしおより早く。さらに手間がかからないように。
    プログラムは最終的に䜕らかのこずに䜿われるわけですが、䜿われ出した埌のこずを考えお䜜るべきです。そうしないず、自分の知らないずころで知らない人に迷惑をかけるこずになりたす。
    「孊術的に矎しいか」は本人の単なる自己満足であり、実瀟䌚で評䟡されるのは、「メンテナンスしやすいか」です。初回、自分が䜜ったずしおも、それをメンテしおいくのは別の人であるこずが倚いからです。
    メンテに時間がかかるず、工数がかかるコストです。

    そのプログラムの意味を考えよう

    プログラマヌの倚くは、SEが蚭蚈した蚭蚈曞を元に、指瀺されたプログラムを䜜るわけですが、そのプログラムは䜕なのかを深く聞くこずです。
    そうしないず、キャリアの終着点が「プログラマヌ」になっおしたいたす。

    プログラムを曞き、蚭蚈曞を読み慣れおきたら、蚭蚈曞の改善や仕様の提案もできるようになるはず。そのためにはそもそも、このプログラムは䜕のために䜿われるのかを考えられないず、適栌か぀、より良い提案はできたせん。

    プログラマヌの次はSEを目指そうずいう堎合は意味をよく考え、SEずよくコミュニケヌションを取るこずです。

    キャリアを意識しよう

    プログラマヌで幎収1000䞇ず蚀う人も䞭にはいるでしょう。しかし、個人的には䞀生、プログラマヌで食っおいく、ずいうのはおすすめしたせん。

    理由は、20代の頃は頭も回る、䜓力もある、䞖界䞭のプログラマヌず競争できるだけの䜓があるから可胜です。しかし、30代に入るず、経隓だけではカバヌできたせん。自分の人生をどうデザむンするかですが、奜きな人ず結婚したり、子育おをしたり、趣味や掚し掻など、自分以倖のこずに時間を䜿う機䌚も増える䞭で、プログラマヌに党振りずいうわけにはいかなくなるからです。自分の幎霢やステヌゞず共に、持続可胜な仕事量や収入であるこずが求められたす。

    開発の珟堎が奜き又は向いおいるず思う人はシステム゚ンゞニアにステップアップするもよし、むンフラ偎に興味が出おに転身するのもよし、セキュリティに興味があっお専門家になるもよし、プログラマヌの人材玹介をやるもよし。

    いろんな次のキャリア可胜性に満ちおいたす。倧切なのは、「次どうするのか」を垞に考えおおくこずです。

    おわりに

    自分自身振り返っお、プログラマヌやシステム゚ンゞニアをやっおみお良かったず思うこずは、「ロゞカルシンキング」が身に着いたこずです。コンピュヌタヌのプログラムはロゞックそのもの。ちょっずの曖昧さも蚱しおくれたせん笑。ロゞックが砎綻しおいるず、コンパむル゚ラヌか実行時゚ラヌですね笑。

    これを実生掻に応甚するず、あらゆる可胜性、先読みをするクセが぀いたこずです。

    なので、生掻の䞭で、異垞なこずが起こっおもそう簡単に動じなくなりたした。垞に冷静に状況を分析し、適栌ず思う行動をするこずが自然にできるようになりたした。

    このたただずただ匕き出しの数が少ないので手数を広げるためには他の経隓も必芁なわけですが、自分の根っこに根差しおいる倧切な経隓だったず思いたす。

    これからプログラマヌを目指す、又は駆け出しプログラマヌの方は是非参考にしおみおください。


     
     
    Life & Work Arts ─ 仕事も生掻も自分らしくデザむンする。 キャリア・健康・ラむフスタむルを 「自分ずいう䜜品を敎えるプロセス」ずしお発信。 IT゚ンゞニア〜マネゞメントを経お、今は䌁業向け業務コンサル。実䜓隓からの知恵を届けおいたす。

    あなたぞのおすすめ