たまたま開発者として働き始めて、もう12年が経ちました。
人より遅れないように努力しているのですが、
開発者としての成長が停滞したと感じるときがあります。
他の人が作ったソースをすんなり理解できないときや、
何年ものあいだ同じ仕事ばかり繰り返しているときなど……
そんなとき、みなさんはどう打開していますか?
たまたま開発者として働き始めて、もう12年が経ちました。
人より遅れないように努力しているのですが、
開発者としての成長が停滞したと感じるときがあります。
他の人が作ったソースをすんなり理解できないときや、
何年ものあいだ同じ仕事ばかり繰り返しているときなど……
そんなとき、みなさんはどう打開していますか?
19件のコメント
前の職場では、もう学べることがないと感じていて(いつも似たようなプロジェクトばかりで、シニアエンジニアも不在)、より規模が大きく、優秀なエンジニアが多い場所へ転職しました。
転職後は、より多くを学び、成長していることを実感しています。
私自身も心がつらい時期がありましたが、いったん全部置いて、開発から離れて休んでみたら、またどうしても開発がしたくなりました。常に新しいものが次々と現れ、簡単に優れた開発者と出会えてしまう広がり続ける世界の中で、他人と比較するのは本当につらいことです。私は数年前から、自分がやりたいことをきちんとやれているかを考えるほうが、苦しくなく、より生産的だという結論に至りました。コミュニティ活動をする中では素晴らしい方々にたくさん出会うことができましたし、人としても大きな支えになりました。自分をむやみに追い立てないでください。自分や周りの人の背中をたたきながら、ゆっくり歩いていくのもなかなか良い生き方だと思います。良い日々が続くことを願っています。 :)
やっていることに関連して鋭く高度化していくこともできますし、
トレンドに合わせて幅広く新しい環境に触れてみて、今の環境と比べてみるのも良さそうですね。
あるいは、これまでなかったものに貢献することもできそうです。
私は、たまにそういう時が来ると本当に何もしません。そうしているうちに、ある瞬間にやりたいことが目の前に見えたら、それをまずそのままやってみます。そうしてまた元の場所に戻ってくる、そんな感じですね。^^
あ、もう一つ!「こうなのは自分だけじゃない」と考えてください
もうお読みになったかもしれませんが、この記事をおすすめします。『あなたが足踏みしている理由』 http://m.egloos.zum.com/agile/v/5749946
ああ、私もこの文章を思い出しました。自分で難易度を調整する方法です。
IDE環境の代わりに、あえて vim で開発していました。ぎこちなかったですが……何かを準備しなくても、今すぐ試してみられるのが良かったです。
今ではメインの開発ツールとしても使っています。
成長を感じる基準が変わることもあります。
初心者:言語の本の章ごとに成長を感じます
ベテラン:Functional + JPA + Queue + 各種MSA連携 + 各種fault tolerance機能 + 新しい言語までやって初めて満足できます。なぜなら、そういう業務をすでに経験してきたからです。より良い姿を目指すのは良いことですが、ときどきそれが私たちの心を疲れさせます。
自分にとって成長とは何か、phase2を始める時期なのかもしれませんね。
どんな成長を望んでいますか? 「しなければならない」より「したい」で考えてみると助けになることがあります。
もう知識と技術が豊富なプログラマーであることが目標ではないのかもしれません。
コミュニケーションと調整がうまいだけでも会社の仕事を前に進められるので、そういう役割で成長を感じることもあります。
別の業種を望んでいるのかもしれませんし
xguruさんのおっしゃるように、単純に休息が必要だったのかもしれません。
私は
大企業のバックエンド開発で成長を感じられず
スタートアップにも行ってみて
別のドメインへ移ってきました。
ご自身が望んでいることを少し見つめて、試しに少し動いてみてください。
皆さん、返信ありがとうございます。いただいたアドバイスを参考に、サイドプロジェクトを1つ進めて、ここで紹介してみようと思います(笑)
私は何かを順番に読むのが好きです。誰かが作ったソースの中に、特に深く考えずに使っていたツールがあると思います。まるで最初から当然のように存在していたかのように、自然に使っているものです。そのソースコードを開いて、自分が使っていた機能をエントリーポイントにしたり、テストコードがあるならランダムなテストをエントリーポイントにしたりして、ひたすら読んでみます。その過程で多くのものを得られますし、新しい発想も生まれるんですよね。
コロナでなければなお良いですが、開発者コミュニティの活動に参加してみるのもよいと思います。刺激にもなりますし、ほかの人たちの話を直接聞いて共有することも大きな助けになると思います。
私も似たような悩みを抱えていた時期があったのですが、すでにコメントにもありますが、他人と比べようとするところからズレていたのだという結論に至りました。
その後は他人との比較よりも、ただ自分がよく知らないことや、まったく新しいことをやってみながら、
初心に立ち返って、だから自分は開発者になりたかったんだな、という感覚を取り戻しつつ、その時期を乗り越えたのだと思います。
もしかすると、乗り越えたというよりは、今ではそういう考え方(他人と比べること)をあまりしなくなったのかもしれません。
そういうときは毎回、自分が新しく何をうまくできるかを考えます。小さくは新しいサイドプロジェクトから、大きくはまったく別の趣味を持ってみたり。そこで大小さまざまな新しい長所を見つけてきました。
そして、私が理解できないことは、十分な時間をかけていないのだと考えています。以前、LLVMのソースコードを読んでいて、難しすぎて自分が無能な気がして
=ㅁ =泣きそうになったことがあるのですが、あとで考えてみると、その方々は何十年もコンパイラを研究してきたのでしょうし、またそのソースコードを作るために何百時間も心血を注いできたはずです。それをたかだか数時間見ただけで理解しようとする自分は、あまりにも傲慢なのではないか。そんなふうに思いました。それ以降は、他の方々と比べるときには敬意を持って、一歩ずつ追いかけていこうと努力することで乗り越えています。比較したいなら、他人とではなく時間軸の中で過去の自分と比べてみてください。
そもそも基準点がとても曖昧です。
そして、できる人がいるなら一緒に学べばいいのであって、追い越そうとすると同僚ではなく競争相手として見ることになります。
理解できなければ聞けばいいんです。自分が苦労して作ったものについて質問してくれる人がいたら、どれだけうれしいことか。
聞いたからといって責める人はいません。
開発に関するサイドプロジェクトでなくてもいいと思います。興味のある分野を勉強してみたり、これまでやったことのない趣味を見つけてみるのもいいのではないでしょうか。もっとさまざまな人と出会っていけば、そこから得られる喜びや成長もあると思います。必ずしも開発者としての成長が、その人個人のアイデンティティや成長そのものを表す必要はないように思います。
私はまだ開発者として就職してからそれほど経っていませんが、感じられている内容にはもう共感します。
開発者の寿命は短いとも言われますが、拡張性は大きい気がします。
開発者出身のOOOの中には魅力のある分野が多いので、私はマネジメントのほうに目を向けてみました!
開発面でこれ以上成長できることがなさそうだと思えるなら、他の分野にも目を向けてみるのはいかがでしょうか?
思い浮かぶのは2つですね。すでにご存じだと思います。
他人と比べるのではなく、昨日の自分と比べて少しずつ良くなろうとする
新しい知識を身につけずにはいられない環境に自分を追い込む。極端に言えば転職
サイドプロジェクトやブログ執筆など、開発以外の活動が役に立ちました。
新しい刺激を得ることもできましたし、会社の仕事で燃え尽きていた状況では、こうした活動が精神的な支えにもなったと思います。
まず、あまりにも無理をして走ってきたと感じるなら、いったん手放して休むのも良いです。
私の場合、そういうときによく勧めるのはサイドプロジェクトをやってみることです。
自分の日常に必要なもの、あるいは興味のあるものを一度作ってみると良いと思います。
新しく学びたい言語やツールセットでやってみるのも良いですし、手に馴染んだもので別の作業をしてみるのも良いと思います。
MP3にアルバム情報をタグ付けするユーティリティ、Google SheetsからSMSを一斉送信するツール、買い物支援ツール(One a Day/Coupang などをまとめて見るもの)のようなものを作ったことがありますが、後になってこれがとても役に立ちました。
どう受け取られるかわかりませんが、私の経験では、置いていかれているという思いや強迫観念そのものが、かえって自分をもっと苦しくしてしまうように感じます。もちろん、開発者としてもっと多くを知り、もっと上手くなりたいと思うのは誰でも同じですが、今自分が持っている知識で会社でしっかり生計を立てられていること自体も、それなりの技術力だと思います。置いていかれているという思いを少し脇に置いて、自分自身が好きなものを見つけて、それを開発力で形にしていくのも楽しいです。みんなが言う個人プロジェクトのようなものですね。