<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Arnold Ho</title>
    <description>The latest articles on DEV Community by Arnold Ho (@_arnoldho).</description>
    <link>https://dev.to/_arnoldho</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F689705%2Fc84afc91-e104-4cbf-b3b4-cc0d13714451.png</url>
      <title>DEV Community: Arnold Ho</title>
      <link>https://dev.to/_arnoldho</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/_arnoldho"/>
    <language>en</language>
    <item>
      <title>My honest review of the Le Wagon London bootcamp</title>
      <dc:creator>Arnold Ho</dc:creator>
      <pubDate>Thu, 30 Dec 2021 15:54:32 +0000</pubDate>
      <link>https://dev.to/_arnoldho/my-honest-review-of-the-le-wagon-london-bootcamp-3im7</link>
      <guid>https://dev.to/_arnoldho/my-honest-review-of-the-le-wagon-london-bootcamp-3im7</guid>
      <description>&lt;p&gt;Hey friends,&lt;br&gt;
The main reason that I have started this blog in the first place was to document my learning journey over my 9-weeks intensive bootcamp at &lt;a href="https://www.lewagon.com/london?utm_term=le%20wagon&amp;amp;utm_campaign=UK+%7C+EN+%7C+Brand&amp;amp;utm_source=adwords&amp;amp;utm_medium=ppc&amp;amp;hsa_acc=2500439188&amp;amp;hsa_cam=14249821085&amp;amp;hsa_grp=124428434623&amp;amp;hsa_ad=538743495835&amp;amp;hsa_src=g&amp;amp;hsa_tgt=kwd-302815296608&amp;amp;hsa_kw=le%20wagon&amp;amp;hsa_mt=b&amp;amp;hsa_net=adwords&amp;amp;hsa_ver=3&amp;amp;gclid=CjwKCAiA78aNBhAlEiwA7B76p4DYw6p-Z-dOjLNwdvLbw9XHD95BcfdsXRaOWV9Rhpi7049wSbWydBoCji8QAvD_BwE"&gt;Le Wagon&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Over the course of the bootcamp, things got pretty intense so I really didn't have the time and headspace after coding 9-6 to write more about coding.&lt;/p&gt;

&lt;p&gt;But now that the bootcamp has ended last week and I have plenty of time in my hands, what better time than now could I be writing about my experience with Le Wagon when its still fresh in my mind? I will be giving an honest review of what I like and dislike about the bootcamp.&lt;/p&gt;

&lt;h2&gt;
  
  
  Would I recommend it? Is it worth my money?
&lt;/h2&gt;

&lt;p&gt;Short answer: Yes&lt;br&gt;
Long answer: Yes, but I need more context as to what kind of learner you are. As with most bootcamps, you get out as much as you put in. Things gets pretty intense pretty quickly and there is very little room to take a break. 9 weeks will fly pass quickly and at some point during the bootcamp you will probably experience imposter syndrome (I did massively), but you can always book a 1:1 chat with your teachers and, they are extremely knowledgable and will point you towards the right resources. If you prefer a slower learning journey, you might prefer taking an MOOC or taking a more self directed route such as doing the &lt;a href="https://www.frontendmentor.io/"&gt;FrontEnd Mentor Challenges&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is it worth it if I can find all the resources online?
&lt;/h2&gt;

&lt;p&gt;For me personally, yes it was worth it. Online resources such as &lt;a href="https://www.theodinproject.com/"&gt;The Odin Project&lt;/a&gt; or &lt;a href="https://scrimba.com/"&gt;Scrimba&lt;/a&gt; are great alternatives to spending upwards of 6000 pounds on a coding bootcamp. It's true that most resources can be found online, but that argument can be extended to a full computer science curriculum as well. There are famous challenges such as the &lt;a href="https://www.scotthyoung.com/blog/myprojects/mit-challenge-2/"&gt;MIT challenge&lt;/a&gt; where people self-study the entire MIT computer science curriculum. Is MIT worth it? It depends on your context.&lt;/p&gt;

&lt;p&gt;What I find useful is someone curating and designing a curriculum for me which is practical in terms of getting me to a level good enough for me to land a job. I am also able to get experience working as a team of four on the same code base using GitHub which is something I would not get as a solo learner.&lt;/p&gt;

&lt;p&gt;Another important resource is the push to code everyday, you've probably heard the phrase multiple times that 'you are the average of the people that you spend most time with'. When you are put in an environment where everyone is aiming for the same thing and struggling in the same way, you are less likely to give up. And when you hit a roadblock it is much better to find a buddy/TA to look at your code and debug together rather than struggling alone in silence.&lt;/p&gt;

&lt;h2&gt;
  
  
  What about career?
&lt;/h2&gt;

&lt;p&gt;The most important aspect of judging the quality of a bootcamp is probably the quality of jobs that are available to their graduates. I think career is something which you can only get out as much as you put in. For me personally, I have started applying as soon as I can (as soon as I started learning Rails, but before project week).&lt;/p&gt;

&lt;p&gt;Le Wagon organises a lot of career talks by their hiring partners. In a way they helped me filter out the companies with a good culture in terms of growth, learning and work life balance. I applied to 4 jobs through Le Wagon's hiring partner events, heard back and proceeded with all of them, got to the final stage with 2 of them and got an offer with the first job that I applied through Le Wagon before the programme ended. I would say my case is quicker than usual but Le Wagon did give me all the support I needed in order to find a job.&lt;/p&gt;

&lt;p&gt;I have also had a few meetings with the career support team and they helped me polished my CV, got my GitHub up to date and set up a few profiles on job site to be job hunt ready. All in all I highly rate the career support of Le Wagon.&lt;/p&gt;

&lt;h2&gt;
  
  
  The best part of Le Wagon
&lt;/h2&gt;

&lt;p&gt;The highlight of Le Wagon is definitely the project weeks. This is when we put together all the knowledge we have learnt from the past 7 weeks into practice and make actual web apps. We learnt to work as a team, raising tickets for issues, having stand ups to discuss what we need to tackle, properly raising PR on GitHub and the whole project management side to developing a web app.&lt;/p&gt;

&lt;p&gt;Throughout the whole project, the teaching assistants have been immensely helpful with trouble shooting anything and giving us helpful suggestions to improve our app. When we feel stuck we can always pair programme with our buddies.&lt;/p&gt;

