<?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:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[StackNerds]]></title><description><![CDATA[StackNerds]]></description><link>http://stacknerds.com/</link><image><url>http://stacknerds.com/favicon.png</url><title>StackNerds</title><link>http://stacknerds.com/</link></image><generator>Ghost 5.34</generator><lastBuildDate>Sun, 09 Aug 2026 22:45:35 GMT</lastBuildDate><atom:link href="http://stacknerds.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Setting up free business emails with Gmail.]]></title><description><![CDATA[How do you use an email like support@freecodecamp.org or normad@stacknerds.com with the convenience of receiving and replying to mails from your already familiar Gmail? ]]></description><link>http://stacknerds.com/setting-up-free-proffesional-emails-with-gmail-and-mailgun/</link><guid isPermaLink="false">6420ac4203a18500011639cf</guid><dc:creator><![CDATA[Fon E. Noel NFEBE]]></dc:creator><pubDate>Thu, 09 Jul 2020 00:46:40 GMT</pubDate><media:content url="http://stacknerds.com/content/images/2020/07/email-forward-stacnkerds.png" medium="image"/><content:encoded><![CDATA[<img src="http://stacknerds.com/content/images/2020/07/email-forward-stacnkerds.png" alt="Setting up free business emails with Gmail."><p>Over the years as I write code and configure systems, I have mostly exclusively selected <strong>free</strong> and or <strong>open-source</strong> approaches to getting things done. Many open-source and sometimes just freemium setups would yield the same professional result as other paid alternatives, you should just be able to set it up. For example, I have secured dozens of sites including <a href="http://stacknerds.com/">stacknerds.com</a> with SSL certificates but I have never paid for an SSL because I found <strong><em>Let&apos;s Encrypt</em></strong> which is a is a non-profit certificate authority run by the Internet Security Research Group. Yet, lots of developers just add an SSL certificate to their cart when buying domains despite having the ability to configure one in a few minutes, although mostly cheap, configuring yours for $0 does not hurt and saves you a couple of dollars.</p><p>Also, apart from time, one thing that prevents many people from doing some basic things on their own is simply that they don&apos;t know how to do it. In this article, I am going to show you how one of such &quot;free and simple&quot; setups work.</p><p>How do you use an email like support@freecodecamp.org or normad@stacknerds.com with the convenience of receiving and replying to mails from your already familiar Gmail? On a normal day, you would just pay for G-Suite to have that out of the box. Worst, you can just stick to that C-Panel configuration with a mail client like WebMail.</p><p>Well, I bet you don&apos;t want to pay and also do not want to login to webmail every time to check new mails so let&apos;s go this free setup.</p><h3 id="pros-of-this-setup-">Pros of this setup;</h3><ul><li>It&apos;s super simple for the users; be it you or members of your organization, It would be fun to receive a notification as you would for any other normal emails in your Gmail account with your business emails as well. You won&apos;t have to manually &quot;go check&quot; for mails in some obscure email client.</li><li>The Gmail app is great and offers and good user experience, you might just want to stick to such an experience for all your mails.</li><li>It&apos;s free</li></ul><h3 id="cons-of-this-setup-">Cons of this setup;</h3><ul><li>You need to set it up yourself</li></ul><h3 id="what-you-need">What you need</h3><ul><li>A domain name with due access to domain name records settings to add special mail records.</li><li>A mail relay service or mail servers such as <s>Mailgun</s> or <s>SendPulse</s>, <s>SendPulse</s> offers 12000 free mails a month if you use up all of that then you should indeed be paying, <s>Mailgun</s> used to give 10000 but now has a different strategy which still boils down to free for a few thousand mails. You can find an alternative, so long as it has support for email routing.</li><li>A Gmail account.</li></ul><h3 id="i-am-sorry-that-s-impossible">I am sorry that&apos;s impossible</h3><p>So I have been using the setup I was planning to show you for years and procrastinating on writing this article, upon logging into Mailgun the mail routing service has been made a premium feature and as a result, a paid one however all my previous setups are working. Additionally, other services such as SendPulse use webhooks to forward email, even though it&apos;s free, it ceases to be a &quot;minimal setup&quot; costing time. That invalidated this entire article.</p><p>So I contemplated whether I should go ahead and make the tutorial with Mailgun&apos;s paid feature and remove free from the title. (It&apos;s cheap though, and tutorials are made for paid services too), but then it dawned on me that if I removed free from the title you and me (oh no!) would have to pay for a minimal setup, I have nothing against paying for services but when you are a single developer or a young startup trying to dish-out MVPs you want to find out every way to cut cost.</p><h2 id="let-s-fix-it-">Let&apos;s fix it.</h2><p>So I found another way to get this done! In addition to the pro&apos;s listed before, this is even better as it&apos;s open-source! We would use <a href="fowardemail.net"><strong>fowardemail.net</strong></a>&apos;s <strong>free-email-forwarding </strong>to set up our professional email and GMAIL. check out their <a href="https://github.com/forwardemail/free-email-forwarding"><strong>repo</strong></a><strong> </strong>on GitHub.</p><p>Before I dive into the pretty simple set up, what is <strong>email forwarding </strong>and how does it work? Email forwarding generally refers to the act of re-sending an email message delivered to one email address to other email addresses. In this case, we want to simply forward mails sent to your domain work addresses to designated Gmail addresses, we would also set up &quot;reply as&quot; that would enable you to reply to your professional mails.</p><p>Like I mentioned earlier for this to work, we need to add MX (Mail eXchange) records to your domain name settings (records). These MX records would essentially show mail services the server that is in charge of handling (receiving and perhaps forwarding) your mails. In this case, our chosen server is fowardemail.net. You could set up the mail server on your domain if you want, but using fowardemail.net servers is just fine!</p><p>Watch me do it, already. </p><figure class="kg-card kg-embed-card"><iframe width="480" height="270" src="https://www.youtube.com/embed/QPWe7yXKJRs?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></figure><p>See:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://forwardemail.net/en"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Free Email Forwarding for Custom Domains | Forward Email</div><div class="kg-bookmark-description">ForwardEmail.net</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://forwardemail.net/img/apple-touch-icon-08d0fb9d71.png" alt="Setting up free business emails with Gmail."><span class="kg-bookmark-author">Forward Email</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://forwardemail.net/img/social.png" alt="Setting up free business emails with Gmail."></div></a></figure><p>Leave questions/comments on YouTube and on Twitter and Facebook @stacknerds.</p>]]></content:encoded></item><item><title><![CDATA[Build a Portfolio Website with OctoberCMS]]></title><description><![CDATA[In this blog post, I would walk you through creating a portfolio website with OctoberCMS. ]]></description><link>http://stacknerds.com/build-developer-portfolio-website-with-octobercms/</link><guid isPermaLink="false">6420ac4203a18500011639d4</guid><category><![CDATA[Programing Tutorials]]></category><category><![CDATA[OctoberCMS]]></category><category><![CDATA[Laravel]]></category><category><![CDATA[Code]]></category><dc:creator><![CDATA[Fon E. Noel NFEBE]]></dc:creator><pubDate>Tue, 25 Feb 2020 22:31:27 GMT</pubDate><media:content url="http://stacknerds.com/content/images/2020/02/devfolio-prev.png" medium="image"/><content:encoded><![CDATA[<img src="http://stacknerds.com/content/images/2020/02/devfolio-prev.png" alt="Build a Portfolio Website with OctoberCMS"><p>In this blog post, I would walk you through creating a portfolio website with OctoberCMS. You can watch my video on YouTube that shows you same; in unison with this article if that would help you get it done faster.</p><figure class="kg-card kg-embed-card kg-card-hascaption"><iframe width="480" height="270" src="https://www.youtube.com/embed/5861zyrmwC0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><figcaption>Build a Portfolio Website with OctoberCMS [YouTube]</figcaption></figure><h3 id="background">Background</h3><p>If you are looking to build a Portfolio website with <code>OctoberCMS</code> chances are you already at least know what it is especially in relation to other tools like WordPress and <code>Laravel</code>. &#xA0;But I would go ahead and tell you again briefly in my own words.</p><p><code>OctoberCMS</code> just like WordPress is a content management system (CMS)! built on the most popular and appreciated <code>PHP</code> framework <code>Laravel</code>. But beyond that, it is a flat-file <code>CMS</code> meaning &quot;everything&quot; you do on it is saved as configuration/code in files, unlike with WordPress where the configurations are saved in a database. This makes it quite easy for you to move <code>OctoberCMS</code> projects around and works very well with git, Also <code>OctoberCMS</code> unlike <code>WordPress</code> is developer centric, it gives you more control by making it relatively easier to build plugins as everything is not a &quot;Post&quot; you can design extra functionalities in at least a sensible way writing code that follows the <code>MVC</code> pattern. So if you hate WordPress (which actually works as well &#x1F642;) welcome!</p><p>The portfolio website we would construct essentially has a blog section, a projects section and a contact form. </p><h3 id="what-do-we-need-to-build-this-site">What do we need to build this site?</h3><p>This tutorial is not for absolute beginners but it not bad if you try as a starter &#xA0;it&apos;s not that complex with some grit a beginner can get this up but lets see the required background; Ideally you should have basic knowledge of <code>HMTL/CSS</code>, <code>JavaScript</code>, <code>databases</code> and <code>PHP</code>, it would also be great if you know some <code>Laravel</code>. Lastly, you should be able to setup up a <code>LAMP</code>, <code>XAMP</code> or <code>MAMP</code> stack. That in simple language means being able to set up a php development environment for at least <code>Linux</code>, <code>Windows</code> or <code>macOS</code>.</p><p>That said, you should have:</p><ul><li><code>PHP</code> with some of its extensions and Libraries <a href="https://octobercms.com/docs/setup/installation#system-requirements"><strong>required by <code>OctoberCMS</code></strong></a></li><li>A database server like <code>MySQL</code></li><li>A text/code editor like <code>Sublime Text</code> or <code>VS Code</code></li></ul><p>For advanced folks,</p><ul><li>A <code>Laravel</code> development environment including <code>composer</code> would be great!</li></ul><p>Basically that means <code>OctoberCMS</code> should be able to run on your system be it <code>Windows</code>, <code>Linux</code> or <code>MacOS</code>, I would provide some assistive material at the end of the article pointing to resources that can at least get, <code>PHP</code>, <code>MYSQL</code> and <code>OctoberCMS</code> running on your system.</p><p>Hence forth, I assume that you have the requirements necessary to run October so lets go ahead and create an October project, and start building our site immediately.</p><h3 id="creating-an-octobercms-project-">Creating an OctoberCMS project! </h3><p>I have a Laravel Development Environment setup with Laravel&apos;s <code>Homestead</code> so among the many ways available to create an OctoberCMS project, I would use composer to create my project from the terminal like so:</p><pre><code class="language-bash">composer create-project october/october devfolio</code></pre><p><code>devfolio</code> is the name of my project it could be anything you specify! Remeber, the most important thing is creating an <code>OctoberCMS</code> project no matter how, you must not use the terminal as our setups may be different.</p><h3 id="project-setup">Project Setup</h3><p>After creating the project I would like to create a database for my site, and make sure my site is connected to the database correctly so I can run the migrations (get the necessary database tables created within the database), set up some environment configurations and then tryout my the installation.</p><h2 id="build-a-portfolio-website-">Build a portfolio website! </h2><p>No matter how you got one running, now that you have an empty <code>OctoberCMS</code> project up, lets started with actual work. To get this porfolio website up we need a theme an <code>HTML</code> theme! Naturally, we would have to make one! &#xA0;We are actually going to make one but not from scratch, I mean you really don&apos;t have time do you? &#x1F60F;</p><h3 id="get-the-theme">Get the Theme</h3><p>I search for themes to create this portfolio site and the one I liked that met the criteria; Open Source (free), simple, neat/classy and mobile friendly is <a href="https://bootstrapmade.com/demo/DevFolio/">DevFolio</a> a developer portfolio theme that looks really great and you can customize it for anyone not just devs. Do well to download DevFolio.</p><p><strong>DevFolio </strong>theme link : <a href="https://bootstrapmade.com/demo/DevFolio/">https://bootstrapmade.com/demo/DevFolio/</a></p><p>Now that the theme is available:</p><ol><li>Create an empty theme in <code>OctoberCMS</code> </li><li>Add the pages we want our theme to have, in this case a <code>homepage</code>, <code>project-detail</code> and a <code>blog-detail</code> page. You might have noticed there&apos;s no blog and projects page. So, because projects and blogs are listed on the homepage. You would be able to attach a route to each page during the creation process and can give what ever routes you want. e.g <code>/</code> for home and <code>blog/:slug</code> for blog articles.</li><li>Create a <code>main</code> layout in the CMS section, you can update the project and blog detail page to share the common layout.</li></ol><h3 id="copy-the-html-code-into-the-theme-files">Copy the HTML code into the theme files</h3><p>This is nothing more than copy and paste with a few tweaks! First;</p><ol><li>Copy all the resouces folders in the theme folder you unziped such as <code>css</code>, <code>img</code>, <code>lib</code> etc and then navigate to the project in your file system visit <code>themes -&gt; devefolio -&gt; assets</code> and you can past all the theme resouces there! Theme resources are basically css files, images, javascript files and the rest.</li><li>Now that we have the assets available within the project, copy the code for each file in the theme folder you downloaded and paste in the theme files within the <code>devfolio</code> theme folder! For example copy the code within <code>index.html</code> in the unzipped theme folder and paste in <code>home.htm</code> or whatever file name you gave you homepage within the CMS. Do this for all the pages of theme!</li></ol><h3 id="loading-theme-assets">Loading theme assets</h3><p>If you have successful you should be to visit pages for you portfolio site but these pages would look pretty awful and there is no CSS or styling loaded and we have to see how to load that! In <code>OctoberCMS</code> the <code><a href="https://octobercms.com/docs/markup/filter-theme">theme-filter</a></code> is used to attach assets to pages.</p><p>So we would make the following changes to all files referenced from within our theme.</p><p>All <code>.css</code> files looking like :</p><pre><code class="language- HTML">&lt;script type=&quot;text/javascript&quot; src=&quot;assets/css/style.css&quot;&gt;&lt;/script&gt;</code></pre><p>would become</p><pre><code class="language-HTML">&lt;script type=&quot;text/javascript&quot; src=&quot;{{ &apos;assets/css/style.css&apos;|theme }}&quot;&gt;&lt;/script&gt;</code></pre><p>All <code>.js</code> files looking like :</p><pre><code class="language- HTML">&lt;script type=&quot;text/javascript&quot; src=&quot;assets/js/script.js&quot;&gt;&lt;/script&gt;</code></pre><p>would become</p><pre><code class="language-HTML">&lt;script type=&quot;text/javascript&quot; src=&quot;{{ &apos;assets/js/script.js&apos;|theme }}&quot;&gt;&lt;/script&gt;</code></pre><p>That&apos;s too many examples already! Basically we are just introducing Octobers templating language, we use <code>{{ }}</code> to evaluate expressions and in this case evaluate a path within apostrophes we attach the theme-filter mentioned above to let October know that it&apos;s a theme asset and it must load if from a special location. (assets)</p><h3 id="get-the-plugins">Get the Plugins </h3><p>You can get the plugins by simply searching their names from the store wihin the <code>OctoberCMS</code> dashboard. More information about each plugin we use can be obtained from their respective links below.</p><ul><li><code>Indikator.News</code> (<a href="https://octobercms.com/plugin/indikator-news">https://octobercms.com/plugin/indikator-news</a>)</li><li><code>ArrizalAmin.Portfolio</code> (<a href="https://octobercms.com/plugin/arrizalamin-portfolio">https://octobercms.com/plugin/arrizalamin-portfolio</a>)</li><li><code>Laminsanneh.Flexicontact</code> &#xA0;(<a href="https://octobercms.com/plugin/laminsanneh-flexicontact">https://octobercms.com/plugin/laminsanneh-flexicontact</a>)</li></ul><h3 id="integrating-plugins-with-theme">Integrating Plugins with theme</h3><p>To integrate the plugin with the theme we need to add the various plugin components on the different pages we need. For example we need the <code>post list</code> and <code>project list</code> components on the homepage and then a <code>post item</code> and <code>project item</code> on the blog detail and project detail pages respectively.</p><p>There&apos;s a lot going on that could spiral into several paragraphs of explaination, here I provide the snippets for you to copy and paste and link to part of the video where this is being done.</p><h3 id="adding-blog-list-component-">Adding blog list component;</h3><p>After adding the blog list component to home page as shown below replace the blog section row containing the post list with the snippet following.</p><pre><code class="language-HTML">      &lt;div class=&quot;row&quot;&gt;
      	{% for post in posts %}
        &lt;div class=&quot;col-md-4&quot;&gt;
          &lt;div class=&quot;card card-blog&quot;&gt;
            &lt;div class=&quot;card-img&quot;&gt;
              &lt;a href=&quot;{{ post.url }}&quot;&gt;&lt;img src=&quot;{{ post.image|media }}&quot; alt=&quot;&quot; class=&quot;img-fluid&quot;&gt;&lt;/a&gt;
            &lt;/div&gt;
            &lt;div class=&quot;card-body&quot;&gt;
              &lt;div class=&quot;card-category-box&quot;&gt;
                &lt;div class=&quot;card-category&quot;&gt;
                  &lt;h6 class=&quot;category&quot;&gt;Travel&lt;/h6&gt;
                &lt;/div&gt;
              &lt;/div&gt;
              &lt;h3 class=&quot;card-title&quot;&gt;&lt;a href=&quot;{{ post.url }}&quot;&gt;{{ post.title }}&lt;/a&gt;&lt;/h3&gt;
              &lt;p class=&quot;card-description&quot;&gt;
               {{ post.introductory|length &gt; 100 ? post.introductory|slice(0, 100)|striptags~ &apos;&#x2026;&apos; : post.introductory|striptags }}
              &lt;/p&gt;
            &lt;/div&gt;
          &lt;/div&gt;
        &lt;/div&gt;
        {% endfor %}
    
      &lt;/div&gt;</code></pre><h3 id="adding-project-list-component-">Adding project list component;</h3><p>After adding the project list component to home page as shown below replace the section row containing the project list with the snippet following.</p><pre><code class="language-HTML">      &lt;div class=&quot;row&quot;&gt;
      {% for item in portfolio.portfolio %}
        &lt;div class=&quot;col-md-4&quot;&gt;
       {% set image = item.images.first %}
          &lt;div class=&quot;work-box&quot;&gt;
            &lt;a href=&quot;{{ item.pageUrl }}&quot; &gt;
              &lt;div class=&quot;work-img&quot;&gt;
                    &lt;img src=&quot;{{ image.path }}&quot; class=&quot;img-responsive&quot; alt=&quot;{{ image.title }}&quot;&gt;
              &lt;/div&gt;
              &lt;div class=&quot;work-content&quot;&gt;
                &lt;div class=&quot;row&quot;&gt;
                  &lt;div class=&quot;col-sm-8&quot;&gt;
                    &lt;h2 class=&quot;w-title&quot;&gt;{{ item.title }}&lt;/h2&gt;
                    &lt;div class=&quot;w-more&quot;&gt;
                      &lt;span class=&quot;w-ctegory&quot;&gt;Web Design&lt;/span&gt; / &lt;span class=&quot;w-date&quot;&gt;{{ item.created_at|date(&apos;j m Y&apos;) }}&lt;/span&gt;
                    &lt;/div&gt;
                  &lt;/div&gt;
                  &lt;div class=&quot;col-sm-4&quot;&gt;
                    &lt;div class=&quot;w-like&quot;&gt;
                      &lt;span class=&quot;ion-ios-plus-outline&quot;&gt;&lt;/span&gt;
                    &lt;/div&gt;
                  &lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/a&gt;
          &lt;/div&gt;
        &lt;/div&gt;
        {% endfor %}
  
      &lt;/div&gt;</code></pre><h3 id="blog-detail-page-and-component-">Blog detail page and component;</h3><p></p><pre><code class="language-HTML">title = &quot;blog-detail&quot;
url = &quot;/blog/:slug&quot;
layout = &quot;main&quot;
is_hidden = 0

[newsPost]
slug = &quot;{{ :slug }}&quot;
==
{% set post = newsPost.post %}

{% put head %}
{% partial &apos;head&apos; title=post.title %}

&lt;meta name=&quot;description&quot;
  content=&quot;{{ post.introductory|length &gt; 60 ? post.introductory|slice(0, 60)|striptags ~ &apos;&#x2026;&apos; : post.introductory|striptags }}&quot;&gt;
&lt;link rel=&quot;canonical&quot; href=&quot;{{ post.url }}&quot;&gt;
&lt;link rel=&quot;image_src&quot; href=&quot;{{ post.image|media }}&quot; type=&quot;image/png&quot; /&gt;
&lt;meta name=&quot;keywords&quot;
  content=&quot;{{ post.category.name}}, {% for tag in post.tags %}{{ tag }}{% if not loop.last %},{% endif %} {% endfor %}&quot;&gt;


&lt;!-- Facebook Meta Tags --&gt;
&lt;meta property=&quot;og:title&quot; content=&quot;{{ post.title }} | Fenn-CS&quot; /&gt;
&lt;meta property=&quot;og:type&quot; content=&quot;article&quot; /&gt;
&lt;meta property=&quot;og:description&quot;
  content=&quot;{{ post.introductory|length &gt; 100 ? post.introductory|slice(0, 100)|striptags~ &apos;&#x2026;&apos; : post.introductory|striptags}}&quot; /&gt;
&lt;meta property=&quot;og:image&quot; content=&quot;{{ post.image|media }}&quot; /&gt;

&lt;!-- Twitter Card data --&gt;
&lt;meta name=&quot;twitter:card&quot; content=&quot;summary&quot;&gt;
&lt;meta name=&quot;twitter:site&quot; content=&quot;Fenn-CS&quot;&gt;
&lt;meta name=&quot;twitter:title&quot; content=&quot;{{ post.title }} | Fenn-CS&quot;&gt;
&lt;meta name=&quot;twitter:description&quot;
  content=&quot;{{ post.introductory|length &gt; 60 ? post.introductory|slice(0, 60)|striptags~ &apos;&#x2026;&apos; : post.introductory|striptags}}&quot;&gt;
&lt;meta name=&quot;twitter:creator&quot; content=&quot;{{ post.user.getFullNameAttribute() }}&quot;&gt;
&lt;meta name=&quot;twitter:image&quot; content=&quot;{{ post.image|media }}&quot;&gt;
{% endput %}

&lt;!--/ Intro Skew Star /--&gt;
&lt;div class=&quot;intro intro-single route bg-image&quot; style=&quot;background-image: url(img/overlay-bg.jpg)&quot;&gt;
  &lt;div class=&quot;overlay-mf&quot;&gt;&lt;/div&gt;
  &lt;div class=&quot;intro-content display-table&quot;&gt;
    &lt;div class=&quot;table-cell&quot;&gt;
      &lt;div class=&quot;container&quot;&gt;
        &lt;h2 class=&quot;intro-title mb-4&quot;&gt; {{ post.title }} &lt;/h2&gt;
        &lt;ol class=&quot;breadcrumb d-flex justify-content-center&quot;&gt;
          &lt;li class=&quot;breadcrumb-item&quot;&gt;
            &lt;a href=&quot;#&quot;&gt;Home&lt;/a&gt;
          &lt;/li&gt;
          &lt;li class=&quot;breadcrumb-item&quot;&gt;
            &lt;a href=&quot;#&quot;&gt;{{ post.category.name }}&lt;/a&gt;
          &lt;/li&gt;

        &lt;/ol&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;!--/ Intro Skew End /--&gt;

&lt;!--/ Section Blog-Single Star /--&gt;
&lt;section class=&quot;blog-wrapper sect-pt4&quot; id=&quot;blog&quot;&gt;
  &lt;div class=&quot;container&quot;&gt;
    &lt;div class=&quot;row&quot;&gt;
      &lt;div class=&quot;col-md-8&quot;&gt;
        &lt;div class=&quot;post-box&quot;&gt;
          &lt;div class=&quot;post-thumb&quot;&gt;
            &lt;img src=&quot;{{ post.image|media }}&quot; class=&quot;img-fluid&quot; alt=&quot;&quot;&gt;
          &lt;/div&gt;
          &lt;div class=&quot;post-meta&quot;&gt;
            &lt;h1 class=&quot;article-title&quot;&gt;{{ post.title }}&lt;/h1&gt;
            &lt;ul&gt;
              &lt;li&gt;
                &lt;span class=&quot;ion-ios-person&quot;&gt;&lt;/span&gt;
                &lt;a href=&quot;#&quot;&gt;{{ post.user.getFullNameAttribute() }}&lt;/a&gt;
              &lt;/li&gt;
              &lt;li&gt;
                &lt;span class=&quot;ion-pricetag&quot;&gt;&lt;/span&gt;
                &lt;a href=&quot;#&quot;&gt;{{ post.category.name }}&lt;/a&gt;
              &lt;/li&gt;
              &lt;!--      &lt;li&gt;
                  &lt;span class=&quot;ion-chatbox&quot;&gt;&lt;/span&gt;
                  &lt;a href=&quot;#&quot;&gt;14&lt;/a&gt;
                &lt;/li&gt; --&gt;
            &lt;/ul&gt;
          &lt;/div&gt;
          &lt;div class=&quot;article-content&quot;&gt;
            {{ post.introductory|raw }}
            {{ post.content|raw }}
          &lt;/div&gt;
        &lt;/div&gt;


      &lt;/div&gt;
      &lt;div class=&quot;col-md-4&quot;&gt;
        &lt;div class=&quot;widget-sidebar widget-tags&quot;&gt;
          &lt;h5 class=&quot;sidebar-title&quot;&gt;Tags&lt;/h5&gt;
          &lt;div class=&quot;sidebar-content&quot;&gt;
            &lt;ul&gt;
              &lt;li&gt;
                &lt;a href=&quot;#&quot;&gt;Web.&lt;/a&gt;
              &lt;/li&gt;
              &lt;li&gt;
                &lt;a href=&quot;#&quot;&gt;Design.&lt;/a&gt;
              &lt;/li&gt;
              &lt;li&gt;
                &lt;a href=&quot;#&quot;&gt;Travel.&lt;/a&gt;
              &lt;/li&gt;
              &lt;li&gt;
                &lt;a href=&quot;#&quot;&gt;Photoshop&lt;/a&gt;
              &lt;/li&gt;
              &lt;li&gt;
                &lt;a href=&quot;#&quot;&gt;Corel Draw&lt;/a&gt;
              &lt;/li&gt;
              &lt;li&gt;
                &lt;a href=&quot;#&quot;&gt;JavaScript&lt;/a&gt;
              &lt;/li&gt;
            &lt;/ul&gt;
          &lt;/div&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/section&gt;
&lt;!--/ Section Blog-Single End /--&gt;

&lt;!--/ Section Contact-Footer Star /--&gt;
&lt;section class=&quot;paralax-mf footer-paralax bg-image sect-mt4 route&quot; style=&quot;background-image: url(img/overlay-bg.jpg)&quot;&gt;
  &lt;div class=&quot;overlay-mf&quot;&gt;&lt;/div&gt;</code></pre><h3 id="project-detail-page-component-">Project detail page component;</h3><pre><code class="language-HTML">title = &quot;project-detail&quot;
url = &quot;/projects/:item_slug&quot;
layout = &quot;main&quot;
is_hidden = 0

[item]
item = 1
itemSlug = &quot;{{ :item_slug }}&quot;
catListPage = &quot;portfolio/category&quot;
tagListPage = &quot;portfolio/tag&quot;
==
{% set project = item.item %}

{% put head %}
   {% partial &apos;head&apos; title=project.title %}
{% endput %}

&lt;!--/ Intro Skew Star /--&gt;
  &lt;div class=&quot;intro intro-single route bg-image&quot; style=&quot;background-image: url(img/overlay-bg.jpg)&quot;&gt;
    &lt;div class=&quot;overlay-mf&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;intro-content display-table&quot;&gt;
      &lt;div class=&quot;table-cell&quot;&gt;
        &lt;div class=&quot;container&quot;&gt;
          &lt;h2 class=&quot;intro-title mb-4&quot;&gt; {{ project.title }} &lt;/h2&gt;
          &lt;ol class=&quot;breadcrumb d-flex justify-content-center&quot;&gt;
         &lt;!--    &lt;li class=&quot;breadcrumb-item&quot;&gt;
              &lt;a href=&quot;#&quot;&gt;Home&lt;/a&gt;
            &lt;/li&gt;
            &lt;li class=&quot;breadcrumb-item&quot;&gt;
              &lt;a href=&quot;#&quot;&gt;{{ project.category.name }}&lt;/a&gt;
            &lt;/li&gt;
            --&gt;
          &lt;/ol&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;!--/ Intro Skew End /--&gt;

  &lt;!--/ Section Blog-Single Star /--&gt;
  &lt;section class=&quot;blog-wrapper sect-pt4&quot; id=&quot;blog&quot;&gt;
    &lt;div class=&quot;container&quot;&gt;
      &lt;div class=&quot;row&quot;&gt;
        &lt;div class=&quot;col-md-8&quot;&gt;
          &lt;div class=&quot;post-box&quot;&gt;
            &lt;div class=&quot;post-thumb&quot;&gt;
            	{% set image = project.images.first %}   
              &lt;img src=&quot;{{ image.path }}&quot; class=&quot;img-fluid&quot; alt=&quot;&quot;&gt;
            &lt;/div&gt;
            &lt;div class=&quot;post-meta&quot;&gt;
              &lt;h1 class=&quot;article-title&quot;&gt;{{ project.title }}&lt;/h1&gt;
              &lt;ul&gt;
             &lt;!--    &lt;li&gt;
                  &lt;span class=&quot;ion-ios-person&quot;&gt;&lt;/span&gt;
                  &lt;a href=&quot;#&quot;&gt;{{ project.user.getFullNameAttribute() }}&lt;/a&gt;
                &lt;/li&gt;
                &lt;li&gt;
                  &lt;span class=&quot;ion-pricetag&quot;&gt;&lt;/span&gt;
                  &lt;a href=&quot;#&quot;&gt;{{ project.category.name }}&lt;/a&gt;
                &lt;/li&gt; --&gt;
           &lt;!--      &lt;li&gt;
                  &lt;span class=&quot;ion-chatbox&quot;&gt;&lt;/span&gt;
                  &lt;a href=&quot;#&quot;&gt;14&lt;/a&gt;
                &lt;/li&gt; --&gt;
              &lt;/ul&gt;
            &lt;/div&gt;
            &lt;div class=&quot;article-content&quot;&gt;
               {{ project.description|raw }}
            &lt;/div&gt;
          &lt;/div&gt;
 
 
        &lt;/div&gt;
       &lt;!--  &lt;div class=&quot;col-md-4&quot;&gt;
          &lt;div class=&quot;widget-sidebar widget-tags&quot;&gt;
            &lt;h5 class=&quot;sidebar-title&quot;&gt;Tags&lt;/h5&gt;
            &lt;div class=&quot;sidebar-content&quot;&gt;
              &lt;ul&gt;
                &lt;li&gt;
                  &lt;a href=&quot;#&quot;&gt;Web.&lt;/a&gt;
                &lt;/li&gt;
                &lt;li&gt;
                  &lt;a href=&quot;#&quot;&gt;Design.&lt;/a&gt;
                &lt;/li&gt;
                &lt;li&gt;
                  &lt;a href=&quot;#&quot;&gt;Travel.&lt;/a&gt;
                &lt;/li&gt;
                &lt;li&gt;
                  &lt;a href=&quot;#&quot;&gt;Photoshop&lt;/a&gt;
                &lt;/li&gt;
                &lt;li&gt;
                  &lt;a href=&quot;#&quot;&gt;Corel Draw&lt;/a&gt;
                &lt;/li&gt;
                &lt;li&gt;
                  &lt;a href=&quot;#&quot;&gt;JavaScript&lt;/a&gt;
                &lt;/li&gt;
              &lt;/ul&gt;
            &lt;/div&gt;
          &lt;/div&gt;
        &lt;/div&gt; --&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/section&gt;
  &lt;!--/ Section Blog-Single End /--&gt;

  &lt;!--/ Section Contact-Footer Star /--&gt;
  &lt;section class=&quot;paralax-mf footer-paralax bg-image sect-mt4 route&quot; style=&quot;background-image: url(img/overlay-bg.jpg)&quot;&gt;
    &lt;div class=&quot;overlay-mf&quot;&gt;&lt;/div&gt;</code></pre><h3 id="power-the-contact-form">Power the contact form</h3><p>Replace the form in <code>home.htm</code> with following code, if you check closely just the a few parameters have been added to the opening form tag, but to avoid any confusion you may just replace the whole form.</p><pre><code class="language-html">        &lt;form class=&quot;flexiContactForm&quot; role=&quot;form&quot;
                               data-request=&quot;{{ contactForm }}::onMailSent&quot;
                               data-request-update=&quot;&apos;{{ contactForm }}::confirm&apos;: &apos;.confirm-container&apos;&quot;&gt;
                      &lt;div id=&quot;sendmessage&quot;&gt;Your message has been sent. Thank you!&lt;/div&gt;
                      &lt;div id=&quot;errormessage&quot;&gt;&lt;/div&gt;
                      &lt;div class=&quot;row&quot;&gt;
                        &lt;div class=&quot;col-md-12 mb-3&quot;&gt;
                          &lt;div class=&quot;form-group&quot;&gt;
                            &lt;input type=&quot;text&quot; name=&quot;name&quot; class=&quot;form-control&quot; id=&quot;name&quot; placeholder=&quot;Your Name&quot; data-rule=&quot;minlen:4&quot; data-msg=&quot;Please enter at least 4 chars&quot; /&gt;
                            &lt;div class=&quot;validation&quot;&gt;&lt;/div&gt;
                          &lt;/div&gt;
                        &lt;/div&gt;
                        &lt;div class=&quot;col-md-12 mb-3&quot;&gt;
                          &lt;div class=&quot;form-group&quot;&gt;
                            &lt;input type=&quot;email&quot; class=&quot;form-control&quot; name=&quot;email&quot; id=&quot;email&quot; placeholder=&quot;Your Email&quot; data-rule=&quot;email&quot; data-msg=&quot;Please enter a valid email&quot; /&gt;
                            &lt;div class=&quot;validation&quot;&gt;&lt;/div&gt;
                          &lt;/div&gt;
                        &lt;/div&gt;
                        &lt;div class=&quot;col-md-12 mb-3&quot;&gt;
                            &lt;div class=&quot;form-group&quot;&gt;
                              &lt;input type=&quot;text&quot; class=&quot;form-control&quot; name=&quot;subject&quot; id=&quot;subject&quot; placeholder=&quot;Subject&quot; data-rule=&quot;minlen:4&quot; data-msg=&quot;Please enter at least 8 chars of subject&quot; /&gt;
                              &lt;div class=&quot;validation&quot;&gt;&lt;/div&gt;
                            &lt;/div&gt;
                        &lt;/div&gt;
                        &lt;div class=&quot;col-md-12 mb-3&quot;&gt;
                          &lt;div class=&quot;form-group&quot;&gt;
                            &lt;textarea class=&quot;form-control&quot; name=&quot;body&quot; rows=&quot;5&quot; data-rule=&quot;required&quot; data-msg=&quot;Please write something for us&quot; placeholder=&quot;Message&quot;&gt;&lt;/textarea&gt;
                            &lt;div class=&quot;validation&quot;&gt;&lt;/div&gt;
                          &lt;/div&gt;
                        &lt;/div&gt;
                         {% if contactForm.enableCaptcha %}
                           &lt;div class=&quot;form-group&quot;&gt;
                                &lt;div class=&quot;g-recaptcha&quot; data-sitekey=&quot;{{ contactForm.siteKey }}&quot;&gt;&lt;/div&gt;
                           &lt;/div&gt;
                         {% endif %}
                        &lt;div class=&quot;col-md-12&quot;&gt;
                          &lt;button type=&quot;submit&quot; class=&quot;button button-a button-big button-rouded&quot;&gt;Send Message&lt;/button&gt;
                        &lt;/div&gt;
                      &lt;/div&gt;
                    &lt;/form&gt;</code></pre><h2 id="wrap-up">Wrap Up</h2><h3 id="adding-dynamic-place-holders-and-partials">Adding dynamic place holders and partials</h3><p>I would add the following placeholder to the head of the main layout :</p><pre><code class="language-HTML">{% placeholder head %}</code></pre><p>I would add the following partial </p><pre><code class="language-HTML">&lt;title&gt; {{ title ?: &apos;&apos; }} | Fenn-CS  &lt;/title&gt;</code></pre><h3 id="seo-for-blog-and-portfolio-projects">SEO for Blog and Portfolio Projects</h3><pre><code class="language-HTML">&lt;meta name=&quot;description&quot; content=&quot;{{ post.introductory|length &gt; 60 ? post.introductory|slice(0, 60)|striptags ~ &apos;&#x2026;&apos; : post.introductory|striptags }}&quot;&gt;
&lt;link rel=&quot;canonical&quot; href=&quot;{{ post.url }}&quot;&gt;
&lt;link rel=&quot;image_src&quot; href=&quot;{{ post.image|media }}&quot; type=&quot;image/png&quot; /&gt;
&lt;meta name=&quot;keywords&quot; content=&quot;{{ post.category.name}}, {% for tag in post.tags %}{{ tag }}{% if not loop.last %},{% endif %} {% endfor %}&quot;&gt;


&lt;!-- Facebook Meta Tags --&gt;
&lt;meta property=&quot;og:title&quot; content=&quot;{{ post.title }} | Fenn-CS&quot; /&gt;
&lt;meta property=&quot;og:type&quot; content=&quot;article&quot; /&gt;
&lt;meta property=&quot;og:description&quot; content=&quot;{{ post.introductory|length &gt; 100 ? post.introductory|slice(0, 100)|striptags~ &apos;&#x2026;&apos; : post.introductory|striptags}}&quot; /&gt; 
&lt;meta property=&quot;og:image&quot; content=&quot;{{ post.image|media }}&quot; /&gt;

&lt;!-- Twitter Card data --&gt;
&lt;meta name=&quot;twitter:card&quot; content=&quot;summary&quot;&gt;
&lt;meta name=&quot;twitter:site&quot; content=&quot;Fenn-CS&quot;&gt;
&lt;meta name=&quot;twitter:title&quot; content=&quot;{{ post.title }} | Fenn-CS&quot;&gt;
&lt;meta name=&quot;twitter:description&quot; content=&quot;{{ post.introductory|length &gt; 60 ? post.introductory|slice(0, 60)|striptags~ &apos;&#x2026;&apos; : post.introductory|striptags}}&quot;&gt;
&lt;meta name=&quot;twitter:creator&quot; content=&quot;{{ post.user.getFullNameAttribute() }}&quot;&gt;
&lt;meta name=&quot;twitter:image&quot; content=&quot;{{ post.image|media }}&quot;&gt;</code></pre><h3 id="email-setup-with-smtp">Email setup with SMTP</h3><p>To be able to send emails, you need to configure you site to work with a provider. Which ever provider you choose is up to you but OctoberCMS has out of box support for <code>Mailgun</code>, <code>SendMail</code>, <code>Mandrill</code> amongts other options, found on the settings page, I just selected <code>SMTP</code> and added my Mailgun credentials! In the video, I did mention sendpulse due to its free volume you might want to check that out if you dont have something you use already.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="http://stacknerds.com/content/images/2020/02/mail-config.png" class="kg-image" alt="Build a Portfolio Website with OctoberCMS" loading="lazy"><figcaption>OctoberCMS Mail Configuration Page</figcaption></figure><h3 id="resources">Resources</h3><p><em><strong>Github : </strong><a href="https://github.com/StackNerds/portfolio-website-octobercms"><strong>https://github.com/StackNerds/portfolio-website-octobercms</strong></a></em></p><p>Windows</p><ul><li><a href="https://www.freecodecamp.org/news/setup-a-php-development-environment-on-windows-subsystem-for-linux-wsl-9193ff28ae83/">How to set up a PHP development environment on Windows Subsystem for Linux (WSL)</a></li><li><a href="https://www.freecodecamp.org/news/a-simplified-approach-to-installing-laravel-using-homestead-on-windows-f5fc50e59af0/">A simplified approach to installing laravel using Homestead on windows</a></li><li><a href="https://www.youtube.com/watch?v=kuMTZowwjus\">Install &#xA0;Apache, PHP, MySQL on Windows</a>(YouTube)</li></ul><p>Linux</p><ul><li><a href="https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-ubuntu-18-04">How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 18.04 (Ubuntu 16.0 available)</a></li></ul><p>General</p><ul><li><a href="https://octobercms.com/docs/setup/installation">OctoberCMS official installation guide</a></li><li><a href="https://laravel.com/docs/">Laravel Docs</a></li></ul>]]></content:encoded></item><item><title><![CDATA[I want to learn how to code [Part 2]]]></title><description><![CDATA[When non-programmers hear about programming, some of the first things that usually come to their minds is how some big names in "Computer Programming" (actually technology) such as Mark Zuckerberg who created a revolutionary website; Facebook, Bill Gates who built a tech empire; Microsoft.]]></description><link>http://stacknerds.com/i-want-to-learn-how-to-code-part-2/</link><guid isPermaLink="false">6420ac4203a18500011639d1</guid><category><![CDATA[Computers]]></category><category><![CDATA[Code]]></category><category><![CDATA[Programming]]></category><category><![CDATA[Learn]]></category><category><![CDATA[Technology]]></category><category><![CDATA[StackNerds]]></category><category><![CDATA[Information-Technology]]></category><dc:creator><![CDATA[Fon E. Noel NFEBE]]></dc:creator><pubDate>Thu, 16 Jan 2020 21:36:10 GMT</pubDate><media:content url="http://stacknerds.com/content/images/2020/01/programming-and-csc.png" medium="image"/><content:encoded><![CDATA[<img src="http://stacknerds.com/content/images/2020/01/programming-and-csc.png" alt="I want to learn how to code [Part 2]"><p>So yeah! the <em>&quot;literature lecture&quot;</em> in part 1 of this series on deciding whether you should really learn how to code is gone! You are now well versed with the reason why you have decide to learn coding and I hope that generates more passion in you. If you are here, you are most likely on a path to become a computer programmer. Congratulations! Let&apos;s go ahead and now answer the first question that usually come up : So, <em>where do I start, what language do I learn first?! &#xA0;</em>Well, pause.</p><p>When non-programmers hear about programming, some of the first things that usually come to their minds is how some big names in <em>&quot;Computer Programming&quot; (actually technology)</em> such as <em><strong>Mark Zuckerberg</strong></em> who created a revolutionary website; Facebook, <em><strong>Bill Gates</strong></em> who built a tech empire; Microsoft, <em>maybe because he could code </em>and all the others like <em><strong>Steve Jobs</strong></em> who wielded some form of innovation with tech. <em>It&apos;s a talk of disruption.</em></p><p>Yes, there is some correlation. It makes sense to hear of programming and think in that way maybe because you don&apos;t have the details; but wait, most of these people are big names in Technology and Entrepreneurship not exactly computer programming. For example among the 3 mentioned names only Bill Gates is a computer programmer doubling as an entrepreneur. Steve Jobs was a business magnet, industrial designer, investor and entrepreneur. <em>Oops, someone looks surprised.</em> It was <strong><em>Steve Wozniak</em></strong> who championed technical innovation at Apple and what Steve Jobs had to offer was his <em>&quot;design and business&quot;</em> expertise while Mark Zuckerberg is a psychology major who learned programming and created something that changed the world. Wikipedia describes him as an American internet entrepreneur and philanthropist. (<em>Which icons do we have then in programming? Google up <strong>Guido Von Rossum</strong> or <strong>James Gosling</strong> or maybe <strong>Linus Torvalds</strong>. Well well, that&apos;s not the point but it does give you an idea! They are so many of them!</em>)</p><p>So whenever people who get inspired by these tech innovators decide to start learning programming, What they would expect at first from a Computer programming introduction is a lecture like maybe <em>&quot;first steps in building mobile apps</em>&quot; or maybe <em>&quot;introduction to programming websites&quot;</em>. They want to get up to speed fast and change the world like Zuckerberg or Bill Gates. Well I am sorry! Introduction to Computer Programming is in fact synonyms to Introduction to Computer Science. The good news is, all what you expected is buried in Computer Science. So finally! welcome to <strong>I want to learn Computer Science and Programming part 2!</strong> Let&apos;s start.</p><p>Following our new perspective, the questions <strong>Where do I start and</strong> <strong><em>What programming language do I learn first! </em></strong><em>can be answered separately which implies the first step to learning programming it not learning a programming language but learning how to solve problems. But, as you can already guess the questions and their answers look like;</em></p><!--kg-card-begin: html--><p> 1. Where do I start <span style="font-size:30px; font-weight:bold;"> &#x2192; </span> <i>Fundermentals of Computer Science.</i><br>
2. What language should I learn first <span style="font-size:30px; font-weight:bold;"> &#x2192; </span> <i>Usually easier to answer after Learning &quot;Fundermentals of Computer Science&quot;. Also, opinions on what is best to learn first are divided  but in this article I exploit some common choices and promote languages that are near computer architecture for beginners. Of coures each option has it&apos;s pro and cons. </i>
</p><!--kg-card-end: html--><h2 id="fundamentals">Fundamentals </h2><blockquote>If you&#x2019;re a self-taught engineer or bootcamp grad, you owe it to yourself to learn computer science. Thankfully, you can give yourself a world-class CS education without investing years and a small fortune in a degree program. -<em>TeachYourselfCS.com</em></blockquote><p>If you already tried programing in the past and &quot;stopped growing&quot; at some point, <em>&quot;<u>have built some websites in the past</u>&quot;</em> or learned how to do some very specific kind of programming task like building an app from a bootcamp, you might have come across certain words and or concepts that really really got you confused and lost somewhere along the line as your knowledge grew after such a training. Unless you are pretty smart, you may have noticed your inability to try or take on certain kinds of tasks or problems that other elite programmers would. <em>There&apos;s something missing.</em></p><p>Also, when or if you start learning programing, there are lots of &quot;jargons&quot; (actually terms) that usually come up when explaining concepts that usually would require going back to computer science or computer architecture. Proceeding to teach programming without at least giving the learner these basics from computer science would always mean watering down the meaning of such concepts.</p><p>A good example is when we try to explain what a <strong><em>Variable</em></strong> is. When explaining the concept of variables to someone who does not understand what <strong><em>Memory and Memory Locations </em></strong><em>are, </em>it&apos;s highly possible to create a false abstract view or way of seeing variables in the learners mind. &#xA0;<em>Well well, we may simply define a variable as a value or entity that can change just as we know and see it in common sense. </em>This could work at first but things would get nasty when you try to go deeper. </p><p>Actually for someone to understand concretely, what a <em>variable with respect to computers and programming </em>means, this person must understand the concept of <em>memory, addressing and naming (bother not about them for now)</em>. You may know a variable in anyway that allows you proceed with the basics. <strong>That&apos;s ok, but what is wrong with learning the accurate thing? o<em>r</em> building on the very foundations that determine whether the structure you build collapses or stands?</strong></p><p>So if you want to learn how to program, it then, makes more sense to first of all understand how what you would be programming (the computer) works. <em>Yeah yeah, </em> so what are the things taught in Computer Science and what are the benefits, you ask.</p><p>Well, you would learn <em>Computer Architecture, Data Structures and Algorithms, Operating Systems, Computer Networking, Databases, Languages and Compilers, Computer Systems (like clouds)</em> and <strong><em>Programming</em></strong>! This does not follow an order but CSC courses are usually organized in a way that would permit you use, your previous knowledge to learn the new concepts being introduced. At the end everything would connect. You only need the basics, I mean the very basic of these topics which are of course non-exhaustive to develop fulfilling and well-remunerated engineering skills over time, it may be valuable commercial work, a breakthrough open-source project like <em>Linux</em>, <em>Firefox </em>or another programming framework like <em>Laravel?</em> :), becoming a great technical leader or making high-quality individual contributions.</p><p>A good place to start with Computer Science? Well there are a couple of great online courses, if you are okay with reading, which I strongly recommend, the Open Source Society University has a great <a href="https://github.com/ossu/computer-science">CSC course</a> &#xA0;or you can also follow the great recommendations at <a href="https://teachyourselfcs.com/">TeachYourselfCS.com</a>. If you prefer videos you can follow <a href="https://www.youtube.com/channel/UCX6b17PVsYBQ0ip5gyeme-Q">CrashCourses</a>&apos; <a href="https://youtu.be/tpIctyqH29Q">Computer Science Series</a> or maybe FreeCodeCamp&apos;s <a href="https://www.youtube.com/watch?v=q7tlgZg4Q1o&amp;list=PLWKjhJtqVAbmfoj2Th9fvxhHIeqFO7wOy">Computer Science and Software Engineering Theory with Briana</a>.</p><p>Don&apos;t get it twisted. The Computer Scientist and the Programmer are NOT exactly the same and the role of computer science is not to teach you programming specifically, the Programmer, I mean that elite programmer, just have to understand <em>&quot;very very&quot; </em>well the fundamentals of Computer Science to be able to perform his craft nobly.</p><h2 id="what-language-to-learn-first"><br>What language to learn first?</h2><p>I did mention that there&apos;s no designated language to start with and the decision is influenced by opinions <em>(mostly academic ones not random opinions, like gossip on footballers. For example what language would Harvard or MIT use?). </em>So, there&apos;s no fixed rules. However, there are widely accepted and commonly used languages such as <em>Python</em>, <em>Java</em>, <em>C</em> and now <em>Javascript</em> used in introducing programing. </p><p>One of the most favored criterion that is used in picking introductory programming languages is <em>simplicity</em> since it&apos;s usually for beginners, however the criteria I recommend is generality (a general-purpose language), architectural closeness of a language to computer organization and sufficient human friendliness together over simplicity, let&apos;s review some top choices with the arguments for why you should pick any of them.</p><p>Last stop before we review the programming languages, I have mentioned the term <strong>Computer Architecture</strong> and or <strong>Computer Organization</strong> a couple of times. You may ask, <em>&quot;what do you mean by understanding architecture.&quot;, &#xA0;&quot;Should I know where the hard drive is, or be able to tear down the motherboard and locate the C-MOS battery before I can learn programming?&quot; </em>Well, no. </p><blockquote>Computer organization is an important first look at computing below the surface of software. In our experience, it&#x2019;s the most neglected area among self-taught software engineers. - TeachYourSelfCS.com</blockquote><p>It&apos;s just basically understanding how the computer is organized conceptually at the level of the hardware, which eventually allows software to run. So technically it would help you among other things, know where a hard drive falls in the organization of a computer, conceptually. </p><h3 id="c-c-">C/C++</h3><p>Machine language is the only language the computer understands! It&apos;s just working with a couple of electric bits, it&apos;s complex and suicidal to program in machine language, so high level programming languages like C were created to save your head. So basically, all code you write in any programming language is converted to machine language. Despite its difficulty is the fastest and most efficient language, it follows the exact architecture of the computer with near zero abstraction. <em>Our insufficient &quot;intelligence&quot; is the only thing drawing us back, otherwise all programs would be written in Machine Language (At first, they were, that&apos;s why programmers where extremely few and highly gifted individuals). </em></p><p>C/C++ considered the bread and butter of programming, a language in which almost all low level systems such as your Mac OS, or Windows is written in. Infact C is the language that was used the create the Python programming language, which is undoubtedly the most popular language used in introducing programming. So why C? You sure &#xA0;is not interested in making another OS or programming language or maybe you are but it&apos;s the most popular choice so why would I advocate for it first?</p><p>C is the closest programming language to machine language which is flexible enough for humans to easily work with, it models problems from the perspective of a computer and remember the goal is to learn programming while understanding the basics of computers and its science. At some point, you part would change and you might get into game development, web development, or machine learning applications, your choice of language would now be influenced by its application. Starting to learn programming with C means, you would hardly get surprised by the way other languages are organized and works. Many languages including Python, Java and Google&apos;s Go and recently Dart and C-Styled. Meaning they learn syntax and semantics from C. It might not be the simplest language to start with, but it would help you understand a lot of things that would help in other programming languages when you pick them up.</p><p>Usually when you start with a certain programming language and move to another one, your brain would expect the new programming language to work like the first one you learnt and hence think of the new language in terms of the old one. If you think all that is cool, well then start with C otherwise, let look at python :).</p><h3 id="python">Python</h3><p>Python is widely accepted as the best &#xA0;programming language to learn first. Python is extremely simple to begin with and its fast. Unlike C, Python is an interpreted language and can be more forgiving with errors. Python is implemented in C and as a result, &#xA0;borrows from the C power. Python is more abstracted than C, provides a simpler syntax, much faster to debug but generally slower (the significance of speed here is quite low though). Python makes it way simpler to implement various data structures and carry out computations on them. Due to this, python is a great language to learn ALGORITHMS which is basically what gives &quot;thought&quot; to computers.</p><p>Python is highly used in the field of Machine Learning and AI. It also has the advantage that it works on more platforms that C, for example we build web applications in Python but this is not the case with C.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="http://stacknerds.com/content/images/2020/01/python-c-plusplus-error.jpeg" class="kg-image" alt="I want to learn how to code [Part 2]" loading="lazy"><figcaption>Python versus C/C++ error messages.</figcaption></figure><h3 id="java">Java</h3><p><br>Java is a general purpose platform independent language which enforces <strong><em>Object Oriented Patterns</em></strong> in which almost everything is modelled as an object which is closed to the way we humans see, understand and think about things. Java is widely used for building &#xA0;enterprise applications such as banking systems and is known to be extremely powerful though a little slower than counterparts like C because it runs on a virtual machine (the Java Virtual Machine - JVM) for this reason, Java programs need to be &quot;interpreted&quot; to first run on the JVM before being finally being &quot;interpreted&quot; to run on the actual machine.</p><p>Java intentionally hides several details that C exposes and does work that you are required do to yourself in a language like C automatically (for example Garbage Collection). </p><p>Java looks a lot like C/C++ but has fewer low-level facilities which helps to hide the underlying computer architecture. For this reason, Java is a good language to learn after C as it would help you better understand ABSTRACTION (the way implementation details are hidden) &#xA0;a core computer science concept.</p><h2 id="moving-with-the-tides-">Moving with the tides.</h2><p>We could say time moved fast but no! Technological evolution moved so fast. Computing technology improved and worrying about certain things like speed has become lesser burdens. The industry has grown also, many tools sprout out, new domains have been created and languages to match these specificities have come up. So away from sorely prioritising architecture over everything, we would consider some of these changes and get into another set of possibilities.</p><p>I don&apos;t particularly recommend &quot;moving with the tides&quot; as a beginner way to learn programming but if learning to program is not purely motivated by the drive to truly understand the facets or computer science and programming, but is more inclined towards factors such as usability, adoption and job market then here are some languages you can learn first;</p><h3 id="golang">GoLang</h3><p><strong>Go</strong> is a statically typed, compiled, general purpose programming language that specializes in concurrency developed at Google. Go is syntactically similar to C, but includes facilities for &#xA0;memory safety, garbage collection and structural typing. (If you don&apos;t understand these words then Go as predicted may be a bad choice for a starting programming language, but moving with the tides still.)</p><p>Golang is very much like C but has facets that has seen it being mostly used and promoted as DevOps language due to its highly concurrent nature and sleekness in problems involving distributed networks, cloud services, and other complex back-end-type implementations. You can do pretty much anything with Go.</p><h3 id="ruby">Ruby </h3><p><strong>Ruby</strong> is an interpreted, high-level, general-purpose <strong>programming language</strong>. It has grown in popularity over time and the author <a href="https://en.wikipedia.org/wiki/Yukihiro_Matsumoto">Yukihiro &quot;Matz&quot; Matsumoto</a> said he made because the object oriented modules in python &quot;felt&quot; like plugins and that he did not like that so he decided to make a genuine object-oriented, easy-to-use scripting language. Many successful projects including github.com, gitlab.com, airbnb and dribble were built on Ruby. </p><h3 id="javascript">JavaScript </h3><p>Javascript initially design to work within the browser as a frontend language has grown not only in the frontend sector but has grown beyond the browser it was initially designed for. &#xA0;Even though javascript is mentioned here, it is, according to my chosen criteria the worst language to learn first. So because, it fails the very first criteria by not being a general-purpose language and the second by being highly abstracted, however it&apos;s still a good domain specific language to start with if to say, you, for example simply want to be a web developer.</p><p>There are a handful of other languages including PHP and C# (pronounced C-Sharp) that you might find being recommended as first learns, most of them are specialised and or highly abstracted so do not fit as good recommendations according to our chosen criteria and by the way, we can&apos;t even mention all of them.</p><p>One thing you might have noted is that, Python, Java, Go and many other languages &#xA0;have <em><strong>C-like</strong></em> syntax and borrowed concepts from it! Even JavaScript has a C-like syntax but is almost completely nothing like C conceptually. You conclude but when doing so, remember that new languages would always come up and the languages in &quot;moving with the tides&quot; section should ideally be updated as things change (dynamic). What would never change, is the fundamentals of Computer Science and Programming. :) </p><p>Watch article video on YouTube: <a href="https://youtu.be/VwEvoGS4KEc">https://youtu.be/VwEvoGS4KEc</a></p><h3></h3><h3></h3>]]></content:encoded></item><item><title><![CDATA[I want to learn how to code. [Part 1]]]></title><description><![CDATA[So you want to learn how to code huh? and you are wondering where you would start? Well well, the answer is, right here! The first step to learning anything is learning how to go about learning that thing. Learning how to learn! ]]></description><link>http://stacknerds.com/i-want-to-learn-how-to-code/</link><guid isPermaLink="false">6420ac4203a18500011639cd</guid><category><![CDATA[Computers]]></category><category><![CDATA[Code]]></category><category><![CDATA[Programming]]></category><category><![CDATA[StackNerds]]></category><category><![CDATA[Information-Technology]]></category><dc:creator><![CDATA[Fon E. Noel NFEBE]]></dc:creator><pubDate>Thu, 16 Jan 2020 19:30:00 GMT</pubDate><media:content url="http://stacknerds.com/content/images/2020/01/code-screen-stacknerds.jpg" medium="image"/><content:encoded><![CDATA[<img src="http://stacknerds.com/content/images/2020/01/code-screen-stacknerds.jpg" alt="I want to learn how to code. [Part 1]"><p>So you want to learn how to code huh? and you are wondering where you would start? Well well, the answer is, right here! The first step to learning anything is learning how to go about learning that thing. <strong><em>Learning how to learn! </em></strong></p><p>First things first, why do you want to learn how to code or program by the way? Honestly, maybe you may end up not needing to learn how to code if you answer this question correctly. Let&apos;s pick a few common reasons people are learning how to code and go through them.</p><ul><li>I have an app idea!</li><li>I want to start a technology company.</li><li>I want to build an app like Facebook and become a billionaire :)</li><li>I would like to build an app or website for my company/business.</li><li>Now is the tech era, everyone is learning how to code, I should too.</li><li>I want to make my own website!</li><li>I am learning for fun.</li><li>I admire programming, I want to become a computer programmer/engineer/scientist.</li><li>I love computers, I would really love to understand how they work.</li><li>I want to switch carriers and become a web developer, I see a lot of people earning so much from that.</li><li>I am pursuing a path in engineering (or maybe accounting) and have understood I need it.</li></ul><p>These common reasons, which are not mutually exclusive are likely to come from 3 main types of people who primarily have different objectives. Their objective is usually not necessarily knowing how to code but a means to and end. Just before I name these categories, Let me tell you a &quot;Spanish fiction&quot; and then, you would be able to decide where you fall and if you really &quot;want to learn how to code&quot;. Here we go!</p><p>Imagine you saw someone interesting and successful in the news who speaks Spanish and from what they are saying, Spanish is really profitable to learn but then, you find out this fellow is only on the news because s/he made a single statement in Spanish! Maybe, &quot;Make Spain great again!&quot; which is literally &quot;Haz que Espa&#xF1;a vuelva a ser grande!&quot; in Spanish!</p><p>So you like this fellow and would like to do something similar. You have two options;</p><ul><li>Learn how to make the statement &quot;Make Spain great again&quot; in spanish [Learn how to make a single sentence] <strong>OR</strong></li><li>Learn how to make statements in spanish as a whole.</li></ul><p>Now by going through the first route and simply learning how to make that single sentence, you might eventually learn how to make statements (speak) in Spanish. But this is only easy if, there exist only a few words in Spanish with few rules and exceptions on how statements are constructed. In addition to that, you would have to learn how to make so many other statements in Spanish by getting their direct translations. That would be a very difficult way of learning spanish!</p><p>However, just learning how to make that single sentence and perhaps a few others in Spanish is extremely easy but trying to learn Spanish as in the complete language as a whole by trying to memorize different translations of statements that you learned how to make is, as you see for a second time extremely difficult.</p><p>Learning how to make certain statements like, &quot;Good morning!&quot; or &quot;You look awesome&quot; in Spanish, is definitely more interesting than learning the Spanish Alphabet and so that&apos;s why it&apos;s tempting to try to learn spanish by simply learning how to make individually translated sentences.</p><p>If all you wanted was to have a particular statement in Spanish, and you are not interested in Spanish as whole or is interested but just more focused on having Spanish sentences themselves than learning Spanish, you could simply paste the statement &quot;Make Spain great again&quot; in google translate and you would get what you want which is the Spanish equivalent. It might not be very accurate, but it works!</p><p>However you don&apos;t know how Google translate came about that and why it is that way if you were really interested in spanish and not just mere statements or perhaps need spanish as prerequisite to do some stuff, then you would go with route two which is actually learning spanish; By so doing, you would learn numbers, letters, alphabet, words, types of words (such as verbs and nouns), sentences, punctuation and more!</p><p>Notice that you would in the end, still learn how to make the statement you wanted to make! Just that, this time, you would not just be able to make statements in spanish but you would understand how statements are made and perhaps you can write a story in spanish!</p><blockquote>The purpose of the tale is to help you realize that coding is like speaking a natural language say French or Portuguese and also, very importantly, help you see that learning how and what to think is more important than learning a language otherwise you would have nothing meaningful to say in any language you learn.</blockquote><p>Back to our categories of people and reasons why they learn how to code. Note that the categories of people and their reasons why they want to learn how to code are not mutually exclusive but you can see the big picture! So the categories;</p><h3 id="category-1-entrepreneurs-and-business-professionals">Category 1: Entrepreneurs and Business Professionals</h3><p>If you have a reason such as I have an app idea, I want to start a technology company, I want to build an app like Facebook and become a billionaire or I would like to build an app or website for my company/business. Then, you most likely fall into this category!</p><p>You are most likely<strong><em> only trying to get something done!</em></strong> and In my opinion, you should focus on that instead. If you want to build an app check out how you can start building <strong>a fairly good one</strong> as soon as possible! <em>You would be surprised you can already start making one.</em> If you want to build a tech company you should ask yourself what problem your tech company is trying to solve or what services it&apos;s trying to provide and first, see if you can start building this solution right away! Maybe it&apos;s just another simple app or that not-so-simple project that requires you to find people with strong technical backgrounds?! What if you needed a website for your business? It&apos;s possible to make one yourself, for free without learning how to code and that&apos;s what you should be focusing on! your objective.</p><p>Since these reasons and categories are not mutually exclusive, you might start and quickly find out you need to go deeper and then find yourself in category 3 (which you would see) but if you are really just about <strong><em>the objective and getting something started and done</em></strong>, you should figure out if you can do it without necessarily &quot;learning how to code.&quot; or maybe decide if <em>learning and understanding the processes</em> then getting a technical partner is the better way.</p><p><em>Take a step back! Maybe, Microsoft Excel is simply what you need. :)</em></p><h3 id="category-2-enthusiasts">Category 2: Enthusiasts</h3><p>On the other hand, you if you want to learn how to code because, it seems to be trending, &quot;it&apos;s the new big thing&quot; and you have got reasons like everyone else is learning how to code, I should too, I want to make my own website or I want to learn for fun, then you are very likely to be an enthusiast, <strong><em>you are quite interested</em></strong> in the subject of coding and is looking for a good way to be involved. That&apos;s still great. You are somewhere in the middle :).</p><p>Again, you might end up finding that you are not just an enthusiast but a highly passionate individual who wants to get deep into programming, tech et al.</p><h3 id="category-3-engineers-computer-scientists-nerds">Category 3: Engineers, Computer Scientists, Nerds</h3><p>If you are totally fascinated by computers and really want to know how they work, or maybe you are interested in how you can apply programming to solve complex problems in your sector, maybe medicine or stocks and investment?</p><p>Good with Electronics? Maths? Sciences? Good at fixing &quot;technical stuff&quot; naturally without any conventional training done? Maybe you are actually starting a course in Engineering or Computer Science itself and you can&apos;t wait to reach the &quot;coding part&quot;? umm, then you probably fall here.</p><p>So now you know, making a website does not necessarily imply coding, neither does building an app. What then is your decision? To proceed and learn how to code? <strong><em>or</em> </strong>Learn the tools you can use to achieve your goals without coding?</p><p>Whichever part you are taking is great! In part 2 of this piece, next steps for those who ultimately decide to learn programming are outlined and in part 3, advice on getting things done without necessarily coding.</p><p>Watch article video on youtube: <a href="https://youtu.be/TtJumU2s26k">https://youtu.be/TtJumU2s26k</a></p>]]></content:encoded></item><item><title><![CDATA[Welcome to StackNerds!]]></title><description><![CDATA[I started building this "stack" because I believe with the internet having brought us all to "one place", it would be possible for us at stacknerds.com to teach millions of people technology and turn them into digital nomads.]]></description><link>http://stacknerds.com/welcome-to-stacknerds/</link><guid isPermaLink="false">6420ac4203a18500011639cc</guid><category><![CDATA[StackNerds]]></category><category><![CDATA[Technology]]></category><category><![CDATA[Computers]]></category><category><![CDATA[Information-Technology]]></category><dc:creator><![CDATA[Fon E. Noel NFEBE]]></dc:creator><pubDate>Mon, 30 Sep 2019 23:06:01 GMT</pubDate><media:content url="http://stacknerds.com/content/images/2019/09/stacknerds-welcome.jpg" medium="image"/><content:encoded><![CDATA[<img src="http://stacknerds.com/content/images/2019/09/stacknerds-welcome.jpg" alt="Welcome to StackNerds!"><p>Hello there! I am called Noel, I created StackNerds. I am excited you are reading the StackNerds welcome memo. It does not matter when you are reading this, it is the first publication ever on stacknerds.com and it defines who we are as a community and I am happy you considered looking at it. I started building this &quot;stack&quot; because I believe with the internet, we are in &quot;one place&quot;. It is then possible for us at stacknerds.com to reach millions of people with the gospel of technology and turn them into digital nomads.</p><p>We have moved past the times when to compete, our muscles were more important! That is what the industrial revolution was designed for. Now, for us to compete we need to put our brains to work instead. Yet, the world is so big and we need to scale. Things are going so fast we need to work faster and there are millions of people to reach. It could be difficult!<br>The best way to do your work faster and leave it exposed to billions of people roaming the digital world is to build on digital frameworks. But first, we need to build our digital prowess.</p><p>It does not matter whether you are a doctor or a painter! You can do more with computers when you understand the mechanisms of automation they provide and can reach more people when you understand the depth of connectivity the internet promises.</p><p>All of this, you can do without having to become a programmer, engineer or a computer scientist. Even if you are, or want to be any of these things the Stacknerds community is for everyone who simply, is interested in learning or teaching technology and or becoming a digital nomad [Whatever that means to you].</p><p>From understanding the basics of technology, what you can do with it and what options are available for you, or getting deep into tech, learning how to code and building something for yourself, the StackNerds community is for you. We are very happy to have you!</p>]]></content:encoded></item></channel></rss>