「プログラミングは論理的思考が必要だ」などと時々見ますが、あまり関係ないと私は感じています。
基本的には誰にでも仕事のレベルになれると思います。
実際、私も新人の時は「向いていない」と入社2カ月で挫折していました。
でも今は同じ会社で続けています。
プログラミングを始めて1年未満
プログラミングで挫折をしている
プログラミングが不向きだと感じている
プログラミングに向き・不向きがない理由
プログラミングに向き不向きがない理由は、簡単に言うと「慣れ」だからです。
「慣れ」とはどういうことか説明していきます。
自主的に勉強すれば一定の仕事レベルは到達できる
会社に数人しかいないレベルを目指すのは適性が求められるとは思いますが、一般的なレベルであれば可能なのです。
私は新入社員の2カ月くらいは、できなさ過ぎて怒られまくってました。
しまいには「なんでほかの人はできるのに、できなんだろうね?」ってリアルトーンで言われました。
でも、文系出身のSEですが、ある程度仕事はこなせるレベルであると思っています。
私の場合、半年くらい、土日はほぼ家にこもって独学して慣れていきました。
言語によっては難易度が高いので事前に分かったうえでプログラミングをやってみると良いです。
プログラミングは地道に慣れていくことが大事
結局は慣れだと思っています。
私のように文系ならまず、パソコンに詳しくて何となく苦手意識があるはずです。
最初は意味が分からない言葉が多く、とても不慣れだと思います。
また、プログラミングのIf、Caseなどの分岐やFor、Whileなどのループも使い方が分からないことが多いはずです。
でも、半年くらいの勉強と実践で慣れれば、「こんな処理を作りたい」と思ったことかけるようになります。
また、プログラミングで書けなくても、日本語で「For文のループの中に、Ifで分岐して…」みたいに考えられるようになります。
因みに、これが「論理的思考」みたいなものだと思いますが、やはり慣れればできます。
プログラミングに慣れていく方法
処理を頭に入れることです。
意味は2のステップです。
- プログラミングの処理を暗記せず理解する
- プロセス立てて(論理的思考)解決する考えを養う
1.プログラミングは暗記せず理解を心がける
プログラミングは暗記しなくて良いです。
こんな書き方ができるんだなと、頭に入れるだけでOKです。
書き方を忘れたら、ウェブで検索しましょう。
2.論理的思考で解決する考えを養う
論理的と言うと難しく聞こえます。
言い換えると、処理の流れをプロセス立てて考えて解決する力を養うと良いです。
私も新人の時は苦労しましたが、これは訓練で繰り返し行えば慣れてきます。
どう処理をするかのプロセスが頭になければ、プログラミングはできません。
私は最初は紙やホワイトボードに書いていました。
例
テストの点数ごとにS、A、B、C、Dと評価を付ける場合どう考えるでしょうか。
こんなプログラムをイメージできればOKかと思います。
ここができれば、WEBで書き方を調べるだけです。
- 点数の一覧を配列(変数)に取得する
- 配列のデータ個数分ループ🔄
- 90点以上の場合 → S
- 80点以上の場合 → A
- 70点以上の場合 → B
- 60点以上の場合 → C
- 60点未満の場合 → D
科目 | 点数 | 評価 |
国語 | 94点 | S |
英語 | 80点 | A |
数学 | 67点 | C |
プログラミングが無理・不向きだと思ってしまう理由
プログラミングの勉強が続かないことが、向いていないと思ってしまう理由だと思います。
では不向きと思ってしまう理由は何でしょうか。
モチベーションが低いから
プログラミングを続けていくには「何となく」ではなく、強いモチベーション(動機)が必要です。
何となくでやると、集中力が続かない→成長が感じられない→向いてない…という状態になってしまいます。
でもモチベーションが高く、興味があることなら、誰でも集中して続けられるはずです。
なので、興味がある分野のツールやアプリを作ってみるのが良いです。
私はAndroidStduioで、アプリ作成に挑戦したり、Djangoを使ってウェブサイトを作ったりしていました。
おかげさまで、半年くらい土日は常に家に引きこもったりしていました。
難易度の高い言語を勉強しようとしているから
初心者のときに難易度が高い言語を習得しようとすると、挫折しかねません。
難易度が高いと、続かないので向いていないと感じてしまいがちです。
また、プログラムを作っていれば、エラーが出ることは常にあるので、何重にも大変に感じるでしょう。
やりたいことをするには、「この言語が必要だ」という人でなければ、難易度が低い言語から入ることをオススメします。
プログラミングの基本的なことが身に付けば、難易度の高い言語にも入っていきやすいです。
学習時間が足りていないから
学習時間をある程度かけて慣れていくことが大切です。
ただ、早く諦めてしまう人は学習時間が短いままやめることが多いです。
続けていくためには、何かを自動化できないかとモチベーションを高めることが大切です。
例えば、いつもPC上でやっている作業を自動化するプログラムを作ってみるなど自分の興味が湧くことを絡めて行くと苦にならず続けられます。
実際、私もこういうやり方で、帰宅後や土日に家にこもって4時間~8時間くらいカチャカチャPCを触っていました。
プログラムコードを理解でなく暗記しようとしているから
少し先ほども書きましたが、プログラムは暗記は不要です。
大切なのは理解することです。
理解しておけば、次に調べたときに部分的にコピーして使うなどができます。
無数にあるコードの書き方を覚えること自体不可能に近いです。
一人だけで頑張ってしまっているから
プログラミングの独学にトライして分からないことだらけになると思います。
また、開発環境整えるだけでもつまづくこともあります。
そうなると向いていないと悩んでしまいます。
なので、質問や相談ができる環境を作ることも大切です。
プログラミングスクールを活用して、やりたいことを最短ルートで学習するのもありだと思います。
独学より多少お金はかかると思いますが、エンジニアとして成功していくという強い決意があれば無駄にはならないと思います。
プログラミングに詳しくない人のよくある誤解
理系で数学ができないとダメか
結論、理系である必要も、数学ができる必要もありません。
私が入社した会社では、8人中5人が文系で外国語学部や商学部の出身でした。
一部ではAI開発などのディープラーニングなどでは数学ができる必要はあります。
ただ、基本的なソフトウェア開発は数学や力学などを使うことはありません。
英語ができないとダメか
結論、必ずしも英語ができる必要はないです。
世の中のエンジニアは英語は中学、高校レベルでもプログラミングはできています。
助けになるが、できなくても問題ないです。
ただし、プログラミング言語自体は英語をベースに作られていることが多いです。
私自身は1年程度の留学を通して、他の日本人よりは英語ができます。
そのため、メソッドやフレームワークに出てくる意味は理解をしやすいです。
また、更新情報なども英語で発表されるため、常に最先端の情報が必要な立場になるのであれば、英語ができる方が有利と言えます。
プログラミングの適正診断
確かに適性を診断するサイトはいくつかあります。
ただ、個人的に半年以内の間に、診断をしないでほしいと思っています。
できない理由を作ることになるので諦めやすくなってしまうからです。
また、就活の適性試験でも論理的思考力などを見るテストがあります。
ただし、あれも参考程度でしかテストはされていません。
極端に思考力が低い人は落ちる理由になり得ます。
ただ、面接官に何回か聞いたことがありますが、私が受けた会社でも参考程度と回答しか聞いたことがありません。
一応いくつか診断サイトを載せておきます。
プログラミングの勉強を継続していく方法
プログラミングが続かないから向いていないと勘違いしてしまうと言いました。
では、続けられるようにするには何が一番大事でしょうか。
私は強い動機や目的があれば続けらると思っています。
プログラミングをする目的・動機を見つける
何となく手に職付けたいだけでも最初は良いです。
でもそれだけでは、モチベーションが続かないのです。
私もIT会社に入社しようと思った理由は「手に職付けたい」でした。
今は違って、「自分でサービスを作ってみたい」と思っています。
また、「日々の業務や作業が面倒で自動化してみたい」と思っています。
そんな思いが今のプログラミングを勉強する原動力です。
ゴールとスケジュールを決める
何をいつまでに達成するかを決めた方が良いです。
ゴールを決めると、達成するために必要なことをかき出します。
そして書き出したタスクがどれくらいの期間でできそうかを考えて進めていきます。
私もDjangoを独学でサイトを3カ月で立ち上げると決めました。
やることを書き出して明確にできたので、進んでいけました。
ただし、1人ではどうにもならない時もあります。
途中、一人ではどうしても無理だったのでクラウドワークスというサイトで1万円くらいで色々レクチャーいただいたりしたこともありました。
多少のお金を払っても達成するという気持ちが大切です。