&lt;p&gt;In the end we managed to patch together (with a lot of duck tapes) two web apps that are fully functional. One is an &lt;a href="//airseaandsea.herokuapp.com"&gt;AirBnB market place clone&lt;/a&gt; and the other one is an &lt;a href="//www.sous-chef.site"&gt;all-in-one cooking management app&lt;/a&gt;. I thoroughly enjoyed the whole process and getting to know and work closely with my team mates to &lt;a href="https://www.youtube.com/watch?v=r_QXx-iqk0E&amp;amp;feature=youtu.be&amp;amp;ab_channel=LeWagon"&gt;produce these web apps&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criticisms of Le Wagon
&lt;/h2&gt;

&lt;p&gt;I would say the only cons of Le Wagon is the lack of training in the front end. We had around a week and a half's training on HTML, CSS, and vanilla Javascript. So for anyone who is interested in a career in the front end, they might need to continue their training elsewhere to learn a modern front-end framework. However, I do understand the rationale behind placing less emphasis on the front-end as this is a practical limitation. Le Wagon is focused on training us to have enough knowledge to ship a fully functional CRUD based web app in 9-weeks, we can learn enough front-end to be dangerous and learn more fancy frameworks later once we have the knowledge to start shipping web apps end to end.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are my next steps?
&lt;/h2&gt;

&lt;p&gt;I am starting my full time job in January as a Software Engineer. I would say Le Wagon has prepared me to be able to continue learning as it has taught me the right method to learn (a.k.a how to google the right way).&lt;/p&gt;

&lt;p&gt;I am planning on continue learning Computer Science fundamentals so I am currently taking the &lt;a href="https://www.edx.org/course/introduction-computer-science-harvardx-cs50x"&gt;HarvardX CS50 introduction to computer science course&lt;/a&gt; to improve my fundamental understanding. I am 1 week in so far and I am already loving the quality of the course and the energy of the lecturer. More on that next time!&lt;/p&gt;

&lt;p&gt;Apart from my full time job, I will also be working as a teaching assistant part time at Le Wagon. Honestly I enjoyed my time there so much and I would love to continue having a connection with the bootcamp. It will also further solidify my knowledge as I start teaching others and I think teaching and public speaking is a skill that I would really want to master myself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;As you can probably tell by now, I highly rate my whole experience with Le Wagon. I feel like I got my money's worth with the knowledge I gained and a job I am able to line up by the end of the bootcamp.&lt;/p&gt;

&lt;p&gt;In no way do I think a 9-weeks bootcamp is enough to replace a 3-4 years formal computer science education, but it is a good options for folks whom university is not a good option for them. It has provided me with the support, buddies and a structure to learn, and guidance to land my first developer job. Not to mention the massive network of alumni who have attended the course.&lt;/p&gt;

&lt;p&gt;If you would like to know more about the bootcamp, feel free to leave me a comment or drop me a DM. Merry Xmas and have a happy new year!&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>career</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Ruby If-else and Case-when statements Explained</title>
      <dc:creator>Arnold Ho</dc:creator>
      <pubDate>Tue, 05 Oct 2021 20:18:47 +0000</pubDate>
      <link>https://dev.to/_arnoldho/if-else-and-case-when-in-ruby-explained-4h25</link>
      <guid>https://dev.to/_arnoldho/if-else-and-case-when-in-ruby-explained-4h25</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Disclaimer: I am learning in public so please do correct me if I get something wrong&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In some modern programming languages such as Javascript and Ruby, there are different ways of writing loops that will do specific things under different conditions. Two most common form of this are the if statements and the switch statements. These are not exactly the same but act quite similarly. Depend on the situation you might favour one over the other.&lt;/p&gt;

&lt;p&gt;I am going to explain both using the same example. The example will be in Ruby since that's the language I'm learning.&lt;/p&gt;

&lt;p&gt;We want to define a statement that returns what someone should wear under different temperatures (in Celsius):&lt;/p&gt;

&lt;p&gt;An if statement will look something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;weather&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"Heat wave, stay indoor"&lt;/span&gt;
&lt;span class="k"&gt;elsif&lt;/span&gt; &lt;span class="n"&gt;weather&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"shorts, T-shirt, sunglasses"&lt;/span&gt;
&lt;span class="k"&gt;elsif&lt;/span&gt; &lt;span class="n"&gt;weather&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"jumper and long trousers"&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"wear a thick jacket"&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Whereas a switch statement in Ruby looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="n"&gt;weather&lt;/span&gt;
&lt;span class="k"&gt;when&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"Heat wave, stay indoor"&lt;/span&gt;
&lt;span class="k"&gt;when&lt;/span&gt; &lt;span class="mi"&gt;21&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"shorts, T-shirt, sunglasses"&lt;/span&gt;
&lt;span class="k"&gt;when&lt;/span&gt; &lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"jumper and long trousers"&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"wear a thick jacket
end
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In an if statement, anything can be the condition, it doesn't necessarily have to be the weather like we've defined above, for example, we can take an extra argument like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;weather&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"Heat wave, stay indoor"&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;weather&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;work_from_home&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"short sleeve and loads of sunscreen"&lt;/span&gt;
&lt;span class="k"&gt;elsif&lt;/span&gt; &lt;span class="n"&gt;weather&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"shorts, T-shirt, sunglasses"&lt;/span&gt;
&lt;span class="k"&gt;elsif&lt;/span&gt; &lt;span class="n"&gt;weather&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"jumper and long trousers"&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"wear a thick jacket"&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;here we added an additional argument called work_from_home that gives a true or false output if we are working from home or not. An if statement can handle configurations like this.&lt;/p&gt;

&lt;p&gt;However, a switch statement takes the output of the case argument and see which switch condition it satisfies. So it is very useful if all the conditions are only dependent on one variable. In some cases, writing a switch statement can make your code cleaner if you have only one variable your statement depends on.&lt;/p&gt;

&lt;p&gt;I hope you find this useful. Have a nice day!&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>ruby</category>
      <category>codenewbie</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Git &amp; GitHub workflow 101 cheatsheet</title>
      <dc:creator>Arnold Ho</dc:creator>
      <pubDate>Mon, 04 Oct 2021 20:28:14 +0000</pubDate>
      <link>https://dev.to/_arnoldho/git-github-workflow-101-cheatsheet-jj</link>
      <guid>https://dev.to/_arnoldho/git-github-workflow-101-cheatsheet-jj</guid>
      <description>&lt;p&gt;In the spirit of learning in public, I am writing my own Git cheatsheet.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I am still new, so if I got any of the terminologies wrong, please correct me :)&lt;/p&gt;

