<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Programming on Salman's Blog</title><link>https://salmanfs.ca/tags/programming/</link><description>Recent content in Programming on Salman's Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 04 Nov 2020 19:28:38 +0000</lastBuildDate><atom:link href="https://salmanfs.ca/tags/programming/index.xml" rel="self" type="application/rss+xml"/><item><title>Get Started with Programming</title><link>https://salmanfs.ca/posts/get-started-with-programming/</link><pubDate>Wed, 04 Nov 2020 19:28:38 +0000</pubDate><guid>https://salmanfs.ca/posts/get-started-with-programming/</guid><description>&lt;p&gt;A few friends have asked me about how they can start learning programming. So I&amp;rsquo;ve put together some resources that I hope will be useful to someone trying to self-study programming.&lt;/p&gt;
&lt;h2 id="development-environment"&gt;Development Environment&lt;/h2&gt;
&lt;p&gt;Many programmers prefer to use Linux since it is much easier to manage packages, libraries and other essential components. If you&amp;rsquo;re coding on Windows 10 and want to use a Linux environment, you can use &lt;a href="https://docs.microsoft.com/en-us/windows/wsl/about"&gt;WSL&lt;/a&gt;. WSL is the easiest way to run Linux on Windows. Setup WSL with a popular Linux distro like Ubuntu and that should make it a lot easier to follow along with most programming tutorials.&lt;/p&gt;</description></item><item><title>Tips for CS Students</title><link>https://salmanfs.ca/posts/tips-for-compsci-students/</link><pubDate>Sun, 01 Mar 2020 23:25:11 +0000</pubDate><guid>https://salmanfs.ca/posts/tips-for-compsci-students/</guid><description>&lt;p&gt;I was asked at work to write some tips for computer science students, specifically with respect to working on assignments. Here they are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start working on programming assignments early. It is often difficult to estimate the time it may take to debug potential errors.&lt;/li&gt;
&lt;li&gt;Practice running code taught in lectures and labs on your own. Tweak the sample code and try to understand how the behavior changes.&lt;/li&gt;
&lt;li&gt;If a task seems complicated and you are unsure how to tackle it, consider using version control (e.g. git) while you try out possible solutions so that you can easily try different approaches without losing your previous attempts. This will get you practice with a useful tool, keep your editor clean and let you try out new approaches without losing previous work.&lt;/li&gt;
&lt;li&gt;If you get stuck on a problem, take a break - go for a walk, eat a snack, take a nap - and come back to it later and give it a fresh start.&lt;/li&gt;
&lt;li&gt;Practice and improve your programming skills by working on side projects outside of coursework. Create a webapp or project or anything that interests you. Practice using best practices in writing your code, write useful comments and docs, use version control and write tests. Include an open source license and make these repositories public on GitHub so that you have a portfolio of projects to show future employers.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Why Learn Assembly?</title><link>https://salmanfs.ca/posts/why-learn-assembly/</link><pubDate>Wed, 18 Oct 2017 21:06:40 +0000</pubDate><guid>https://salmanfs.ca/posts/why-learn-assembly/</guid><description>&lt;p&gt;Assembly language? Who the heck wants to code in assembly language??&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ll say this much: it&amp;rsquo;s not for the faint of heart.&lt;/p&gt;
&lt;p&gt;Some people have similar thoughts of futility regarding C but the truth is that it&amp;rsquo;s still very important.&lt;/p&gt;
&lt;p&gt;&lt;img alt="C for Systems Programming" loading="lazy" src="https://salmanfs.ca/images/rsz-c-systems-programming.png"&gt;&lt;/p&gt;
&lt;p&gt;Assembly is very relevant in systems programming. It&amp;rsquo;s as low level as a sane man can program. If you have ever programmed in machine code, you deserve a gold trophy! (I&amp;rsquo;m not even going to qualify that statement by saying the code should&amp;rsquo;ve been useful as long as you understood what you wrote.)&lt;/p&gt;</description></item><item><title>TA: Day 0</title><link>https://salmanfs.ca/posts/ta-day-0/</link><pubDate>Thu, 07 Sep 2017 21:03:38 +0000</pubDate><guid>https://salmanfs.ca/posts/ta-day-0/</guid><description>&lt;p&gt;This semester I was offered a teaching assistant position for CMPT 295 Introduction to Computer Systems. When I got the news, I was really excited because when I was applying for the position it felt like a completely useless attempt (like many others). But I still went through with it, mostly because it was a no-BS application (read: no cover letter required).&lt;/p&gt;
&lt;p&gt;I first got the idea to apply for TA positions from Karol (a sessional instructor I had last year for a software engineering course).&lt;/p&gt;</description></item></channel></rss>