独身貴族ブログ(年収1000万 ブログ主のひとり言)

30代自称独身貴族フリーランスエンジニアの独り言。年収は1000万円。

投資
趣味
仕事術
ITスキル

プログラミングのセンスがない人の特徴10選!該当する人は今すぐやり方を考え直しましょう。

皆さんこんにちは。

 

都内でweb系 ITエンジニアの仕事をしている主です。

私はプログラミングの速度とセンスに絶対的な自信があります。

プログラミングのセンスについて

プログラミング

私はITの専門学校、会社の新人研修、実業務でプログラミングをしてきましたが

速度において私より成果を出している人を見たことがない!

 と言い切れるくらいプログラミング速度には自信があります。

(しかしリナックスやネットワーク系セキュリティ系の分野はとっても苦手です 笑)

 

そんな私が考えるプログラミングの下手な人、センスがない人の特徴を上げてみます。

 

f:id:over30blog:20210524231321p:plain

 

 

リーダブルコード より良いコードを書くためのシンプルで実践的なテクニ (Theory in practice) [ ダスティン・ボズウェル ]

価格:2,640円
(2020/10/14 20:04時点)
感想(4件)

 

このブログを読んでいただいている皆様は

このような人にならないように気をつけましょう。 

それでは早速紹介していきましょう。

 

プログラミングのセンスがない人の特徴1

 

暗記でプログラミング学習を進めている人

プログラミングは暗記ではないんです。

プログラミングにおいて重要なのは、どのように動作しているかを理解することなんです。

 

これは九九と似ています。

 ・2 × 3 = 6

 ・3 × 2 = 6

 ・1 × 6 = 6

上記の回答はすべて6です。

日本人なら全員答えが"6"になる理由を説明できますよね?

 

プログラミングでも全く同じことが言えます。

カニズムを覚えず暗記で覚えようとしている人は応用することができず

苦しむ傾向が強いように感じます。

 

たとえばfor文。

暗記で「10回繰り返す」と以下のようなフォーマットで覚えていたとしましょう。

 for(i = 0 ; i < 10 ; i++)

しかし、中の処理はfor文のフォーマット通りであれば何を書いても良いんです。

一番左辺の「i = 0」はi = -1でもi = 4でも良いですし

真ん中の「i < 10」は「true」って書いても良いんです。

このようなfor文だって書けちゃうんです。

 for( ; ture ; i++)

本質を理解することを意識して学習するとワンランクアップしますよ。

point

・暗記ではなく、メカニズムを覚える

 

プログラミングのセンスがない人の特徴2

 

つまづいた時でも1人で永遠と調べてる人

プログラミングをやったことがある人なら

誰しもがぶち当たる壁、

「エラーで思うように動かず」

つまづいてしまう事。

これは何十年仕事を経験していたとしても発生します。

 

そのような場面を迎えた場合、

いかに素早く対処出来るかで

プログラミングの速度が劇的に変わってきます。

 

つまづいてしまった場合の対処法は

以下のようなやり方がオススメ。

1.時間を決めて1人で調べる(大体10-30分くらい)

  ↓ 

2.調べてもわからなければ相談。

  ↓ 

3.それでも解決しなければ別案を考えてみる。

 

こんな感じです。

わからないことばかりだと眠たくなります。

しかし眠たくなっていては、何も進展がありません。

私は眠たくならない程度に時間を決めて調べるようにしてます。(笑)

point

誰にでも躓くことがある

躓いたときにどのように乗り切るかが大切

 

プログラミングのセンスがない人の特徴3

 

丁寧すぎる人、石橋を叩きすぎる人

単純にテストのやりすぎです。

sler系の職場でのプログラミングは

とにかくテストケースが多く

無駄なテストが多いんです。

(※銀行のシステムや何万人が利用するようなお硬いシステムは別です。沢山テストしましょう)

 

しかしながら、テストのやりすぎる文化が染み付いてる人間が結構います。

 

このような人たちは簡易的なシステムにもかかわらず、

石橋を叩きまくるようなテストケースを書きがちです。

これではあまり生産性が良くないです。

