7 Free Educational Resources to Keep You Learning During Quarantine.

Since we were thrust into a sudden quarantine over a month ago, you like most people must be wondering of what to do with all this extra time on your hands. It is best to utilize this time constructively, keep working on self-development as self-care. It’s good to think of it as an opportunity for learning instead of the lethal pandemic outside your door waiting to kill you (best to stay at home and let the essential personnel handle that).

So, I have prepared a list of some of my favourite free resources for online learning that have helped in throughout my years to learn new skills that have aided me in my professional career and been a source of relief from my boredom during these trying times:

1. Codecademy

Codecademy is the perfect tool for anyone that wants to dip their feet into the waters of computer programming. It’s free courses on various programming languages start at an elementary level with easy to grasp concepts and interesting exercises to keep you up to speed with what you have learned in each section.

The IDE is easy to understand and there is directional help and hints for if you get stuck at any step. Each course has an approximate time in hours needed to finish it. You can complete at your own pace, or start more than one course simultaneously.

2. Duolingo

Everybody on the internet may have heard about the friendly bird from duolingo at some point in their lives, may it be from their language tutor to keep up with their foreign language education during the summer break or from the extensive internet memes.

Duolingo provides short courses in foreign languages. You can use either the mobile app or the website to follow the exercises. It has visual aids to help with memory retention and is great for starting at a basic conversational level. There are over 30 languages you can chose from and Duolingo is always adding more languages and features.

3. MIT Open CourseWare

OpenCourseWare (MIT OCW) is an initiative of the Massachusetts Institute of Technology (MIT) to publish all of the educational materials from its undergraduate- and graduate-level courses online, freely and openly available to anyone, anywhere. The project was announced on April 4, 2001.

MIT OCW has been a favourite of mine every since I started my University. It is great for getting a deep understanding of complex topics at your own pace. You can study anything from maths to music theory. I quite prefer to go through MIT’s coursework rather than my own as I find that it is always so well constructed to cover all the bases of a particular topic.

Check out your desired topics using it’s search by topic section;

https://ocw.mit.edu/courses/find-by-topic/

4. Udemy

Udemy is an online learning platform aimed at students and adults. It is filled with courses that will help you gain marketable and productive skills.

Although Udemy is primarily a paid service, there are many free courses available for you and there are more being added everyday. A personal favourite of mine is the “Free Introduction to Python Programming” course—great for anyone that wants to take part in the wonderful world of python.

5. KhanAcademy

KhanAcademy is a non-profit online learning platform that covers all sorts of classroom subjects all the way from kindergarten up to college. It was created in 2008 by Salman Khan, with the goal of creating a set of online tools that help educate students.

This is another one of my personal favourites that has helped in a lot, from high school to even college right now. Some of my favourite courses are the SAT preparation course and Multivariable Calculus

6. YouTube

This is no surprise and a no-brainer. Anyone that has been on the internet in the past decade and a half must have heard of youtube, or better yet, have found solutions to their everyday problems by some random guy on the internet making and uploading videos to youtube.

with the most watch-time and uploaded of any other video platform, Youtube is the perfect place for anyone looking to learn anything. If you can think of it, someone probably has made a video on it and posted it on Youtube.

7. edX

edX is a massive open online course provider. It hosts online university-level courses in a wide range of disciplines to a worldwide student body, including some courses at no charge. It also conducts research into learning based on how people use its platform.

One of my favourites, and arguably one of the most popular courses in the CS50 by Harvard. It is an intro to Computer Science and the Art of Programming course and open to anyone that is willing to step foot in the world of Programming:

https://www.edx.org/course/cs50s-introduction-to-computer-science

Bonus: Google Arts & Culture

This one is not strictly a learning platform but a cultural experience that I have been getting into recently. google has introduced a new feature as part of it’s Art & Culture platform where you can tour the world’s museums and art galleries and it’s a great way to experience the world from home.

You can also check out its various video essays on the ‘Google Arts & Culture’ Youtube Channel. It is truly a rabbit hole that can consume your hours in minutes.

These were some of my favourite platforms, that god knows have helped me in my journey as an eternal student of life. i hope that you dear reader find them as useful as I did, and maybe mention some that I missed in the comments below.

The World of GitHub, Version Control Systems

It wasn’t long ago that I too first ventured in the world of software development, a big step in my journey was discovering the version control system giant i.e. GitHub. GitHub has been a big help, as it is in any developer’s journey as they become part of digitally collaborative workspace. I remember being overwhelmed by the terms & technologies and thinking “why couldn’t we just use Google Drive instead?”, but since then it has proven to one of the most useful tools in my belt, as well as another skill to tick off in my ever developing resume.

What are version control systems and why do we use them?

Version control is the system of process of keeping track of previous versions of files throughout different phases of development. Not only is it used to keep track of different versions, but also to develop different variations concurrently. You can also restore back to a different point in time anytime you want or merge two or more versions into a single parent version. Version Control Systems eliminate the need to delete or overwrite a file every time a minor change is made or keeping track of a number of files to oversee different duplicates edited differently by various team members in your project.

If you too are thinking of becoming a part of this world, you will need a few terms to be well acquainted with to get through your journey smoothly. Below are some terms that are the cause for confusion for many young developers, but shouldn’t be:

1. Git vs GitHub

Git is a specific VCS (Version Control System). Used for keeping track of changes in source code during software development. Using git starts with installing git with comes with its own git bash terminal. All commands are given through a command terminal, having some knowledge of basic terminal commands is surely helpful. Git can be downloaded from:

https://git-scm.com/

GitHub is the cloud-based platform that makes collaborating using Git easier , so that changes can be seen in real time by all developers involved in the project. You need to sign up to a GitHub account to access its feature’s and link your current offline project to GitHub’s cloud storage. You can sign up using the link below:

https://github.com/join

2. What is a Repository? (How is it different from a project?)

A git repository is a master storage location for all files in a particular project. It can be though of as the project folder that contains the entirety of the files to be edited and shared. A repository can be either local (stored in your own device) or remote (stored in a different device, usually a server).

Once you have navigated to the folder that you want to use as your repository, the following command is used to initialize a repository:

Git init

Previously a repository and a project were thought to be the same thing on github but fairly recently there has been a change in terms due to GitHub’s release of a new projects feature, separate from repositories. GitHub defines it as “Project boards on GitHub help you organize and prioritize your work. You can create project boards for specific feature work, comprehensive roadmaps, or even release checklists. With project boards, you have the flexibility to create customized workflows that suit your needs.”

3. Staging Files

before changes can be made in a file, it must be selected which is referred to as placing a file in the staging area. Staging a file is done through using the following command:

git add file.js

multiple files are added by separating using spaces

git add file.js file2.js file3.js

4. Cloning and Forking

One great feature of GitHub is the access to a large library of open source projects made by developers around the world. You can make a copy of an open source project on your profile by forking it. Just simply find a repository and click the fork button, a non destructive copy will be made on your personal GitHub profile.

To transfer all the source files to your computer you’ll have to clone the repository. It can be done through two ways. You can either use a clone command on your git bash terminal, or download and extract the zip file.

5. Commits and How to Write Them

On a large scale project there can be millions of changes made and logged, to keep track of who did what and when, we must add commits (timestamped descriptions of our edits) after performing each individual task so that it can be revisited and verified later by the members of a project. The command for that is:

git commit -m "your comment here"

When you first start out working it can seem tiresome to write commits after every minor edit, but believe me, it makes your job a lot easier in the long run, much like when you first develop the habit of adding comments before substantial lines of code.

6. Branches

Branches can be thought of as different timelines of a project. If you want the changes you made in the project to not overwrite the work done by your other team members, you can create a separate branch from the main branch (named Master). It way your team can work on infinitely different version of the same project without interfering with each other’s work. Cool! I know right?

7. Remotes

Connecting your local git repository to your GitHub project is done through establishing a remote. Not just anyone can upload their edits to anyone else’s repository. You need to connect your local git repository by giving it the link to the GitHub repository, you must provide your GitHub credentials, which must be verified and vetted by the owner of the repository you are uploading to.

8. Push, Pull, and Merge Requests.

After a change is made in the source files, the team members must be brought to speed to it. If you make a change locally, it must be pushed from the local Git to GitHub. It can be done using the command:

git push -u origin master

After someone else edits the source files, to update your local repository, the updated files must be pulled down to your local machine. It can be done using the command:

git pull origin master

When different projects that have deviated from each other are to be merged together. The merge command is used:

git merge <branch-name>

Closing Remarks…

I know all these terms can be a lot at first, but they are really easy to pick up on when you implement them yourselves. So get some practice while your at it and get making your own repositories my young padawans!

If you do get stuck, here are some really useful youtube videos to assist you on your journey, on Git:

on GitHub:

iPhone SE 2020, The Good, The Bad, The Necessary

Following the overall general excitement in the world of Apple over the release of the new $400 iPhone has left some speculators wondering, “just why couldn’t we receive the much sought after bezel-less design in the previous iPhone SE form factor?”. Well it all comes down to the most attractive feature to justify the existence of the least attractive one—The price.

The vast majority of Apple users have considered this as a win-win situation due to the beloved, reliable design of the new SE paired with a very reasonable price bracket. Some still are quick to point out the shortfalls of this new iPhone, such as the large bezels, reminding of a phone that was once new age in 2014, but has no business being on the shelves in 2020. Also, the phone comes with an older generation of touch ID senor, which although gets the job done, is nowhere near as reliable as the one found in newer iPhones. Then comes the largest setback, the short battery life (1,821 mAh to be exact).

Dimensions of the iPhone SE 2020

Well the thing just is with all these complaints that they are the reason the new iPhone SE is the talk of the town. Apple has streamlined the process for developing this specific iPhone so well that they have minimized all the costs, making for the development of a sub $500 iPhone feasible. Any aforementioned changes would have caused apple to go back to the drawing board, investing in research & development, testing, and brand-new manufacturing processes. All of these costs add up and equal to a product that is nowhere near $400. This has already occurred with the release of the iPhone XR, which may not have had the highest specs at the lowest price but was Apple’s first attempt at a phone for the lower price bracket.

iPhone SE Concept

Everything said, I am still a fan of this new line of products from apple, as I have been a fan of the previous SE lineup. Some part of me still hopes to see a bezel-less iPhone in the beloved body of this iPhone SE’s predecessor, but that is far from reality.

I would love to hear your thoughts on the matter. Is it worth It for you too or just another failed attempt a well-rounded budget smartphone? Leave a comment below with your views on the matter.

The Beginning…

I Cannot teach anybody anything, I can only make them think.

-Socrates

Hi! I am Hannan, the Starving Socrates. This is the beginning of my journey in the world of blogging. follow me as I delve deep in the realms of the Tech, AI, Design, and DIY, the subjects of my little corner here of the world wide web.

One year from now, what do you know I might actually still be here, or better yet, somehow managed to be interesting…