Repository files navigation
Questions that we are going to answer regarding each new element we learn:
What is it?
What is it used for?
What can we do with it?
What are some alternatives?
Why do we need it?
What problems it solves to us?
What does it enable us to do?
How important it is?
Where does it fit in general CS/programming picture?
Imagine this programming element hadn't beed invented.
How could we replicate its behaviour?
What other elements can we use to get same results?
WHY question!!!
What do we want to achieve and as a consequence we need to use this programming concept/element?
What is our business idea whose translation into code requires use of this programming concept?
History!!!
What did people use before this concept/element was invented?
What is 'zero point'?
'Zero piont' is programming concept that will not be explained.
It can't be explained easily.
It is something from which we start. We take it as granted.
We use it to explain other programming concepts and elements.
Analogy from mathematics is 'point'. There is no explanation of it. We just use it to explain more advanced elements (lines, planes, hyperplanes...)
Examples: integers, floats, letters, boolean values... We take it as granted, we already know what it is!
You will spend most of your (work)day on DEBUGGING i.e. figuring out why something does not work properly.
Time that you spend on DEBUGGING will be even more than time used for modelling and conceptual thinking!
So, be patient and get used to errors. Remember, error that is stopping you is better than hidden error.
Also, integrating elements and making them work together is crucial part of DEBUGGING. Most of the time, it is 'try and error' type of work.
In real life, things are never happening as they are presented movies (in this case, videos produced by programming bootcamps).
In code development, there are no such a fancy and elegant things that are working from first attempt.
Try and error, experimenting and debugging are integral parts of development process.
Reading documentation and integrating other developer's code into our application is important skill that should be mastered!
Do not have wrong expectations that anything will work when you try it for the first time. Be happy if it works after 5 trials.
Do not pressure yourself with wrong expectations.
Let's 'normalize' work you devote to experimenting, debugging, combining elements and integrating things (making them work togather).
Work and time you spend on experimenting and debugging are in the heart of programming business.
Debugging and experimenting accounts for more than 80% of developers hours.
So, instead of saying to yourself "let's have some code done", tell it "let's experiment, let's debug, let's have try and error session".
How to organize your work and be efficient in long run?
Design system i.e. write sequence of simple steps that should be accomplished.
Focus on one step at a time.
Expect that things you planned to implement will not work first 5 attempts and devote enough time for experimenting and integrating things!!!
Everyone thinks differently so it is very important to know how to ask question right way.
Here is framework to help you ask good questions:
What I want to achieve?
Why I want to achieve that?
How do I plan to achieve that (sequence of simple steps)?
What part of algorithm does not work?
What is reason it is not working? My opinion about root cause?
What I tried? How I tried to solve this challenge?
Where did I find solution (that does not work currently)?
On what portals/forums (provide web links) I found potential solution that didn’t work?
Tools and techniques that we are going to use: Python, PyCharm, Jupyter.
General info: expectations, curriculum, how to get best value from this course.
1. Concepts and Vocabulaty
1.1 Programming Languages
1.6 Comments
1.8 Project Specification
1.13 Third-Party Libraries
1.20 Data Structures and Types
1.23 Numerical Data Types
2.4 Using Variables in Strings
2.5 Comments
2.8 Working with Numerical Data
3.2 Removing Items from Lists
4.3 Looping Through a Dictionary
4.5 Nesting: A List of Dictionaries
4.6 Nesting: A List in a Dictionary
5. Conditional Statements
5.1 About Conditional Statements
5.6 The break and continue Statements
6.4 Arbitrary Positional Arguments
6.6 Arbitrary Keyword Arguments
6.11 Importing Specific Functions
7.8 Overriding Parent Class Methods
7.9 Storing Classes in Modules
8.3 Running a Passing Test
8.4 Running a Failing Test
8.5 Fixing a Failing Test
9.2 Uninstalling Python Packages
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.