我、京大生ぞ

現役京大生の雑記。メインテーマは大学受験とプログラミングと英語と京大の日常

CodeCampの無料体験レッスンを受けてみた【プログラミングスクール】

f:id:a86223990:20180927154233j:plain


こんにちは、京大生ブロガーのげーて(@goethe_kyodai)です。
  
  


プログラミングスクールって本当にオンラインでうけられるの?

プログラミングスクールでのレッスンを実際に体験してみたい!
 

    
    
こんな人は、完全オンライン完結型CodeCampの無料体験レッスンをしてみるべきです!
    
    
レッスンはオンラインで完結するので、全国どこにいても受けられます!そして、受けることで実際にそういうサービスをオンラインで提供してることを確認できます!
 
   
今回、CodeCampというプログラミングスクールの無料体験レッスンを、実際に受けてみました!
        
     
    
   
目次

 
 



CodeCampの無料体験レッスンって何?




CodeCampの無料体験レッスンとは、現役エンジニアによる
   
  


実際のレッスンを体験

カリキュラムや料金、コースの説明

プログラミング初心者の質問の解答
 

 

無料で提供してくれるサービスです!
 

オンラインでできるので、パソコンがインターネットにさえ繋がれば、日本中どこにいてもできます!


流れはレッスンの受け方を説明して、実際にレッスンを受けて、コースについて説明して、最後に質問に答えて〜って感じでした。
 
        


     
     

CodeCampの無料体験レッスンをやってみた感想

        

今回、実際にCodeCampの無料体験を実際受けてみました。
 

予約時間に待ってると、講師の方と繋がりました。(ちなみに僕は、3時に4時のレッスンを予約できました)
 
 
まずは、レッスンの受け方の確認。Googleハングアウトの使い方、エディターの使い方、教科書や課題の見方などを説明してくれました!
 
 
そして、画面共有をしながら、「ここ押して〜」「こういう言語でこういうことができるよ〜」とか色々教えてくれました。


次に、どのコースでどの程度の成果物を作れるのか、ゴールは何か、レッスンの予約の仕方、課題の進め方を説明してくれました。


最後に、質問タイムがあって、カリキュラムのことを色々聞きました。


感想としては、実際のレッスンを体感させよう!というコンセプトをすごい感じましたね。オンラインレッスンの雰囲気は一通りわかると思います。
   
           

 
   
    

CodeCampの無料体験レッスンの始め方


一応、CodeCampの無料体験レッスンの始め方を説明しておきます!


まず、CodeCampの公式サイトにアクセスして


f:id:a86223990:20180927154231j:plain


「無料体験を予約する」または「無料体験してみる」を探してクリックしてください。


f:id:a86223990:20180927164243j:plain


都合がつく日時を選択します。ちなみに土日もいけます。すごい。


f:id:a86223990:20180927164246j:plain


最後に、Google、Facebook、Twitter、Yahooまたはメールアドレスで登録して、あとは予約した日時までパソコンの前で待ちましょう!
      
   

    
   

まとめ:雰囲気を知りたい人は受けるべし!


パソコンとインターネットさえできれば無料体験レッスンをすぐにでも始めることができるので、プログラミングスクールのオンラインレッスンの雰囲気を感じたいという人は、とりあえず受けるべきです!


オンライン完結型のプログラミングスクールって怪しい・・本当に実在するの?という疑いは速攻で晴れます!
     
       

 


他のスクールでも無料体験をやっているところがあります。 
  
 
       
    

侍エンジニアの無料体験レッスンを受けてみた【1000円もらえる】【プログラミングスクール】

f:id:a86223990:20180926111508j:plain


こんにちは、京大生ブロガーのげーて(@goethe_kyodai)です。
 
 


プログラミングスクールでどんな風にレッスンを受けるのか体験してみたい!

スクール卒業後からフリーランスとして案件獲得までの道のりを明確にしたい!

  
  
こんな人は、完全オンラインでできる侍エンジニアの無料体験レッスンをしてみるべきです!
  
 
プログラミングを実際書くのも、チャットでの質問も全てオンラインで完結するので、全国どこにいても受けられます!
 
   
今回、侍エンジニアというプログラミングスクールの無料体験レッスンを、実際に受けてみました!今ならAmazonギフト1000円もらえます!
      
    
   
  
目次

 
 



侍エンジニアの無料体験レッスンって何?




侍エンジニアの無料体験レッスンとは
 
 


プログラミング初心者の疑問に答える

理想のキャリアから学習法と案件獲得の提案

キャリアに合わせた学ぶべき言語の説明

受講期間で何を何時間でできるようになるかの説明

仕事獲得のノウハウ

侍エンジニア塾のカリキュラムの説明

 

無料で提供してくれるサービスです!
 

オンラインでできるので、パソコンがインターネットにさえ繋がれば、日本中どこにいてもできます!
  

他のスクールでは、実際にプログラミングを体験させたりするところが多いですが、侍エンジニアの無料体験レッスンでは、受講生一人一人に合わせて、将来どういうキャリアを歩みたいか、そのためには今何をどう学べいいか、などより具体的なキャリアパスを提案してくれます!

       


     
     

侍エンジニアの無料体験レッスンをやってみた感想

        

今回、実際に侍エンジニアの無料体験を実際受けてみました。
 

Skypeで受けれるということなので待っていると・・


顔が濃くてゴツめな方が出てきました。他のスクールはエンジニアってタイプの方でしたが、今回は割とコンサルタントっぽい方でした。元金融マンだそうで、雰囲気もそんな感じでした。


最初に


「将来どう働きたいか?」
 
 
を聞かれたので


「リモートワークで働きたいです!」


と言うと



・完全リモートで月50万〜130万の案件が数千件あること

・エンジニア需要不足で、高単価のプログラミング案件が有り余ってること

・RubyやPHPは案件が多い言語だと言うこと

・Webサイトの案件が多くて高単価で、アプリの案件は少なくて安いということ

・案件仲介サイトの紹介

・ツイッターで仕事を募集して生計を立てている人もいるということ

・侍エンジニアでは案件獲得までサポートしてくれること


を説明してくれました!


未経験からフリーランスとして案件を獲得する具体的な道のりと方法がよくわかりました!


他のプログラミングスクールでは、そこらへんは教えてくれなかったので助かりました。


さらに、他のプログラミングスクールの無料体験では、質問→答える→質問・・という機械的なやりとりという印象でしたが、カジュアルな雰囲気で雑談も交えながら相談に乗ってくれたのは好印象です!


無料体験レッスンでは他にも
 
 


・実際の過去の受講生のフルオーダーメイドカリキュラムの例

・過去の受講生の制作物

・過去の受講生の卒業後の進路(起業、海外移住、フリーランス)

   

を紹介してくれました!


実際どれくらいのクオリティのものを作れるようになって、どういう勤務時間でどれくらい稼げるか、身につけたスキルをどう活かせるかが、超明確になりました!受けて良かったです。
 
          

 
     
 

