6. Concepts:
Objects and classes
• Objects have states and behaviors
• Classes = structure for objects
Bank account
Owner: person
Amount: double
State: condition
suspend ()
deposit (sum: double)
withdraw (sum: double)
Class
Attributes
Operations
Presume
Math: only simple algebra is needed, tons of solutions can help in implementing complicated formulas
University: kind and enthusiastic programmers help to learn it online, learning courses, open sources, community
Syntax: no necessity to learn it by heart. 1 – you have access to all references, 2 – you will write the same things million times
Woman thing: Ada Lovelace! Programming doesn’t require any specific skills or opportunities (doesn’t depend on gender, age, background)
You are developing, i.e. creating new things, spawning stuff from where there was no stuff before. That is the craft, the art. It's inventing things. The manuals for creating can never be complete, they will always only be indicative, guiding, but never give you the exact path, because in the end, what you are doing has not been done before. Not exactly, anyway.Developing software, especially complex software, is bound to result in problems, frustration, and the need to think in new ways. Problem solving is the core of the craft, and you need to embrace that it's there, and also accept that you'll never know what form the problem come in. You might want all problems to be algorithmic, but the reality just doesn't work that way - it's just too chaotic and unpredictable. Reality is not elegant or simple.Sometimes documentation is wrong. Sometimes, you run into a weird hardware bug. Sometimes, you spend hours looking for a spelling error that was staring you in the face all the time. That is just the way it is. It is the craft.
You are developing, i.e. creating new things, spawning stuff from where there was no stuff before. That is the craft, the art. It's inventing things. The manuals for creating can never be complete, they will always only be indicative, guiding, but never give you the exact path, because in the end, what you are doing has not been done before. Not exactly, anyway.Developing software, especially complex software, is bound to result in problems, frustration, and the need to think in new ways. Problem solving is the core of the craft, and you need to embrace that it's there, and also accept that you'll never know what form the problem come in. You might want all problems to be algorithmic, but the reality just doesn't work that way - it's just too chaotic and unpredictable. Reality is not elegant or simple.Sometimes documentation is wrong. Sometimes, you run into a weird hardware bug. Sometimes, you spend hours looking for a spelling error that was staring you in the face all the time. That is just the way it is. It is the craft.
… Let’s talk about programming
…What exactly is this object-oriented programming?
http://www.informit.com/articles/article.aspx?p=2036576
Reducing complexity by hiding details beneath the surface
Objects exchange messages, the process works like commands/operations performing
Child-class can redefine methods
Inherits data types and logical structure
Ignoring irrelevant properties and features… relevant to given projects (reusing)
Mix related types, create hybrids
Implement more abstract methods which can be specified later according to needs
All fields, properties are private, local, safe. U can access them only by sending the message (running method)
In computer networking, encapsulation is a method of designing modular communication protocols in which logically separate functions in the network are abstracted from their underlying structures by inclusion or information hiding within higher level objects.
https://en.wikipedia.org/wiki/Encapsulation_(networking)