記事一覧
プログラミングの独学は天才でなくても可能です
583, 2022-11-09
プログラミングの独学は天才にしかできない?
プログラミングの独学をしようと思っても、頭によぎる不安があります。
それはプログラミングの独学は天才にしかできないのではないか?
という不安です。
筆者はプログラミング歴16年以上のベテラン開発者ですが、結論を言います。
プログラミングの独学は天才でなくても可能です。
(省略されました)
プログラミング言語の独学難易度を解説します
563, 2022-10-02
所長:今回はプログラミング言語の難易度についてちょっと考えてみたいと思います
所長:難しさは1を最小、10を最大とした場合ですね
所長:C言語は10分の7ぐらいですね
所長:C++は10分の9ぐらいで
所長:Rustは10分の10ぐらいですね
所長:Goは10分の6ぐらいで
所長:Pythonは10分の4
所長:JavaScriptは10分の4で
所長:Phpも10分の4ぐらいと
所長:私の独断と偏見による評価ですが
所長:これぐらいの難易度の差はあるかなと思いますね
所長:C言語からまず見ていきたいと思いますが
所長:C言語は10分の7であるということですね
所長:言語機能はコンパクトで
所長:しかしメモリやポインターなどはまりやすいところが多いと
所長:比較的に古い言語なのでライブラリとかも不親切なところは多いですね
所長:プログラムのデバッグが非常に他の言語に比べて難解だと
所長:ただ使いこなせばOSの開発やプログラミング言語の開発など
所長:高度なプログラムを開発できるようになるということですね
所長:C言語は比較的古い言語で
所長:昔から、本当に昔からある言語ですね
所長:未だに使われている言語なんですが
所長:その昔からある言語なので
所長:いわゆるモダンな最近の機能っていうのはあんまり入ってないんですが
所長:最近言語仕様も改定されていって
所長:言語機能ちょっとずつ増えてるんですが
所長:C言語でもジェネリックプログラミングとはできますしね
所長:ただ他の言語に比べると例外がなかったりとか
所長:スタックトレースもないということなので
所長:プログラムのデバッグとかは
所長:他の言語に比べると非常に難解だと思いますね
所長:特にメモリのポインタ絡みのバグとかはですね
所長:非常に難解で、これは外部ツール使わないと
所長:なかなか解決できないことも多いかなと思いますね
所長:はい
所長:私はC言語から入った口なんですが
所長:C言語はですね、2回ぐらい挫折しましたね
所長:それぐらい難しさを持っている言語なんですが
所長:玄人向きの言語ですね、これはね
所長:玄人向きの言語をいきなり初心者から始めちゃったという感じなんですが
所長:そのおかげで結構鍛えられましたね
所長:C++ですが、これは10分の9ぐらいですね
所長:C言語を拡張する目的で作られたマルチパラダイム言語で
所長:C言語と比べて言語機能が豊富で
所長:全てマスターするのはかなり時間を要すると
所長:またC言語の悪いところもそのまま受け継いでいるという点がありますね
所長:メモリやポインタのバグの難解さはそのまま健在していると
所長:ただ使いこなせばあらゆるシーンで使えるということですね
所長:昔はですね、速度が求められるプログラムを作る場合は
所長:C言語か、あるいはモダンな機能を詰め込んだC++の選択肢が多かったんですが
所長:そのおかげでですね、C++を使って開発しているところが非常に多かったみたいですね
所長:大手企業でも、例えばGoogleとかでも使われててですね
所長:C++による開発は結構盛んに行われていた感じですね
所長:あとニコニコ動画でもC++使われてたと思いますが
所長:まあ結構いろんなところで使われている言語ですね
所長:ただですね、ちょっと言語機能がかなり盛りだくさんで
所長:いろんなところから吸収しているものなので
所長:言語機能がかなり豊富というか、乱立しているというか豊富なんですね
所長:なのでこれすべて使いこなすってなると非常に大変で
所長:あまり現実的ではないということですね
所長:C++の言語機能をすべて使おうとするのは
所長:何というか死亡フラグが立っているようなもので
所長:ある程度機能を限定して使わないとですね
所長:まともにプログラムを作れないという感じなので
所長:ただ使いこなせばあらゆるシーンで使える
所長:まあ使いこなせる人がいるかどうかというのは議論はあるかと思いますが
所長:ある程度使いこなせればあらゆるシーンで使えるということですね
所長:まあ、ポインタなども現在で
所長:テンプレートメータープログラミングという新しい分野というか新しい機能も入っていますので
所長:そういうのを習得する難易度を比べると結構難易度が周囲言語に比べて高くなると
所長:Rustは10分の10ですね、今のところね
所長:比較的に最近の言語でモダンな言語であると
所長:だがMove Semanticsがデフォルトで実行されるなどかなり革新的な設計になっていると
所長:玄人からは評判がいい言語だがメモリやポインタなどを知らない初心者が手を出すのは
所長:かなり大変じゃないかと思いますね
所長:最近はLinuxの開発に導入されるなどその活躍の場を徐々に広げていると
所長:Rustは比較的最近の言語でメモリ安全な言語ということでかなり話題になっている言語なんですが
所長:その言語仕様が言語設計がかなり革新的なものになっていまして
所長:例えばMove Semanticsという変数のメモリの所有権をデフォルトで移動させるというのがデフォルトになっているんですが
所長:そういったMove Semanticsとか知らない概念を知らない場合は結構習得も難しくなってしまうという言い方ですね
所長:あとはメモリのライフタイムとかもありますねこういうのも結構大変ですね
所長:玄人からは評判がいいんですが全くの初心者ですねメモリやポインタなどを知らない
所長:全くの初心者が手を出すというのはかなり際どい道になっていくかなと思います
所長:かなり大変ですね初心者が習得するのは
所長:C言語とかC++に触れている人がRustに手を出すのはある程度ポインタなども知っているので大丈夫かなと思うんですが
所長:そういった言語を経てない人はいきなり手を出すと結構習得難易度はかなり学習コストが高いかなと思いますね
所長:最近は活躍の場が徐々に広げているのでその動向を注目したいところです
所長:Go言語ですがこれは10分の6ぐらいですね
所長:これも比較的に最近の言語でGoogleが開発している言語ですね
所長:モダンな言語の割に言語機能はコンパクトにまとまって洗練されていると
所長:唯一ポインタがあるのでこれにつまずく人が多いかもしれないということですね
所長:最近はWeb開発にも使われていて徐々にその活躍の場を広げていると
所長:Go言語は最近の言語の割には言語仕様が結構シンプルにまとまっていて
所長:あれもこれも欲しいという人には物足りない言語になっていてかなり洗練されているという印象を持ちますね
所長:ただポインタという機能がC言語由来のものがあるんですが
所長:このポインタの概念につまずく人は結構多いかもしれないということで
所長:10分の5よりは10分の6ぐらいの難易度にしてみました
所長:ポインタは結構学習難易度高い機能として知られていますので
所長:それにつまずく人は出るかもしれないということですね
所長:PythonですねPythonは10分の4ですね
所長:人気のあるインタプリと言語で文法が簡単で初心者でも覚えやすいと
所長:ただC4文はかなり癖が強いと
所長:ライブラリがパワフルでこの言語を覚えれば大抵のことができるという言語ですね
所長:Pythonは最近はかなり人気の出ている言語なので
所長:この言語を習得すれば大抵のことはできるんですが
所長:ただし速度の必要なプログラム作りたい場合にはちょっと向いてないですね
所長:GUIデスクトップアプリとかも速度が必要なテキストエディターとか作りたい場合はあんまり向いてないということですね
所長:何かしら速度がネックになる言語ではあるということですね
所長:ただし文法は比較的簡単でライブラリにも使い方さえ覚えればすぐに使えて
所長:その割に結構いろんなプログラム作れるようになりますので
所長:その点は初心者でも扱いやすいかなと思いますね
所長:ただし一部の玄人からはあんまり評判が良くない言語ですね
所長:言語仕様がなんというか〇〇だと評価する人も結構いるみたいで
所長:そういった人からはあんまり評判が良くない言語だということですね
所長:ただし初心者には結構向いている言語かなと思います
所長:あとJavaScriptですねJavaScriptは10分の4ですね
所長:人気なスクリプト言語で最近はNode.jsなどもありサーバーサイドでも使うことができるようになっていると
所長:ネットで動きのあるページがあればこいつの仕事であると
所長:thisの参照先などつまづきやすいポインタはあるということですね
所長:JavaScriptは人気が一番高いんじゃないでしょうか
所長:今ランキングの1位に争ってる言語かと思いますが
所長:人気ある言語ですね
所長:最近はNode.jsなどでJavaScriptの文法を使って
所長:サーバーサイドのつまりバイナリとかの開発もできるようになっていますので
所長:フロントエンドとかでも頻繁に使われている言語ですね
所長:JavaScriptはWebpackとかでビルドを管理したりとか
所長:そういったモダンな開発とかも行われていると
所長:フロントエンド界隈はちょっと動きが多いので
所長:この動画で発信していることもすぐ古くなる可能性はありますが
所長:ネットの動きのあるページがあればこいつの仕事ですね
所長:最近はSPAとかシングルページアプリケーションとかの開発でもJavaScriptは使われていますし
所長:モダンなウェブサイトであればJavaScriptを使って
所長:画面に動きを持たせているのが普通かなと思いますが
所長:そういった動きをつけるのはJavaScriptを得意だということですね
所長:ただしディスの参照先がちょっと難解になっているなど
所長:ちょっとつまずきやすいポインタはあることはあるということですね
所長:PHPは10分の4ですね
所長:で、ウェブで使われるインタプリタ言語で
所長:昔からある適当に書いても動く言語であると
所長:大抵のサーバーはこの言語をサポートしているということですね
所長:ウェブでホームページ作りたいならこの言語を選択するのも可であると
所長:だが言語設計については苦労とは難色を示すことも多いということですね
所長:ウェブで使われるインタプリタ言語で
所長:昔からあるものといえばこのPHPがそうなんですが
所長:大抵のレンタルサーバーはこの言語をサポートしていることが多いので
所長:PHPを覚えれば大抵のサーバーで動的なサイトを作ることができるようになると
所長:ウェブでホームページ作りたいならこの言語を選択するのも今でも可であると思いますね
所長:最近はフレームワークがララベルっていうフレームワークも出てきてて
所長:人気が出ているみたいですね
所長:それフレームワーク使えば高度なウェブサイトも作れるようになるかなと思いますが
所長:言語設計については難色を示す人が多いですね
所長:適当に書いても動く言語なので
所長:結構言語仕様も設計も適当になっているところが多いと
所長:そこに難色を示す苦労とも多いということですね
所長:今回は以上になりました
所長:今回は私の知っている言語の範囲で解説をしましたが
所長:これぐらいの難易度ですね
所長:おそらく
所長:何か参考になれば幸いです
所長:今回は以上になります
所長:どうもありがとうございました
独学してプログラマーになるには?元独学Webエンジニアが解説
547, 2022-09-02
独学してプログラマーになる方法
プログラミングを独学してWebエンジニアになった経験のある私(現ブロガー)が考えます。
独学してプログラマーになるにはどうしたらいいのか?
ということですが、結論は
正社員雇用を目指す
バイトから始める
クラウドソーシングで滑り込む
になります。
(省略されました)
プログラミングの独学は難しい。2度挫折しました
545, 2022-08-31
プログラミングの独学は難しいです
プログラミングの独学は簡単?
いいえ、私は難しいと思います。
たまにいますよね。
「プログラミングなんて簡単だよ」っていう人。
(省略されました)
プログラミングの独学の始め方は?5つのポイントを詳しく解説
532, 2022-08-10
プログラミングの独学の始め方は?
プログラミングを独学したいとなったときに独学の始め方を知りたいわけです。
この記事では具体的なプログラミングの独学の始め方を解説します。
結論を言うと独学は↓のようにはじめます。
パソコン、インターネット、教材を揃える
教材を見ながらバグやエラーと格闘
それを毎日コツコツ続ける
プログラミングの独学は初心者の人にとってはいささかハードルが高い!
(省略されました)