Amazonギフト券1000円分 & 電子書籍がもらえる!

   

f:id:a86223990:20180926141100j:plain


体験レッスンは無料で受けれるのに、Amazonギフト券1000円分と電子書籍がもらえるという太っ腹!


電子書籍の内容は
  
  


・プログラミングをどう学べばいいか

・プログラマーとして就職するには何をすればいいか

・どの言語を学べばいいか?



など、プログラミング未経験者が実際に案件をとって金を稼ぐための具体的方法が書かれています!


たった1時間半の体験レッスンでこれだけもらえるなんて、受けなきゃ損です!
   
     

  
   

侍エンジニアの無料体験レッスンの始め方


一応、侍エンジニアの無料体験レッスンの始め方を説明しておきます!


まず、侍エンジニアの公式サイトにアクセスして
 
 
このバナーを探して押すか


f:id:a86223990:20180926114158p:plain


サイトの上にあるこのボタンを押してください!

 
f:id:a86223990:20180926114109j:plain
 

すると、こんな画面が出てくるので、予約したい日時を選びます。
   
  
f:id:a86223990:20180926114112j:plain


この画面が出てくるので「次へ」を押します。


f:id:a86223990:20180926114115j:plain


そして、必要事項を記入して、最後に「予約を確定する」を押します。


f:id:a86223990:20180926114119j:plain


後は、メールの指示通りに進んでけば大丈夫です。
     
   


    
   

まとめ:エンジニアとして働きたいなら無料体験レッスンは受けるべし!


パソコンとインターネットさえできれば無料体験をすぐにでも始めることができるので、プログラミングをやってみたい人やどのプログラミングスクールかで迷っているという人は、とりあえず受けるべきです!


特に、僕のようにフリーランスになるまでの道のりが分からなかった人は、受けるだけで具体的な方法が明確になりますフリーランスになるまでの全ての段取りを自分で一から説明できるレベルになります!
  

このレベルのキャリアコンサルタントを家で無料で受けれて、しかも1000円分のギフト券と電子書籍までついてるとかお得すぎです(笑)
 
 
座ってるだけで1000円稼いだ気分です(笑)
    
      

 


他のスクールでも無料体験をやっているところがあります。 
  
 
 

     
    

TECH ACADEMY【テックアカデミー】のプログラミング無料体験・メンタリングを受けてみた!【質問し放題!】【プログラミングスクール】

f:id:a86223990:20180925211720j:plain


こんにちは、京大生ブロガーのげーて(@goethe_kyodai)です。
 
 


プログラミングをやってみたいが、環境構築で挫折した

プログラミングの基本的なところで挫折した

プログラミングスクールでどんな風にレッスンを受けるのか体験してみたい!

 
 
こんな人は、環境構築不要完全オンラインでできるTECH ACADEMY【テックアカデミー】のプログラミング無料体験をしてみるべきです!
  
 
プログラミングを実際書くのも、チャットでの質問も全てオンラインで完結するので、全国どこにいても受けられます!
 
   
今回、TECH ACADEMY【テックアカデミー】というプログラミングスクールのプログラミング無料体験を、実際に受けてみました!
   
  
   
  
目次

 
 



TECH ACADEMY【テックアカデミー】のプログラミング無料体験って何?




TECH ACADEMY【テックアカデミー】のプログラミング無料体験とは、
 
 


実際使われている教材を見て勉強

ブラウザ上でプログラミング(環境構築不要)

課題提出 & 課題のフィードバック

チャットサポートで質問(15時〜23時)

ビデオでのメンタリング

 

無料で提供してくれるサービスです!
 

これらを、無料で、しかもオンラインでできるのはプログラミング初心者には嬉しすぎます!


環境構築が不要なので、パソコンがインターネットにさえ繋がれば、申し込んですぐプログラミングできます!
 
      

  
     
     

TECH ACADEMY【テックアカデミー】のプログラミング無料体験をやってみた感想

        

今回、実際にTECH ACADEMY【テックアカデミー】のプログラミング無料体験をやってみました。


まず学べる内容は、HTML、CSS、 javascriptの概要と、変数などの基礎中の基礎のプログラミングでした!


言葉の説明と図での説明に加え、実際のサイトを使って説明していて、かなり分かりやすかったです!


そして、課題は javascriptでifとelse ifを使った簡単な条件分岐のプログラムを書くことでした。


僕は実はプログラミング初心者じゃないので、正直余裕すぎました。逆に言うと、ガチのプログラミング初心者でもできて達成感を味わえるような課題だったということです。


プログラムのコメントの書き方で疑問があったので、チャットで質問しました!


チャットサポートは、マジで彼女くらい速攻で帰ってきてビビりました(笑)。しかも速いのに詳しくて分かりやすかったです。速さを優先して質を犠牲にしてないのがすごい!


チャットサポートしてくれるメンターは、全員プロの現役エンジニア(学生エンジニアじゃない)なので、実務でのプログラミングのことも聞けて有益でした!


今回のような現役エンジニアに無料で技術や実務のことを聞ける機会ってなかなか無いんですよね・・
 
 
プログラミングの他にも
 
 


カリキュラムのこと

どのコースを取るべきか?

料金は結局いくらかかるか?

割引の併用は可能か?

コースをやり遂げるのにかかる学習時間は?

コンテストは年何回開催か?次の開催予定はいつか?

有料コースなら教材を半永久的に見れるのは本当か?

  
  
など質問攻めしましたが、どれも迅速かつ丁寧に答えてくれました!公式サイトに載ってないことまで教えてくれました!
 
 
500円分のAmazonギフト券をもらえるということで、無料メンタリングも受けてみました。
       
         
    

無料メンタリング実際受けてみた

     
 
無料メンタリングを一回受けるだけで、500円分のAmazonギフト券をもらえるということなので、迷わず予約しましたw


メンタリングの日程は、土日も含めて13:00〜22:30の間で、空いてるとこなら自分で決められます。


予約した時間にパソコンを開いて待ってると、こんな感じでメンタリングが始まりました。


f:id:a86223990:20180925202948j:plain


無料メンタリングでは
 


・カリキュラムの話

・公式サイトに乗っていない情報

就職や転職の時に、何を作れば効果的か、作った理由を聞かれることがあるなどの情報

 

を知ることができました!


大学生の僕にとって、新卒や転職でのプログラミングの実情について話を聞けたのはかなり有益でした!さらに500円もらえるとかお得すぎてワロタ。


メンタリングは15分くらいで終わったので、時給にすると2000円です。やらない理由がないですね!  
   

 
 
  

プログラミング無料体験の始め方


一応、プログラミング無料体験の始め方を説明しておきます!


まず、TECH ACADEMY【テックアカデミー】にアクセスして



f:id:a86223990:20180923201855p:plain


このボタンを探して、「詳しく見る」を押します。


f:id:a86223990:20180923202125j:plain


押すと、こんな画面が出るので、必要事項を記入して、「勉強を始める」を押して完了です。