&lt;p&gt;This cheatsheet is going to be really basic and assumes that you only make changes and commit in the master branch. In the future I will discuss more about branches.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There are two main ways of getting a git repo in your local machine and then pushing it onto GitHub. These are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fetching a repo from GitHub, make the changes and push it back to GitHub&lt;/li&gt;
&lt;li&gt;Create a new directory locally, initialise git, track the changes and push it up to GitHub&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The first way is more common, we can do it using the workflow below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone &amp;lt;the SSH key &lt;span class="k"&gt;for &lt;/span&gt;your repository&amp;gt;
&lt;span class="c"&gt;# This fetches the GitHub repo to your local machine and starts the tracking process&lt;/span&gt;

&lt;span class="c"&gt;# You will now make some changes to files inside the repo&lt;/span&gt;
&lt;span class="c"&gt;# Once you're done, you wanna check what are the changes&lt;/span&gt;

git status &lt;span class="c"&gt;# git status tell you what are the modified files, as well as new files you've created&lt;/span&gt;

git add &amp;lt;file_names&amp;gt; &lt;span class="c"&gt;# git add adds the files you want to commit on the stage&lt;/span&gt;
&lt;span class="c"&gt;# you don't have to add all the files that are changed onto the stage&lt;/span&gt;
&lt;span class="c"&gt;# for example, you might actually have made a change in one of the files and you prefer the previous version, in that case you don't have to git add the change&lt;/span&gt;

&lt;span class="c"&gt;# You would probably want to check the git status again to make sure you have added all the correct files&lt;/span&gt;
git status
&lt;span class="c"&gt;# Now, you would be able to see all the tracked and untracked files. Check for any errors before committing&lt;/span&gt;

git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"add meaningful commit message"&lt;/span&gt; &lt;span class="c"&gt;# this will add a commit message and take a snapshot of your repository with the change you wish to document&lt;/span&gt;
&lt;span class="c"&gt;# Once you've done that, you might want to check git status again&lt;/span&gt;

git status
&lt;span class="c"&gt;# double and triple checking is always good, now your command prompt should tell you that there is no untracked files.&lt;/span&gt;

&lt;span class="c"&gt;# This is all good for you, but if you want to collaborate with others and for others to also see the changes you've made, you'd want to push this commit to GitHub.&lt;/span&gt;
&lt;span class="c"&gt;# Assuming that you've been working on the master branch, you will do the following&lt;/span&gt;
git push origin master &lt;span class="c"&gt;# This pushes the changes in the master branch to the remote called origin, which should be your GitHub repo. Sometimes, you're branch is not master and your remote is not origin, you can use the format&lt;/span&gt;
&lt;span class="c"&gt;# git push &amp;lt;remote_name&amp;gt; &amp;lt;branch_name&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;# Now this will become a pull request ready to be merged into the main assuming that there are no conflicts&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Making a repo locally and then pushing it on GitHub is less common, but we will go through it nonetheless:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# First, you want to make the folder, cd into it and then initialise version control using git&lt;/span&gt;

&lt;span class="nb"&gt;mkdir&lt;/span&gt; &amp;lt;folder_name&amp;gt; &lt;span class="c"&gt;# This creates a new folder&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; &amp;lt;folder_name&amp;gt; &lt;span class="c"&gt;# This moves your current position into the folder&lt;/span&gt;
git init &lt;span class="c"&gt;# This initalises git. Please do this only in a folder for a specific project, don't do something like this in your user directory because you will be tracking EVERY SINGLE CHANGE in that directory.&lt;/span&gt;
&lt;span class="c"&gt;# If you track your user directory, this will soon become very messy&lt;/span&gt;

&lt;span class="c"&gt;# Once you've initalised git, you can start making changes in your repository and save them the same way you do above. So I will skip through the explantions.&lt;/span&gt;

git status
git add &amp;lt;folder_and_file_names&amp;gt;
git status
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"add meaningful commit messages"&lt;/span&gt;
git status

&lt;span class="c"&gt;# Now, we want to push this onto GitHub again for collaboration.&lt;/span&gt;
&lt;span class="c"&gt;# But you might have noticed that we don't have a remote to push this to because everything we did was local.&lt;/span&gt;

&lt;span class="c"&gt;# So now, you have to go into your GitHub and create a new repo, once you've done that, you can get the SSH key of that repo.&lt;/span&gt;
&lt;span class="c"&gt;# Now you tell git the remote you're using:&lt;/span&gt;
git remote add origin &amp;lt;SSH Key of the repo you just created&amp;gt;

&lt;span class="c"&gt;# After this step, you just push your changes to the GitHub repo the same way you did before as git now knows where your remote is:&lt;/span&gt;
git push origin master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And these are the two ways you can work locally and then push changes onto GitHub.&lt;/p&gt;

&lt;p&gt;One useful tool is &lt;code&gt;git log&lt;/code&gt;, this basically give you a log of all the commits. It will show you important information like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who made the change&lt;/li&gt;
&lt;li&gt;When was the change made&lt;/li&gt;
&lt;li&gt;What is the change
You can then use that to debug codes or roll back to previous versions of codes. I will talk more about how to do that in the future.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For now this is it :) Hope this is useful! This only covers the basics of the basics. There are so many other powerful things git can do like creating new branches, pulling new changes from GitHub and many more. I will cover those in later blogposts.&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>github</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Terminal 101 cheatsheet</title>
      <dc:creator>Arnold Ho</dc:creator>
      <pubDate>Mon, 04 Oct 2021 19:57:25 +0000</pubDate>
      <link>https://dev.to/_arnoldho/terminal-101-cheatsheet-c22</link>
      <guid>https://dev.to/_arnoldho/terminal-101-cheatsheet-c22</guid>
      <description>&lt;p&gt;Terminal/Console/Command Line cheatsheets like this is everywhere on the internet, however I am still going to make my own in the spirit of learning in public :)&lt;br&gt;
