https://github.com/fossmec/learning-resources
Curated resources for newbies to get started with programming, open source, cyber security and many more fields. :gem:
https://github.com/fossmec/learning-resources
Last synced: 4 months ago
JSON representation
Curated resources for newbies to get started with programming, open source, cyber security and many more fields. :gem:
- Host: GitHub
- URL: https://github.com/fossmec/learning-resources
- Owner: FossMec
- License: mit
- Created: 2019-09-05T02:23:55.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-09-05T04:12:55.000Z (almost 7 years ago)
- Last Synced: 2025-10-16T23:41:44.334Z (9 months ago)
- Homepage:
- Size: 4.88 KB
- Stars: 1
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Contributing: contributing.md
- License: license
Awesome Lists containing this project
README
# Learning resources
This is an initiative to provide a comprehensive curriculum for students to learn about computer science development and open source. This is a curated list of tutorials, guides and everything a beginner needs to know.
## Table of Contents
* [Linux](#linux)
* [CS50](#cs50)
* [Android](#android)
* [Ruby](#ruby)
* [Ruby On Rails](#ruby-on-rails)
* [Python](#python)
* [Presentation Skills](#presentation-skills)
* [Blogging](#blogging)
* [Git](#git)
* [Git with Software Development Platforms](#git-with-software-development-platforms)
## Linux
**Why Linux?**
- Open source : apart from Linux's source code being readable to anyone, it also means that there is a whole community to support when you face issues plus it is secure comparing to other closed source OSes.
- Ease of development : programming and development in general, is a far better experience in Linux than in other OSes.
- You do things on your own : there is a lot of learning when you use Linux, you get to understand many things about an OS and a get a touch of how everything works under the hood.
Read more about Linux [here](https://opensource.com/resources/linux)
**Installation and Dual-booting**
It is generally recommended to go with the latest LTS release of Ubuntu (18.04.2 at the time of writing). Ubuntu is one of the most popular Linux distros and is strongly recommended for beginners due to its large community and forums.
- [Install Ubuntu desktop | Ubuntu tutorials](https://tutorials.ubuntu.com/tutorial/tutorial-install-ubuntu-desktop#0)
- [How To Install Ubuntu Along With Windows - It's FOSS](https://itsfoss.com/install-ubuntu-dual-boot-mode-windows/)
- [How To Dual Boot Windows 8.1 And Debian Jessie](https://www.lifewire.com/dual-boot-windows-8-1-debian-jessie-2202088)
- [Installing Linux over Free DOS](https://www.linuxquestions.org/questions/linux-newbie-8/need-help-with-installing-linux-from-free-dos-899812/)
[Common issues faced during Installation](https://github.com/amfoss/vidyaratna/blob/initial/beginners/0_install_linux.md#common-errors-and-issues)
**Common terminal commands and Bash Scripting**
- [Basic Linux Commands for Beginners](https://maker.pro/linux/tutorial/basic-linux-commands-for-beginners)
- [What is a Bash Script? - Bash Scripting Tutorial](https://ryanstutorials.net/bash-scripting-tutorial/bash-script.php)
**Desktop Customisation**
- [Customize Ubuntu 18.04 GNOME With These Simple Tips](https://itsfoss.com/gnome-tricks-ubuntu/)
- [7 cool KDE tweaks that will change your life](https://opensource.com/article/17/5/7-cool-kde-tweaks-will-improve-your-life)
**Tips and tricks**
- [16 Useful Linux Command Line Tips And Tricks](https://likegeeks.com/linux-command-line-tricks/)
- [Using Shell Scripting to Automate Linux System Maintenance Tasks](https://www.tecmint.com/using-shell-script-to-automate-linux-system-maintenance-tasks/)
For a more detailed look into the Linux commands, Bash scripting and more, go through [this book](https://liquidtelecom.dl.sourceforge.net/project/linuxcommand/TLCL/19.01/TLCL-19.01.pdf)
#### Laptop Suggestions
Generally speaking, laptops that come preinstalled with Ubuntu are highly recommended. You can also get one without a graphics card to avoid issues with battery life and driver installation. It is recommended to research about the Linux support of a particular model before getting it. If possible try to stay away from the very latest, since these devices might not have open source drivers available so always check compatibility before you go for a specific model.
There are an overwhelming number of processors out there, it's best to go with a laptop with the latest - up to date generation of Intel i3, i5 or an i7 processor.
If there is need for a device with graphics card, it is highly recommended to get one with NVIDIA graphics to use the CUDA technology. Regarding RAM, any system with 8GB or more RAM is going to fine. And if you get one with 4GB, you can usually upgrade it to 8GB or more. Also if you have enough budget, consider getting a system with an SSD instead of an HDD.
## CS50
- [CS50 Lectures](http://cs50.tv/2017/fall/#about,lectures)
- [Problem Sets](http://cs50.tv/2017/fall/#about,psets)
- [CS50 IDE](https://ide.cs50.io/)
- [CS50-Youtube](https://www.youtube.com/user/cs50tv/featured)
- [CS50's Introduction to Computer Science | edX](https://www.edx.org/course/cs50s-introduction-to-computer-science)
## Android
### Programming Langauges
#### Java
- [The Java™ Tutorials (Official Documentation)](https://docs.oracle.com/javase/tutorial/)
- [Java 101](https://www.javaworld.com/blog/java-101/)
- [Core Java Tutorial-JournalDev](https://www.journaldev.com/core-java-tutorial)
- [Programming by doing](http://programmingbydoing.com/)
[Learn how to format Java code properly](https://github.com/ribot/android-guidelines/blob/master/project_and_code_guidelines.md)
#### Kotlin
- [Additional Kotlin resources | Android Developers](https://developer.android.com/kotlin/resources)
- [Kotlin Koans](https://play.kotlinlang.org/koans/overview)
[Learn how to format Kotlin code properly](https://developer.android.com/kotlin/style-guide)
#### Dart
- [Tutorials | Dart](https://dart.dev/tutorials)
- [Codelabs | Dart](https://dart.dev/codelabs)
[Learn how to format Flutter/Dart code properly](https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo)
### Application Development
- [Google Developers Training | Google Developers](https://developers.google.com/training/android/)
- [Google Codelabs](https://codelabs.developers.google.com/?cat=Android)
### Android Development Tools
- [Install Android Studio | Android Developers](https://developer.android.com/studio/install)
- [Android Debug Bridge (adb) | Android Developers](https://developer.android.com/studio/command-line/adb)
- [How To Setup And Use Fastboot](https://forum.xda-developers.com/showthread.php?t=2277112)
- [Android Jetpack](https://developer.android.com/jetpack/)
### Certification
- [Google Developers Certification | Google Developers](https://developers.google.com/training/certification/associate-android-developer/)
- [Experts | Google Developers](https://developers.google.com/programs/experts/)
## Ruby
- [Installing Ruby (Official Documentation](https://www.ruby-lang.org/en/documentation/installation/)
- [Ruby Programming | The Odin Project](https://www.theodinproject.com/courses/ruby-programming)
- [Learning Ruby: From Zero to Hero](https://www.freecodecamp.org/news/learning-ruby-from-zero-to-hero-90ad4eecc82d/)
- [Learn Ruby - Free Interactive Ruby Tutorial](https://www.learnrubyonline.org/en/)
- [The Ruby Programming Language](https://theswissbay.ch/pdf/Gentoomen%20Library/Programming/Ruby/The%20Ruby%20Programming%20Language%20-%20Oreilly.pdf)
## Ruby On Rails
- [Ruby on Rails Tutorial by Michael Hartl](https://www.railstutorial.org/book)
- [Understanding the basics of Ruby on Rails: SQL Databases and how they work](https://www.freecodecamp.org/news/understanding-the-basics-of-ruby-on-rails-sql-databases-and-how-they-work-7a628cd42073/)
- [How to create a simple jobs board in Ruby on Rails](https://medium.com/@riklomas/how-to-create-a-simple-jobs-board-in-ruby-on-rails-even-if-youve-never-coded-before-9b296c4df483)
## Python
**Automation with Python**
- [Automate the Boring Stuff With Python](https://automatetheboringstuff.com/)
**Video Lectures**
- [Python 3 Basics Tutorial Series - YouTube](https://www.youtube.com/playlist?list=PLQVvvaa0QuDe8XSftW-RAxdo6OmaeL85M)
- [Python 3.4 Programming Tutorials - YouTube](https://www.youtube.com/playlist?list=PL6gx4Cwl9DGAcbMi1sH6oAMk4JHw91mC_)
**More Resources**
- [Learning Python: From Zero to Hero](https://www.freecodecamp.org/news/learning-python-from-zero-to-hero-120ea540b567/)
- [Google's Python Class | Python Education | Google Developers](https://developers.google.com/edu/python/)
- [Python Tutorials | Real Python](https://realpython.com/)
**Practicing Python**
- [Project Euler](https://projecteuler.net/)
## Presentation Skills
- [How to make a good presentation with 8 pro tips | Biteable](https://biteable.com/blog/tips/how-to-make-good-presentation/)
- [5 Ways To Make a PowerPoint Presentation Awesome — Episode25](https://youtu.be/WmdnihffGTQ)
- [Speaking Up Without Freaking Out | Matt Abrahams | TEDxPaloAlto](https://youtu.be/XIXvKKEQQJo)
- [How to give a good presentation](https://www.princeton.edu/~archss/webpdfs08/BaharMartonosi.pdf)
- [14 PowerPoint Presentation Tips to Make More Creative Slideshows](https://blog.hubspot.com/marketing/easy-powerpoint-design-tricks-ht)
## Blogging
**Best Practices**
- [How to write a great technical blog post | freeCodeCamp](https://www.freecodecamp.org/news/how-to-write-a-great-technical-blog-post-414c414b67f6/)
- [How to Write an Awesome Blog Post ](https://www.wordstream.com/blog/ws/2015/02/09/how-to-write-a-blog-post)
**Blogging Platforms**
- [WordPress Blog Creation: How To Start A Free Blog Guide](https://startbloggingonline.com/how-to-start-a-blog-on-wordpress-com/)
- [Build A Blog With Jekyll And GitHub Pages](https://www.smashingmagazine.com/2014/08/build-blog-jekyll-github-pages/)
## Git
- [Official Git Book](https://git-scm.com/book/en/v2)
- [Code School: Git Real](https://www.pluralsight.com/courses/code-school-git-real)
- [Collaborating With Git](https://yash2k.wordpress.com/2019/02/17/collaborating-with-git/)
## Git with Software Development Platforms
- [GitHub Learning Lab](https://lab.github.com/)
- [Learning Git with Bitbucket](https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud)
- [Git and GitLab](https://docs.gitlab.com/ee/topics/git/)
## Credits
Specials thanks to [AMFOSS](https://github.com/amfoss/) for creating this amazing curated lists