プログラミングを始めたいけど、やりたい事が決まってない人へ
初めに
始めまして、wing-xです。
中の人はプログラマー歴5年のまだまだヒヨッコのPG見習いです。
プログラミング初学者向けの技術記事とかは山ほど転がってるので
今回は「プログラミングには興味あるけど、特に作りたいものとかはない」という人向けに
とりあえず今日のおすすめ言語と、その言語で何が作りやすいかについて、細々と書いていこうと思います。
おすすめ言語
今回紹介する言語は、以下の点を重視してます
・何かしら成果物(Webアプリやスマホアプリ、ゲームやデスクトップアプリなど)を作りやすい、
あるいは作るための情報が集めやすい
学生さんとかは授業でC言語をやった事ある、っていう人も多いと思いますが
学習範囲だとコマンドプロンプト、あるいはテキストファイルを出力する程度で終わってしまい、面白味があまり無かったと思います
(これは私自身が大学時代に講義を受けて「ああ、自分はプログラミングに向いて無いんだな」という悲しい過去があるからです)
なので、ある程度言語の文法を理解したら、次ステップに進みやすい言語として、今回は2つの言語を紹介したいと思います
(逆にやりたい事が決まっているなら、素直にそれに特化した言語を勉強する方が良いです)
-
Python
もはや鉄板ですね、AIとか機械学習とかで色々と話題になっている言語です。
文法もかなりシンプルなので覚えやすいのも特徴です。
ゲームならPyGame、WebアプリならDjangoやFlask辺りのライブラリやフレームワークを使う事で、わりと手軽に作れるのも特徴です。
まだまだ盛り上がっている言語なので、とりあえずこれをやっておけば安牌です。 -
C#
Pythonと比べると少し固めの言語ですが、こちらも楽しい言語です
スマホアプリならXamarin(COCOAとかで使われているフレームワークです)、
ゲームなら超有名どころのUnityが使えます
また現状ではデスクトップアプリを作るならほぼこれ一択になります
ツールについて
Pythonをやる場合はVisual Studio Code(以下VSCode)を中心に構築するのが手っ取り早いですい、何よりお金がかかりません。
お金を出せるならPyCharmの有償版も選択肢に入りますが、間違いなく最初は不要というか持て余します
一応、PyCharmの無償版は素のPythonだけ弄るだけなら十分使えますが
例えばデータ分析(Jupyter)何かを使う場合には有償版じゃないと一部の機能が使えなかったりで不便になってくる感じです
半面、VSCodeは拡張を入れまくれば有償総合環境に匹敵する環境にまで引き上げられるので
大体これに落ち着きます
C#の場合は直にVisual Studioを使いましょう、鉄板です
というかこれ以外に選択肢はほぼ無いです
(私は変わり者なのでRiderを使ってますが)
学習について
何はともあれ、入門書は1冊終わらせましょう
なお勉強する際は以下の流れが理想です
必ずコードを書く(写経する)
↓
実行する
↓
実行に成功する(想定通り動いている)事を確認する
↓
(慣れて来たら)Gitなどのバージョン管理ツールを使ってコミットする
この流れをできるようにしましょう
Gitって何?っていう人は単純にプログラミング向けの拡張セーブ機能みたいなものです
(超便利なのでぜひ合わせて覚えましょう)
写経は意味ないんじゃないの?っていう人も稀にいるのですが
私はそうは思ってないです
理由は書く→実行するの流れを行わないと、
ミスをした時のエラー、あるいは想定外の挙動を体験出来ないからです
正直な所、最初の方はプログラミングが上手く動くパターンの方が少ないです
環境や人によっては1ページ目のHello Worldですら上手く出力できない場合すらあります
(インタープリターの設定ミス、全角スペースの混入など)
ただプログラミングの親切な所として、
エラーが起きたらエラーメッセージを出力してくれるので、対応の手がかりを残してくれます
これを元に翻訳したりググる事で、エラー対応の能力も合わせて育む事が出来ます
(特に初学者が起こしやすいエラーは、大体みんなやらかすのでググると一発で情報が出る事が多いです)
……というか私が知る限り、本を読んだだけでプログラムが書けるようになった人は居ないと思います
あと重要な事ですが
入門書は必ず1冊は終わらせてください
プログラミングは基本的に勉強する事が多いです
言語だけでなく、ライブラリの使い方だったり、
先ほどチラッと出たようなバージョン管理ツールのGitや、データベースなど関連ツール、
コード改善系の本(リーダブルコードなど)色々な本を読んでいく事になります
(ググれば何とかなる、っていう人でも最低でも必要な検索キーワードが頭に思い浮かぶ程度には勉強しています)
なのでまずは1冊終わらせて、これに慣れていきましょう
言語の文法だけで遊べるもの
正直な所、文法の勉強はあんまり面白くない上
「何に使うのこれ?」っていう部分も多く感じます
その場合はプログラミングコンテストの類に挑戦してみると良いです
AtCoderとかが有名ですね
初級者向けの問題は文法が分かってれば解ける問題がほとんどです
中級者向けになってくるとアルゴリズムに関する知識が必要になってきますが、それも良い勉強の機会になります
何よりも過去問については色んな人が書いたコードが見れるので、
「プログラミングって答えは一つじゃないんだ」っていうのを実感できる所でもあります
(また上には上が居るんだな……っていうのもよく分かる世界です)
# 終わりに
とりあえず初のZennと言う事でツラツラ書きました
今後も何か各ネタがあれば投稿していきたいと思います
Discussion