必要に応じてテストケースを考えて、

工数に見合わないテストはあえて行わない

ようにするのも一つのテクニックです。

point

費用対効果に合わないテストは行う必要は無い

あえてリスクを保持するという選択肢もアリ

 

プログラミングのセンスがない人の特徴4

 

テストの観点がズレている人

このような人は

バグをとにかく発生させます

テストの観点がずれているとなぜバグを発生させてしまうのか?

例えるならば自動車の運転をしていて

左折する時、以下のような確認観点が出てくるかと思います。

1.減速する際に後続車の車間距離が近すぎないか?

2.原付きバイクや自転車が左側の車道から出てこないか?

3.横断歩道に人は歩いていないか?不意に自転車が出てこないか?

 

そして右折を行う場合は

左折の場合とはまた違った確認観点が必要ですよね?

 

仮にあなたが右折をしようとした時、

左折の確認観点にて確認を行い、問題無しと判断してしまった場合

事故発生の確率が上がってしまいます。

 

プログラミングでも同じなんです

 

自分の書いたコードがどのような影響を与えるかをしっかり理解した上で、

的確なテストケースを洗い出す能力が必要になってきます。

 これができないとバグが発生してしまいます。

さらに、的外れなテストを行っているならばただの時間の無駄です。

行う必要のない仕事を行っている状態はやめましょう。

point

有意義なテストケースを抽出しよう

無意味なテストケースを時間の無駄

 

プログラミングのセンスがない人の特徴5

 

ショートカットキーをいつまでも覚えない人

これは説明をしなくてもわかりますよね。

ショートカットキーをとにかく覚えましょう。

 

覚える前は少ししんどいですが、

一度覚えてしまえばこんなに楽なことはありません。

 

便利なショートカットキーについては別で記事にしているので是非ともご覧になってみてくださいね。

over30blog.hatenablog.jp

point

一度覚えたショートカットキーは一生使うことが出来ます。

急がば回れと考えてショートカットキーを覚えましょう

 

プログラミングのセンスがない人の特徴6

 

コピペをうまく利用していない人

コピペってプログラミングととっても相性が良いんです。

なにをコピペすべきかと言うと。

  1.ググって調べたものをそのままコピペをする。

  2.設計書に書いてあるものをそのままコピペをする。

  3.既存の動作しているシステムからコピペをする。

 

って感じです。

1番に関して説明します。

大抵人が作りたいものって世の中に出回っているサイトと同じようなフォーマットなんです。

なにかのコピーや部品と部品が合わさったものなんです。

全く新しいものなんてほぼ99.9%ありません。

 

そして2020年現在は情報が溢れまくっています。

ググれば大抵のソースコードのサンプルをゲットできます。

それらをコピペすることにより簡単に仕事を終えることが出来ます。

 

2番に関して説明します。

設計書からコピペすることにより「設計書と同じものを作れる」ためです。

設計書に記載しているものをタイピングするとタイプミスの恐れがあります。

このようなタイプミスは発見しづらく、後々非常に厄介な事を招く可能性が高いです。

 

3番に関して説明します。

既存で動作しているもの(=実績があるもの)と言えるでしょう。

そのため動作に関しては信頼性があります。

逆に、自分でロジックを組むと予期せぬバグや意図しない挙動を起こすことがあります。

 

 エンジニアだから新しいものをクリエートしたい!!

って思う人が多いと思いますが、そんな意識は捨てましょう。

プログラミングはパズルのようなものです。

与えられたピースを組み合わせて、1つの完成品を目指すべきです。

以下の与えられたピースを駆使し、コピペによってシステムを作り上げます

 ・設計書

 ・既存で動いているソースコード

 ・ググれば出てくる情報

これらを組み合わせれば大抵のプログラミングはうまくいきます。

 

私のコピペ愛(笑)に関してはこちらに記事にしているので是非とも御覧ください!!

over30blog.hatenablog.jp

point

・新しく作りたいシステムは既に誰かが作っている物の流用。なのでそれらをコピペしよう

