こんにちは、最近ソースコードのレビューをするとき辛口を心掛けている杉本です。
コードの乱れは心の乱れ、いつでも丁寧なコードを書きたいものです。
さて、本日はなんでも齧ってみるプログラマが、「入門」としておススメする言語/技術を紹介します。
第0位: 学ぶ前に大切なこと
プログラミング言語っていうのは、あくまでも道具なので
「その道具を何にどうやって使うか」
というのが最も大切であるといえます。
やりたい事を適当な言語で書いて、設計等の着地点等を探る練習がとても大切です。
また、再現したい動作をきっちりと言語化してから学習するとスムーズです。
第1位: PHP
第1位は、「PHP」です。
私共、Web屋の主力プログラミング言語といっても過言ではありません。
やろうと思えば何でもできる、けどなんか足りない。
深く知れば知るほど惹かれるプログラミング言語です。
こんな人におすすめ
・マニュアルを読むことが苦にならない人
・「とりあえず動かしたい!!」なひと
いいところ
・日本語での情報がたくさんある。
・いろいろなところで取り扱われるので守備範囲が広い
よくないところ
・言語仕様に統一性が無い。
・拾った情報が古くて、レガシーコードを書いてしまう可能性あり。
echo ‘Hello World!!’
第2位: VB.NET
ExcelマクロであるVBAのお仲間
知っておくと何かと便利です。
ちょっとしたWindowsアプリなら、そこそこ簡単に作れるのでスタートアップにおすすめです。
さきにVBAのお仲間といいましたが、VBAとVB.NETが雰囲気が似ているだけなので、気を付けましょう。
こんな人におすすめ
・煩雑なコードを書きたくない人
・がちがちのコードは見たくない人
いいところ
・開発コストが比較的低いので、いろいろなところで使われている。
・求人が多い(職業プログラマなら大事な項目)
よくないところ
・なんだかコミュニティが縮小傾向
・クラウドサービスとの関係があまりない
・評判がよろしくない。
Console.WriteLine(“Hello world!!”)
第3位: C#
C++とJavaのいいところを取って、.NETで固めたガチガチ言語
最初は難しいが、理解できると堅牢なプログラムが書けるのが楽しいです。
最近は.NET Coreでマルチプラットフォームに対応し、基幹システムからゲーム、Webサービス等様々の方面で使われています。
こんな人におすすめ
・しっかりとコードを書いてC#に限らず、多種多様な言語を身に着けたい人。
・SIer業界やパッケージソフト開発を目指す人
いいところ
・だいたいなんでもできる。
・その割には、面倒ごとは言語側が勝手にやってくれる。
よくないところ
・開発コストが比較的高い。
・メモリ管理やデータ管理等で手が届きづらいこともある。
Console.WriteLine(@”Hello world!!”);
番外
TypeScript
素のJavaScriptで地獄を見た!
大規模開発も省コストかつ、安全にWebアプリが実装できます!
Java
フリーランスで安定してSI系の仕事がしたい!
Webサービスや金融、医療、インフラ等の厳しい業界でも採用されています。
Python
最近はやりの人工知能や、機械学習等をやってみたい!
日本語文献も多く、これからどんどん取り扱い人口が増えるでしょう。
アセンブリ言語
CPUやメモリ等、組み込み用途等でハードウェアと直接仲良くしたい!
MASMやNASM等があります。
最後に
冒頭でも述べましたが、プログラミングは手段ですし、道具に過ぎません。
根本となる物事を分解、観察しプログラムの世界で創造者なる事を意識しましょう。
おまけ
最後に、IT業界でよく見る工程を軽く書いておきます。
1. 要求整理、要件定義
とても大事、ここでヘマをやると後の結合テストで地獄になる。
2. 外部設計
チームにもよるが、基本的に利用者が触れる部分の操作等を検討し、システムの大枠の挙動を決定する。
3. 内部設計
システム内のデータの流れ等を定義して、具体的にプログラムがどう動作するのかを決定する。
小さいチームだと「設計面倒だな… ソース書いた方が早いな」でやらない場合もあります。
4. 製造
設計に従って、実際に動作するものを作成します。
デスマーチが始まるのは大体ココ
5. 単体テスト
プログラマの本番その2です。
内部設計に準じて、想定通りの動作となるか判定します。
6. 結合テスト
実際にシステムを使う人や、外部設計の担当者などが、目的や品質に問題が無いか判定します。
7. リリース
一番緊張する瞬間です。
どれだけ徹底していても、体が震えますし緊張で8時間しか眠れません。
おわり