Skip to content

Refactored learning path #8

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions LEARNING-PATH.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
## Your Learning Path Tasks

- [ ] [Main Goal](#main-goal)
- [ ] [Step 1 - Learn the Theory](#step-1---learn-the-theory)
- [ ] [Step 2 - Practice!](#step-2---practice)
- [ ] [Step 2 - Build the Project](#step-3---build-the-project)

<hr>

## **Main Goal**

At the end of this path, you will be able to build a **Personalized Diet Calculator** , just using Variables, expressions, statements and strings.

<hr>

## **Step 1** - Learn the theory

Read the following chapters to the key concepts of this specific path

<table>
<th>
<tr>
<td></td>
<td>Javascript</td>
<td>Python</td>
</tr>
</th>
<tr>
<td>Values, Types, and Operators</td>
<td><a href="https://eloquentjavascript.net/01_values.html">Eloquent Javasctipt - Chapter 1</a></td>
<td><a href="https://greenteapress.com/thinkpython2/thinkpython2.pdf">Think Python (Chapter 1 and 2)</a></td>
</tr>
<tr>
<td>Expressions and Statements</td>
<td>
- <a href="https://eloquentjavascript.net/02_program_structure.html#h_5fUOQZwwHx">Eloquent Javascript - Expressions and Statements</a>
<br />
- <a href="https://eloquentjavascript.net/02_program_structure.html#h_lnOC+GBEtu">Eloquent Javascript - Bindings</a>
<br />
- <a href="https://eloquentjavascript.net/02_program_structure.html#h_SbWNrIYjdH">Eloquent Javascript - Bindings Names</a>
<br />
- <a href="https://eloquentjavascript.net/02_program_structure.html#h_K5Yd6h3Axg">Eloquent Javascript - Functions</a>
<br />
- <a href="https://eloquentjavascript.net/02_program_structure.html#h_rDxYNPd65Z">Eloquent Javascript - Control Flow</a>
<br />
- <a href="https://eloquentjavascript.net/02_program_structure.html#h_t54vuASjLD">Eloquent Javascript - Capitalization</a>
<br />
- <a href="https://eloquentjavascript.net/02_program_structure.html#h_/OBuIOX390">Eloquent Javascript - Comments</a>
</td>
<td><a href="https://greenteapress.com/thinkpython2/thinkpython2.pdf">Think Python (Chapter 1 and 2)</a></td>
</tr>
</table>

### Documentation
Use the following documentation as a syntax reference

<table>
<th>
<tr>
<td>Javascript</td>
<td>Python</td>
</tr>
</th>
<tr>
<td>
<a href="https://javascript.info">https://javascript.info</a>
<br />
<a href="https://www.w3schools.com/js/default.asp">https://www.w3schools.com/js/default.asp</a>
</td>
<td><a href="https://docs.python.org/3.11/tutorial/index.html">https://docs.python.org/3.11/tutorial/index.html</a></td>
</tr>
</table>

### **Additional resources**

- [ ] Watch [Introduction to Programming and Computer Science - Full Course](https://www.youtube.com/watch?v=zOjov-2OZ0E&ab_channel=freeCodeCamp.org)
- [ ] Watch [The Programming Language Guide](https://youtu.be/2lVDktWK-pc)
- [ ] Watch [How does the internet work?](https://youtu.be/zN8YNNHcaZc)
- [ ] If you don't already have it, create a [Linkedin](https://www.linkedin.com/) account
- [ ] Follow our [page](https://www.linkedin.com/school/tomorrowdevs)

<hr>

## **Step 2** - Practice!

Code these exercises to capture the concepts you just learned:

- [ ] [Area of a Room](./projects/001-area-of-a-room/)
- [ ] [Bottle Deposits](./projects/002-bottle-deposits/)
- [ ] [Making Change](./projects/003-making-change/)
- [ ] [Units of Time](./projects/004-units-of-time/)
- [ ] [Day old bread](./projects/007-day-old-bread/)

### **Additional tasks**

- [ ] Improve your social presence
- [ ] Create your first Linkedin post by explaining who you are, what are you studying, and why you decided to start this journey
- [ ] Connect with at least 10 software developers. You can search for them in your city for example.


<hr>

## **Step 3** - Build the Project
Carry out a complete project as a certification of your skills

- [ ] [**Personalized Diet Calculator**](./projects/final-project/)

### **Additional tasks**

- [ ] Create and publish a first Github repository containing this project
- [ ] Send a message into our [Discord Community](https://discord.gg/4G5nbXRunZ), with the link of the project you just created, asking for feedbacks
36 changes: 25 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,32 @@
# TomorrowDevs Programming Basics Learning Path
# **TomorrowDevs Programming Basics Learning Path**
## **Variables, Expressions, Statements and Strings**

This is a repository containing all the projects for **TomorrowDevs** students to learn Programming Basics. <br />
This repo aims to give students a way to discover, study, and implement basic data structures, algorithms, patterns, user interfaces, etc.
This repository is part of the full Programming Basics Learning Path by Tomorrowdevs.

Before committing anything to that repo, please read the contribution guide at [CONTRIBUTING.md](/CONTRIBUTING.md).
The aim of this path is to allow people to learn Programming skills by building practical projects.
## **Description**

<hr>
The final purpose of this path is to allow you to build a first real-world project, that you can use in your everyday life.
In this case, you will build a Personalized Diet Calculator, just using Variables, expressions, statements and string.

In order to achieve that, youl will be guided into different steps and tasks, composed by a combination of theory and coding.

Furthermore, you will be introduced to the fundamentals of programming and computer science.

You will watch a series of videos that explain the basics of programming languages, how the internet works, and the tools that you'll use throughout the course.

Additionally, you will create an account on LinkedIn to help you expand your professional network.

## **Why It Matters**
Understanding the basics of programming, the internet, and the tools you'll be using is crucial for your journey as a developer. The content we selected will help you build a solid foundation and gain confidence in your ability to learn more advanced topics in the future.

<img src="./logo-td.png">
Furthermore, creating a LinkedIn account will allow you to connect with professionals in the industry and access potential job opportunities as you progress through the course.

# 🚀 **[Jump to the Learning Path!](LEARNING-PATH.md)** 💻


## **Credits**
<img src="./logo-td.png" width="300">

### A Mentorship program for developers

Expand All @@ -30,8 +49,3 @@ Need help in solution development, guidance, training or capacity building, care
We are a community of Software Engineers with years of technical and leadership experience in a diverse range of technologies and domains.

Let us know what problem you are facing at <b>http://www.tomorrowdevs.com</b> and we can schedule a consultation meeting to help you get through it.

## Contributions Welcome
[![forthebadge](https://forthebadge.com/images/badges/built-with-love.svg)](#)

If you find any bug in the code or have any improvements in mind then feel free to generate a pull request.
35 changes: 35 additions & 0 deletions projects/final-project/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# **Personalized Diet Calculator**

This project consists in the development of a personalized diet calculator which, based on the information provided by the user regarding their caloric needs and food preferences, automatically generates a balanced daily food plan.

## Objective:
The goal of the project is to create a simple tool that allows users to obtain a personalized diet based on their needs and preferences, using only variables, strings and mathematical calculations without the use of conditional operators or other complex constructs.

## Main features:

### Acquisition of user information:

- Ask the user for their gender (male/female) and store it in a variable.
- Ask the user for age and store it in a variable.
- Ask the user for the height in centimeters and store it in a variable.
- Ask the user for the weight in kilograms and store it in a variable.
- Ask the user for the level of physical activity (sedentary/light/moderate/heavy) and store it in a variable.
- Ask the user for any food preferences or restrictions and store them in a text variable.
- Calculation of daily calorie requirement:

- Using only mathematical calculations, calculate the user's daily calorie needs based on their gender, age, height and weight.
Store the daily calorie requirement value in a numeric variable.
Meal plan generation:

- Create separate text variables for foods with their nutritional information (calories, proteins, carbohydrates, fats, etc.).
- Using mathematical calculations, calculate the amount of food to consume for each meal (breakfast, lunch, dinner, snacks) in a balanced way.
- Generate a text string that represents the daily food plan with details of the foods and their quantities.

### Meal plan view:

- Print the text string containing the generated food plan on the screen, showing the foods and the relative quantities for each meal.
If you have provided food preferences or restrictions, adjust your meal plan accordingly.

### End of program:

Show a closing and thank you message to the user.