Also please do let me know if I didn't get something quite right the first time!&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Print Working Directory, this will show you where you currently are&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;A dot means your current directory, so the location shown when you type your pwd&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;..
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Your parent directory, this is one folder above your current directory&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;~
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This is your home directory&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; &amp;lt;folder_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Change directory, this will move your position into the folder name, you can also cd into a path so that you can move a few folders in. You can also do cd .. to go back a directory&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;ls&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This will show all the files and folders in your current directory&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ll
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Another way of checking all files and folders in your current directory, it will return a table format&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &amp;lt;folder_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Make directory, this will create a new directory at your current directory (This creates a folder within your current folder)&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch&lt;/span&gt; &amp;lt;file_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This creates a file, for example, &lt;code&gt;touch index.html&lt;/code&gt; creates &lt;code&gt;index.html&lt;/code&gt; within your current directory&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mv&lt;/span&gt; &amp;lt;file_location&amp;gt; &amp;lt;file_location2&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;This moves the file from location one to location 2.&lt;br&gt;
For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mv &lt;/span&gt;index.html tmp/index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;moves the file index.html from the current directory into a directory called tmp within the current directory&lt;/p&gt;






&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;rm&lt;/span&gt; &amp;lt;file_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Remove, but &lt;strong&gt;PLEASE MAKE SURE YOU NO WHAT YOU"RE DOING WHEN YOU USE THIS&lt;/strong&gt;. Sometimes a stack overflow answer might ask you to use this to clear a roadblock. &lt;strong&gt;THINK TWICE&lt;/strong&gt; before blindly using rm because once you've removed your file. It's gone, you can't revert back the change unless you use version control.&lt;/p&gt;

&lt;p&gt;When you use &lt;code&gt;rm&lt;/code&gt;, sometimes your command prompt will have a safe gate message, this is because &lt;code&gt;rm&lt;/code&gt; is so dangerous your terminal is asking you whether you are sure you wanna remove that thing. If you are 100% sure you want to rm something, do the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; &amp;lt;file_name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;That's it for the Terminal 101 cheatsheet. These are the most basic command line tools you might use. I recommend trying to play around with this, create new files and folders, move things into different folders, and as much as possible try to navigate your files and folders using terminal only to get good.&lt;/p&gt;

&lt;p&gt;For extra resource, try &lt;a href="http://www.learnenough.com/command-line/"&gt;learn enough command line to be dangerous&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hope that helps and let me know what other command line tools you use daily :) Happy coding!&lt;/p&gt;

</description>
      <category>bash</category>
      <category>beginners</category>
    </item>
    <item>
      <title>4 common Q&amp;A for bootcamp developers</title>
      <dc:creator>Arnold Ho</dc:creator>
      <pubDate>Thu, 30 Sep 2021 16:29:09 +0000</pubDate>
      <link>https://dev.to/_arnoldho/4-common-q-a-for-bootcamp-developers-b9p</link>
      <guid>https://dev.to/_arnoldho/4-common-q-a-for-bootcamp-developers-b9p</guid>
      <description>&lt;p&gt;Not long ago, I had a virtual coffee with &lt;a class="mentioned-user" href="https://dev.to/clearlythuydoan"&gt;@clearlythuydoan&lt;/a&gt;, one of the speakers at codeland 2021 conference. She did her bootcamp in Toronto about 5 years ago and has since been a Full Stack Developer. I asked her a few questions with regards to bootcamps and she gave me some advices which I want to share with you all today (with her permission).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Thuy has also created an AMA page on GitHub specifically to answer commonly asked questions about bootcamp. Please go &lt;a href="https://github.com/clearlyTHUYDOAN/ama"&gt;check it out&lt;/a&gt;!&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  The Q&amp;amp;A
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;The Q&amp;amp;A is written in first person. With me asking the questions and Thuy answering&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Q1: How should I get the most out of my bootcamp experience?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;A1: During the bootcamp, if you finish the challenge or task of the day quicker than other students, go help out others. Act like a TA. You learn better and you identify gaps of your knowledge when you are trying to teach a concept to someone else. Also, your bootcamp might be recruiting for TAs as there are high turnover rate in these roles. If you have demonstrated your willingness to teach others by acting like a TA, that gives them good reason to hire you as one. If your bootcamp is actively hiring TAs and you manage to secure a role with them, that gives you experience to put on the CV while allowing you some leverage to not be desperate for just any job that comes your way during your job search. You can spend more time to find the right company for you without struggling to pay rent.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Q2: Tips on securing a job after bootcamp
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;A2: First of use the resources from your bootcamp, apart from that, I recommend checking out &lt;a href="https://angel.co"&gt;Angel List&lt;/a&gt;. I was actively looking for side gig while I was TAing. I got a one-month contract in a company. Afterwards, the recruiter of my current company recruited my on LinkedIn based on that experience I have. I stood out amongst other bootcamp grads as I have some experience working on somebody else's code base when most other grads only have &lt;a href="https://en.wikipedia.org/wiki/Greenfield_project"&gt;greenfield side projects&lt;/a&gt;. In your actual job, you will have to collaborate with other developers and work on codes you didn't write yourself. It would be really advantageous if you can demonstrate aptitude in those areas.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Q3: How do you manage doing things on the side (e.g. working on side projects) during your time in bootcamp
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;A3: While in bootcamp, you should remind yourself that the bootcamp is your top priority. You don't want to jeopardise your learning by doing too much and burning yourself out. If you really want to do something on the side, pick something low commitment. For example, you can tweet or blog about what you've learnt during your day at the bootcamp. Doing that will solidify your learning as well as helping you build an audience whom will lift you up along your developer journey.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Q4: How do you maintain code-life balance? I see so many developers having a well maintained blog, cool side projects, speak and conferences and sometimes even manage a podcast and YouTube channel. How do they do all that while still maintaining a code life balance.
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;While there are genuinely people who code 9-5 and do all of those things you've mentioned on the side, it is helpful to know that some of those people have jobs which pays them to create content and speak at conferences, these people have jobs called developer relations. So they might not be coding the majority of the day and they might focus more time on content creation. But if you still wish to create content on the side, you should consider the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is your preferred channel of creating content? Would it be a blog? Twitter? A podcast or maybe a YouTube channel? Find the one you enjoy and do it there. You don't have to be everywhere.&lt;/li&gt;
&lt;li&gt;What is the cadence and frequency that works for you and doesn't burn you out? Do you want to create content everyday? Once a week? Or spontaneously whenever you have free time?
&lt;strong&gt;The key here is to pick what works for you and don't feel pressured to be everywhere.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Thank you so much for reading this far and special thanks to &lt;a class="mentioned-user" href="https://dev.to/clearlythuydoan"&gt;@clearlythuydoan&lt;/a&gt; for taking her time to answer all my questions. Once again if you have any questions regarding bootcamp, you can go check out her &lt;a href="https://github.com/clearlyTHUYDOAN/ama"&gt;AMA for bootcamp developers&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>How I connected with other developers by consuming in public</title>
      <dc:creator>Arnold Ho</dc:creator>
      <pubDate>Sun, 26 Sep 2021 18:23:17 +0000</pubDate>
      <link>https://dev.to/_arnoldho/consume-in-public-2c0b</link>
      <guid>https://dev.to/_arnoldho/consume-in-public-2c0b</guid>
      <description>&lt;p&gt;I was once a lurker online, I would read blogposts, reddit threads, watch YouTube videos and listen to podcasts without ever participating in discussions or leaving comments.&lt;/p&gt;

