Skip to content
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

Updated LEARNING.md docs #2518

Merged
merged 1 commit into from
Sep 1, 2021
Merged
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
38 changes: 25 additions & 13 deletions docs/LEARNING.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,34 @@
# Learning

## Learning Python From Scratch
Python is, as Wikipedia goes, a powerful *general-purpose high-level programming language*. It basically means that it can be used to write a wide variety of different kinds of software, from videogames to HTTP servers to command-line tools.
Python is (_as Wikipedia says_), a powerful *general-purpose and high-level programming language*.
It can be used to write a wide variety of different kinds of software, from video games to HTTP servers to command-line tools - and a whole lot else.
It is especially good at 'gluing' different systems and programs together.

One of the main characteristics that differentiates Python from other programming languages is its strong emphasis on readability and code cleaness. In fact, differently from other languages like JavaScript or C++, in Python code indentation has a syntactical meaning and you are forced to chose and adhere to a writing style (e.g. don't mix *tabs* and *spaces* for identation; don't use two spaces where you should use four etc.). Yes, forced: the Python interpreter will raise SyntaxErrors if it recognize wrong indentation.

This might look like a limit at the beginning but, as you will advance in your learning path, you'll realize that enforcing this behaviour will make your code slim and more readable by default.
And we think the best way to lean is to _play_ and to _practice_ with coding projects big and small - or with small problems like the ones here on exercism!

For its own nature, exercism assumes that you already have a grasp of the language syntax before starting doing exercises. At least at a point where you can write simple functions in Python. From there on, you can continue your learning as you will advance in the exercism track and gradually explore new constructs and concepts.

With this premise, a good, beginner friendly, starting point for those who don't have any experience in other languages might be the Python course on [Sololearn.com](https://www.sololearn.com/Course/Python/). It will help you get an understanding of the Python syntax with which you will be able to start solving exercises here on exercism.
Below you will find some additional jumping-off places to start your learning journey, recommended by our community.

## Other Resources

- [Automate the Boring Stuff with Python (Book)](https://automatetheboringstuff.com/)
- [Python3 Beginner Tutorial](https://www.youtube.com/playlist?list=PL1A2CSdiySGJd0LJRRSwQZbPZaDP0q67j)
- [Learn Python - An Interactive Tutorial](https://www.learnpython.org/)
- [Offical Python3 **Documentation** and **Reference**](https://docs.python.org/3/)
- [Learn X in Y minutes (where X = Python3)](https://learnxinyminutes.com/docs/python3/)
- [The Hitchhiker’s Guide to Python](http://docs.python-guide.org/en/latest/)
- [PyCharm EDU **IDE** and **Courses**](https://www.jetbrains.com/pycharm-edu/)
## Resources

- [Python Documentation Tutorial][Python Documentation Tutorial]
- [Automate the Boring Stuff with Python (Book)][automate the boring stuff]
- [Learn X in Y minutes (where X = Python3)][Learn X in Y minutes]
- [Python3 Beginner Tutorial (video)][Python3 Beginner Tutorial]
- [Practical Python Programming from David Beazley][Practical Python]
- [Official Python3 Documentation and Reference][python docs]
- [PyCharm EDU **IDE** and **Courses**][pycharm edu]
- [Python at Free Code Camp][python at free code camp]


[Learn X in Y minutes]: https://learnxinyminutes.com/docs/python3/
[Practical Python]: https://dabeaz-course.github.io/practical-python/
[Python Documentation Tutorial]: https://docs.python.org/3/tutorial/index.html
[Python at Free Code Camp]: https://www.freecodecamp.org/learn/scientific-computing-with-python/
[Python3 Beginner Tutorial]: https://www.youtube.com/playlist?list=PL1A2CSdiySGJd0LJRRSwQZbPZaDP0q67j
[automate the boring stuff]: https://automatetheboringstuff.com/
[pycharm edu]: https://www.jetbrains.com/pycharm-edu/
[python docs]: https://docs.python.org/3/