後は、メールの指示通りに進んでけば大丈夫です。
     
   

 
    
   

まとめ:プログラミングをやってみたい人はとりあえず受けるべし!


パソコンとインターネットさえできれば無料体験をすぐにでも始めることができるので、プログラミングをやってみたい人やどのプログラミングスクールかで迷っているという人は、とりあえず受けるべきです!
  
  
無料なのに得るものは大きかったです!
  
     

  


他のスクールでも無料体験をやっているところがあります。 
  
 
 


     
    

TECH BOOST【テックブースト】の無料カウンセリングを受けてみた!【プログラミングスクール】

f:id:a86223990:20180923174002j:plain


こんにちは、京大生ブロガーのげーて(@goethe_kyodai)です。
 
 


プログラミングを始めてみたいが、何から始めていいか分からない

自分のやりたいことのために、どのコースを選んでいいか分からない

プログラミングスクールを終えてから、プログラマーとして働くまでの具体的方法が分からない


プログラミングに関して、こんな悩み抱えてませんか?


その悩み、自分で考えるより、転職サポート付きTECH BOOST(テックブースト)の無料カウンセリングを受ければ一発で解決します!


今回、TECH BOOST(テックブースト)というプログラミングスクールの無料カウンセリングを、実際に受けてみました!
  
 

 
   
  
目次

 
 



TECH BOOSTの無料カウンセリングって何?




TECH BOOST(テックブースト)の無料カウンセリングとは、プログラミングを学びたい人向けに、現役メンターやエンジニアが
 
 


・カリキュラム・コースの概要の説明

・何時間の学習時間が必要か?

・卒業後の進路の説明

・相談者に合ったコースの説明

・TECH BOOSTについて疑問に思ったことの説明

 

をしてくれるサービスです!


オンラインでできるので、日本中どこにいても受けられます!


Webサイトだけじゃ分からないことも説明してくれます!


そして、相談者に合った説明をしてくれるのが魅力的です!
  
 
学生の受講生も結構いて、学生ならではのキャリアパスの相談(インターンやアルバイト)も乗ってくれました!
   
 
平日はもちろんでなく、土日でもカウンセリングを予約できます!土日も忙しい人には嬉しいんじゃないでしょうか?
   
  

 
    
   

TECH BOOSTの無料カウンセリングを受けた感想


今回の無料カウンセリングは、アピアインという会員登録不要のビデオ通話サービスを通じて行いました。


予約していた日曜日の指定の時間にパソコンの前で待ってると、こんな感じで無料カウンセリングが始まりました!


f:id:a86223990:20180923173937j:plain
 
 
TECH BOOST(テックブースト)を実際に受講する場合にも、教室へ通うかオンラインで受講するかは選べるようになっており、オンライン受講の雰囲気の疑似体験にもなっています。


最初に、プログラミングで何を作りたいか、将来どう働きたいか、住んでる地域などを聞かれました。


そして、その情報を元に、私に合ったカリキュラムやコース、学習時間、スクール卒業後はどうすればいいのか、料金の説明などを説明してくれました。


私に合った情報のみを選んで説明してくれてるので、とてもスピーディにカウンセリングが進んだのが印象的でした。


そして、説明が一通り終わった後は、質問タイムを設けてくれました。


ここで、私は


・学習時間の目安

・卒業後の就職サポートはあるのかないのか

・京都住みだけど、就職サポートはちゃんとしてくれるのか

・コースを複数取る場合の料金

・どのコースでどれくらいのレベルまで行けるのか?



などを質問しましたが、どれも丁寧に答えてくれました!


担当者さんは、とても話しやすい雰囲気の人なので助かりました。


無料カウンセリング後にも、また質問が出てくれば、メールや電話で無料で質問に答えてくれるということでした!
   
  

 
    
   

無料カウンセリング予約の仕方


一応、無料カウンセリング予約の仕方をまとめておきます!


まず、TECH BOOST(テックブースト)にアクセスして、


サイトの中に何個もある


f:id:a86223990:20180923173927p:plain


このボタンをクリックします!


クリックしたら、こういう画面に行くので、


名前やメールアドレスと電話番号を入力、「スクール事業における個人情報の取扱いについてに同意する」にチェックを入れて、最後に「申し込む」ボタンを押しましょう!


f:id:a86223990:20180923173922j:plain


押したら、メールが届くので、メールの指示に従っていけば無料カウンセリングを受けられます!
   
  

 
    
   

まとめ:プログラミング始めたい人はとりあえず受けるべし!


f:id:a86223990:20180923180011j:plain


プログラミングを始めたい人で、何を学んで行ったらいいかわからない人や,スクール選びで迷っている人は、とりあえず無料カウンセリングを受けてみるべきです!


タダですし、時間も20分〜1時間ほどで終わるので手間がかかりません!


私もプログラミングで色々悩んでましたが、無料カウンセリングで一発で解決しました!
   
  
プログラミングに関する質問ができるだけじゃなく、就職や転職など学んだ後のことなんかも相談に乗ってもらえるので、プログラミング初心者にはオススメです.
    
   

 


他のスクールでも無料体験をやっているところがあります。 
  
 
 

     
    

MacBook Proのメモリ(RAM)は8GBから16GBに増設した方がいい?効果と方法をまとめてみた【速くなりすぎワロタ】


こんにちは、京大生ブロガーのゲーテ(@goethe_kyodai)です。


ついに先日、MacBook Pro (13-inch, Mid 2012モデル)のメモリ(RAM)を4GBから16GBに増設しました!


結論から言うと、どう使うにしても16GBまではメモリ(RAM)を増設した方がいいです!増設が1、2万円で済むなら安いもんです!


なぜなら、4GBや8GBと16GBじゃ快適さと作業効率が圧倒的に違うからです!


MacBook Proのメモリ(RAM)を4GBから16GBに増設したので、メモリを増設した方がいい理由、そして効果と方法をまとめました。


目次

 
 



そもそもメモリ(RAM)って何?


一般に「メモリ」という言葉で表されるものには2つあります。
 
 


・① 作業用メモリ(RAM)

・② HDD、SDDなどの保存用メモリ(ストレージ)

 
 
同じ呼び方をするので混乱される方も多いのではないでしょうか?


2つのメモリは別物で、この記事で扱うのは作業用メモリの方です。


さて、①のメモリと②のメモリもいずれも記憶装置という装置の一種です。では何が違うのでしょうか?


それを理解するには「記憶装置のカースト」という概念を知っていくとわかりやすいです。下の図を見てください。


f:id:a86223990:20180812231916j:plain


上の図のように、記憶装置は動作速度による分類でカーストを形成してます。(図に載せてはいませんが、本当はもっと階層が多いです。)


上の図の通り、①の作業用メモリ(RAM)は、②のHDDやSSDなどの保存用メモリより遥かに動作速度が速いのです。


ここでは


①の作業用メモリ(RAM)は、②のHDDより遥かに動作速度が速い


ということを頭に入れといてください(あとで使います。)

「アクティビティモニター」で読み解くメモリ(RAM)を増設した方がいい理由

 

※丁寧に説明してるので長めになっております。


「アクティビティモニター」というのは、Macにデフォルトで搭載されメモリ(RAM)のパフォーマンスを測るアプリです。



「Finder」→「アプリケーション」→「ユーティリティ」→「アクティビティモニタ」で開けます。開いて見てください。


アクティビティモニタの下の部分を見ると

 
f:id:a86223990:20180812231943j:plain


こんな表示があると思います。色々ありますが、メモリ(RAM)のパフォーマンスを見るには
 
 

  • 使用済みメモリ
  • キャッシュされたメモリ
  • スワップ使用領域
  • 圧縮
  • メモリプレッシャーの色

  
  
だけに注目すればいいです。1つ1つ説明しましょう。


まずは、使用済みメモリですが、文字通り使用されている全てのメモリの量(GB)です。


ここで、メモリ(RAM)の容量(ここでは4GB)が超える量をPCが使いたい時、PCはどうするの?という疑問が生まれると思います。


そこでPCはどうするかというと、圧縮またはスワップをするんです。


PCはメモリ(RAM)の容量を超える量をHDDの一部を使うことで乗り越えます。これがスワップです。そして、スワップされてる量が「スワップ使用領域」です。


メモリ(RAM)よりだいぶ遅いHDDを使うことになるので、当然動作はかなり遅くなります。メモリ(RAM)が少ないと、このスワップが頻繁に起こって遅くなります。

もう一つの策として、PCはデータなどを圧縮して小さくすることで乗り切ります。その圧縮されている量が「圧縮」です。


圧縮したデータなどを使うときは、展開をして使わなきゃけいけないのでその分遅くなります。


まとめると、メモリ(RAM)の量が少ないと、スワップと圧縮が頻繁に起こり、その量はアクティビティモニタの「スワップ使用領域」と「圧縮」で分かります。



「キャッシュメモリ」というのは、アプリケーションなどのデータがメモリ(RAM)にキャッシュ(溜め込む)された量です。


アプリケーションを再び使ったとき、そのデータがキャッシュされてるとより早く起動することができます。


キャッシュメモリが多ければ多いほど、アプリケーションを早く起動できます。


メモリプレッシャーというのは、メモリにかかる負荷を三段階の色で表してくれるものです。


 → 負荷は少なく、余裕の状態。速い

 → そこそこの負荷。まぁまぁ遅い

 → かなりの負荷。とても遅い

 
 
こんな感じです。


以上のことをまとめると


  • 使用済みメモリ → 使われてるメモリの量
  • キャッシュされたメモリ → 多いほど速い
  • スワップ使用領域 → 少ないほど速い
  • 圧縮 → 少ないほど速い
  • メモリプレッシャーの色 → 緑以外遅い

 
 
メモリ(RAM)の容量が多いほど、「キャッシュされたメモリ」が多くなり、「スワップ使用領域」と「圧縮」が少なくなるので、PCが速くなるわけです。


※「メモリ(RAM)が多ければPCが速くなる」、と表現されますがそれは不正確で、PCが速ければスワップや圧縮をしないので、遅くならず本来の速度を引き出すことができる、つまり「メモリ(RAM)が多ければPCが遅くならない」というのが正しいです。

 
参考:https://support.apple.com/ja-jp/HT201464#memory
 
 

用途別に必要なメモリ(RAM)の容量(GB)


メモリ(RAM)の容量が多いほどPCは速くなる、その理屈は理解できたと思います。


ですが、どれくらい増やせばいいのでしょうか?


必要なメモリ(RAM)の容量というのは、パソコンで行う作業の重さによって変わってきます。用途によって違うのです。


どの作業を行うのにどれくらいの容量が必要か、大体の目安を示しておきます。


8GBでいい作業

  • 複数のサイトを開いてのネットサーフィン
  • 軽めのゲーム
  • Excel、word、keynoteなどを使う
  • 2、3個アプリを開いて並行して作業
  • 普通に使うなら少し遅め


16GB必要な作業

  • 10個以上アプリを開いて並行して作業
  • 重ためのゲーム
  • 動画編集
  • 普通に使えばかなり速い


 
 
32GB以上必要な作業

  • 3D画像や動画の編集
  • かなり重たい計算を行う研究


  
   
普通に使うなら8GBじゃちょっと遅くて、16GBだとかなり快適な速度で使えます。なので、メモリを増設するなら16GBがおすすめです!


32GB以上はプロの編集者やプロの研究者でない限り必要ありません。普通に使うなら宝の持ち腐れです。メモリは安くないので、32GBまで増設する必要はないでしょう。

 

メモリ増設に必要な道具



メモリ増設にはメモリだけでなく



・メモリ

・Macにネジ専用のドライバー

・ネジを入れる用のケース

 
 
の3つの道具が必要です!


まず、メモリは僕が買った16GBのこちらの商品がコスパが良くてオススメです。


 
 
参考までに、僕のMacBook Pro (13-inch, Mid 2012)では問題なく動作しました。


MacBookProの裏フタを外すドライバーは、ちゃんとネジに形状にあったものでないとダメで、僕はこちらを買いました。



最後に、「取ったネジを入れる用のケース」ですが、これはなんでも良いです。マックのネジは小さくて無くしやすいですし、無くしたら代替品を手に入れるのにとても苦労するので、絶対用意した方がいいです。

メモリ増設の手順


MacBookrProでのメモリ増設の手順をざっと説明します。



1:メモリとドライバーを買う

2:バックアップを取る

3:電源を切る

4:充電器を外す

5:裏面のネジを全部取って裏面を外す

6:古いメモリを2枚とも外す

7:新しいメモリを2枚装着

8:裏面を付けてネジで固定する


の9つの手順から成ります。


1の手順はすでに終えてるとして、2から見ていきましょう。


裏フタを外して精密機器であるメモリの取り外しを行うので、万が一壊れた時のためにバックアップは必ず取っておいてください。(手順2)


次に、電源を切ります。(手順3)


そして、安全のために、充電器を外します。(手順4)


ちなみに、今の時点でのメモリの容量は、「Mac左上のリンゴマーク」→「このMacについて」→「メモリ」で調べることできます。増設前は4GBとなっていることがわかります。


f:id:a86223990:20180812232250p:plain


いよいよ、メモリを取り替える作業に入っていきましょう。


まずは、図に示した裏フタの10箇所のネジをドライバーで外します。


f:id:a86223990:20180812232059j:plain


取ったネジは図のように、ケースにネジの配置そのままに置いておくと、付ける時に迷わなくすんで楽です。



ネジを外したら、裏フタを取っちゃいましょう。(普通に外れます。)


実際に内部に触る前に、金属に数十秒触れて静電気を抜いときましょう。精密機器を扱うので念のためです。


裏フタを取ったらこんな感じの景色が見えてくると思います。図の青い枠で囲ったのがメモリがあるところです。


f:id:a86223990:20180812232129j:plain 


メモリの両サイドに「カチッと」できるタイプのツメがあると思うので、それを外側(図の外側の方向)に押すと、メモリが飛び出して斜めになると思います。そして、メモリと平行に引っ張ると取れます。


f:id:a86223990:20180812232140j:plain


1つ目のメモリを取るとこんな感じの景色が見えます。



2つ目のメモリも1つ目と同じ手順で取れます。取るとこんな感じになります。



ここから新しいメモリを取りつけるんですが、画像はありません(泣)(撮り忘れました。)


メモリの取り付けは、メモリを外すのと逆の手順(斜めに差し込む→ツメがカチッと言うまで下に押し込む)を踏むと簡単に取り付けられます。


メモリの金の部分は故障の原因になるので触れないでください。取り付けるときは黒い部分に触りましょう。(精密機器ということを忘れずに)


メモリを増設できました。


最後にメモリ容量を調べて本当に増設されてるかどうか確認しましょう。


さっきと同じように、「Mac左上のリンゴマーク」→「このMacについて」→「メモリ」で確認してください。


f:id:a86223990:20180812232304p:plain


このように16GBとなったら成功です!

メモリを増設した効果


実際に4GBから16GBに変えた効果を見てみましょう。


以下のプログラムを実行して



開いたプログラム
・keynote
・Google ChromeではてなブログとYoutube
・メモ
・Finder
・ターミナル
・アクティビティモニター

以下の指標をアクティビティモニタで測って4GBと16GBを比べます。



・スワップ使用領域
・圧縮
・キャッシュファイル
・体感速度
・メモリプレッシャー


まずは増設前の4GBから。


f:id:a86223990:20180812232338p:plain


次に16GB。


f:id:a86223990:20180812232351p:plain


両者の違いを表にまとめると

容量 スワップ使用領域 圧縮 キャッシュされたファイル メモリプレッシャー 体感速度
4GB 1.14GB 1.09GB 474.6MB 黄色or緑 くそ遅い
16GB 0 0 4.67GB 速い


全てのパフォーマンスで16GBが上回りました!当然の結果です。


ちなみに、16GBだとGoogleChromeで40個Youtubeを立ち上げて再生しても・・・


f:id:a86223990:20180907231716p:plain


メモリプレッシャーは緑のままでサクサク動きます!(4GBだと10分くらいフリーズしてしまうでしょう。)


f:id:a86223990:20180907231734p:plain


僕はブロガーなのですが、メモリを16GBにしたことで書く効率が爆発的に上がって、1日3記事が限界だったのが1日7記事書けるようになりました!


迷っているなら多少値が張ってもすぐに16GBにすることをオススメします!


爆速になったPCでブログを書けば原資なんてすぐに回収できます!

プログラミング独学におすすめなサイト7選!【入門から上級まで】【勉強するならコレ】

f:id:a86223990:20180912131359p:plain


こんにちは、京大生ブロガーのゲーテ(@goethe_kyodai)です。


プログラミングは本での独学はかなり厳しいです。


サイトで実際に手を動かしながら独学した方が楽しいし挫折しない。


何より安く済みます!


全て独学でプログラミングを学んできたぼくが、実際に使った経験を踏まえて入門から上級までプログラミング独学におすすめなサイトを7つ選びました!


目次

 
 



Progate


prog-8.com


「全くプログラミングやったことない!」っていう人がプログラミング入門するのに最適なのがProgateです!


f:id:a86223990:20180707172027p:plain


上の図のように可愛らしいスライドによる丁寧な説明は本当にわかりやすいです。


プログラミングに必要な知識を1から教えてくれます!僕もほぼプログラミングをProgateで始めましたが理解に苦しむことなくスイスイ進めました。


全コース制覇した僕が言うので間違いないです!


あとランキング制度があ理、コースをクリアしてもらえるポイントで競い合うことができてモチベーションを維持できます。


入門には最適ですが、勉強できる内容がプログラミング言語の基礎ばかりなので、中級者には物足りないです。


学べるプログラミング言語は

  • HTML&CSS
  • JavaScript
  • Ruby
  • PHP
  • Java
  • Python
  • Swift
  • SQL
  • Sass
  • Go

と豊富です。


プログラミング言語ではないですが

  • Comman Line
  • Git

のようなプログラマーが当たり前に使う技術を学べるのも高ポイントです!


気になる有料プランのお値段は月額980円から!これだけの内容を月額980円で学べるのはだいぶお得感がしますね。


Progateまとめ

  • 初心者のプログラミング入門向け
  • プログラミング入門から実務の基礎レベルまで
  • 学べる言語はHTML&CSS、JavaScript、Ruby、PHP、Java、Python、Swift、SQL、Sass、Go
  • プログラマーには必要不可欠なGitやCommand Lineも学べる
  • スライドが分かりやすい
  • ランキングがあってモチベを維持しやすい
  • 有料プランは月額980円

teratail





プログラミングとはバグとの戦いです。


Progateをどんどん進めていけば、どうしたらいいか分からないバグにたくさん出会うと思います。


そこで初心者が解決策をうーんとじっくり考えるのは時間の無駄です。


プログラミングに詳しい人に聞くのが一番でしょう!


teratailプログラミング独学者向けの無料質問サイトです。主要なプログラミング言語ならすぐ解決できます!


経験を積んだ人が答えてくれます。初心者が悩むバグは大体このサイトに聞けば解決します!返信が早いのもいいですね!


teratailまとめ

  • プログラミングの質問サイト
  • 無料
  • 主要なプログラミング言語をカバー
  • 返信が早い




teratailについてもっと詳しく知りたい方は、「teratailを詳しくレビューしたコチラの記事」をご覧ください!実際利用して感じたメリット・デメリットを書いてます!
  
 
 

Skill Hacks



f:id:a86223990:20180912125753p:plain


これだけ企業ではなく個人運営のサイトですが、安心してください!


プログラミングスクールの現役講師であり、いくつものハッカソン優勝経験がある迫佑樹さんが作った動画を見て手を動かしながら学べる教材です!現在250本以上売れており,大好評です!


「本当に存在してるの?」と思う人は、彼のTwitterを見てみるとその存在と実績を確認できると思います(笑)。


個人運営であることを活かして、LINE@による無制限質問サポートで挫折しない仕組みは他のサイトにはない強みです!そして返信スピードは超高速です!


何より、有名プログラミングスクールが10万以上する中、69800円(現時点)という激安価格で同等のサービスを受けれることが最大の魅力です!


学べる内容は、Webアプリケーション開発に必要な言語およびフレームワーク(HTML/CSS/Bootstrap/Ruby/Rails)で、1からアプリの雛形を作って、新規作成、一覧表示、削除、編集、カテゴリ機能などがついた基礎的なWebアプリを開発してリリースするレベルまで持っていけます。
  
  