&lt;p&gt;However, I've recently started participating into the community aspect of online content more and actually gotten something out of it. I call this &lt;strong&gt;consuming in public&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For example, I recently left a comment on one of the talks I liked in the Codeland 2021 conference by &lt;a class="mentioned-user" href="https://dev.to/clearlythuydoan"&gt;@clearlythuydoan&lt;/a&gt;. I left a comment about my current situation as someone who is about to start my bootcamp , as well as why I liked her talk, we actually connected because of that comment and today I just had a virtual coffee chat with her where I asked questions to her about how I can get the most out of my bootcamp. (I am planning on making our conversation a blogpost so check this space)&lt;/p&gt;

&lt;p&gt;Another example, I read 'the coding career handbook' by &lt;a class="mentioned-user" href="https://dev.to/swyx"&gt;@swyx&lt;/a&gt;&lt;br&gt;
and made a tweet about it tagging him, to my surprise, he actually replied to my tweet!&lt;/p&gt;

&lt;p&gt;This picture aptly sums up how I feel when those things happen:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--W6EBfpSe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rzzhnwllls9e71ik4upj.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--W6EBfpSe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rzzhnwllls9e71ik4upj.jpeg" alt="Senpai noticed me" width="236" height="173"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jokes aside, just by simply leaving a comment in a piece of content that I enjoyed, it helped me make a connections with people on the other side of the world whom I would otherwise never be able to interact with and are in my own opinion 'way out of my league'. You can connect to people you look up to as well! By &lt;strong&gt;consuming in Public&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why does consuming in public work?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The number works in your favour
&lt;/h3&gt;

&lt;p&gt;Consuming in public works simply because not enough people do it. Remember back in your school days when the teacher asks the class whether anyone has any questions? If your classes were anything like mine, chances are no one raised their hands or said anything, for the fear of being judged. So if you're that kid who's brave enough to raise your hands, you're going to get your question answered, and if you're doing it in public, you're going to help a bunch of people who silently have the same questions as you purely by asking in public.&lt;/p&gt;

&lt;p&gt;Take a look at any YouTube videos, look at the view count, and then look at the number of likes and comments that they get, you'll realise that the number game works in your favour. 95% of people who consumes content on the internet are lurkers (source: guesstimate), so if you are the 5% who participate in the community, you may end up getting something out of it! &lt;/p&gt;

&lt;p&gt;If you leave a comment, the worse thing that could happen to you is for your comment to be ignored, the upside is to get a reply or a follow up from someone you look up to and establish a connection with your dev (or non dev) heroes! Seems like a no brainer to me :)&lt;/p&gt;

&lt;p&gt;The screenshot below is from the MIT missing semester taken as of 26th September 2021, there are 100k+ views, less than 2k likes, and less than 100 comments. You can be quite sure that your comment is going to be noticed by the person who maintains this YouTube channel.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xdfdMMIh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mib8xgc85yhzgrnved71.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xdfdMMIh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mib8xgc85yhzgrnved71.png" alt="MIT Missing Semester YouTube video, number of views, likes and comments" width="880" height="246"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The person on the other side of the screen wants to help too
&lt;/h3&gt;

&lt;p&gt;If someone is creating content in their spare time for the internet to consume, they are probably quite willing to help others! But they need to know you and your problem exist before they are able to help you out. Just remember the person on the other side of the screen is likely an empathetic human being who would not mind helping you with simple questions. If you leave a comment showing them your appreciation, chances are they are really happy about it and am grateful for your feedback, because not enough people consume content in public.&lt;/p&gt;

&lt;h1&gt;
  
  
  So how can you start consuming more in public
&lt;/h1&gt;

&lt;p&gt;For the starters, try making a habit of leaving a comment whenever you enjoyed a piece of content (linking the original creator). Be respectful. If you have any favour to ask for, be polite but direct, give them as many details as possible and make it as easy as possible for them to help you. &lt;/p&gt;

&lt;p&gt;At the end of the day, you're still kind of an internet stranger. If you want them to help you in something (e.g. giving you tips and guides), make sure to let them know how to contact you, propose a time (and a fallback time), make it super easy for them to follow up with you without the headache of going back and forth. And if they end up helping you, don't forget to thank them for your time!&lt;/p&gt;

&lt;p&gt;Next time when you read a good blogpost &lt;em&gt;(Ahem Ahem!)&lt;/em&gt;, leave a comment! When you see a cool open source project that's asking for help, make a pull request + your comments and questions. Leaving a like and comment on a YouTube video you like goes way further than just helping the creator with the YouTube algorithm, they might reply to that comment you left! You will be surprised what you can get out just by doing that extra bit! It doesn't take long, but its definitely a friend catcher and career multiplier!&lt;/p&gt;

&lt;p&gt;Thanks for reading all the way, you are awesome :) Happy coding!&lt;/p&gt;

</description>
      <category>watercooler</category>
      <category>beginners</category>
    </item>
    <item>
      <title>When and how to contribute to open source projects</title>
      <dc:creator>Arnold Ho</dc:creator>
      <pubDate>Thu, 16 Sep 2021 19:14:43 +0000</pubDate>
      <link>https://dev.to/_arnoldho/when-and-how-to-contribute-to-open-source-projects-2op0</link>
      <guid>https://dev.to/_arnoldho/when-and-how-to-contribute-to-open-source-projects-2op0</guid>
      <description>&lt;h1&gt;
  
  
  Now
&lt;/h1&gt;

&lt;p&gt;Yes, you should do it now. It is a very beginner friendly process.&lt;/p&gt;

&lt;p&gt;I have answered the 'when' part of the question in the title, the remaining blogpost will address the 'how'.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Disclaimer: I am just a code newbie myself, so I might get some of the details wrong. If I do so, please feel free to correct me!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  The bar to contributing in open source is extremely low
&lt;/h1&gt;

