@@ -44,9 +44,62 @@ <h1>Introduction</h1>
4444sell as a service to other people. That's where Full Stack Python comes in.
4545You've come to the right place to learn everything you need to create, deploy
4646and run a production Python web application.</ p >
47- < p > This guide branches out on topic because your learning requirements depend on
48- what you're working on. Select one of the buttons below or check out the full
49- < a href ="/table-of-contents.html "> table of contents</ a > . </ p >
47+ < h1 > Learning Programming</ h1 >
48+ < p > Learning to program is the process of understanding how to translate
49+ thoughts and designs into source code that can be executed on computers
50+ to achieve one or more goals.</ p >
51+ < p > There are many steps in learning how to program, including</ p >
52+ < ol >
53+ < li > setting up a < a href ="/development-environments.html "> development environment</ a > </ li >
54+ < li > selecting a programming language, such as Python</ li >
55+ < li > understanding the syntax and commands for the language</ li >
56+ < li > writing code in the language, often using
57+ < a href ="/application-dependencies.html "> pre-exisitng code libraries</ a > and
58+ < a href ="/web-frameworks.html "> frameworks</ a > </ li >
59+ < li > executing the program</ li >
60+ < li > debugging errors and unexpected results</ li >
61+ </ ol >
62+ < h2 > How should I learn programming?</ h2 >
63+ < p > There are several schools of thought on how a person should start learning
64+ to program. One school of thought is that a lower-level
65+ language such as Assembly or C are most appropriate because they force
66+ new developers to write their own data structures, learn about pointers and
67+ generally work their way through the hard problems in computer science.</ p >
68+ < p > There's certainly wisdom in this "low-level first" philosophy because it
69+ forces a beginner to gain a strong foundation before moving on to higher
70+ level topics such as web and mobile application development. This philosophy
71+ is the one most commonly used in computer science programs taught in
72+ universities. </ p >
73+ < p > The atomic units of progress in the "low-level first" method of learning are </ p >
74+ < ol >
75+ < li > aspects of programming language understood (type systems, syntax)</ li >
76+ < li > number of data structures coded and able to be used (stacks, queues)</ li >
77+ < li > algorithms in a developer's toolbelt (quicksort, binary search)</ li >
78+ </ ol >
79+ < p > Another school of thought is that new developers should bootstrap
80+ themselves through working on projects in whatever programming language
81+ interests them enough to keep working through the frustrations that occur.
82+ In this line of thinking, the number of projects completed is the unit of
83+ progress. Extra value is placed on making the projects open source and working
84+ with mentors to learn what he or she can improve on in their programs.</ p >
85+ < p > In this second philosophy, Python is good choice for beginner programmers
86+ because of the extensive availability of
87+ < a href ="/best-python-resources.html "> free and low cost introductory resources</ a > ,
88+ many of which provide example projects to build upon.</ p >
89+ < p > Note that this question of whether or not Python is a good first language
90+ for an aspiring programmer is highly subjective and these approaches are
91+ not mutually exclusive. Python is widely taught in universities to explain
92+ the fundamental concepts in computer science, which is more in line with
93+ the "low-level first" philosophy than the projects-first method.</ p >
94+ < p > In a nutshell, whether Python is the right first programming language to
95+ learn is up to your own learning style and what feels right. If Ruby or Java
96+ seem like they are easier to learn than Python, go for those languages.
97+ Programming languages, and the ecosystems around them, are human-made
98+ constructs. Find one that appears to match your personal style and give it a
99+ try, knowing that whatever you choose you'll need to put in many long days and
100+ nights to really get comfortable as a software developer.</ p >
101+ < p > If you want to learn more about Python programming, this is the right guide
102+ for you.</ p >
50103 < h1 > Why Use Python?</ h1 >
51104< p > Python's expansive library of open source data analysis tools,
52105< a href ="/web-frameworks.html "> web frameworks</ a > ,
@@ -6108,6 +6161,8 @@ <h1>Change Log</h1>
61086161< h2 > 2015</ h2 >
61096162< h3 > June</ h3 >
61106163< ul >
6164+ < li > Added new page with a little advice on
6165+ < a href ="/learning-programming.html "> learning programming</ a > .</ li >
61116166< li > Proofread and tweaked the < a href ="/web-frameworks.html "> web frameworks</ a > page.</ li >
61126167< li > Added a new section entitled "Do I have to use a web framework?" to the
61136168 < a href ="/web-frameworks.html "> web frameworks</ a > page.</ li >
0 commit comments