【初心者向け】プログラマーになりたかったら身に付けるべきスキルはこれ!
スポンサーリンク

とらのこ
これからプログラマーになろうと思っている方に向けて、身に付けるべき能力・スキルを「テクニカルスキル」と「ヒューマンスキル」の2軸でご紹介していきます。僕がプログラマーになって感じたことや実体験を交えて説明していきますね。

テクニカルスキル

テクニカルスキル

テクニカルスキルは、文字通り「技術的なスキル」を指していて、プログラマーとしてやっていくための専門的なスキルと思ってください。

僕の経験上、以下2つのスキルが必要だと思っています。

プログラミングスキル

これは言わずもがな、プログラマーになるためには必須のスキルといえるでしょう。

設計されたものをプログラミング言語によって表現するスキルになります。

どのプログラミング言語を学習するかは、各々の目的に応じて選択するのが良いかと思います。

以下にプログラミング言語の種類や難易度などをまとめているので合わせてご覧ください。

論理的思考力(アルゴリズムを考える力)

論理的思考力といっても様々な意味を持つと思いますが、ここでは「アルゴリズムを考える力」を指します。

プログラミング言語を習得したからといって、この能力がなければ、「真にプログラミングスキルがある」とは言えません。

ちなみに、アルゴリズムとは以下の意味です。

問題を決するための方法や手順のこと。問題解決の手続きを一般化するもので、プログラミングを作成する基礎となる。
出典:コトバンク

つまり、アルゴリズムはプログラムの処理の流れを決めることです。

例えば、「もしAの場合は●●になるが、Bのときは▲▲になる」といった簡単な条件文もアルゴリズムを考えていると言えます。

実際の業務では、かなり複数な処理の流れを考える必要があるため、アルゴリズムを考える力がないと実際かなり厳しいです。

ほかにも、実装したプログラムについて、プログラマーがテストケースを作成してテスト実施することが多いです。

テストは、実装されたプログラムがきちんと設計どおりに、ひいては顧客要望に合っているかを確認するための重要な局面です。

その局面では過不足ないテストケースを作成する必要があるため、論理的に考える力が不可欠です。

これは体験談なのですが、僕は入社1年目と2年目のときはアルゴリズムを考えるのが苦手で、かなり苦労しました。そんなとき当時の上司に「フローチャートを書くのがいいよ」と言われました。

フローチャートは、ざっくりいうと「アルゴリズムを図解したもの」です。

複雑な処理を全て頭のなかで考えてしまうと途中で訳わからなくなるんですよね。

なので、今考えていることを図解してアウトプットしておくことで、「あと考慮できていない処理はここだな」と目で確認できて頭が整理されます。

それ以降、アルゴリズムに対する苦手意識がなくなったので、困ったら是非実践してみてください!

スポンサーリンク

ヒューマンスキル

ヒューマンスキル

ヒューマンスキルは、専門的なスキルではなく、得意不得意はあれど「人間誰でも持っているであろうスキル」を指しています。
プログラマーにはテクニカルスキルがあれば良いと勘違いされることが多々ありますが、ヒューマンスキルがとても大事になってきます。

その中でも特に必要だと思う能力・スキルを以下に挙げます。

コミュニケーション能力

よほどのベンチャー・零細企業でない限り、プログラマーは一人で仕事するわけではありません。

チームで担当を割り振られてプログラミングすることが多いです。

ですので、自担当領域と他プログラマー担当領域で類似の機能を作成することも偶にあります。

実体験なのですが、プログラマーが複数いる開発チームに所属していたときに、こんなことがありました。

本来、Aさんが実装しているプログラムの処理の一部は、Bさんが実装しているプログラムに流用できるはずだった。
それにもかかわらず、Bさんは独自に処理を実装して、Aさんが実装したプログラムと全然処理が異なって、設計者が怒り心頭。
(設計者は設計時点で処理を流用するつもりでいたため)

設計者は口酸っぱく「プログラマー間でもっとコミュニケーションを取って」と言っていました。

