Open MadhuMNG opened 2 years ago
Week 2
-I will go through the study materials.
@MadhuMNG happy to hear that you understand git commands!
for each module, you have to create 2 issues, one for check-ins (to keep track of your study progress) and one for deliverables (to submit homework)
now we are on week-1 of the Workflows module, for instance. I have now changed the title of the issue and the label as well to reflect this.
@MadhuMNG happy to hear that you understand git commands!
for each module, you have to create 2 issues, one for check-ins (to keep track of your study progress) and one for deliverables (to submit homework)
now we are on week-1 of the Workflows module, for instance. I have now changed the title of the issue and the label as well to reflect this.
Thanks Danial
@MadhuMNG you already added a week-2
label, but I do not see the check-in comment yet for this week. are you working on it now? please add it once you are done and added the weekly checkin. thanks
@MadhuMNG very happy to see that you gained a lot of confidence this week and could also help others. Can you say what naming convention caused confusion for you? You mean kebab-case vs camelCase? Yes, GitHub was down today, that usually does not happen..do not worry about it. What installations do you need help with?
Thanks Daniel.
1 There is no one good way to name branches, it is really up for discussion within each team. Also, there are many different branching strategies, the two most popular are Git Flow and GitHub Flow. You can look them up. 2 the -g option means that that package will be installed globally, on your entire operating system, not just one repo. In order to do this, you need to have admin privileges on your machine. sudo invokes this and asks for your password.
@MadhuMNG, you also won't need ESLint until we reach JavaScript. For now the MarkdownLint that comes with the project repository is enough since you're only writing Markdown. There's already a script in the package.json
for linting the project:
npm install
- install the dependencies in your package.json
, you only need to do this oncenpm run lint:md
- run this each time you want to lint the project. Thanks @danielhalasz @colevandersWands
Learning Objectives
Priorities: π₯, π£, π₯, π (click to learn more)
There is a lot to learn in this repository. If you can't master all the material at once, that's expected! Anything you don't master now will always be waiting for you to review when you need it. These 4 emoji's will help you prioritize your study time and to measure your progress: - π₯: Understanding this material is required, it covers the base skills you'll need for this module and the next. You do not need to finish all of them but should feel comfortable that you could with enough time. - π£: You have started all of these exercises and feel you could complete them all if you just had more time. It may not be easy for you but with effort you can make it through. - π₯: You have studied the examples and started some exercises if you had time. You should have a big-picture understanding of these concepts/skills, but may not be confident completing the exercises. - π: These concepts or skills are not necessary but are related to this module. If you are finished with π₯, π£ and π₯ you can use the π exercises to push yourself without getting distracted from the module's main objectives. ---
π₯ 0. Local Development Without Git
Practice the foundational workflows of software development by learning to write Markdown locally on your own computer using Visual Studio Code (VSCode), the Command Line Interface (CLI), and NPM scripts to automate your code's quality (formatting, linting and spell checking).
cd
ls
cat
touch
mkdir
npm install
to install a project's dependenciespackage.json
file to find which scripts are available for the projectnpm run <script>
to execute an npm scriptnpm run format
to format all of the documents in your projectnpm run format:check
to make sure all files are well-formattednpm run lint:ls
to check all folder and file names in your projectnpm run lint:ls
npm run lint:md
to check all Markdown files in your folder for linting mistakesnpm run lint:md
npm run spell-check
to check the spelling in all the files of your project.cspell.json
to add words that should be allowed in your projectnpm run lint:ls
to check that all files and folders follow the project's naming conventions.π₯ 1. Local Development With Git
Practice using Git to save and organize your development process. You will learn how you can use Git to go back to previous versions of your project, and to work on different changes in parallel.
git init
git add <path>
git status
git commit -m <message>
git log
git branch <branch-name>
git checkout <branch-name>
git checkout -b <branch-name>
git merge <branch-name>
git log
andgit checkout <commit-hash>
git stash
andgit pop
.gitignore
: You can use a.gitignore
file to describe which files you don't want included in your git history.main
when they are finished.π₯ 1. Local/Remote Development
Learn how you can connect your local Git repositories with a GitHub repository to add more structure to your development process and to share your projects.
main
main
until Continuous Integration (CI) checks have passedpush
andpull
changes between remote & local branchesmain
.main
branch.main
branch and prevents conflicts from happening in GitHub. For each contribution to the project you can ...main
on your local machinemain
to localmain
main
to your new branchmain
main
π£ 3. Remote Collaboration
Learn how to collaborate with a group on a single project hosted in a GitHub repository. Practice using GitHub's project management features to organize your group's tasks and to double-check your project's code quality.
main
.π₯ 4. Open Source Development
Explore the wider world of Open Source software by learning how communities of independent developers write and maintain the code we all rely on.
TOP
Study Tips
expand/collapse
- Don't rush, understand! Programming is hard. - The examples and exercises will still be there to study later. - It's better to fail tests slowly and learn from your mistakes than to pass tests quickly and not understand why. - Don't skip the examples! Understanding and experimenting with working code is a very effective way to learn programming. - Write lots of comments in the examples and exercises. The code in this repository is yours to study, modify and re-use in projects. - Practice [Pair Programming](https://home.hackyourfuture.be/students/study-tips/pair-programming): two people, one computer. - Take a look through the [Learning From Code](https://home.hackyourfuture.be/students/study-tips/learning-from-code) guide for more study tips ### Study Board Creating a project board on your GitHub account for tracking your study at HYF can help you keep track of everything you're learning. You can create the board at this link: `https://github.com/your_user_name?tab=projects`. These 4 columns may be helpful: - **todo**: material you have not studied yet - **studying**: material you are currently studying - **to review**: material you want to review again in the future - **learned**: material you know well enough that you could help your classmates learn it
TOP
Setting Up
git clone --depth 1 git@github.com:HackYourFutureBelgium/workflows.git
cd workflows
npm install
TOP
Code Quality Scripts
expand/collapse
This repository comes with some scripts to check the quality of this code. You can run these scripts to check the code provided by HYF, and to check the code you write when experiment with the examples and complete the exercises. ### `npm run format` This script will format all of the code in this repository making sure that all the indentations are correct, the code is easy to read, and letting you know if there are any syntax errors. ### `npm run format:check` Checks the formatting of all files in the repository and throws an error if any files are not well-formatted. ### `npm run spell-check` This script will check all of the files in your repository for spelling mistakes. Spelling is not just a detail, is important! Good spelling helps others read and understand your programs with less effort. `spell-check` is not so clever though, it doesn't have _all_ possible words in it's dictionary and it won't know if you _wanted_ to spell a word incorrectly. If you think one of it's "Unknown word"s is not a problem, you can either ignore the suggestion or add the word to the `"words": [ ... ],` list in [.cspell.json](./.cspell.json). ### `npm run lint:md` This script will [lint](https://en.wikipedia.org/wiki/Lint_%28software%29) all the Markdown files in this repository, checking for syntax mistakes and other bad practices. Fixing linting errors will help you learn to write better code by pointing out your mistakes _before_ they cause problems in your program. Some linting errors will take some practice to understand and fix, but it will be a good use of time. ### `npm run lint:ls` This script will [lint](https://en.wikipedia.org/wiki/Lint_%28software%29) the names of all files and folders in the project to check that they follow the project naming convention ([kebab-case](https://betterprogramming.pub/string-case-styles-camel-pascal-snake-and-kebab-case-981407998841)).
TOP