2020.01.18スポンサーリンク一応、わたくし、高校生のころからプログラミングをたしなんでいる。中小メーカー就職C++(BCB)から始まり、Java・VB.net・C#などなどかれこれ、二十年ぐらい経とうとしている。触れた言語はCOBOLに始まり、C・C++・C#・VB6・vb.net・Javaなどエトセトラ。基本的なところは抑えている。今は幸か不幸かWEB系を扱っており、名ばかりのIoTプラットフォーム()と日々、戦っている。私は新入社員で入社して以来、中小メーカに勤めている。以前からメーカーの旧態依然な企業形態には嫌気がさしていたが、以下の理由から転職には及び腰だった。(早い話が田舎のおうちから通える範囲)(多...wakachan228.com2020.02.08完全自論だが、私なりにプログラミングをマスターするコツを語ってみようと思う。これからプログラミングを学びたい!既に学んでいるけど更にプログラミングのスキルを磨きたい!と思っている人に少しでもビビッと来るような記事を書ければと思う。優れている人のプログラムを見て、組み方や手法を学ぶデバッグ手法を覚えるプログラムを書いている人の気持ちになろうとなる。ひとつずつ、読み解いていこう。言うと、本当に出来る人ほどそんなものを利用していないからだ。とあるように、セミナーや教材は特定の言語に特化している。考えれば分かるが、その言語自体が廃れてしまったらその価値は一瞬にして失われる。趣味で学び、時間も金も惜しくない、それ以上に自分のスキルなら得られるものがあるという人はこの限りではない。独学だと基礎知識が十分につかずに、周囲に迷惑をかけるし、自分も後々に困る!と言う人も居るだろうが(そして高価なセミナーや教材を勧める)、私はそう思わない。基礎知識など何となくで良いのだ。後は、ひたすら実践あるのみ、経験を積まないとプログラミングスキルが身につくことはまずない。学生時代に多少でもプログラミング言語に触れたことがあり、なんとなーくだけど分かるという人は不要なくらいだ。Cを例にして極論から言うと、ポインタが値ではなくアドレス(番地)であることが分かっていれば十分だ。C++やJavaならクラスという概念があったな~ぐらいで良い。いやみいやいやいやいやいや、ダメでしょ厳密に言うとそうなのだが、心配しなくていい。プログラミングに長けた人と遭遇しない限り、それらを完璧に熟知した上で組まれた行儀良いお綺麗なプログラムに遭遇することはまずない。私とてそのようなお行儀の良いソースコードと巡り会ったのは、下記記事に出没している例のどらえもん先輩ぐらいである。会社にとって都合の良い人間になるな私がもっとも尊敬し、色々と教えてくれた先輩が残した一言です。その先輩は、昨年11月に会社を自己都合退職しました。あの大手企業のセブイレブンすらあのようなずざんなものを出してくる始末なのだ。(まぁ、あれは指示を出す側の人間がダメダメだった上に、発注先の下請けもあまり宜しくなかったことによるダブルコンボのようだが)もう一度、言う。基礎知識を全て熟知した上で組まれたコードなど、この世に早々ない。下手すると、それこそグーグルとかアップル社レベルにならないと拝めないんじゃないかとすら思う。いうところに就職できるスキルがある人は確かに、土台である基礎知識からしっかり学んだ方が良いと思うが、大半の人は残念ながらそうではない。基礎知識は「ふーん」レベルで良い。VBAはWordやExcelに組み込まれている。ブログの基本であるwordpressは一番身近で良い教材だと思う。cocoonのPHPも、パッと見た限りではめっさ綺麗なので私も参考にしている。いって学ぶのを止めるワケではない。後で分からなくなった時に、そのまま放置せずに改めて調べる癖をつけておけば良いのである。出来れば、私で言うところのドラえもん先輩なる人物──要は師匠を見つけると良い。分からなければエキスパートに聞くのが一番である。技術を盗み出し、自分の血肉にしよう。残念ながらそういう人が居ないという人は、Google先生に聞いてみると良い。分かりやすいサイトに巡り会えたり、実践を詰んだことで理解できなかったものが唐突に理解できるようになることがある。優れている人のプログラムを見て、組み方や手法を学ぶこれが一番重要である。私は未だにドラえもん先輩のソースコードを持っている。実践経験を詰めば詰むほど、いかに計算されつくした美しいソースであるか、身に染みて分かるのだ。わか言語以上に学ぶものが多いコメントがきちんと記載されておりインデント(行の頭位置)も揃えられておりプログラムのひとつひとつが汎用性高く作られているわか美しい以外のなにものでもないこれらが出来ていると、仕様変更の際に何処を修正すれば良いのかすぐに分かり柔軟に対応出来たり、機能ごとにプログラムが切り分けられて作られていると他のプログラムへの転用が容易に出来る。わかとある方がとても美しいイラストを仕上げるのに一時間かかったとする。積み重ねの末にあることをご存知だろうか。その分の対価は頂くべきなのと一緒であり、通ずるものがあるのだよ。そんなの簡単なんじゃないの?と言う心ない人も居るが、なら自分でやれ。言うのはさておき、これが実は言葉で言うほど簡単ではない。メインプログラムに全てを突っ込んで長ーい単一ソースコードになっていたりなんでもかんでもグローバル変数にして、何処からも変更可能になっていたりコメントも無く、ダラダラと書いているだけで何の処理をしているのかサッパリだったりザラである。グローバル変数とは何処からも参照・変更可能な値のことである。値を何でもかんでもグローバル変数にすると、見事なスパゲティコードが出来上がる。適切な値を引数にとり、適切な値を返却するプログラムは言うほど簡単に作れない。プログラミングをたしなんだことのある者なら分かるハズだ。思う人を身近に見つけたのなら、その人のソースを全て入手し、隅から隅まで見てみよう。気づけることがたくさんあるはずだ。デバッグ手法を覚える一番、重要である。言うか、これが分からないと実践向きのプログラムが組めないのはおろか、未知のバグが起きた際に対応が出来ない。統合開発環境を使っていれば大概、デバッグ機能がついており、ステップ実行だとかブレークポイントだとか監視式だとか出てくるだろう。その辺を使えるようになろう。統合開発環境がない場合は何らかのログを仕込み、そこから読み取るカタチになる。Linuxならsyslogを使えばいいし、会社でログを吐き出せるプログラムが組まれたものがあるならそれを利用すれば良い。ログ機能は設定次第でログ出力を切り替えられたり、勝手にローテーションして保存されたり、まで作り込まれていると良い。一から作ろうと思うと意外と大変なので、ない人はそれらがあらかじめ考慮されているsysylogなり、ライブラリを上手く使おう。ログさえ出力出来れば、処理のステップや変数の値を出力することで、どの時点でエラーが起きたのかを絞り込むことが出来る。言語名や統合開発環境名+デバッグでぐぐれば大体、分かるだろう。そこでひっかからないようなものはマイナーなので、初心者は避けた方が無難である。プログラムを書いている人の気持ちになろう前振りで基礎知識は独学レベルで十分と言ったが、それには理由がある。わず、向いている人は向いているし、向いてない人は何処までも向いてない。ブ〇ック企業が人材欲しさに「初心者や文系でも大丈夫!」と言っているが、あながち間違いではなかったりする。個人で請け負うならともかく、会社だとしたら尚更プログラムを新規開発するこはマレだ。新規開発だとしてもほんの試作だったり、土台は今まで作ってきたものを組み合わせて──というのが大半だろう。プログラムを一から作ることはほぼない。他人が作ったプログラムを読み解き、バグを見つけ出し、修正することが大半だ。文系に必要な読み解く能力が鍵なのだ。わか大事なのは己の技量よりも、プログラムを作った人間の気持ちをトレースすることのだよ!!!そういう意味では小説を読み書き出来る人は、プログラマ向きなのかもしれない。手近なところだとwordpressのcocconのPHPを読み解くことは、本当にとても良い教材だと思うので、興味ある人は触れてみて貰えればと思う。まとめ:とにかく実践を詰み、尊敬すべき師匠を見つけようぶっちゃけ、学校で学ぶことや教材系はほぼ役に立たない。基礎的なものは何となく知っていれば良い。知識なんぞ無くてもインターネットで調べれば良い。私は文字列⇔数値変換をいちいち調べていたりする(ガチで)これには少し意味もあって、よりよい変換方法があればそちらを採用し、常にアップデートかけている状態となるのだそれでも不満なら職業訓練校なり、有名どころの学校(大原など)に行けば良い。どんなに有名だろうと個人が出すようなセミナー・教材には手を出すな。就活や転職する時のことを想像してみれば良い。面接を受けた際、「〇〇さんのセミナー・教材で学びました!」はかなりうさんくさいが、「職業訓練校に行きました」「大原の社会人講座で学びながら、独学でもこんなことしました」「学校は行っておりませんが、VBAでこんなものを作ってみました」の方が信用度も増すだろう。邪道ではあるが、精神がタフであり、給料いらんと割り切れる人はブ〇ック企業に入社し、学ぶのもアリだと思う。忍耐強くなれるだろう(ただし、私としてはあまり勧めない)ではでは、この辺で。私がもっとも尊敬し、色々と教えてくれた先輩が残した一言です。その先輩は、昨年11月に会社を自己都合退職しました。誰しも一度は頭をよぎる転職願望。巡り会えた人は天文学的に低いのではないだろうか。事務系女子と技術系女子。表面上はうふふ、おほほと仲良く談笑しているが、実のところ腹の探りあいが......なんてこと、あるのだろうか。うちの会社は技術系女子が数える程しか居ないので、あまり肌で感じないが場所によってはあるのかもしれない。リクナビ・マイナビ取材を受けた私がぶっちゃけてみる【美辞麗句のオンパレード】リクナビやマイナビに載っている先輩社員の声。就活生なら一度は目にしたことがあるだろう。私が就活生だった頃もそこに書かれている社内の雰囲気や仕事内容を見て、未来に夢を馳せていたものだ。【社会縮図?】「独立系」「ユーザー系」「メーカー系」に就職した技術系女子たちの三年後【IT業界】あるところに、仲の良い技術系女子の4人組がおりました。彼女たちはそれぞれ「独立系」「ユーザー系」「メーカー系」の企業へ、技術職として採用されました。「独立系」に内定が決まったよ。今は「売り手市場」と言われ、就活生にとっては有利な市場。そんな中でも未だに「学歴フィルター」だの「圧迫面接」だの、そんな声がちらほら聞こえてくる。コメントをキャンセルメールアドレスが公開されることはありません。優れている人のプログラムを見て、組み方や手法を学ぶデバッグ手法を覚えるプログラムを書いている人の気持ちになろうまとめ:とにかく実践を詰み、尊敬すべき師匠を見つけよう。