この例にもあるように、プログラマーは自担当のプログラミングをすればいいのではなく、他プログラマーとも会話をしながら、もっと効率的にできないかなどを模索していく必要があります。

それだけでなく設計者との意思疎通も必要ですし、もっと言えば、管理者に自分の進捗状況などを適宜報告しなければいけません。

そういう意味で、プログラマーにはコミュニケーション能力が必要不可欠です。

余談ですが、僕の副業先の社長に「プログラマーに大事なことNo.1はなんですか?」と尋ねたら、即答で「コミュニケーション能力」と言っていました。

課題解決力

プログラミングをしていると、色々エラーが発生するんですよね。そのエラーをできるだけ自力で解決しないといけません。

「自力で解決するにしても、知識がないんだからどうしようもないじゃないか」となるかもしれません。

そういうときのGoogle先生です。Googleは基本的に何でも知っているので、ググって解決する力を養う必要があります。

ググる能力はプログラミング言語の学習時にも伸ばすことができる能力ですので、躓いても自力で解決する努力をしてみると良いでしょう。

課題解決力は、試行錯誤を繰り返して少しずつ身に付いていくものなので時間はかかります。焦らずに少しずつ伸ばしていきましょう。

質問力

プログラマーは、システムエンジニアが設計した「設計書」を基にプログラミングをしていきます。

プログラミングをしていく中で、どうしても設計者の意図が理解できないときがあるんですよね。。

そういうときは設計者に質問しないといけません。

それだけでなく、プログラミング中に行き詰まり、色々調べたけど解決できないときは自分より優秀なプログラマーに質問して解決しないといけません。

しかし、設計者や優秀なプログラマーって結構忙しくしていて、いつでも気軽に質問できる状態になかったりします。「●●がわかりません。」とだけ質問しても、「ググれ」で終わってしまうこともしばしばあるのが社会です。

そこで必要になってくるのが、質問力です。

ちょっと自慢ですが、先輩プログラマーから「すずきさんは理想の質問するね」と言われたことがあります。(ありがとうございます!

そんな僕が質問するときに気を付けていたことをご紹介します。それは、質問フォーマットを決めて、それを埋めてから質問するということです。

質問フォーマットと言っても大層なものではなく、以下の3点を整理するだけです。

  1. 解決したいこと/困っていること
  2. 解決したいことに対して何をどんな観点で調べたか(自分の見解があると尚良し)
  3. 相手に求めること

あとは、「15分自分で調べて解決しなかったら質問する」などの基準を定めていました。そうすることで無駄に時間を浪費することもなくなりましたね。

是非、参考にしてみてください!

規約遵守力

規約遵守力とは、つまり「ルールをちゃんと守る」ことです。

コーディング規約をはじめとし、プログラミングするうえでのルールが各社必ず存在します。

アプリ開発において、たった一人で全てプログラミングするという現場はほぼないと思います。(よほどのベンチャー・零細企業でない限り)

複数人でプログラミングするにあたって最低限のルールがないと、人それぞれが思い思いに実装してしまい、保守性・可読性が低いプログラムになってしまいます。

実際、僕が働いている現場でも、どれだけプログラミングスキルが高くても、定められたルールに則らない方は扱いずらく、評価も高くありませんでした。

ですので、皆さんがプログラマーとして働くとなったら、まずは勤めている会社のルールをしっかりと理解するところから始めてみるのが良いでしょう!

そのうえで、不明点があれば質問などすれば、「おっ、この人ちゃんとルール守ってくれそうだな」と良い印象を与えること間違いなしです。

最後に

これまでプログラマーになるために必要となるであろう能力やスキルを、体験談も交えながら説明しました。

ヒューマンスキルも重要と言いましたが、これらは実業務を通して身に付くところも少なからずあるので、まずはテクニカルスキルの習得を目指していくのが良いかと思います!

スポンサーリンク

Twitterでフォローしよう

おすすめの記事