&lt;p&gt;I think this is important to mention because I always thought that contributing to open source projects are for advance hacker type Mr.Robot people out there in the world. Something that you have to have a double degree in Ivy League, worked in NASA and Google in order to do.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8yzwnanfbbkplerniz2k.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8yzwnanfbbkplerniz2k.jpeg" alt="MR Robot codes"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was extremely relieved to have found out that this understanding of mine was sooo far from the truth. You can pretty much start contributing to open source projects once have some basic understanding of html (or even just markdown).&lt;/p&gt;

&lt;h1&gt;
  
  
  What is an Open Source project?
&lt;/h1&gt;

&lt;p&gt;As its name suggests, an Open Source project is open to any external contribution. For example if anyone uploaded there project publicly on GitHub (or any other Git Repo), those are by definition Open Source projects since anyone can fork a repo and contribute to the codes. In fact, many large frameworks everyone talks about are open source projects (e.g. Ruby on Rails, React.JS etc).&lt;/p&gt;

&lt;h1&gt;
  
  
  Why do you want to contribute?
&lt;/h1&gt;

&lt;p&gt;You want to contribute to open source because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It teaches you Git workflow as a beginner (very important skill)&lt;/li&gt;
&lt;li&gt;It teaches you the code improvement, code review process&lt;/li&gt;
&lt;li&gt;You get to read the source code of projects done by excellent programmers&lt;/li&gt;
&lt;li&gt;When you make a pull request on GitHub, it is almost guaranteed you are going to get feedback from the maintainer of those projects (imagine getting feedback from one of the React/Rails maintainers)&lt;/li&gt;
&lt;li&gt;It will show on your GitHub profile&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  But I know too little code to do anything!
&lt;/h1&gt;

&lt;p&gt;Well, you don't have to contribute code. In fact contributing code is not recommended as a complete beginner. There are loads of other contributions you can make such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improving html links to make links for accessible for people accessing the site through voice reader&lt;/li&gt;
&lt;li&gt;Correcting typos of markdowns&lt;/li&gt;
&lt;li&gt;Improving documentation of a project&lt;/li&gt;
&lt;li&gt;fixing dead html links&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://github.com/firstcontributions/first-contributions" rel="noopener noreferrer"&gt;My first contribution&lt;/a&gt; was literally a GitHub open source tutorial where I forked a markdown file, added my name on it and did a pull request! &lt;em&gt;It wasn't much but it's honest work&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;My second contribution was a website called &lt;a href="https://happycoding.io" rel="noopener noreferrer"&gt;Happy coding&lt;/a&gt;. There I corrected typos in markdowns and improved link accessibilities.&lt;/p&gt;

&lt;p&gt;Both of my open source contributions have very little coding involved.&lt;/p&gt;

&lt;h1&gt;
  
  
  What have I learnt in my first two open source contributions?
&lt;/h1&gt;

&lt;p&gt;In my first open source contribution, I learnt about the git and GitHub workflow, how to fork a repository and then git clone it to my own computer, how to create git branches, commit a change and push it back to GitHub and make a pull request. These are things that you will use on the job every single day as a software engineer.&lt;/p&gt;

&lt;p&gt;In my second project, I learnt not just about accessible websites. Since I had to fork the entire repo of the website into my local machine, I got a lot of time to read through the source code of the website. I realised that most of the sites were built using markdown and I had no idea how to do that. So I shoot a message to the project owner. Since I made contribution to the site, the owner of the site was more than happy to teach me. I realised that there is this tool called Jekyll which kind of automates (for lack of a better word) the layout of the website as well as turning markdown into HTML. &lt;/p&gt;

&lt;p&gt;Furthermore, since this project is a coding tutorial site, as I was correcting typos, I also had to read a lot of the actual tutorials to get the context. I learnt about &lt;a href="https://p5js.org" rel="noopener noreferrer"&gt;p5.js&lt;/a&gt; which is a creative coding framework.&lt;/p&gt;

&lt;p&gt;I have then implemented all of the above I have learnt (Jekyll, GitHub workflow, GitHub pages, Website Accessibilities) into creating my &lt;a href="https://arnoldboy123.github.io" rel="noopener noreferrer"&gt;own website&lt;/a&gt; which is also an open source project where other people have made contributions.&lt;/p&gt;

&lt;h1&gt;
  
  
  How do you start contributing now?
&lt;/h1&gt;

&lt;p&gt;I recommend going through this &lt;a href="https://github.com/firstcontributions/first-contributions" rel="noopener noreferrer"&gt;tutorial on contributing to open source&lt;/a&gt;. By the end of the tutorial, you would have contributed to your first open source project!&lt;/p&gt;

&lt;p&gt;Once you have done that, I would recommend looking at projects marked as &lt;a href="https://goodfirstissues.com/" rel="noopener noreferrer"&gt;good first time issues&lt;/a&gt;, these are specifically labelled to be beginner friendly. Try to find ones that doesn't involve contributing codes, you want to build up the GitHub workflow experience and open source experience first and foremost.&lt;/p&gt;

&lt;p&gt;Congratulations on reaching this far! Happycoding!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0adhtlk4i916fkyb34i5.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0adhtlk4i916fkyb34i5.jpeg" alt="MR Robot Hacker man"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>opensource</category>
      <category>github</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Why is my GitHub contribution not showing and how to fix it?</title>
      <dc:creator>Arnold Ho</dc:creator>
      <pubDate>Sat, 11 Sep 2021 16:24:02 +0000</pubDate>
      <link>https://dev.to/_arnoldho/why-is-my-github-contribution-not-showing-and-how-to-fix-it-26g1</link>
      <guid>https://dev.to/_arnoldho/why-is-my-github-contribution-not-showing-and-how-to-fix-it-26g1</guid>
      <description>&lt;p&gt;Recently I started contributing to an open source project, I have probably made 20+ commits on that project by now and a lot of the pull requests that I have made got merged in the end.&lt;/p&gt;

&lt;p&gt;But one thing I realised is that &lt;strong&gt;I wasn't showing up as a contributor&lt;/strong&gt; of that project on the GitHub repo!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fico3klr4crc98biy7sdg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fico3klr4crc98biy7sdg.jpeg" alt="Surprised pikachu"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you ever find yourself in the situation, it can get super annoying since you have put in all the blood sweat and tears into the project and now your contribution is ignored.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33if69hqoi0yontqairy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33if69hqoi0yontqairy.gif" alt="Angry Pikachu"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;^this is precisely how I felt, so I did a bunch of angry googling on the issue. And I realised that the problem is the following:&lt;/p&gt;

