This repository has been archived by the owner on Sep 19, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
1b7acc7
commit c9b50b0
Showing
6 changed files
with
261 additions
and
254 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,25 @@ | ||
# master-syllabus | ||
This repository acts as a master plan for the entire FOSS club as of 2018. Inclusive of syllabus to be followed by different academic years accordingly, enlists different online courses to be taken part in, and projects ideas for various projects as well. Further details would be added later. | ||
# Master Syllabus | ||
The repository contains the master syllabus for members of the club, prepared by a an expert panel of alumni/mentors, which the members are expected to follow throughout their learning in the club. | ||
|
||
This readme page would act as a table of content for the courses and other relavent datas enlisted in the repository. If willing to add any ideas or suggestions, feel free to open a pull request. :) | ||
### What it contains? | ||
* Topics to be mastered | ||
* Online Courses/Tutorials Recommended | ||
* Suggested Projects | ||
|
||
## Common Subjects | ||
| Stream Name | Description | | ||
|---|---| | ||
| Googling | Learn to efficiently search and browse the internet | | ||
| Linux & Open Source Softwares | Learn and adapt to Linux-based OS, and Open Source Softwares | | ||
| Bash | Learn Bash Scripting | | ||
|
||
|
||
## Streams | ||
There are a number of streams that a member can follow in the club, each have a independent syllabus and a dedicated team to support. | ||
|
||
|#| Stream Name | Description | Team | | ||
|---|---|---|---| | ||
|1.| [Android Developer](/android) | Learn to Develop Android Apps | [Github Team](https://github.com/orgs/amfoss/teams/android-team) | | ||
|2.| [Web Developer](/web) | Learn how web works, build web apps and APIs | [Github Team](https://github.com/orgs/amfoss/teams/web-team) | | ||
|3.| [Data Scientist](/data-science) | Learn Data Science | [Github Team](https://github.com/orgs/amfoss/teams/data-science-team) | | ||
|4.| Problem Solver (Competitive Programming) | Solve challenging programming contests | | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
# Android Application Development | ||
|
||
![](https://img.shields.io/maintenance/no/2019.svg) [![](https://img.shields.io/github/last-commit/amfoss/master-syllabus.svg)]() | ||
|
||
## Introduction | ||
|
||
Before getting started with Android application development, please make sure that you know the following very well - | ||
|
||
1. Learn any of the following programming languages - | ||
* [```Java```](/java) :coffee: (Preferred) | ||
* [```Kotlin```](/kotlin) :coffee: | ||
* [```Dart```](/dart) :dart: | ||
2. Learn Object Oriented Programming in any of the languages mentioned above. | ||
3. Also, learn the basics of functional programming in any of the languages mentioned above. | ||
4. Once, you are familiar with the topics mentioned above, you can proceed with [Android Application Development](#aad). | ||
|
||
## <a name="aad">Android Fundamentals</a> | ||
|
||
Once you are comfortable with any of the languages mentioned at the beginning of the post, you can proceed with Android Application Development. Before moving ahead, please make sure that you are familiar with the following - | ||
|
||
- [X] Basics of the either of the languages mentioned above | ||
- [X] Object Oriented Programming in any of the languages mentioned above. | ||
- [X] Collections in either of the languages mentioned above. | ||
- [X] Basic I/O operations. | ||
|
||
:exclamation: **Note:** It is recommended that you get all the above mentioned check boxes checked before you move ahead with Android Application Development. | ||
|
||
<hr> | ||
|
||
Please view the following sites to learn android application development - | ||
|
||
1. **Google Developers Training: Android** | ||
|
||
[This](https://developers.google.com/training/android/) site contains all the necessary resources to learn Android application development. This site contains links to various Udacity courses which teaches the necessary basics required to learn Android application development. It also contains intermediate and advanced level courses for experienced developers. | ||
|
||
2. **Google Codelabs: Android** | ||
|
||
[This](https://codelabs.developers.google.com/?cat=Android) site contains a lot of resources to improve the skillset of an Android developer. Each Codelab module is self-contained and easy to comprehend and implement. | ||
|
||
3. **Android Jetpack** | ||
|
||
[This](https://developer.android.com/jetpack/) site contains recent and the lastest tools released by Google to create robust, efficient and structured Android apps. | ||
|
||
## Miscellaneous | ||
|
||
|
||
This section contains various Android libraries, tools, and coding practices an Android Developer should know. | ||
|
||
#### Android Tools | ||
|
||
Below-mentioned are the tools which an Android developer should know - | ||
|
||
1. **ADB** | ||
|
||
[ADB](https://developer.android.com/studio/command-line/adb) is an basic tool which an developer should know. The Android | ||
Developers' website explains this tool in great detail. | ||
|
||
2. **Fastboot** | ||
|
||
Please view [this](https://forum.xda-developers.com/showthread.php?t=2277112) XDA post which explains in detail what ```fastboot``` is and also explains how to use it. | ||
|
||
3. **Logcat** | ||
|
||
[Logcat](https://developer.android.com/studio/command-line/logcat) is really important tool and this tool can help you debug your application if something goes wrong. | ||
|
||
4. **Other tools** | ||
|
||
You can find other tools that are used in Android Application Development [here](https://developer.android.com/studio/command-line/logcat). | ||
|
||
<hr> | ||
|
||
#### Android Libraries | ||
|
||
You can find a ton of interesting Android libraries [here](https://android-arsenal.com/). | ||
|
||
<hr> | ||
|
||
#### Coding Practices | ||
|
||
Below-mentioned are a few websites which explain good coding practices that one needs to follow while developing an Android app. | ||
|
||
1. **Java Code Style** | ||
|
||
[This](https://source.android.com/setup/contribute/code-style) article explains the Java Code Style that is to be followed while contributing to ```AOSP```. But the practices mentioned in their site can also be used while developing Android applications. | ||
|
||
[This](https://github.com/ribot/android-guidelines/blob/master/project_and_code_guidelines.md) README file also explains proper Code Style for Java in detail. | ||
|
||
2. **Kotlin Code Style** | ||
|
||
[This](https://developer.android.com/kotlin/style-guide) article explains proper code style that needs to be followed while building apps in ```Kotin```. | ||
|
||
3. **Flutter Code Style** | ||
|
||
[This](https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo) documentation explains proper code style that needs to be followed while building apps in ```Flutter```. | ||
|
||
|
||
## Getting Certified :mortar_board: | ||
|
||
Once you know the basics of Android Application Development well, you can apply for the position of [**Android Associate Developer**](https://developers.google.com/training/certification/associate-android-developer/). | ||
|
||
And once you have mastered Android Application Development you can also apply for the position of [**Android Developer Expert**](https://developers.google.com/experts/become-an-expert). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# Dart Developer | ||
|
||
Please refer to the following sites to learn ```Dart``` | ||
|
||
1. **Official Dart Website** | ||
|
||
Please click [here](https://www.dartlang.org/tutorials) to visit the official ```Dart``` website which contains a ```codelab``` exercise to teach you all the basics of ```Dart```. | ||
|
||
1. **TutorialsPoint** | ||
|
||
[TutorialsPoint](https://www.tutorialspoint.com/dart_programming/index.htm) is a also great place to master the basics of ```Dart```. | ||
|
||
1. **Dart Academy** | ||
|
||
[Dart Academy](https://dart.academy/tag/beginner/) is another great place to learn how to use ```Dart``` to build amazing stuff. | ||
|
||
##### 💡 Tip: To understand the language better, try solving problems in this language. This will help you to learn the language faster. | ||
|
||
Below mentioned are a few sites from which you can solve more problems: | ||
|
||
* **Codeforces** | ||
|
||
You can solve problems from [here](https://codeforces.com/problemset). | ||
|
||
* **CodeChef** | ||
|
||
You can solve problems from [here](https://www.codechef.com/problems/school). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
# Java Developer | ||
|
||
#### Java Basics | ||
|
||
The official ```Java``` documentation is a great a place to learn ```Java```. Click [here](https://docs.oracle.com/javase/tutorial/) to visit ```Java``` documentation. | ||
|
||
Complete the basic trails to get an overall view of ```Java```. | ||
|
||
Other really good resources to learn ```Java``` are mentioned below: | ||
|
||
1. **Java World** | ||
|
||
The [Java-101](https://www.javaworld.com/blog/java-101/) blog series are really good and it explains all the topics in great detail. This site is quite useful for beginners. | ||
|
||
2. **JournalDev** | ||
|
||
[JournelDev](https://www.journaldev.com/7153/core-java-tutorial) is also great place to learn ```Java```. They have a well organized course plan which will be quite helpful for beginners. Also, the content is beginner-friendly. | ||
|
||
3. **Dzone: Java Zone** | ||
|
||
[Dzone Java Zone](https://dzone.com/java-jdk-development-tutorials-tools-news) has a huge number of articles on ```Java``` and various tools used in ```Java``` development. Nearly all of the articles are well written and are self explanatory. | ||
This site can be used to look up articles on topics which the reader finds difficult to understand. | ||
|
||
|
||
4. **JavaTpoint** | ||
|
||
[JavaTpoint](https://www.javatpoint.com/java-tutorial) is another site from where one can learn the basics of ```Java```. This site has examples for each topic in ```Java``` and hence the reader will find this site quite useful. This site provides a brief overview of all the topics in ```Java```. | ||
|
||
|
||
5. **Programming by Doing** | ||
|
||
[Programming by Doing](http://programmingbydoing.com/) is great site where one can learn ```Java``` by writing a lot of code. For those who like to learn a language by coding, this site is the best place for them. | ||
|
||
##### :exclamation: **NOTE:** There are other good resources to learn Java, the ones mentioned above are few of them. | ||
|
||
##### 💡 Tip: To understand the language better, try solving problems with Java. This will help you to learn the language faster. | ||
|
||
|
||
Below mentioned are a few sites from which you can practice problems - | ||
|
||
1. **Tech Dev Guide** | ||
|
||
[Tech Dev Guide](https://techdevguide.withgoogle.com/paths/) has two paths <em>Foundations of Programming</em> and <em>Advanced Programing</em>. The program is offered by Google and contains a lot of problems. The problems are arranged in increasing order of difficulty. Finish both the paths to strengthen your basics. | ||
|
||
2. **HackerRank** | ||
|
||
There are two challenges which anyone learning ```Java``` ought to complete. They are - | ||
|
||
* **Java Challenge** | ||
|
||
[This](https://www.hackerrank.com/domains/java) challenge contains problems on various topics in ```Java```. | ||
|
||
* **30 Days of Code Challenge** | ||
|
||
[This](https://www.hackerrank.com/domains/tutorials/30-days-of-code) challenge contains questions on Object Oriented Programming and programming in general. | ||
|
||
3. **Miscellaneous** | ||
|
||
Below mentioned are a few sites from which you can solve more problems: | ||
|
||
* **Codeforces** | ||
|
||
You can solve problems from [here](https://codeforces.com/problemset). | ||
|
||
* **CodeChef** | ||
|
||
You can solve problems from [here](https://www.codechef.com/problems/school). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# Kotlin Developer | ||
|
||
## Kotlin Basics | ||
|
||
This section will contain resources to learn ```Kotlin```. | ||
|
||
Please refer to the following sites to learn the basics of ```Kotlin``` - | ||
|
||
1. **Android Developers Website** | ||
|
||
[This](https://developer.android.com/kotlin/resources) site has a really good collection of resources to learn ```Kotlin```. | ||
|
||
2. **Kotlin Koans** | ||
|
||
[Kotlin Koans](https://play.kotlinlang.org/koans/overview) is a great place to learn ```Kotlin```. This site follows the "learn by coding" approach. You'll learn the basics of ```Kotlin``` quickly provided you know ```Java``` well. | ||
|
||
3. **envatotuts+** | ||
|
||
They have really good tutorials on ```Kotlin``` and they are beginner friendly. Please view the following links - | ||
|
||
* [Kotlin from Scratch](https://code.tutsplus.com/series/kotlin-from-scratch--cms-1209) | ||
* [All Kotlin tutorials](https://tutsplus.com/tutorials/search/kotlin) | ||
|
||
##### 💡 Tip: To understand the language better, try solving problems in this language. This will help you to learn the language faster. | ||
|
||
Below mentioned are a few sites from which you can practice problems : | ||
|
||
1. **Exercism** | ||
|
||
Please click [here](https://exercism.io/tracks/kotlin) to view the website. | ||
|
||
2. **Miscellaneous** | ||
|
||
Below mentioned are a few sites from which you can solve more problems: | ||
|
||
* **Codeforces** | ||
|
||
You can solve problems from [here](https://codeforces.com/problemset). | ||
|
||
* **CodeChef** | ||
|
||
You can solve problems from [here](https://www.codechef.com/problems/school). |
Oops, something went wrong.