42
NSA HQ, USA

Plovdev 2013: How to be a better programmer, beyond programming

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Plovdev 2013: How to be a better programmer, beyond programming

NSA HQ, USA

Page 2: Plovdev 2013: How to be a better programmer, beyond programming

Заглавна

Page 3: Plovdev 2013: How to be a better programmer, beyond programming

Ние сме брилянтни програмисти

Page 4: Plovdev 2013: How to be a better programmer, beyond programming

уни

Page 5: Plovdev 2013: How to be a better programmer, beyond programming

6

Page 6: Plovdev 2013: How to be a better programmer, beyond programming

10

Page 7: Plovdev 2013: How to be a better programmer, beyond programming

търпение + постоянство

Page 8: Plovdev 2013: How to be a better programmer, beyond programming
Page 9: Plovdev 2013: How to be a better programmer, beyond programming

Софтуерът не може да се получи по-добър от нивото на организация и екипност на хората, които го създават.

Може индивидуално да сме брилянтни програмисти, но ако трудно се свързваме помежду си крайният продукт ще бъде слаб.

Page 10: Plovdev 2013: How to be a better programmer, beyond programming

На много нива

● Колеги във фирмата и от бранша

● Автори на библиотеки● Ментори● Потребители!

Page 11: Plovdev 2013: How to be a better programmer, beyond programming

Това е тема, която се повтаря отново

и отново

Page 12: Plovdev 2013: How to be a better programmer, beyond programming

Овладяване на програмирането

1. Жив пример, а не “измислени” такива като онлайн уроци или

примери.

2. Минаване през цикъла на цял един проект и постигане на

завършеност. Успехът под някаква форма трябва да бъде валидиран!

Page 13: Plovdev 2013: How to be a better programmer, beyond programming

Neil Wilson, former Sun Engineer, now with UnboundID

Page 14: Plovdev 2013: How to be a better programmer, beyond programming
Page 15: Plovdev 2013: How to be a better programmer, beyond programming

0% арогантност

0% идеология + религиозност

100% скромност

Page 16: Plovdev 2013: How to be a better programmer, beyond programming

Наблюдавайте и имитирайте програмисти

създаващи успешни продукти!

Page 17: Plovdev 2013: How to be a better programmer, beyond programming

Включително и техния подход към другите хора и ситуации от работата, там също се крият много поуки за успеха и постигането на

добър софтуер

Page 18: Plovdev 2013: How to be a better programmer, beyond programming

observe + copy

Page 19: Plovdev 2013: How to be a better programmer, beyond programming

Преминаване през цикъла на един цял продукт

● Концепция● Кодиране● Документация● Сайт● Продажби / разпространение● Поддръжка и обработка на обратна връзка● Евентуално и нови издания

Page 20: Plovdev 2013: How to be a better programmer, beyond programming

Преминаване през цикъла на един цял продукт

● Може да бъде и нещо малко, като 5000 l

● Важно е да сте усетили целия процес, от А до Я.

● Да имате опита, че сте завършили един цял проект / продукт.

● И той под някаква форма да е валидиран като успешен на пазара / от потребителите.

Page 21: Plovdev 2013: How to be a better programmer, beyond programming

10г

Page 22: Plovdev 2013: How to be a better programmer, beyond programming

Лични предизвикателства

и лично израстване

Page 23: Plovdev 2013: How to be a better programmer, beyond programming

За да създаваме по-добър софтуер се налага да преодоляваме наши

страхове, предразсъдъци, грешни убеждения и модели на

подход + мислене

Page 24: Plovdev 2013: How to be a better programmer, beyond programming

Психологическото изживяване на грешките в моята работа, или грешно

разбраният “перфекционизъм” :-)

Page 25: Plovdev 2013: How to be a better programmer, beyond programming

Модели:

Грешките са лошо нещо.

За да съм успешен трябва да съм безгрешен.

Page 26: Plovdev 2013: How to be a better programmer, beyond programming

nightmare

Page 27: Plovdev 2013: How to be a better programmer, beyond programming

Симтоми и индикатори:

