progmatic programmer Flashcards

(65 cards)

1
Q

What makes a progmatic programmer

A

Basically just to care about what you do and take pride in it

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quote about stones

A

we who cut mere stones must always envision cathedrals

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What does kaizen mean?

A

kontinuerlig förbättring

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What about problems? how to tackle them

A

Rubber ducky them. And when you hit something that you dont know, follow up with “but ill find out”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

what is the problem with one broken window?

A

It leads to chaos, fix it promptly

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

The story about the soldiers

A

they tricked everyone to contribute, something similar can be done with software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Remember the big picture

A

the analogy with the frog

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Seal training

A

the point is to get awerness in your project aswell, this helps not starting the rot

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

manage risk

A

dont put all your tech eggs in one basket

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

what does it mean with cross polination in the context of this book

A

That the more you know about diffrent areas in life the more valuable you are in the work force since you can contribute in a uniqe way.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

what is the 5 whys purpose

A

to get to the root

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

a good idea is an orphan without what?

A

someone who is a good communicator

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

How can one practice being a good communicator?

A

Jot down what you want to come accros and know your audience. Know what will get them exited and see if something that you are communicating about has any effect on that area.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

what is the dry principle

A

The dont repeat yourself principle is just as it states, DRY. even in documentation you dont have to desctibe in words how something is done, just what its purpose is, its goal and why.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

what is a desired quality of good design

A

it is easier to change

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

ETC stands for

A

easy to change

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

what does the dry principle stand for (advanced)

A

every piece of knowledge must have a single, unambigous, authorative representation within a system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

why is storing currency as a float a bad idea

A

rounding errors

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

what is orthoganlity in systems

A

each thing has its own domain where changing it does not affect to others

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Reversibility, what does that mean?

A

You cant be sure that just because something is a certain way today, it is going to be that way tomorrow. Critical decisions typically narrows the target and sometimes that target turns out to be the wrong one.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

what exampels do they mention when addressing reversibility?

A

if you abstract away your database in the rest of the code, the refactoring might not be so large. Same if you build a website and then they ask you to switch to mobile. This might be possible with very little backend changes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

should tracer code be fully tested and documented?

A

Yes, it should

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Do tracers always hit the target?

A

No they dont and that is fine

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Domain languages, R testing, gurka, fågel

A

Rspec, cucumber, phoenix routes,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
some good tips when giving estiamations
What is being asked? How sure are you that this is accurate? What assumptions are you working under? Think about how you phrase it.
26
What is PERT relating to time estimates
Program evaluation review technique, every task has a optimistic, realistic and a pessimistic time plan where they factor in diffrent things.
27
What are some editing tips they suggested?
Lose the mouse/trackpad for a week and see how that works.
28
What is fluent
When editing text, move and make selections by character, word, line, and paragraph. When editing code, move by various syntactic units (matching delimiters, functions, modules, …). Reindent code following changes. Comment and uncomment blocks of code with a single command. Undo and redo changes. Split the editor window into multiple panels, and navigate between them. Navigate to a particular line number. Sort selected lines. Search for both strings and regular expressions, and repeat previous searches. Temporarily create multiple cursors based on a selection or on a pattern match, and edit the text at each in parallel. Display compilation errors in the current project. Run the current project’s tests
29
Preconditions, postconditions, classinvariants
Relation between caller and function
30
What is better with design by contract compared to just having input validation?
You cant even call it when args are out of range
31
Let it crash? What is the purpose of that
It happens under supervision and is designed for it
32
A dead program normally does a lot less damage than a crippled one.
Haha
33
Why is assertions important?
This cant happen mentality is bad and should be checked with an assertion
34
why should you keep assertions in production
It made some guy rich
35
should the same object that allocates the resource be responsible for removing it?
yes it should
36
Could you scope the lifecycle of a process?
in modern languages you can scope the lifecycle so that this is taken care of.
37
what is important to think about when deallocating resources?
Do it in the revers order so that you dont mess with dependencies
38
What is the finalys role in try catch
to clean up resources.
39
what is semantic invariants
something that must always be true about a data structure. in the context of memory management you should let the object handle the deallocation.
40
Something about a black swan
dont try to do fortune telling
41
what is said about coupling and code
it shouldnt go together. He gives an example about some discount thing that access total sum or an order through 5 layers of abstraction. that is not good.
42
Should you have globals
no, instead wrap it in an api
43
patterns
Finite State Machines The Observer Pattern Publish/Subscribe Reactive Programming and Streams
44
We might not always want inheiritence, why
we cant do is-a realtionship many times if the item is many uncoupled things.
45
What is mixins and traits, and what is delegation?
46
parameterize things such as? And why?
47
Trust your gut
it is trying to say something
48
close enough isnt
If built on unstable core, the project will fail one day.
49
coding is like gardening
not like construction
50
Estimate big O of your code
51
Test your assumptions
it is easy to just go with the things that work but you should know why this works
52
When should you refactor it
when you understand it better then when you wrote it
53
Dont refactor and add functionality
at the same time
54
What is important when refactoring
to have good tests
55
End to end testing is recomended
instead of topdown or downup.
56
REPL
read eval print loop
57
Requirements, something about a shiping example
the process of requirements. Most things are just assumptions from people.
58
Req: walk in you clients shoes
So you get to know them and what is important.
59
The perfect dj board
is not perfect since it did not let the djs use their skills
60
what is a glossary
a definition for everything in the project
61
Solving impossible puzzles
is about finding wheter a constraint really is a constraint
62
critical areas
No broken windows, boiled frogs schedule you knowledge portfolio.
63
Coconuts are not enough
Don’t fall for it. Particular artifacts, superficial structures, policies, processes, and methods are not enough.
64
Vikten av tester tas upp
Performance tester är en sån grej
65