<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Weber on Medium]]></title>
        <description><![CDATA[Stories by Weber on Medium]]></description>
        <link>https://medium.com/@weberindeed?source=rss-9fd3951fe39f------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*sv5a_FHMTBkq3oTTxzUA4A.jpeg</url>
            <title>Stories by Weber on Medium</title>
            <link>https://medium.com/@weberindeed?source=rss-9fd3951fe39f------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 01:44:43 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@weberindeed/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[SSH 進入 AWS EC2 及 Linux 的檔案屬性與權限]]></title>
            <link>https://medium.com/@weberindeed/ssh-%E9%80%B2%E5%85%A5-aws-ec2-%E5%8F%8A-linux-%E7%9A%84%E6%AA%94%E6%A1%88%E5%B1%AC%E6%80%A7%E8%88%87%E6%AC%8A%E9%99%90-88b658f80396?source=rss-9fd3951fe39f------2</link>
            <guid isPermaLink="false">https://medium.com/p/88b658f80396</guid>
            <category><![CDATA[road-to-developer]]></category>
            <category><![CDATA[aws-ec2]]></category>
            <dc:creator><![CDATA[Weber]]></dc:creator>
            <pubDate>Thu, 29 Feb 2024 12:27:47 GMT</pubDate>
            <atom:updated>2024-02-29T13:44:54.312Z</atom:updated>
            <content:encoded><![CDATA[<h3>小記雜談：用 SSH 進入 AWS EC2 及 Linux 的檔案屬性與權限</h3><p>從加入開發者的旅途後，很久沒動筆了。最近忙著出國玩、適應新工作、新崗位、新同事，還有很多 legacy code 要讀要改，很多票要解。慶幸到目前為止還算順利。</p><p>2024 開春後，剛好有點時間來寫一篇最近學到的有趣的知識。這對於本科系來說，可能已經不是新鮮事，但我覺得很有樂趣，讀到同事還問我在看什麼？其實只是個菜鳥在補課而已 XD。</p><p>在專案上，一直都有用到 AWS EC2。剛開始時，我都是用web 上 的 Session Manager 來操作。但看到前輩很帥的用 Shell SSH 直接 log in，覺得超酷。就跟他學了怎麼操作。而意外的多學了關於 Linux 的檔案屬性這件事。</p><h3>如何用 SSH 進入 AWS EC2 instance</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/1*Bk2bHuTvgChsf98zDLYAUQ.png" /><figcaption>在TERMINAL看到 ElasticBeanstalk 的圖案</figcaption></figure><p>註：不是每個 server 都可以直接這樣做，端看 server 的設定。好比說，目前公司的 server 就有鎖僅限辦公室 wifi 可以用 SSH 進入。</p><h3>1. 創造 SSH 公鑰</h3><p>Terminal 輸入：</p><pre>ssh-keygen -t rsa -b 4096 -C “your_email@example.com”</pre><p>ssh-keygen ：產生sshkey<br>-t rsa：指定密鑰類型，rsa 表示使用 RSA 加密法。<br>-b 4096：指定密鑰的位數。預設值通常是 2048 位，4096 位則是提供了比更高的安全性。<br>-C &quot;your_email@example.com&quot;：在密鑰中添加一個註釋標註。</p><pre>Generating public/private rsa key pair.<br>Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]<br>Enter passphrase (empty for no passphrase): [Type a passphrase]<br>Enter same passphrase again: [Type passphrase again]</pre><p>接者會出現這段，分別代表創造了公鑰跟私鑰。<br>想要存在哪裡（存在預設位置也可以，一般預設在本機底下的 .shh 裏面）<br>以及密碼跟確認密碼（不想要輸入密碼，可以enter~enter 過去）</p><p>接著就會在預設位置裡，出現 id_rsa 以及 id_rsa.pub，將公鑰提供給 server 權限擁有者來設定，並跟管理者索取一個類似env 的金鑰 .pem 檔，存在 .ssh 底下。</p><p>＊注意：這個 .pem 檔 等同於 EC2 的鑰匙，千萬不能外流的。在建立 EC2 時會指定要用哪把 .pem，外流或遺失會是非常非常非常麻煩的等級，請不要以身嘗試…lol。</p><blockquote>詳見：<a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html">https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html</a></blockquote><p>這邊就完成後，就可以從terminal 進入 AWS-EC2 啦！</p><p>可以參考EC2 web上的範例來登入，或者可以自己設一個 ssh config 來簡化</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*trw3ETdpqhNDiJFKACnyYQ.png" /></figure><h3>Linux 的檔案屬性與權限</h3><p>講了那麼久，才正式進入重點。<br>上面提到用來儲存 EC2 金鑰的 .pem 檔，需要設定特殊檔案權限，他必須為600以下才能使用，甚至如上圖所建議的 400 以下，輸入 chmod 400 檔名 。</p><p>什麼是600 跟 400 呢？<br>首先輸入指令 ls -al，a 是 顯示隱藏檔 l 是列出詳細資訊。<br>就會看到下圖的樣子，前方會顯示 drwxrwxrwx</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/518/1*whsiv4B59gD0BfPEykMMTA.png" /><figcaption>輸入 ls -al 就能看到隱藏檔 跟 檔案權限細節</figcaption></figure><p>第一個屬性代表這個檔案是『目錄、檔案或連結檔』：</p><p>d 是資料夾， — 是檔案，l 為連結檔，b 可供儲存的裝置，c 是序列埠設備。</p><p>後面 9 碼則是 三個 為一組，共三組：</p><ul><li>第一組為 擁有人的權限</li><li>第二組為 同群組的權限</li><li>第三組為 非擁有人也非同群組的權限</li></ul><p>每個字母分別代表：<br>・ r : read 讀，數字是 4<br>・ w: write 寫，數字是 2<br>・ x: execute 執行，數字是 1</p><p>把每組的數字加總，得到的數字，就是檔案的權限<br>600 就是 rw− −−− −−−<br>400 則是 r−− −−− −−−<br>一般的檔案權限預設值是 644， rw− r−− r−−</p><p>而 chmod 400 檔名，就是改變檔案的權限的指令，將檔案改為 只有擁有者可以讀取。</p><p>非常有趣，意外的在這裡學了個小知識。</p><p>下次再見！</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=88b658f80396" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[MVC 架構 及 Rails 的 CRUD]]></title>
            <link>https://medium.com/@weberindeed/mvc-%E6%9E%B6%E6%A7%8B-%E5%8F%8A-rails-%E7%9A%84-crud-5b51d7bcb7a2?source=rss-9fd3951fe39f------2</link>
            <guid isPermaLink="false">https://medium.com/p/5b51d7bcb7a2</guid>
            <category><![CDATA[rails]]></category>
            <category><![CDATA[rails-7]]></category>
            <category><![CDATA[mvc-architecture]]></category>
            <category><![CDATA[ruby-on-rails]]></category>
            <category><![CDATA[road-to-developer]]></category>
            <dc:creator><![CDATA[Weber]]></dc:creator>
            <pubDate>Thu, 27 Jul 2023 16:32:17 GMT</pubDate>
            <atom:updated>2023-07-28T02:39:17.952Z</atom:updated>
            <content:encoded><![CDATA[<h4><strong><em>之 我理解了為什麼會在 Commit 的時候打髒話！</em></strong></h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9DIDQ_WfUxZJOaxHIHOpvQ.png" /><figcaption>無限噴錯之旅</figcaption></figure><p>各領域中，縮寫專有名詞是一種知識的壓縮。將大量的知識內容壓縮進一個濃縮的專有名詞，再藉由不斷地堆疊專有名詞而達到更進一步的知識累積。所以學習的過程中，將專有名詞做解壓縮並理解，是痛苦但卻又非常必要的過程。</p><pre>class LetsRails extends MyRoadToDev {<br>  constructor(title, technical) {<br>    super(title, technical);<br>  };<br>};<br><br>const MVC = new LetsRails(&quot;什麼是 MVC 架構？&quot;, true)</pre><h3>什麼是 MVC 架構？</h3><p><strong>MVC</strong> 是一種程式開發的架構，藉由將整個程式系統分化成三個功能核心，分掌不同的職責，分別是 <strong>Model<em>、</em>View<em>、</em>Controller</strong>。</p><h4><strong><em>Model</em></strong></h4><p>常常被誤認為資料庫，但更正確的說法應該是資料庫上層的邏輯抽象層。主理資料存取管理、資料邏輯、資料驗證及近一步處理資料的相依性等。<strong>Model </strong>只負責回應請求，並回傳資料，並且可以被不同的 <strong>View</strong> 重復使用，至於怎麼顯示以及如何被操作，與他無關。</p><h4>View</h4><p>負責顯示資料的介面，依照 <strong>Model</strong> 從資料庫中取出的資料內容，呈現與使用者互動的網頁內容。所謂網頁前端，多為這個區塊的處理。</p><h4>Controller</h4><p>主要的流程控制者，連接 <strong>Model</strong> 跟 <strong>View</strong> 的橋樑，負責收發使用者的請求跟處理事件。<strong>Controller</strong> 可以藉由連接不同的 <strong>Model</strong> 處理使用者的資料請求，然後選擇不同的 <strong>View</strong> 來將結果顯示出去。</p><blockquote><strong><em>優缺短評：</em></strong><br><strong><em>MVC</em></strong><em> 架構有很明確的優點，將程式拆解成三種功能面向(三權分立？)，三個核心職責相互獨立，讓程式碼分工更明確，不會寫成大雜燴，方便未來維護與更新，且有利於團體作業與分工。而且這種程式開發架構，並不只限於</em><strong><em>Ruby on Rails</em></strong><em>，常用於多種語言環境。</em></blockquote><blockquote><em>缺點嘛～應該說會產生一坨檔案！另外也由於架構規矩較多，程式碼又分別寫於不同位置，需要一段時間去熟悉架構的邏輯。尤其是 </em><strong><em>Rails</em></strong><em> 的 </em><strong><em>Convention</em></strong><em> 又很多，初學時會遇到很多門檻，光是大小寫、單複數在前期就可以把初學者整死。本篇首頁圖就是我的噴錯大集合，初學的時候不要怕錯，每一次的噴錯都是學一次經驗，錯就錯，最糟就是玩壞了重開一個就好。<br>如果可以把概念摸清楚，並且熟練它，會是很強力的工具！</em></blockquote><pre>const CRUD = new LetsRails(&quot;關於 Ruby on Rails 的 CRUD&quot;, true)</pre><h3>關於 Ruby on Rails 的 CRUD</h3><p><strong><em>CRUD</em></strong> 指操作資料庫的四種基本操作， <strong><em>C</em></strong><em>reate、</em><strong><em>R</em></strong><em>ead、</em><strong><em>U</em></strong><em>pdate、</em><strong><em>D</em></strong><em>elete。 </em>承上 <strong>MVC</strong> 的架構，以 <strong>Ruby on Rails</strong> 為實作，後簡稱 <strong>R<em>ails</em></strong>。</p><p>在 <strong>MVP</strong> 架構下，<strong>Rails</strong> 將網站拆解為幾個功能層，除了上段提及的 <strong>Model</strong>、<strong>View</strong>、<strong>Controller</strong>之外，還有 <strong>Route</strong>、<strong>DataBase</strong><em> </em>以及<em> action</em>、<em>helpers</em>、<em>mailers</em>、<em>jobs</em>、<em>migration </em>等等等…</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*M7telFnkRYU9n2NTYAtsdA.png" /><figcaption><em>Source: (</em><a href="https://railsbook.tw/chapters/13-crud-part-1"><em>https://railsbook.tw/chapters/13-crud-part-1</em></a><em>)</em></figcaption></figure><p>¹使用者經瀏覽器，對網站資料庫發出請求 (<em>request</em>)，而常見的 HTTP 請求有 <strong><em>POST</em></strong><em>、</em><strong><em>GET</em></strong><em>、</em><strong><em>PUT</em></strong><em>、</em><strong><em>PATCH</em></strong><em>、</em><strong><em>DELETE</em></strong>，也稱所謂 HTTP 的動詞 (<em>verb</em>)，與之相對應的 <strong>CRUD</strong> 如下：</p><blockquote>POST — — — — — →(Create 用於創建新資料)</blockquote><blockquote>GET — — — — — — →(Read 用於獲取資料)</blockquote><blockquote>PUT/PATCH — — →(Update 用於更新資料)</blockquote><blockquote>DELETE — — — — →(Delete 用於刪除資料)</blockquote><p>而根據接收到的 request，²會經由 <strong>Route </strong>處理並分配到負責的 <strong>Controller 及 </strong><em>action </em>上。 而 <strong>Rails</strong> 的 resources 方法可以產生符合 <em>RESTful</em><strong> </strong>的網址，並且一併產生著名的 7 個 <em>action，</em>8 個 <em>url (至少 4 個 path)，與之相對的 action </em>及<em> path </em>如下：</p><pre># 7個 action - - - - - - - - - HTTP 動詞 - - - - - - CRUD分類 - - - 路徑 path<br><br>def index #首頁 - - - - - - - - - GET - - - - - - - → Read - - -&gt; groups_path<br>end<br><br>def show  #顯示頁 - - - - - - - - GET - - - - - - - → Read - - -&gt; group_path<br>end<br><br>def new  #新建頁面，通常有表單欄位 - GET - - - - - - - → Create - -&gt; new_group_path<br>end<br><br>def create #真正寫入資料庫的動作 - - POST - - - - - - → Create - -&gt; ( 無頁面 ）<br>end<br><br>def edit #編輯頁面，通常也是欄位顯示 - GET - - - - - - → Update - -&gt; edit_group_path<br>end<br><br>def update  #真正的資料更新動作 - -PATCH / PUT - - - - → Update - -&gt; ( 無頁面 ）<br>end<br><br>def destroy #資料刪除的動作 - - - - DELETE - - - - - - → Delete - -&gt; ( 無頁面 ）<br>end</pre><p>這裡新手常見的問題有：</p><ol><li>同樣是 <strong>R</strong><em>ead</em> ，index 跟 show 有什麼不一樣？</li><li>同樣是 <strong>C</strong><em>reate</em> 跟 <strong>U</strong><em>pdate</em>，為什麼 new 跟 edit 有 path 有頁面, 而 create 跟 update 卻沒有？ 而 new 跟 edit 有路徑為什麼他們不是 <strong>R</strong><em>ead</em>？</li></ol><p>以下是我的理解，不一定是正確的細節解，但是可以方便你記憶：</p><p><strong>1: <br></strong>關於 show 顧名思義就是一塊 display 的頁面，通常 show 頁面負責提供給使用者閱讀的內容。而 index 也可以說是 show 之一，只是每一個 <strong>Controller</strong> 會有一個預設的 index 當作所謂 “首頁”。</p><p>以部落格來說，文章首頁(index) 通常就是文章列表；相簿首頁(index) 通常就是相簿列表。而你點每一篇文章/相本進去看，就又是另一個 show 頁面。</p><p>所以它們的 route path , index 是 複數，而 show 是單數。</p><p>2: <br>首先，這個問題可以整理為：<br>我們將 new 跟 create 都算是 <strong>CRUD </strong>的 <strong>C</strong><em>reate</em>，但 new 卻跟 show 一樣有路徑頁面，而且<strong>HTTP</strong> 也是用 <strong><em>GET</em></strong>，為什麼？</p><p>我是這樣認為的，create 的 <em>action</em> 才是真正做 <strong>C</strong><em>reate</em> (寫入資料庫) ”<strong>動作</strong>”的 <em>action</em>；而 new 的頁面是為了讓使用者輸入資訊而存在的。</p><p>使用者需要一個路徑頁面，需要一個 <strong>View</strong> 來填寫資料（帳號、密碼、姓名、地址、信用卡資訊等等等….），這個 頁面 就是 資料的 new。當使用者填寫完資料，送出的按鈕，就是 資料的 save ( 控制寫在 <strong>Controller</strong> 中)，藉由 save 寫入資料庫。</p><p>edit 跟 update 也是一樣的狀況。edit 的路徑頁面是為了讓使用者輸入資訊而存在的，而送出時 資料的 update ( 控制寫在 <strong>Controller</strong> 中)，才是真正做 <strong>CRUD</strong> 的 <strong>U</strong><em>pdate</em> 的動作。</p><p>所以 create 跟 update 不需要 <strong>View</strong>，同樣的刪除 destroy 也是。<br>以上。</p><p>光是 <strong>Route</strong> 至 <strong>Controller</strong>、<em>action</em> 這前兩步，就佔了相當的篇幅，下回將再來提及 <strong>Model</strong> 跟其他步驟與內容。（待續）</p><blockquote>下一篇會講述：<br><strong>&gt; JS篇：What is this？is this your this || is this my this ?<br>&gt; 之 結果我沒有離職成功，其實我半工半讀 how篇（下）</strong></blockquote><blockquote>git add .</blockquote><blockquote>git commit -m “RtD, MVC &amp; CRUD -上“</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5b51d7bcb7a2" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why and How, Road to Dev]]></title>
            <link>https://medium.com/@weberindeed/why-and-how-road-to-dev-63ad41cf4576?source=rss-9fd3951fe39f------2</link>
            <guid isPermaLink="false">https://medium.com/p/63ad41cf4576</guid>
            <category><![CDATA[intro]]></category>
            <category><![CDATA[road-to-developer]]></category>
            <category><![CDATA[storytelling]]></category>
            <category><![CDATA[storyofmylife]]></category>
            <dc:creator><![CDATA[Weber]]></dc:creator>
            <pubDate>Wed, 19 Jul 2023 03:14:43 GMT</pubDate>
            <atom:updated>2023-07-27T16:16:02.310Z</atom:updated>
            <content:encoded><![CDATA[<h4>為什麼這樣做 以及 目前為止我的進修安排與進程</h4><p>靈感就是趁有感覺有時間就要趕快寫。<br>而我已經想到下一章要寫什麼主題，所以來把這章完結掉。</p><pre>class MyRoadToDev {<br>  constructor(title, technical){<br>    this._title = title;<br>    this._thumbnail = true;<br>    this._technicalArtical = technical;<br>  };<br>  <br>  get title() {<br>    return this._title;<br>  };<br>  <br>  get thumbnail() {<br>    return this._thumnail;<br>  };<br><br>  get techicalArtical() {<br>    return this._techicalArtical;<br>  };<br>};</pre><pre>class Intro extends MyRoadToDev {<br>  constructor(title, technical) {<br>    super(title, technical);<br>  };<br>};<br><br>const why = new Intro(&quot;Why - 為什麼想成為開發者&quot;, false)</pre><h4>Why — 為什麼想成為開發者</h4><p>起心動念蠻單純的，綜合考量卻蠻複雜的。</p><p>起心動念就是 coding 似乎蠻有趣的，而且看起來她近乎無遠弗屆。好奇心一直以來是我強大的驅動力，而我也想在有限的生命中再做點什麼。簡而言之就是存在主義吧。</p><p>綜合考量，則複雜得多很多：<br>一.<br>打自畢業後，我已經在行銷專案、業務領域間，交互做了好一段時間。<br>從紙本媒體做到社群小編做到活動公關，從實體活動做到線上活動，再踏入廣告投放跟 SEO。</p><p>我有好一段時間，已經對這些花花綠綠的東西，感到了無生趣。時間一拉長，你會注意到那些流行、潮流，都有一個週期循環的 pattern。</p><p>隨著手機裝置一飛沖天後，更是把一切變的更加扁平、快速與破碎。<br>每30秒就等於半分鐘的短影音、140字元的廢文、難聽又吵雜的罐頭配樂、看人們排隊六小時搶一行亂碼產生的數位虛寶，滿天開花的廢話直播，各種業界行銷”專家”，全地球有一半人口都有兩顆乳房的網紅，充斥著整個數位行銷領域。</p><p>所以我思：我思故我在，但倘若我不思了呢？<br>我在追逐什麼，亦或是我們在帶領人群追逐什麼？</p><p>二.<br>隨著年資的增長，跟管理的領域不段擴大。我逐漸意識到，在行銷跟業務頭頂上的天花板在哪裡。這裡指的不是薪資的天花板，當然它是其一的綜合考量。</p><p>而是指發展上的天花板，行銷跟業務，有很強烈的領域跟區域上的天花板。領域上，在文藝圈的行銷，跟遊戲圈的行銷完全是兩碼子事。更甚之，一樣是遊戲，3A級的遊戲行銷跟博弈遊戲的行銷更是兩回事。</p><p>區域上，同樣的行銷策略在台灣很成功，先不說美國、日本，光是搬到香港，可能就完全不 work。</p><p>舉幾個例子，FIFA 遊戲在香港非常流行，推行起來行雲流水，在台灣則根本幾乎找不到玩家，也近乎沒人在乎。而 NBA2K 則是完全顛倒的狀態。<br>滿千折百，買三送一在台灣非常可行，在美國卻很窒礙難行。美國人似乎只在乎季節性的大爆殺，感恩節一次殺到 6~70% OFF 之類的。（我至今仍搞不懂美國人的購買行為模式）</p><p>在廣告投放，成本上也有很大的不同，不過我懶得再舉例了，牽扯一堆數字。</p><p>總之，如果放大來看，近乎沒有慣例、沒有通則，靠的是經驗、創意與溝通技巧。</p><p>所以呢，對於剛接觸到 coding 的我來說，好比遇上了一個 global scope 的技能。讓我有心想挑戰，也想精通她。至少這陣子下來，我在這裡看到了更挑高的天花板，有更多的空間可以想像。以上。</p><pre>const how = new Intro(&quot;How - 目前為止我的進修安排與進程-課前篇&quot;, false)</pre><h4>How — 目前為止我的進修安排與進程 — 課前篇</h4><p>首先，其實我來聽了兩次 5xRuby 的座談會。</p><p>第一次是2月吧，第二次是3月。因為我想在把頭洗下去之前，再三反覆確認我是不是只是一頭熱，並且做好前置準備，順便在幾間補習班間做經營者態度上的選擇。值得一提的是，第一次遇到秉彥，第二次則是遇到芷寧。</p><p>第一次座談會後，我開始找了兩三位工程師的朋友請教工作狀況，以及如果是自學，要怎麼開始，還要到了一堆免費的書。（後來我覺得他們只是想把佔空間的書都塞給我…＝＝）</p><p>接著我先以免費會員的身份參加 <a href="https://www.codecademy.com/">Codecademy</a> 的線上課程，透過實作來確認自己的興趣，並先遵循 <a href="https://roadmap.sh/frontend">front-end 的 roadmap</a> 閱讀大量前置的文章。而在了解過網路的發展與起源後，我更是確立了強迫自己全程用英文學習的目標是對的。同時，英文的資源真的多很多。</p><p>到這時候，我已經是確認了自己的態度，所以在三月時，再帶著老婆一起來再聽一次說明會，這次結束後，我其實已經確定了我會報名。老婆的部分，就讓她的子彈飛一會。</p><p>接著我開始以付費會員上進階的 <a href="https://www.codecademy.com/">Codecademy</a> 的線上課程，按照 <a href="https://roadmap.sh/frontend">front-end 的 roadmap</a> 的進度，依序完成 HTML 跟 CSS 的 basic 跟 advance 課程。並且積極的利用 forum 功能，跟其他會員互動並發問。</p><p>最後，在四月早鳥前最後期限，跟老婆一起報名參加。這時候我大概已經把HTML，包含 Semantic HTML 全部上完。開始進行 CSS 的訓練，並且在上下班空檔期間開始看 5 倍的一些線上教材。 我得說，我們一開始看 ruby 跟 git 的時候，大概有一半，都不知道在幹嘛….哈哈哈哈哈</p><p>大概在開課前一個禮拜，我終於把 CSS 包含 basic 跟 advance 的課程全部走過一遍，5 倍的影片，大概 git 看了一半，ruby 看到 rails 前，然後開始硬幹一點線上課程的 JS，把公司的離職程序跑一跑，帶著緊張的心情準備開課。</p><p>（待續）</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kGe_K5d_EkSF8pho91-uaQ.png" /></figure><blockquote>下一篇會講述：<br><strong>&gt; Ruby on Rails 的 CRUD 以及 什麼是 MVC 架構？<br>&gt; 之 我完全理解為什麼會在 Commit 的時候打髒話！</strong></blockquote><blockquote>git add .</blockquote><blockquote>git commit -m “RtD, why &amp; how -上“</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=63ad41cf4576" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Road to Dev 開發者之路]]></title>
            <link>https://medium.com/@weberindeed/road-to-dev-%E9%96%8B%E7%99%BC%E8%80%85%E4%B9%8B%E8%B7%AF-a8810e3e5541?source=rss-9fd3951fe39f------2</link>
            <guid isPermaLink="false">https://medium.com/p/a8810e3e5541</guid>
            <category><![CDATA[storytelling]]></category>
            <category><![CDATA[storyofmylife]]></category>
            <category><![CDATA[road-to-developer]]></category>
            <dc:creator><![CDATA[Weber]]></dc:creator>
            <pubDate>Mon, 10 Jul 2023 16:56:20 GMT</pubDate>
            <atom:updated>2023-07-16T22:12:47.752Z</atom:updated>
            <content:encoded><![CDATA[<p>事業段 — 最後的錨定</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tPJMeBKe6UdF3mG4yz_xJA.jpeg" /></figure><blockquote>git init</blockquote><p><strong><em>老</em></strong><em>實說，上一次寫網誌已經是 MSN 網誌的年代。寫一些風花雪月，國高中時期的生活雜記、戀愛煩惱、徬徨苦惱。其實當年我認為還稱得上前衛，但現在回頭看起來就是少年強說愁的姿態。</em></p><p>這中間幾十年的時間，也不是沒想過要再寫網誌。但可能是強迫症或完美主義，每次開開關關，總是不成氣候。或者文筆已經跟不上想構築的內容，看了煩躁，修來修去最後乾脆又刪掉。</p><p>這幾年我認識自己更加清晰了，這其實是一種承諾障礙，體現在我生活中每一個做選擇的細節。</p><blockquote><em>Anyway, 這不是今天的重點。</em></blockquote><p>重點是我在 2023 這年由於廣告行銷及網站ＳＥＯ工作的關係，對開發端產生了興趣，進而開始進修，並預計從業務上相對前方的 商務開發 ＆ 數位行銷 的領域，大幅將我的工作生活轉向相對後方的開發者。</p><p>龍哥不斷的說，輸出會幫助你思考，我同意。但開個頭真的好難。<br>拖稿了一個月，就決定先硬幹一篇廢文幹話，來幫助我釐清接下來我要寫什麼。是說，寫到這裡，事實證明蠻有幫助的。</p><blockquote>下一篇會講述：<br><strong>&gt; 我為什麼這樣做 以及 目前為止我的進修安排與進程。</strong></blockquote><blockquote>git add .</blockquote><blockquote>git commit -m “RtD 前言“</blockquote><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a8810e3e5541" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>