初心者プログラマーの辛さ10選

20年近くプログラマーをやってる僕ですが
プログラミングがつらいと感じることは当然あります。
得意言語を持たない初心者はもっとかもしれません。

では、初心者プログラマーの辛さです。

初心者にとってのプログラミングの辛さ

プログラミングの初心者の辛さは色々あります。
概ね以下のどれかに当てはまるのではないでしょうか?

  1. タイピングができないことによる辛さ
  2. 作りたいものが思いつかない辛さ
  3. 環境構築の辛さ
  4. 書き方や方法がわからない辛さ
  5. 用語がわからないことによる辛さ
  6. エラーが解消できない辛さ
  7. 不具合が解消(思い通りに動かない)できない辛さ
  8. 非効率な手法を使っているという実感がある辛さ
  9. 作りたいものと実力に差がありすぎる辛さ
  10. 作りたくないものを作っている辛さ

初心者プログラマーの辛さは平たく言えば「知識」と「経験不足」です。
そこに焦りが加われば様々な負の感情に押しつぶされます。

まぁ、独学でこの試練を乗り越えられる人は中々いませんね。
ちなみに僕がある程度身に着けたのは独学です。
ではそれぞれの内容について簡単な解説とアドバイスを述べていきます。

ご参考まで。

1. タイピングができないことによる辛さ

タイピング問題はとっととクリアしてください。
ブラインドタッチは必須です。というと心が折れるかもしれません。

そんなあなたに朗報。
キーボード見ながら打ってるプログラマーはたくさんいます。
ただし不慣れなタイピングはそのまま苦痛に直結します。

ブラインドタッチとは行かないまでも
押したいキーの場所はすぐにわかるレベルになってください。
画面を見ながら打てるのでブラインドタッチが理想ですけど。

やることは簡単です。タイピングソフトで練習するだけです。

参考:意外とみられるタイピング速度

2. 作りたいものが思いつかない辛さ

作りたいものが思いつかない辛さ。
「何がしたいですか?⇔何ができるのですか?」デッドロック問題に酷似しています。

何ができるかわからない言語なので何が作りたいのかわからなくて当然です。
大方潰しの利く言語を求めて得たいの知れない記事を読んでいることでしょう。
主に当ブログのような。

そんな人には決めてあげます。
OS:Windows 言語:C# 環境:Visual Studio
で電卓作りなさい。自力で。
Googleで調べまくるのはOKです。

次はそうですね。
お絵描きソフトを作りなさい。
簡単なもので結構です。

次は・・・チャット。
TCP/IP通信でOKです。

この3つを作ってから何が作りたいかどの言語を使うか悩んでください。

3. 環境構築の辛さ

最近はずいぶん環境構築も楽になりました。
とはいえ、最初にしかやらないので経験者でも意外と環境構築は辛いです。
難易度の割にやらないと始まらないという環境構築地獄。
出鼻をくじいてきます。

環境構築はバージョンが変わると手順も変わります。
極めたりする必要はありません。
しかし環境構築を自力でやったことあるかどうかで
独り立ちできるかどうかが変わります。

ここは丸暗記ではなく「自力で立ち上げたという自信をつけておく」だけでOKです。

最悪PCさえあれば自力で何とかできる

という自信。これ大事。

4. 書き方や方法がわからない辛さ

for文さえまともに書けない時期。
かなりつらいですね。僕も新しい言語にトライするたびに思います。

とはいえ何度も書くしかないです。
タイピングが苦手な人は紙に何度も書いて丸暗記してください。
僕は明解C言語という書籍の基本的な構文を紙で何度も書きました。

ペーパーレスの時代にデジタル人間が何を言っているのか?
と思われるかもしれません。そういうものです。
「タイピングがつらい」「プログラミングもつらい」
2つも辛いと心が折れます。

ふと気になって最近つくったアプリ3つのfor文とif文の数を数えてみました。

if文93個。for文(foreach含む)は18。
if文106個。for文(foreach含む)16個。
if文1006個。for文(foreach含む)22個。

簡単なアプリならif文100回程度書くみたいです。
ちょっと時間かけて作ったものはif文1000回程度。

初心者のころは3回くらい書き直すと思うので、
3個アプリつくったらif文1000回くらい書くことになると思います。
1000回くらい書けばそれなりになります。
たくさん書いてください。

5. 用語がわからないことによる辛さ

