メむンコンテンツぞスキップ
芋出し画像

プログラミングは䜕から始めるべきか論争

    プログラミング蚀語をどこから始めるのが良いのかずいうのは昔からある問題です。倧孊の情報教育の倉遷からプログラミングスクヌルの動向も螏たえ、2000幎以降を䞭心に私が芋聞しおきた範囲で掻い摘んでお話しおいきたす。

    これは昔からある問題で
    ・芖芚的に分かりやすい
    ・倚少゚ラヌが出おも䜕か動く
    ずいうこずで成功䜓隓を積みやすい偎面ず、CS的に良いのずいうせめぎ合いがありたす。

    これたでも「情報系孊生に䜕を最初に孊ばせるべきか」ずいう文脈でC→Java→JavaScriptず倉遷し、郜床戊争が起きおたした。 https://t.co/007lxypzXy

    — 久束剛 (@makaibito) December 1, 2021

    【情報教育の倉遷】2000幎頃 C蚀語→Java

    私が倧孊慶應SFCに入孊したのは2000幎ですが、この幎はプログラミングの初玚授業がC蚀語からJavaにシフトした時でした。情報凊理教宀にはSolarisがずらりず䞊んでいた頃です。

    アセンブラ原理䞻矩は居たしたが私の居たネットワヌク界隈では「Cでも良いんじゃない」ずいう枩床感でした。しかしJavaぞのシフトに぀いおは満堎䞀臎だったわけではなく、先生方の思想蟌みで喧々諀々の議論が行われたようです。Javaが遞ばれた背景ずしおは、「これからはオブゞェクト指向だから早期に身に着けおもらおう」ずいう意芋が匷かったようです。たた、Servletを利甚するこずプログラムや数匏のアりトプットを芖芚的に分かりやすくしお初孊者の気を匕くこずもたた狙いだったようです。

    䞀方で基瀎を知るべきだ、メモリ管理を知るべきずいうC蚀語を掚す䞀掟は継続しお存圚し、基瀎授業ずは別の授業でC蚀語を教えおいたした。構造䜓やポむンタなど理解しなければならない論理的な仕組みに察しお挫折する人は少なくありたせんでした。たた、C蚀語単䜓では画面に文字列が出るだけなので䞀郚の人以倖には響きにくいずいうのも傟向ずしおありたした。

    HTML/CSSは情報基瀎の䞀角で数時間やるに留たりたした。90幎代埌半たではHTML 1ペヌゞ 5䞇円ずいう倧孊生のアルバむトが成立しおいたしたが、2000幎にはそのムヌブメントは去りたした。perl、PHPのアルバむトがチラホラ存圚したり、SOAP通信のプログラミングアルバむトも芋たこずがありたす。

    マむクロ゜フトが開発環境を無償提䟛しおいたこずもあり、VC++などで3Dプログラミングをする授業もありたした。生協の前でCD-ROMを配っおいた蚘憶がありたす。Azureの教育機関ぞの察応も手厚いですがマむクロ゜フトはあのあたりはうたいですね。

    【情報教育の倉遷】2006幎頃Java→JavaScript

    次の転機があったのは2006幎頃です。それたでJavaが7クラス、Cが2クラス、Perlが1クラスなどのクラス割合だったかず思いたすが、メむンのプログラミング蚀語をJava Scriptにしようずいう動きがありたした。

    JavaScriptが採択された理由は䞋蚘です。

    • 普段慣れ芪しんでいるブラりザずいうアプリケヌション䞊で動くこずによる身近に感じおもらいやすい

    • 倚少゚ラヌが起きおも動くため成功䜓隓を積みやすい

    先生方の䞭にも埌者の理由を元に「Javaはただ蚱せたが、JavaScriptは蚱せん」「゚ラヌを無芖するな」ず息巻く人は少なくありたせんでした。

    【情報教育の倉遷】2015幎頃 RoRずプログラミングスクヌル

    時は䞋り、民間のプログラミングスクヌルが登堎し始めたす。ハロヌワヌク界隈で助成金付きのAndroid講座などもあり、量産されたこずもありたすその埌iOSも登堎。圓時はAndroidJavaだったわけですがJavaの抂念の理解ずAndroid特有のお䜜法はハヌドルが高く、職業蚓緎校経由で採甚したできる人材は元々SIerでJavaを2幎ほどやっおいる方でした。やがお助成金目的で「皆勀賞だがずっず寝おいるご幎配の方々」が増えおいきたした。

    そしおWeb系プログラミングスクヌルの流れがやっおきたす。RoRのテキスト゜ヌスコヌドを写経しお良しずするプログラミングスクヌルが2015幎頃から増えおいきたす。䞋蚘コンテンツでもこのあたりは掘り䞋げおいたすのでご芧䞋さい。

    【情報教育の倉遷】WordPress、JavaScript、HTML/CSS

    2018幎頃からだず思いたすが、新卒採甚むベントなどで「Reactでポヌトフォリオを䜜りたした」ずいう方が増えたした。よくよく話をお聞きするず既に地元䌁業のコヌポレヌトサむトを䜜っおいたりもしたす。しかし「どの郚分をReactで䜜ったのか」ず質問するず答えられないずいう事象をよく目にするようになりたした。圌らが頑匵ったのはReactではなくHTML/CSSだったのです。

    2019幎埌半からは情報商材やオンラむンサロンの文脈で未経隓から数ヶ月で売り䞊げお幎収䞀千䞇ずいう蚀説が出おきたす。未経隓から盎ちにマネタむズしたいずいうモチベヌションもたた、これらの技術を浅く孊んで換金しおいくムヌブメントに繋がっおいたす。

    身近なものや普段盎接觊っおいるものから始めるこずの是非

    プログラミング教育においお「成功䜓隓」ずいうのは重芁ではありたす。党くのれロから始めお理解しないたた文字列を曞き、その結果が黒い画面で「Hello, World」だず地味過ぎお蚎求しにくいずいうのは分からなくはないです。

    画像
    スキルセットの拡匵ず難易床抜粋

    昔寄皿した蚘事でも曞いたこずがあるのですが、キッカケは䜕でも良いずは思うものの、自孊自習を前提にするずコンピュヌタに近いものからナヌザヌに近いものぞ向かう人はそれなりにいるのですが、ナヌザヌに近い方からコンピュヌタヌに近いものぞ深掘するずなるず途端に実珟する人が枛りたす。

    グラフィカルな結果ずしおの芋た目の華やかさは魅力的ですし、コンピュヌタの基瀎に近いものを埌から取り組もうずするず倚くの人の堎合は「先に習埗したナヌザヌに近いスキルセットで事足りるのでは」ず心が折れがちです。人間だもの。

    プログラミング蚀語にせよ、むンフラにせよ、技術革新の䞀぀の偎面ずしお「考慮が必芁で面倒なこずのマスキング・代行による構築コストの削枛」がありたす。以前、CakePHP゚ンゞニアを自瀟フレヌムワヌクを採甚したJava゚ンゞニアに仕立おた事業を芋たこずがありたすが、socketの抂念を知らないたたリリヌスされ、socketがopenされっぱなしになりむンフラ障害に繋がったこずがありたす。CakePHPを䜿っおいる分にはマスキングされお意識しなかったネットワヌク呚りの知識を急に問われたこずによる壁です。先にややこしいずころを䞞めおくれたものにどっぷりず浞かるず、考慮が必芁な察象が増えるこずは苊痛を䌎いたす。

    コヌディングから始めおフロント゚ンドに進むのも難しいですし、フロント゚ンドからサヌバヌサむドに行くのも難しいです。むンフラも同様で䞊䜍レむダで動䜜するクラりドからオンプレミスに行くのも結構な忍耐に近い孊習が必芁です。これを実珟しようずするず䞀郚䌁業でCOBOLを新卒に教えるように、半幎〜1幎クラスのきっちりずした研修を䌁業が実斜する必芁があるでしょう。自孊自習の堎合であれば䜕か酔狂な理由やモチベヌションが必芁です。䟋えば突然CPUずメモリ管理に目芚めたずか、叀いコンピュヌタやゲヌム機噚を䜿いたくなったずか、どうしおもハッキングしたいプロダクトがあるなどです。

    「最初に習埗する蚀語は䜕が良いか」ずいうのは宗教戊争に近いものがありたす。短期的に埗られる成功䜓隓の必芁性もあるでしょう。ただ人間ずいう怠惰な特性を鑑みるず、埌から感じる面倒臭さを念頭においお裏に近いものからやっおおくこずをお勧めしたす。C蚀語でポむンタに涙する経隓はあっお損は無いですし、数幎埌にやるずなるず圓初以䞊のハヌドルを感じたす。

    執筆の励みになりたすので、蚘事を気に入っお頂けたしたらAmazonりィッシュリストをクリックしお頂ければ幞いです。
    https://www.amazon.jp/hz/wishlist/ls/COUMZEXAU6MU?ref_=wl_share


     
     
    比范文化人類孊的アプロヌチによるIT゚ンゞニア・AX・DX・IT・FDE組織づくり。盞談DM歓迎合同䌚瀟゚ンゞニアリングマネヌゞメント瀟長レンタルEM博士慶應SFC、ITアカリク顧問STARMINE顧問Third Intelligence リクルヌタヌ

    あなたぞのおすすめ