・パズルを組み立てる場合はピースを探す力が必要、プログラミングは情報を探す力をUPさせよう。そしてそれをコピペしよう

 

 

プログラミングのセンスがない人の特徴7

 

ググるのが下手な人

先程の項目で

ググって調べたものをそのままコピペをする。

と説明をしました。

主にググる内容としては、文字列操作を行う関数だったり、ファイル出力の方法だったり、外部との通信の仕方だったり。。。etc

そのような、細かいプログラミング手法や関数なんていちいち覚えていられません。

覚える必要も全くありません。

 

そんな時はgoogleで検索しますが、ググる方法が良くないといつまで立っても目的の記事にはたどり着けません。

日頃からググる力を身に着けておきましょう。 

本で調べたりなんてしなくて大丈夫です。

ググりましょう。本で調べるとコピペができないですよ。

point

・記憶力より、ググる力の方が大事

 

プログラミングのセンスがない人の特徴8

 

"自分メモ"を作らない人

自分メモとはなにか??それは自分がよく使うワードやコマンドをテキストで残しておくメモです。

自分がよく使うデータベースの名前やファイルの名前やファイルパスをいちいち覚えていませんよね?

さらにSEという職種は職場がコロコロと変わる職種です。一度ファイルパスやDB名を覚えても次の現場では全く活かせないので覚える必要はありません。

 

そのため私はテキストエディタ

以下のような感じのテキストメモを常に開いています。

 ■データベース

  xxxxxxx(売上マスタ)

  xxxxxxx(売上マスタ詳細)

 

 ■ファイルパス

  var/www/hatena/public/xxxxx.php

  var/www/hatena/public/△△△.php

 

 ■エラーチェックコマンド

  $ tail  var/www/hatena/error_.log

 あとはここからサクっとコピペして作業をすすめると素早いです。

point

・覚える必要のない情報はテキストのメモの貼り付けておこう

 

プログラミングのセンスがない人の特徴9

 

他人のテクニックを盗むことをしない人

 他人のPC画面を見せてもらう時ってあると思います。

そこで「何だ!?今の技は!?と思う事ってあると思います。

僕はそれをこっそりパクったり、やり方がわからなければ聞いたりします。

聞いてみると簡単に教えてくれます。人って教えるのが好きな生き物なんです。

 

10人それぞれの良いところのテクニックを自分が吸収すればその中で自分が最強になれると思いません?

 

それを何度もこなしていく人、学習せずに自分のやり方のみで満足している人

どんどん差がついていきますよ。

point

・他人からテクニックを教えてもらおう

・人は教えるのが好きな生き物なので、意外と教えてくれます

 

プログラミングのセンスがない人の特徴10

 

ツールの機能を最大限に扱えない人

ミドルクラス以上のエンジニアは必ずと行っていいほど、お気に入りのツールがありそれらの機能を使いこなしています。

例えばサクラエディタ

私はサクラエディタが得意で、様々な機能を使っています。

サクラエディタテキストエディタですが、以下のような高性能な機能があり私はこれらをショートカットキーを駆使して使用しています

 1.キーマクロ機能

 2.jsのマクロ機能

 3.ファンクションキーにマクロ登録機能

 4.大文字変換、昇順ソート機能など

逆に良くない例が、いろんなツールを使用してどれも中途半端になることです。

point

・1つのツールを極めよう

・自分のお気に入りのツールを見つけよう

 

プログラミングのセンスがない人の特徴の結論

いかがだったでしょうか?
プログラミング言語を学習する機会があっても
プログラミング自体のやり方やセンスの磨き方ってなかなか学習する機会が無いんですよね。

 

なので下手な人はずっと下手なまま40代になっても仕事をし続けていますし

逆に出来る人は20代前半から目立っていて、20代後半になる頃には凄い戦力になっていたりします。

 

当ブログを読んでいただいた方には是非ともプログラミングのセンスを向上していただければ嬉しいです。

 

リーダブルコード より良いコードを書くためのシンプルで実践的なテクニ (Theory in practice) [ ダスティン・ボズウェル ]

価格:2,640円
(2020/10/14 20:04時点)
感想(4件)