これはずっとつきまといますね。
説明を読んでも理解できないものや、
説明の中に含まれている用語もわからないもの。

解説ページの人が簡単に説明しようとして例えと実態が乖離してるものや、
猫やサルでもわかるハズなのに高度過ぎるもの。

IT用語アリ地獄です。
Google検索で10ページ目くらいまで調べた何を言ってるかわからない。

僕はバカなのか?日本語のようで日本語でない。
プリプロセッサ、リンカ、コンパイル、ビルド、ラムダ、アトリビュート、アノテーション、タプル、バインド、プロパティ、ソリューション、メッセージ、イベント、シンボリック、セマンテック、アタッチ、デタッチ、ライブラリ、タスク、スタック、パッケージ・・・。
自分の知っている単語なのに知らない単語。

その内分かる日が来ます。
ある程度調べてわからなければとりあえず動けばOK。
そんなノリで行きましょう。

まだその魔法を習得するにはちょっと早いというだけです。

6. エラーが解消できない辛さ

エラーが何を言っているかわからないとき殺意がわきます。
機械相手なので自分を責める必要はありません。

調べてみても解決に至る記事が見つからない。

レベルが低すぎて誰も記事にしていない?

そもそもキーワードがわからないし
どうやって調べれば良いのかもわからない。

簡単すぎる内容かもしれないし聞いたら怒られるかも。。。
聞く人も近くにいないしどうしよう。。。知恵袋に書き込むか?

これに関してはエラーメッセージを頼りに色々調べるしかありません。
頼るところがエラーメッセージしかないのに
エラーメッセージがザルというのはしょっちゅうです。

電車の車内アナウンス並みの不親切さ。
駅名聞き取れないんですけど?

誰かの備忘録、日本語のページで足りなければ外国人の力を頼ってください。
乗り越えて覚えるしかないやつです。
でも時間をかけるべきところです。

7. 不具合が解消(思い通りに動かない)できない辛さ

不具合が解消(思い通りに動かない)できない・・・

何故こう動くのか。。。そう書いてるからか。

僕の尊敬する大先輩の独り言です。
神様でした。迷える神様。
全ての神はそれを一つずつ乗り越えています。

耐えろ。乗り越えろ。
あなたは今、神に近づいている。

8. 非効率な手法を使っているという実感がある辛さ

非効率な手法を使っているという実感。
それな。これから先もずっと上がいます。
僕が得意とする言語でも人によって全く書き方が違う。
こんな書き方もあるんだ。。。と思うのはしょっちゅうですね。
そもそも言語自体も進化していきます。

自分の知らない手法で解決している様を目の当たりにしたとき
自己嫌悪に陥る必要はありません。

しかし他人の書いたプログラムは沢山読みましょう。
近くの先輩のプログラムでも構いません。
自分の好きな言語の好きなオープンソースをGitHubで探しても良いです。
初心者は体系だった目次で探せる書籍を漁っても良いです。

人の世界を読むしかないのです。
あなたの世界に答えがないのですから。

9. 作りたいものと実力に差がありすぎる辛さ

これもずっと続きます。

何ができるかを見えてきたらやりたいことが一気に増えます。
しかし何かやりたいと思うと必ず自分に足りない部分があります。

その不足分が多いとどこから手を付けて良いのかわからず自分を見失います。

刻むしかないですね。
ゴール到達まで必要なものを洗い出し一つずつ積み上げていくのです。

全体像の見えない広大な土地を耕せと言われても完了しません。
ある程度区分けして一日一区画ずつ耕していくという目標を立てるのです。

10. 作りたくないものを作っている辛さ

例えば

  • 業務
  • 頼まれごと
  • プログラミングスクールの課題

最初の内は楽しさも見出せるかもしれませんがすぐに辛くなります。
人から与えられるもので作りたいものが作れるケースは稀です。

自分のプライベートの時間を使って自分のリスクで自分の好きなものを作る。
それが楽しいのです。

  • プライベートは削りたくない
  • やりたいことをしたい
  • リスクはとりたくない

それは求めすぎというものです。

まとめ

ざっと思いつく範囲で書いてみました。
例えば自転車。最初は何度も転びます。
ですが時期に転ぶ方が難しくなります。

プログラミングもそう。
すぐにできるようになります。
適正や頭の良さの問題ではないと僕は思うのです。
どれだけ自力で乗り越えたかだけです。

誰かのお役に立てれば幸甚です。

おわり

PR

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です