Skill Hacksまとめ

  • プログラミング入門者向け
  • プログラミングスクールの講師経験、著作経験があるプログラマーが作った動画教材
  • Progateのように手を動かしながら学べる
  • LINE@による無制限質問サポート
  • 返信は高速
  • 1から基礎的なWebアプリを開発するレベルまで持っていける
  • HTML/CSS/Bootstrap/Ruby/Rails を学べる
  • 69800円(現時点)とプログラミンスクールに比べてかなり安い!

 
 

PyQ







PyQは、Python学習に特化したサイトです。入門から実務レベルまでスキルレベルを一気にあげることができます!今流行りの機械学習も学べます!


分からなかったところをプロに質問できる「メールサポート」システムがあるのでプログラミングを初めてやる人でも着実に理解できます!


「実務で役立つPython」というコースで、ユニットテストや例外処理などの、実務をやる上では避けて通れないが独学するのは面倒な内容を学べるのは嬉しいです。


ここまで実務志向なのは他のプログラミングサイトには無い特徴ですね!


コースは現時点で

  • Python文法
  • 実務で役立つPython
  • WebアプリAPI
  • スクレイピング
  • 統計分析
  • データ分析・機械学習入門

と色々あります。


個人だと一番安いコースで月額2980円からです!ですがこのコースは質問サービスがついてません。初心者には割と厳しいかも。


質問サービスがついているコースは月額7980円です!


PyQまとめ

  • Pythonが学べる
  • プログラミング入門から実務レベルまで
  • WebアプリAPI、スクレイピング、統計分析、データ分析・機械学習を学べる
  • 質問サービスのないコースで月額2980円
  • 質問サービスがあるコースで月額7980円

 
 
PyQについてもっと知りたい方は、僕が1ヶ月体験してみた「PyQのレビュー記事」をご覧ください!
  
 

PyQのレビュー記事


PyQをレビューしてみた

 
 




Aidemy






PyQがPythonを中心に学ぶサービスだとしたら、Aidemyは人工知能や機械学習を学ぶサービスです。


PyQを一通り終えた後に、ステップアップとしてAidemyをやるのがオススメです。
 
 
PyQと同じくプログラミング言語はPythonで、PyQより一歩進んだ応用を勉強できるのが特徴です。
 
 
機械学習、ブロックチェーン、自然言語処理などのより先進的な内容とそれに必要なPandasやNumpyなどの知識が学べます!

 
こういう最先端の濃い内容を学べるプログラミングサイトはAidemyくらいですね!


他にも異常検知やネットワーク分析みたいなマニアックな内容も学べるのも味の1つです。


学べる主なコースは

  • Numpyを用いた数値計算
  • Pandasを用いたデータ処理
  • データクレンジング
  • 機械学習
  • ブロックチェーン
  • 自然言語処理
  • 時系列解析
  • ディープラーニング
  • 異常検知入門
  • ネットワーク分析入門
  • ランキング学習

と豊富です!


料金プランはいろいろあって一番安いので月額1880円からです!

 

Aidemyまとめ

  • プログラミング中級者向け
  • プログラミング言語はPython
  • 機械学習、ブロックチェーンなどをガチで学びたい人向け
  • 機械学習、ディープラーニング、ブロックチェーン、自然言語処理、時系列解析、異常検知、ランキング学習、ネットワーク分析が学べる
  • 有料プランは一番安いので月額1880円から


気になった人は、まずは無料カウンセリングで相談してするのがいいです!

 

 
Aidemyについて詳しく知りたい方は、実際に20コースほど体験してみてレビューした「Aidemyを詳しくレビューしたこちらの記事」をご覧くださいませ!  
  
 


 

Paiza


paiza.jp


Progate、PyQ、Aidemyなどでプログラミングの基礎を一通り学べたなら次に付けるべきなのは実装力です。


実装力はプログラミングの問題を解くことで付いていきます。質の良い問題を無料でたくさん解けるのがPaizaです。


使える言語は、C、C++、C#、Java、Python、Ruby、Perl、PHP、JavaScript、Scala、Swift、Go、Rなどで、マニアックな言語でも対応してます。


実務で実際出てくるような問題が中心で、問題のランクは難しい順にD、C、B、A、Sとあります。


・D・C問題 → プログラミング初心者向け。ProgateやPyQ一通りやったなら楽勝に解ける

・B問題 → 初心者には少し厳しい。実装力が少しあってちょっと頭使えば解ける

・A問題 → 中級者向け。解くのに頭わりと使う。

・S問題 → 上級者向け。解くのに何時間もかかる。実装力もかなり必要。


実際に解いてみた感想としてはこんな感じです。


Paizaは問題の他にも、CとかPythonなどを学べる講座もあるのでプログラミング学習にもオススメできます。


Paizaまとめ

  • 様々な難易度の問題を無料で解けて実装力をつけることができる
  • 対応プログラミング言語は主要からマイナーまでカバー
  • プログラミング言語を学べる講座もある

  
 

Atcoder


「PaizaのS問題なんて楽勝にできるよ」って人は、より高度な実装力をつけるためにAtcoderで競技プログラミングを始めるといいでしょう!


世界ランキングがあって世界中の賢いプログラマーたちがこぞって1位を目指します。問題もハードなものばかりです。


問題を解くにはアルゴリズムとデータ構造の知識と実装テクニックが必要です。


競技プログラミングで高得点を取るために学ぶべきアルゴリズムとデータ構造の知識と実装テクニックはネット上に散らばってるんですが、まとまってるのがないです。


それらが体系的にまとまっているのがこの本です。
 
 

 
 
ただこれは難しくて読むのに前提知識がいるような本です。読み解くために下の二冊を読んどくといいでしょう。



Atcoderまとめ

  • プログラミング上級者向け競プロサイト
  • PaizaのS問題が簡単すぎる人向け
  • 難問題を解くことで高度な実装力とアルゴリズムとデータ構造の知識が付く
  • 世界ランキングで目指せ上位!

   

 
 

機械学習・人工知能を学ぶには


機械学習・人工知能をメインで独学したい人は
 
 


PyQで入門

Aidemyでがっつり学ぶ

 
 
というコースが一番挫折しないかなと思います。Pythonでの実装力もバリバリつきますし。


あと、「ゼロから作るDeep Learning」という本で最初から学んでもいいです。理論は基礎的な部分に触れるだけで、実装がメインです。言語は同じくPythonです。



「ガチで理論からしっかり理解したい」ってしたい人は下の専門書を読み進めていくのがいいでしょう。
 
   

プログラミングサイトを試してもできなかった人へ


サイトで独学しようと思って試しても


「全然分からん!」


ってなった人いますよね?


まだ諦めるのは早いです


そんな人は人間がマンツーマンで手取り足取り教えてくれるプログラミングスクールに通うのがいいです!


でもプログラミングスクールって高いんですよね・・・安いところで7万くらい、高いところで60万とかします。


せっかくの高い買い物ですから、内容をよく吟味したいですよねー。