&lt;h1&gt;
  
  
  My local git user email is different to my GitHub user email!
&lt;/h1&gt;

&lt;p&gt;It appears that this is by far the most common reason why you are not showing up as an open source contributor even after your pull request got merged. Because GitHub doesn't recognise that it is you, &lt;a href="mailto:my@emailaddress.com"&gt;my@emailaddress.com&lt;/a&gt; (your GitHub email) if you used &lt;a href="mailto:myother@emailaddress.org"&gt;myother@emailaddress.org&lt;/a&gt; instead to make your commit on your local git.&lt;/p&gt;

&lt;p&gt;To change that, either add your email to your GitHub account in your GitHub settings, or change your local git email address by typing in the following in your command line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;"My@emailadress.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To check what email address you are currently using for your local git, you can type in the following command within one of your git repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; .git/config
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Another way to check is by typing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;which gives you a more detailed version of all your commits and the corresponding email address for each one of them.&lt;/p&gt;

&lt;p&gt;Now that you have aligned your local git email and your GitHub email, you will finally get your well deserved recognition for your open source contribution!&lt;/p&gt;

&lt;p&gt;This would hopefully make you one heck of a happy pikachu!&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo9d4keveuhqksys1nklz.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo9d4keveuhqksys1nklz.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope this helps! This is just one of the reasons why you are not showing up as an open source contributor, if this doesn't work, you might have to find the &lt;a href="//google.com"&gt;coder's best friend&lt;/a&gt; for extra help.&lt;/p&gt;

&lt;p&gt;As always, happy coding!&lt;/p&gt;

</description>
      <category>github</category>
      <category>git</category>
      <category>beginners</category>
      <category>opensource</category>
    </item>
    <item>
      <title>What is Jekyll and why might you want to learn it?</title>
      <dc:creator>Arnold Ho</dc:creator>
      <pubDate>Thu, 09 Sep 2021 22:18:12 +0000</pubDate>
      <link>https://dev.to/_arnoldho/what-is-jekyll-and-why-might-you-want-to-learn-it-cg3</link>
      <guid>https://dev.to/_arnoldho/what-is-jekyll-and-why-might-you-want-to-learn-it-cg3</guid>
      <description>&lt;h1&gt;
  
  
  What is Jekyll and why might you want to learn it?
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer: I am not an expert, I am only &lt;a href="https://www.swyx.io/learn-in-public/"&gt;Learning in Public&lt;/a&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;Also, this post is not meant to be a comprehensive tutorial on how to set up Jekyll, for that I recommend this &lt;a href="https://happycoding.io/tutorials/html/jekyll"&gt;Jekyll guide from Happy Coding&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://jekyllrb.com/"&gt;Jekyll&lt;/a&gt; is a powerful tool written in Ruby that lets you do two handy things with your website:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It lets you set your layout once and apply it to all of your pages&lt;/li&gt;
&lt;li&gt;It lets you convert markdowns into HTML&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I will run through each of these points.&lt;/p&gt;
&lt;h2&gt;
  
  
  Setting your layout
&lt;/h2&gt;

&lt;p&gt;Without Jekyll, if you try to create a blog from scratch or a site that's kind of like a library with many different pages on it, you will set up an HTML file for each page. Your page might look something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;header&amp;gt;&lt;/span&gt; My Awesome blog &lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;HTML&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; 
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;CSS&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; 
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;JavaScript&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; 
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Python&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt; Here is my blog title &lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt; Here are my content &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;footer&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;#twitter&amp;lt;/a&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; 
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;#&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;facebook&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; 
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;#&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Youtube&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; 
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;#&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;GitHub&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/footer&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(code might not be exactly how you would write to get all your CSS write, the above is for illustration purpose only)&lt;/p&gt;

&lt;p&gt;Why is this a problem you might ask, imagine you grew your blog now and you have more than a hundred pages. Now, suddenly you thought of a new feature to implement, maybe a comment section below your blog, or maybe you would want to change the style and add an extra link to your navbar. Now you would have to change all your html on every single page. This sounds extremely tedious and error prone, as programmers we'd rather not be doing that.&lt;/p&gt;

&lt;p&gt;Fortunately, with Jekyll you would be able to automate your code. You will need to create a default layout page, call it &lt;code&gt;default.html&lt;/code&gt;. Your &lt;code&gt;default.html&lt;/code&gt; would look something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;header&amp;gt;&lt;/span&gt; My Awesome blog &lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;HTML&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; 
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;CSS&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; 
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;JavaScript&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; 
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Python&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;

{{ content }}

&lt;span class="nt"&gt;&amp;lt;footer&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;#twitter&amp;lt;/a&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; 
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;#&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;facebook&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; 
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;#&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Youtube&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; 
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;#&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;GitHub&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/footer&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;{{ content }}&lt;/code&gt; tells Jekyll that this is the place that they will fetch the content from your other files (either HTML or Markdown).&lt;/p&gt;

&lt;p&gt;Now, when you create your new pages, you just need to write these instead:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;---
layout: default
---

&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt; Here is my blog title &lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt; Here are my content &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These blocks of html code goes straight into the &lt;code&gt;{{ content }}&lt;/code&gt; part of the default layout for every new page that you have created.&lt;/p&gt;

&lt;p&gt;By using Jekyll, you will be able to automate the repetitive parts of your html script. Now if you want to change your navbar or add a sidebar feature and your page, you only need to change it once in your &lt;code&gt;default.html&lt;/code&gt; file. This is super handy and eliminate most of your sources of errors in one step.&lt;/p&gt;

&lt;h2&gt;
  
  
  Converting markdown into HTML
&lt;/h2&gt;

&lt;p&gt;If you used markdown before (which you would have if you use GitHub or have created a post on &lt;code&gt;dev.to&lt;/code&gt;), you would know how much more handy it is to write markdown files compared to writing HTML. Jekyll converts your markdown into html for you so that if you have a large website or blog, you can write everything in markdown and host it on a site that runs Jekyll (Github does that, so you can do this by hosting your blog on GitHub for example). This saves loads of time and eliminates sources of error.&lt;br&gt;
If you haven't written markdown before, here is a comparison between html and markdown for the same article:&lt;/p&gt;