1. Стрес, хаби се емоционална енергия.

2. Работата не върви, къде е удоволствието?

3. Затваряме се в себе си, губим конструктивна връзка със света (колеги,

клиенти).

Page 28: Plovdev 2013: How to be a better programmer, beyond programming

Рефакториране

На нашите мисли и подходи

“reframing”

Page 29: Plovdev 2013: How to be a better programmer, beyond programming

Приемане на грешките като нещо нормално.

Те са неминуеми.

Грешките не съм аз.

Page 30: Plovdev 2013: How to be a better programmer, beyond programming

Bug reports are useful feedback!

Активно благодарим за тях.

Page 31: Plovdev 2013: How to be a better programmer, beyond programming
Page 32: Plovdev 2013: How to be a better programmer, beyond programming

Това създава положителна и конструктивна атмосфера!=> по-добър софтуер

Page 33: Plovdev 2013: How to be a better programmer, beyond programming

Защо ви казвам всичко това?

Page 34: Plovdev 2013: How to be a better programmer, beyond programming

models slide

Page 35: Plovdev 2013: How to be a better programmer, beyond programming

Ambiguity effect – the tendency to avoid options for which missing information makes the probability seem "unknown."[8]

Anchoring or focalism – the tendency to rely too heavily, or "anchor," on one trait or piece of information when making decisions.[9][10]

Attentional bias – the tendency to pay attention to emotionally dominant stimuli in one's environment and to neglect relevant data when making judgments of a correlation or association.[11][12]

Availability heuristic – the tendency to overestimate the likelihood of events with greater "availability" in memory, which can be influenced by how recent the memories are or how unusual or emotionally charged they may be.[13]

Availability cascade – a self-reinforcing process in which a collective belief gains more and more plausibility through its increasing repetition in public discourse (or "repeat something long enough and it will become true").[14]

Backfire effect – when people react to disconfirming evidence by strengthening their beliefs.[15]

Bandwagon effect – the tendency to do (or believe) things because many other people do (or believe) the same. Related to groupthink and herd behavior.[16]

Base rate fallacy or base rate neglect – In a sequence of probabilities, the tendency to ignore the first.[17]

Belief bias – an effect where someone's evaluation of the logical strength of an argument is biased by the believability of the conclusion.[18]

Bias blind spot – the tendency to see oneself as less biased than other people, or to be able to identify more cognitive biases in others than in oneself.[19]

Choice-supportive bias – the tendency to remember one's choices as better than they actually were.[20]

Clustering illusion – the tendency to over-expect small runs, streaks, or clusters in large samples of random data (that is, seeing phantom patterns).[10]

Confirmation bias – the tendency to search for, interpret and remember information in a way that confirms one's preconceptions.[21]

Congruence bias – the tendency to test hypotheses exclusively through direct testing, instead of testing possible alternative hypotheses.[10]

Conjunction fallacy – the tendency to assume that specific conditions are more probable than general ones.[22]

Conservatism or regressive bias – the tendency to underestimate high values and high likelihoods while overestimating low ones.[23][24][25]

Conservatism (Bayesian) – the tendency to insufficiently revise one's belief when presented with new evidence.[23][26][27]

Contrast effect – the enhancement or reduction of a certain perception's weight when compared with a recently observed, contrasting object.[28]

Curse of knowledge – when knowledge of a topic diminishes one's ability to think about it from a less-informed (but more neutral) perspective.[29]

Decoy effect – preferences change when there is a third option that is asymmetrically dominated

http://en.wikipedia.org/wiki/List_of_cognitive_biases

Page 36: Plovdev 2013: How to be a better programmer, beyond programming

Gambler's fallacy – the tendency to think that future probabilities are altered by past events, when in reality they are unchanged. Results from an erroneous conceptualization of the law of large numbers. For example, "I've flipped heads with this coin five times consecutively, so the chance of tails coming out on the sixth flip is much greater than heads."

Hard-easy effect – Based on a specific level of task difficulty, the confidence in judgments is too conservative and not extreme enough[23][38][39][40]