そこで、大手のプログラミングスクールは無料体験というのをやっているんです。実際に体験して雰囲気やカリキュラム、どのレベルまで到達できるかなどを知ることができるんですねー。無料でですよ!
  
  
僕が実際に体験したプログラミングスクールの体験談を「完全オンラインで無料体験できるオンラインスクールまとめ」と言う記事にまとめました!まずは色んなスクールを体験して比較検討するのがいいかと!
   
  


未経験からのプログラミング独学でやらかしていた8つの失敗【初心者プログラマー必見】


こんにちは、京大生ブロガーのゲーテ(@goethe_kyodai)です。


ぼくのプログラミング遍歴を振り返ってみます。


C言語の本を買うが数ページ読んでやめる→ Progate全コース制覇 → CodePrep全ブック制覇 PyQ全コース制覇 → Aidemy数コース制覇 → paizaのA問題とS問題をいくつか解く


こんな感じで主にプログラミングサイトで独学してきました。


そのなかで星の数ほど失敗し、無限に時間を溶かしてきました。


そんなぼくだから書ける未経験からのプログラミング独学でやらかしていた8つの失敗 をまとめました!初心者プログラマーは必見です!


目次

 
 



人に聞かずに自分で解決しようとする


プログラミングってのは永遠に出てくるバグとの戦いです。


自分は「全部一人で解決してやる!」と謎のプライドを持っていたので、全部一人でバグを潰してました。


ググりながらなんとか自分でできるっちゃできるんですが、その代わり何百時間もの時間がかかります。


C言語でcsvファイルを読むプログラムを書くのに5時間溶かしたこともあります。


解決できないバグは人に聞いた方が100万倍速いです!


5時間悩んでも取れなかったバグが人に聞いたら5秒で解決した!なんてことザラにあります。


知り合いに詳しい人がいるなら聞いた方がほんとうに早いです。時間を無駄にしないでください。


そういう人がいない人は無料のプログラミング質問サイトで質問しましょう!


オススメなのがteratailです。何より返答が早いのがいい!投稿したら6時間以内には返ってきます。


 
 
英語版サイトですが、Stack overflowもオススメです!どんな言語のどんなバグでもカバーしてるのがいいです。ここに質問投げればだいたい解決します。


stackoverflow.com

写経をして勉強した気になる


コピペ → 実行 → 動いた!→ 終わり


こんなこと毎回やってませんか?


それじゃなんの成長もしてません(笑)。


コードをいじって一行一行全部理解しないと勉強になりません。 エンジニアとして成長してないんです。


写経だけで終わらせないようにしてください。


コピペ → 実行 → 動いた!→ なんで動いたんだろう? → コードいじくる → 理解!


これで初めてそのコードを理解できたことになります。

動けばいいやの精神でいる


プログラミングを始めたての頃は


「明らかなバグあるけど、出力は合ってるしいいや!」


の精神でプログラミングしがちです。僕もそうでした(笑)。


そういうコードは、その時の入力ではたまたまうまくいったけど別の入力じゃ動かないことが大半です。汎用性がないんです。


想定される全ての入力で動かないプログラムは駄作です。実務ならかなり危険な動作を起こすかもしれない地雷であります。


そんなコードばっか書いても成長しません。


どの場合でも動くように、「ここをこう直せばいいこう動くはずだ」と考え続け、バグを直す過程でプログラミングに必要な論理的思考力がつくんです。


「このコードどうなってるかわかんないけど、動くから直さなくてもいいや!」


って思ってる人は要注意です。

1から全部書こうとする


プログラムっていうのは1からぜーんぶ自分で書く必要はありません。 大学入試の二次試験とは違います(笑)。


なぜなら、ネットに人が書いたお手本のコードがあるし、ライブラリもあるからです。


そういうのは、大抵プロが書いた、行も少ないし速いしメモリ消費量も少ない超優秀なプログラムです。初心者が書いたものとは比べ物にならないものなんです。


自分で1から書くより、そういうプログラムをコピペしてきた方がパフォーマンスもいいし、良いコードなのですごい勉強になります。


何も全部をコピペしろと言うわけではありません。たいていは必要な部分だけコピペして自分のコードに組み込んでます


自分で1から書いても、時間がかなりかかるし、実装速度やメモリ消費量で大きく劣る劣化版しか書けません。


自分が一生懸命時間をかけて書いたのに、それよりはるかにパフォーマンスのいいコードがネット上には落ちてた、なんてよくあります。


ですが、人の書いたお手本コードやライブラリは汎用性が高くはないです。自分がやりたいことをそのまま実現してくれるわけではないことが多いです。


そこで、お手本コードやライブラリを自分の目的に合うようにカスタマイズするのが効率のいいプログラミングの仕方なんです。



まずネットで探す
→ あったらそれを利用
→ なかったら仕方なく自分で作る


この流れでプログラミングをするのが1番早いです!

本で勉強しようとする


「よ〜しプログラミング勉強したるど〜」と意気込んで本を買う → 数ページ読んで放置


こんな経験ありませんか?


僕もあります(笑)。3冊くらい積ん読してます(笑)


本を買ってもたいていやりません。紙に書いてるコードを打って写経すんのがかなりめんどくさくて心が折れます。


本はプログラミング学習には向いてないです。特に初心者は本での独学は不可能に近いでしょう。


じゃプログラミング学習に最適なのは何か?それはオンラインサイトです!


手を動かして学べるし、写経もコピペ一発で済んですごいプログラミングの勉強が捗ります!


プログラミング独学にオススメなサイトはコチラにまとめました。
 


 

実装をしない・手を動かさない


本でプログラミングを勉強してる初心者にありがちです。


本で読んで学んだ気になって、めんどくさい実装(実際にプログラムを組むこと)は一切しない。


それじゃ一向に技術力はあがりません。


なぜなら、実装しないと完全に理解することはできないからです。


実際にプログラムを書いてくと、「あれ?この部分ってなんでうまくいってるんだ?」とか「ここってどう動いてんだ?」とどんどん疑問が出てきます。


そこで初めて自分が分かってないことに気づくんです。そしてその疑問を解決してくなかで「理解」できるんです。


これは技術的なことでもそうですし、理論的なことでもそうです。


数学屋の人はこのパターン当てはまることが多いんじゃないでしょうか?理論だけ学んで実装を避けがちなんじゃないでしょうか?

変数の名前を適当につける

int a = 3;
int b = 3; 
double x = 67;
double y = 7288;

 
 
こんな風に変数をアルファベット順に適当につけたりしてませんか?


それで後で困るのは自分です。


なぜなら自分のコードっていうのは自分で再利用することが多いからです。


「前書いたコードのあの部分を再利用して新しいコードをつくる」っていうのはよくあることです。


それで何ヶ月前に書いたコードを読解しなきゃいけないんですが、変数の名前がaとかxとかだと何を指してんのかわからなくて混乱して読解に時間がかかる。


無駄に時間を浪費して効率が落ちる。なんてよくあります。