&lt;p&gt;Your HTML looks like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;This is my header&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;This is my paragraph&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;This is my subheader&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;item 1&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;item 2&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;item 3&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;item 4&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;github.com&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;here is a link to github&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Your markdown looks like this&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;#This is my header&lt;/span&gt;

This is my paragraph

&lt;span class="gu"&gt;##This is my subheader&lt;/span&gt;

-item 1
-item 2
-item 3
-item 4

&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;here is a link to github&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;github.com&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you have a lot of content, this starts to make a significant difference to how much time you need to put in to create each page. So being able to convert your markdown into HTML is an extremely powerful tool for if you want to create a large blog.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;note&lt;/strong&gt;: I haven't gone through the nitty gritty of how to set up Jekyll, this post is mainly to illustrate the power of using Jekyll. For a more in-depth tutorial, I would highly recommend this &lt;a href="https://happycoding.io/tutorials/html/jekyll"&gt;Jekyll guide from Happy Coding&lt;/a&gt;, or to go to the &lt;a href="https://jekyllrb.com/"&gt;Jekyll&lt;/a&gt; site itself to learn form the source.&lt;/p&gt;

&lt;p&gt;Let me know if there are any important details of Jekyll you felt like I have missed out, I am always happy to be corrected :)&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>html</category>
      <category>markdown</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Simple way to increase site accessibility</title>
      <dc:creator>Arnold Ho</dc:creator>
      <pubDate>Tue, 07 Sep 2021 15:09:49 +0000</pubDate>
      <link>https://dev.to/_arnoldho/simple-way-to-increase-sight-accessibility-ig5</link>
      <guid>https://dev.to/_arnoldho/simple-way-to-increase-sight-accessibility-ig5</guid>
      <description>&lt;p&gt;&lt;strong&gt;Disclaimer: I am not an expert, this is more like a note to self kind of thing. I am merely &lt;a href="https://www.swyx.io/learn-in-public/"&gt;learning in public&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you make a website with different links, here is how your html file might look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;If you want an html tutorial, click &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;tutorial.link&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;here&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;if you want an example html, click &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;example.com&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;here&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the user is accessing your website visually, they are not going to have a problem when visiting your website. However, if someone is accessing your website using a voice reader and they want to navigate all the links on your website, &lt;strong&gt;all they are going to here is a bunch of 'here's because that is the name embedded in your link tags.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One simple fix is to restructure your sentence so that the text within the a tag tells the person what it is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Here are &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;tutorial.link&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;my html tutorials&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Here are &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;example.com&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;a list of example html scripts&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For someone who visually visits your website they are not going to see much difference. However, this way of writing your html dramatically improves the user experience for someone using a voice reader. So bare this in mind when you are cleaning up/making your website :)&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>html</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Refactoring ELI5</title>
      <dc:creator>Arnold Ho</dc:creator>
      <pubDate>Sat, 04 Sep 2021 12:00:25 +0000</pubDate>
      <link>https://dev.to/_arnoldho/refactoring-eli5-2d26</link>
      <guid>https://dev.to/_arnoldho/refactoring-eli5-2d26</guid>
      <description>&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;: I am not an expert, I am merely &lt;a href="https://www.swyx.io/learn-in-public/"&gt;learning in public&lt;/a&gt;. If I got something wrong or left out important details, please leave a comment! ❤️&lt;/p&gt;

&lt;h3&gt;
  
  
  Alrighty, lets go!
&lt;/h3&gt;

&lt;p&gt;Refactoring a piece of code changes the structure of your existing code without altering what it does. Take a look at the following javascript example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;weather&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;rainy&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;bring an umbrella&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;no need umbrella&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the code above, I passed the variable weather into the conditional function, if its rainy, the code will tell me to bring an umbrella.&lt;/p&gt;

&lt;p&gt;This code is fine, but we can do everything in a much simpler way with the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;weather&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;rainy&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;bring an umbrella&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;no need umbrella&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the second code, I have turned the if else statement into a ternary operator wrapped around by a console.log. The two codes do exactly the same thing but the second one is just a lot simpler to look at.&lt;/p&gt;

&lt;p&gt;We refactor our codes because of a few things (non exhaustive list):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve our code readability (Imagine extending the above idea into a huge file with many lines)&lt;/li&gt;
&lt;li&gt;Improve efficiency of our code, making it easier to work with&lt;/li&gt;
&lt;li&gt;You can refactor a code such that features can be re-used elsewhere&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Happy coding!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>codenewbie</category>
      <category>javascript</category>
    </item>
    <item>
      <title>What is semantic HTML and why does it matter?</title>
      <dc:creator>Arnold Ho</dc:creator>
      <pubDate>Mon, 30 Aug 2021 15:32:24 +0000</pubDate>
      <link>https://dev.to/_arnoldho/what-is-semantic-html-and-why-does-it-matter-4j34</link>
      <guid>https://dev.to/_arnoldho/what-is-semantic-html-and-why-does-it-matter-4j34</guid>
      <description>&lt;p&gt;There are two ways you can write an HTML file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;This is a header&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;This is a nav bar&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;first thing&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;second thing&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;this is the content&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;this is a footer&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or you can do this instead:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;header&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;This is a header&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;This is a nav bar&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;first thing&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;second thing&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;this is the content&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;footer&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;this is a footer&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;footer&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both files do the exact same thing, however if you have a long html file, writing it in the way we write the first one can quickly get messy. Whereas in the second way, it provides a bit more structure to your html.&lt;/p&gt;

&lt;p&gt;So second file is called a semantic HTML. The advantages are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It improves readability of your code, someone else can look at it and quickly figure out what you are doing. If you write a website in the first way, in 15 minutes you are going to forget what you did and hate yourself for that.&lt;/li&gt;
&lt;li&gt;It makes CSS this much easier. You don't have to rely on loads of ids.&lt;/li&gt;
&lt;li&gt;It improves your SEOs, not all divs are created equal and by writing your HTML in a semantic way it tells Google (or ... Bing) how they should rank your website. Which part is more important etc.&lt;/li&gt;
&lt;li&gt;It helps the accessibility of your website. Not all of us use internet the same way. This way of writing your HTML file helps in situations such as if your audience is viewing your website using a speech reader.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There you go, hope you find this useful!&lt;/p&gt;

&lt;p&gt;Happy coding :)&lt;/p&gt;

</description>
      <category>html</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
