「駆け出し初心者プログラマーがつまずくポイントと悩みとは?」
独学やスクールで、少しプログラミングを学んでいて、これから就職・転職を目指す!という初心者プログラマー向けに、『脱初心者』するための4つの打開策をお伝えします。
ちなみに、本記事の初心者については、未就職者や未経験者で、forやifの条件分などの学習で例題の関数を作ったり、配列などでグラフ用のデータを作ったりするレベルを想定してます。
が、まったくソースコードを書いた経験がない!だけど、プログラミング言語に興味がある、って方にも、なるべくわかりやすく伝わる表現を工夫してますので、是非ご覧ください。
本記事は以下の人に向けた内容になります。
~本記事の内容~
- Java,Python,C++を少し学んだことがる人、もしくは興味がある人
- 駆け出しプログラマーのつまずきポイントを知りたい人
- 脱初心者するためのコツを知りたい人
スポンサーリンク
目次
【よくある】駆け出し初心者プログラマーがつまずく悩みポイント
「悩みは得意不得意があるおで、なやみは人それぞれ」その通りなんですが、駆け出しのプログラマーからよく相談を受けるポイントを簡単にまとめてみました。
- プログラム構成がわからない
- 配列になるとわかならんくなる
- 長文(Step数)のソースコードが書けない
それぞれの中身について、ご紹介します。
1.プログラム構成がわからない
プログラミング書籍を利用して、独学で始めた人に多い悩みですが、「プログラムってそのものが何となくしかわからない」ってケースがあります。
本人に話を聞くと、「教科書の例題をいくつかやったが、なんとなくわかったような、でもこれで仕事として食っていける自信がない」と言います。
ま、これは経験もないため、当然です。(未就職であればなおさら)
ただ、そこで私から質問します。”基本的にプログラムを書く上で、絶対に必要な決まり(パーツ)は何?“と。
なかなか正解する人はいませんでした。やっぱり基本中の基本である、抑えるべきところを抑えられていないな、と思いました。
とくに独学の場合は、全体像のコツをつかむのが難しいので、仕方がない部分もありますけどね。。
2.配列になると理解が追い付かない
最初のつまずきポイントはここではないでしょうか?
順調に、自己学習で進めている人に限らず、スクールで教えてもらっている人でも、このあたりから挫折する人が多い気がします。
更に、”2次元配列”や”多次元配列”になってくると、高等数学のようで、苦手な人は余計にパニックになってきませんか?(-_-;)
そもそも「次元」なんて言葉を使う上に、教本には”x”や”y”なんて使用するから、学生時代の数学に見えて、初見から毛嫌いする人もいます(笑)
配列も特徴さえつかめば、かならず慣れてきますので、大丈夫です!
3. 長文(Step数)のソースコードが書けない
プログラミングで転職する場合は、言語とソースコードの行数(Step数)を経歴書に書くことが多いです。
大体、転職だと個人で1案件あたり何千Stepから何万Stepあたりの実績を書くことが多いでしょうか。
ただ、初心者の場合は、教本の例題や課題が多くても100行(100Step)程度なので、とてもそんなに書ける自信がない、という人もいます。
安心してください。大丈夫です。どんなプログラムもサブ関数やサブプログラムの集まりなので(^^ゞ
【就職転職を目指せ】『脱初心者プログラマー』4つの打開策とコツ
ここから、抑えておくべき具体的なポイントをご紹介します。
- どんなプログラミング言語も”宣言”、”計算”、”出力”の3つが基本パートと覚えるべし
- わかりにくい配列型の変数は、車両・集合住宅マンションと理解すればよい
- 長文も怖くない!すべてのプログラムは引数と出力の繰り返しと覚えるべし
- プロ用の書き方は自分で考えるだけ無駄。真似ることがベスト
それぞれの内容をご説明します。
1. どんなプログラミング言語も”宣言”、”計算”、”出力”の3つが基本パートと覚えるべし
プログラミング言語は、
- 定数や変数の型を定義する“宣言”パート
- 定数や変数を条件分で四則演算する“計算”パート
- 画面に表示する“出力”パート
これらをプログラムの基本構成として成り立ってます。
この先、就職や転職を仕事をする場合、配属されて最初は”計算”パートの1部分を担当することになりますが、”宣言”パートの内容を必ず抑えておかないとソースコードが書けません!
当然ですよね?定義した定数や変数を知らなければ、書けないわけですから。。
なので、どんなプログラムを書くことがあってもこの3つを頭にしっかり押さえておきましょう(^^)/
ちなみにJava、Phython、C++に限らず、RubyでもVBでもその他でも、この基本構成はかわりません。(インタープリター言語は簡易化するため、宣言パートを略していることもある)
なぜなら、すべてはコンピュータに計算にさせるためのマシン語を人間がわかりやすいように、類似英語にしたものがそれぞれのプログラミング言語だからです。
マシン語により近い言語として、アセンブリ言語という中間言語があります。こちらの言語を勉強してみると、その意味がもう少しわかってくると思います。
2. わかりにくい配列型の変数は、車両・集合住宅マンションと理解すればよい
多くの人が最初のつまずきポイントである配列は、以下のように覚えてください。
- 1次元配列は、電車の車両
- 2次元、3次元配列は集合住宅マンション
コツ① 1次元配列は、電車の車両をイメージ
最初は「1次元配列」を学習しますが、リストや入れ替えをプログラミング課題でやりますよね?
もし、理解が難しければ、“1次元配列は電車の車両をイメージ”するとわかりやすいと思います。
例えば、全部で5両の電車で、各車両にはデータというお客が搭乗していて、「3両目の人は誰?」というプログラミングを書いて、「3両目は鈴木さん」という出力となる、という結果です。
また、配列のデータの出し入れも5両の車両で、人の乗り降り(データの出し入れ)で理解できると思います。
リストの考え方も車両であれば、「5両の電車で3両目だけを削除する」というイメージです。
いかがでしょうか?
コツ② 2次元、3次元配列は、集合住宅マンション
3次元配列は、”集合住宅マンションに住む人をデータとしてイメージ”するとわかりやすいと思います。
例えば、3次元配列からデータを取り出すとき「A棟、2階、左から3番目の部屋に住む人」は?という感じです。
その場合、2次元配列は「3階、左から1番目の部屋に住む人は?」のように1つのマンションをイメージすれば良いでしょう。
まとめ 配列を理解するための重要ポイント
ここで配列を理解する上で、覚えておく重要なことをお伝えします。
「データはメモリ上のアドレス(住所)の出し入れが基本」
その理由ですが、
コンピュータはどこで計算しますか?答えはCPUと物理メモリです。物理メモリからCUPにデータを渡して計算して、再びメモリに戻します。
そのとき、同じ場所に戻すか違う場所に戻すか、指示が必要ですよね?その指示が、先ほどの「〇両目」や「〇棟、〇階、左から〇番目の部屋」のようなアドレス(住所)になります。
つまり、このメモリ空間のアドレス(住所)をコンピュータに指示するということが”配列”となるわけです。
3. 長文も怖くない!すべてのプログラムは引数と出力の繰り返しと覚えるべし
初心者の頃は、長文のサンプルソースコードを見ると、mainプログラムや数多くのサブプログラムがあり、困惑することもあるかと思います。
ただ、決して臆することはありません。
各プログラムの入力(INPUT)データと出力(OUTPUTデータ)だけを整理してください!
もし、就職や転職でプログラミングを担当することになったら、これを意識してください。
各プログラムの入力(INPUT)データと出力(OUTPUTデータ)整理以外は、各プログラムが勝手にプログラム内で計算しているだけですから、気にする(理解する)必要はありません。
自担当のプログラムだけ、中身のソースコード内容を理解して、改修するなり、テスト&デバッグするなりすれば、よいのです。
よって、ソースコードが長文であろうが怖がらず、自分のプログラムに渡すデータと出力するデータだけを書いて完成させればよいのです。
その繰り返しをすることで、自分の書いたサブプログラムが増えて、やがてブロックのように積みあがって、長文のソースコードを書いた!という実績に自然となるわけです。
4. プロ用の書き方は自分で考えるだけ無駄。真似ることがベスト
ここでいう“プロ用”とは「計算処理が早く処理動作が軽い、実践用のソースコードの書き方」のことです。
同じ出力結果を得るためのプログラミング言語の書き方は複数パターンがあります。ただ、余計なメモリを消費したり、無駄なCPU処理を必要とする駄目プログラムが世の中には数多く存在します。
これを打開する実践的な方法は、教科書や書籍にはほとんど記載がありません。基本的な書き方のみです。
なぜ、教科書は書籍はそうなっているか?その理由は、「初心者がプログラムの書き方を理解しやすいように、わざと遠回りのソースを教えているから!」です。
よって、いくら努力で勉強しようともあまり得策ではありません。時間の無駄です。
実際に、実践的なソースコードにする方法は、機械語に近いアセンブリ言語のような書き方が早かったり、アドレス空間やポインタを明記したり、重複を最適化するようなテクニックだったり、と色々な方法があります。
ただ、これらのテクニックは、就職や転職して現場で真似て覚えて方が早い!ということです。
スポンサーリンク
まとめ:手に職をつけるためにもプログラマーを目指そう!
これからは、本当にプログラマーがアツいです。
大手企業でも年功序列の廃止が多くなってきてますし、個人スキル(個人市場価値)で昇給や年俸を決める!なんて制度も検討が進んでます。
ベンチャーや個人のフリーランスにも、プログラミングスキルは有利でしょうし、これから手に職をつけるために、プログラマーは目指して間違いない職種だと思いますね。
ただ、これからどんどん若手や海外の人も増えてくるでしょうから、早めに行動して良い就職先やポジションを抑えておくということをおすすめします。
本記事では、「脱初心者プログラマー」をテーマにご紹介しましたが、チャンスを逃さず、就職や転職も目指してみてください。
以上、今回はここまでです。頑張ってください(^^)/
まず、プログラミングに適した就職先や転職先を調べたいという人はこちら。
もう少し勉強したい!や就職斡旋付き無料スクールを知りたいという人はこちら。
https://best-ref.com/programing-school-hikaku/
————————————————————————————-
本記事に関する、疑問や質問等、何かあれば問い合わせフォームでご連絡ください。