仕事でプログラミングしてる人は自分のコードを他人が読むのは当たり前だと思いますが、自分のコードは他人以上に自分が読みます


このような「実際コードを書く上で大切なのに他で教えてくれないテクニック」をまとめたのがこのリーダブルコードです。


これを読んて実践するだけでプログラミングの効率が上がります!僕も参考にしてます。

 
 
そのテクニックをもうちょっと詳しく紹介してるのがプログラミング作法です。テストみたいなより実務的なことが詳しく載ってます。


入力補完のあるエディターを使わない


適当なエディターを使ってませんか?


エディターでプログラミングの効率は左右されます。


メモ帳で書くなんて、洗濯機を使わずに手で洗うようなもんです。(僕は始めたときはメモ帳でコード書いてました(笑))


エディターで一番大切な機能が「入力補完」というこんな風にタブを押すと変数の候補を表示してくれる機能です。


f:id:a86223990:20180703203905p:plain


この入力補完機能があることで効率1.5倍くらいになり時間短縮されます!いやほんとです!入力補完を舐めてはいけません。

プログラムによってはすごい長ーい変数を使わなきゃいけない時があるので、すごい重宝します。

挫折した人はスクールに通うしかない!


プログラミング学習には最適なのはオンラインサイト!と言いましたが、ガチのマジの初心者にはすこしきびしいものがあります。オンラインサイトで挫折した人は、人間がマンツーマンで教えてくれるプログラミングスクールに通うしかありません。


でもプログラミングスクールって高いんですよね・・・安いところで7万くらい、高いところで60万とかします。


せっかくの高い買い物ですから、内容をよく吟味したいですよねー。


そこで、大手のプログラミングスクールは無料体験というのをやっているんです。実際に体験して雰囲気やカリキュラム、どのレベルまで到達できるかなどを知ることができるんですねー。無料でですよ!  
 
 
僕が実際に体験したプログラミングスクールの体験談を「完全オンラインで無料体験できるオンラインスクールまとめ」と言う記事にまとめました!まずは色んなスクールを体験して比較検討するのがいいかと!
       
     

  
  

失敗まとめ

 
 


  • 人に聞かずに自分で解決しようとする
  • 写経をして勉強した気になる
  • 動けばいいやの精神でいる
  • 1から全部書こうとする
  • 本で勉強しようとする
  • 実装をしない・手を動かさない
  • 変数の名前を適当につける
  • 入力補完のあるエディターを使わない

 

みなさんも気をつけましょう!
 
 

  
  
 

プログラミングに数学が必要な理由【関係ある?】【プログラマー必見】



 
こんにちは、京大生ブロガーのゲーテ(@goethe_kyodai)です。


プログラマーなのに「プログラミングに数学は必要ない」なんて思っちゃったりしてませんか?


プログラミングの背景には、コンピュータ・サイエンスという学問があります。そのコンピュータ・サイエンスの理解には数学が必須です。


「数学が必要ない」と本気で思ってる人は、コンピュータ・サイエンスが分かってなくてもできるレベルの仕事を任されているだけです。仕事のレベルが限定されるので一流プログラマーにはなれません。


プログラミングをやっていると、数学が大切だと思うことがたくさんあります。


プログラミングと数学の関係を踏まえて、プログラミングに数学が必要な理由 を説明します。プログラマーは必見です。

  

 
 
目次

 
 



アルゴリズムの理解に数学が必要


プログラミングで絶対つかうのがアルゴリズムです。


よく使うソートアルゴリズムの理解は必須です。ライブラリーがあるから詳しい中身は理解しなくてもいい、という人もいますが、ライブラリーの中身のアルゴリズムを理解していなければ応用ができません。


応用というのは、現実の問題に合わせてアルゴリズムを少し変えて適用することです。それができないプログラマーは、ライブラリーをそのまま使うだけで済む仕事しか任されず、プログラマーとして上には登れません。


そんなアルゴリズムの理解に数学が絶対必要です。具体的には、アルゴリズムの計算量の解析アルゴリズムのメモリ消費量の解析計算困難問題かどうかの判定などです。これらはlogや指数関数が分かってないと理解不可能です。


計算量がわからない人は説明はコチラの記事が分かりやすいです。


qiita.com


アルゴリズムで解けない問題というのがあって、問題がアルゴリズムで解けないことの証明にも数学が使われています。


あと、何らかの仮定がなければ、全てのソートアルゴリズムの計算量がO(nlogn)より速くならないことを知ってますか?あれは二分木を使えば証明できるのですが、これはグラフ理論という数学の一分野のおかげです。


こんな風にアルゴリズムを応用できるレベルまで理解するには数学が必須なのです。

数学のおかげでアルゴリズムの計算量が激的に減る


そのアルゴリズムの計算量は、数学を知っているか知っていないかで激的に変わることがあります。


具体例を出しましょう。


1からNまでの自然数の和を求めるプログラムを書くとしましょう。


普通にやったらこんな風にfor文のループで計算するでしょう。この場合の計算量はO(N)です。

int sum = 0;

for( int i = 1; i <= N; i++){
       sum = sum + i;
}


しかし、自然数の和の公式( \sum_{k = 1}^{N} k = \frac{N(N+1)}{2})というものを知ってる人だったら、こんな風にもっと簡単に書きます。

int sum = N*(N+1)/2;


式一発で求められちゃいますし、計算量もO(1)なので一瞬で求められます。


似た例ですが、nの階乗、n!を求めるプログラムを書くとしましょう。これもfor文で書けて、O(n)の計算量になります。


でもスターリングの公式  n! \cong \sqrt{2 \pi n} ( \frac{n}{e})^n (もっといい精度の形がありますが、簡潔さを優先しました)を使えば、近似ですが、O(n)ではなくO(1)の計算量で求められます。


例から分かるように、数学を知っている・知らないでプログラムの計算量は激的に変わってきます。




 
 

アルゴリズムを考えるのに数学の証明のアイデアが役立つことがある


実務で、自分でアルゴリズムを考えなければいけない場面があると思います。そんな時に数学の証明のアイデアがヒントになって良いアルゴリズムを思いつくことがあります。


自分も課題や競プロで一からアルゴリズムを考えなければいけない時がありますが、数学の証明のアイデアがヒントになったことはたくさんありました。


機械学習や人工知能の学習に必要


最近機械学習や人工知能のエンジニアがかなり需要があるようです。生き残るためにそれらの勉強としているプログラマーもいるでしょう。


そんな機械学習や人工知能の理解に数学は必須です。機械学習や人工知能では、データを学習させます。そしてそのデータは行列の形で表して色々いじるんです。


だから、理解には行列を扱う線形代数という分野が必要です。
  

この記事を見て何を思ったでしょうか?


logや行列は高校で習うから数学じゃないなんて思ってませんか?あれも文系の方からしたら立派な数学です。自分のレベルの数学だけが数学ではないのです。(かといって四則演算が数学と言われれば怪しいですが・・・)