Hindsight bias – sometimes called the "I-knew-it-all-along" effect, the tendency to see past events as being predictable[41] at the time those events happened.

Hostile media effect – the tendency to see a media report as being biased, owing to one's own strong partisan views.

Hot-hand fallacy – The "hot-hand fallacy" (also known as the "hot hand phenomenon" or "hot hand") is the fallacious belief that a person who has experienced success has a greater chance of further success in additional attempts

Hyperbolic discounting – the tendency for people to have a stronger preference for more immediate payoffs relative to later payoffs, where the tendency increases the closer to the present both payoffs are.[42] Also known as current moment bias, present-bias, and related to Dynamic inconsistency.

Identifiable victim effect - the tendency to respond more strongly to a single identified person at risk than to a large group of people at risk.[43]

Illusion of control – the tendency to overestimate one's degree of influence over other external events.[44]

Illusion of validity – when consistent but predictively weak data leads to confident predictions

Illusory correlation – inaccurately perceiving a relationship between two unrelated events.[45][46]

Impact bias – the tendency to overestimate the length or the intensity of the impact of future feeling states.[47]

Information bias – the tendency to seek information even when it cannot affect action.[48]

Insensitivity to sample size – the tendency to under-expect variation in small samples

Irrational escalation – the phenomenon where people justify increased investment in a decision, based on the cumulative prior investment, despite new evidence suggesting that the decision was probably wrong.

Just-world hypothesis – the tendency for people to want to believe that the world is fundamentally just, causing them to rationalize an otherwise inexplicable injustice as deserved by the victim(s).

Less-is-better effect – a preference reversal where a dominated smaller set is preferred to a larger set

Loss aversion – "the disutility of giving up an object is greater than the utility associated with acquiring it".[49] (see also Sunk cost effects and endowment effect).

Ludic fallacy – the misuse of games to model real-life situations.

Mere exposure effect – the tendency to express undue liking for things merely because of familiarity with them.[50]

Money illusion – the tendency to concentrate on the nominal (face value) of money rather than its value in terms of purchasing power.[51]

Moral credential effect – the tendency of a track record of non-prejudice to increase subsequent prejudice.

Negativity bias – psychological phenomenon by which humans are more affected by negative rather than positive information when evaluating objects.[52]

Neglect of probability – the tendency to completely disregard probability when making a decision under uncertainty.[53]

Normalcy bias – the refusal to plan for, or react to, a disaster which has never happened before.

Observation selection bias – the effect of suddenly noticing things that were not noticed previously – and as a result wrongly assuming that the frequency has increased.

Observer-expectancy effect – when a researcher expects a given result and therefore unconsciously manipulates an experiment or misinterprets data in order to find it (see also subject-expectancy effect).

Omission bias – the tendency to judge harmful actions as worse, or less moral, than equally harmful omissions (inactions).[54]

Optimism bias – the tendency to be over-optimistic, overestimating favorable and pleasing outcomes (see also wishful thinking, valence effect, positive outcome bias).[55][56]

Ostrich effect – ignoring an obvious (negative) situation.

Outcome bias – the tendency to judge a decision by its eventual outcome instead of based on the quality of the decision at the time it was made.

Overconfidence effect – excessive confidence in one's own answers to questions. For example, for certain types of questions, answers that people rate as "99% certain" turn out to be wrong 40% of the time.[23][57][58][59]

Page 37: Plovdev 2013: How to be a better programmer, beyond programming

Защо ви казвам всичко това?

Page 38: Plovdev 2013: How to be a better programmer, beyond programming

За да сме истински иновативни трябва да излезем от

съществуващите модели на мислене, подход и убеждения

(много от тях неосъзнати).

Вселената съдържа огромно пространство от решения и

възможности.

Page 39: Plovdev 2013: How to be a better programmer, beyond programming
Page 40: Plovdev 2013: How to be a better programmer, beyond programming

o2

Page 41: Plovdev 2013: How to be a better programmer, beyond programming

www.kriva.org

Page 42: Plovdev 2013: How to be a better programmer, beyond programming

Благодаря!