GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing www.fullstackpython.com — Learning Programming Learning ProgrammingLearning to program is about understanding how to translate thoughts into source code that can be executed on computers to achieve one or more goals. There are many steps in learning how to program, including
How should I learn programming?There are several schools of thought on how a person should start learning to program. One school of thought is that a lower-level programming language such as Assembly or C are the most appropriate languages to start with because they force new developers to write their own data structures, learn about pointers and generally work their way through the hard problems in computer science. There's certainly wisdom in this "low-level first" philosophy because it forces a beginner to gain a strong foundation before moving on to higher level topics such as web and mobile application development. This philosophy is the one most commonly used in university computer science programs. The atomic units of progress in the "low-level first" method of learning are
Another school of thought is that new developers should bootstrap themselves through working on projects in whatever programming language interests them enough to keep working through the frustrations that will undoubtably occur. In this "project-based" line of thinking, the number of projects completed that expand a programmer's abilities are the units of progress. Extra value is placed on making the projects open source and working with experienced mentors to learn what he or she can improve on in their programs. Another way to learn that combines the project-based learning with defined objectives is to play a computer game that will guide you through the learning process. For example, TwilioQuest teaches the basics of Python in one of its missions and then has a ton of free content for studying intermediate and advanced topics. Should I learn Python first?Python is good choice in the project-based approach because of the extensive availability of free and low cost introductory resources, many of which provide example projects to build upon. Note that this question of whether or not Python is a good first language for an aspiring programmer is highly subjective and these approaches are not mutually exclusive. Python is also widely taught in universities to explain the fundamental concepts in computer science, which is in line with the "low-level first" philosophy than the projects-first method. In a nutshell, whether Python is the right first programming language to learn is up to your own learning style and what feels right. If Ruby or Java seem like they are easier to learn than Python, go for those languages. Programming languages, and the ecosystems around them, are human-made constructs. Find one that appears to match your personal style and give it a try, knowing that whatever you choose you'll need to put in many long days and nights to really get comfortable as a software developer. Practice problemsWorking on practice programming challenges and studying their solutions in Python or another language is a great way to learn whether you are just starting or an experienced developer. Here are numerous open source repositories and sites with practice problems and solutions:
First-hand adviceThese articles are written by programmers who explain how they learned to code. They should not be taken as "this is how you must learn" but instead give example paths you can think about taking as a beginner:
Teaching perspectivesAre you an experienced programmer working with new and junior programmers? These articles give some insight into how you may want to structure your teaching experience:
What do you want to learn about programming?
1. Introduction
Learning Programming
Core Language
Why Use Python?
Python 2 or 3?
Enterprise Python
Python Community
Companies using Python
Best Python Resources
Best Python Videos
Best Python Podcasts
2. Development Environments
3. Data
4. Web Development
5. Deployment
6. DevOps
Changelog
What Full Stack Means
About the Author
Future Directions
Page Statuses
...or view the full table of contents.
Full Stack Python
Full Stack Python
is an open book that explains concepts in plain language and provides
helpful resources for those topics.
Updates via Twitter & Facebook. |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |