Skip to content

Commit c7a7e65

Browse files
committed
Add a bunch of articles
1 parent 85c8546 commit c7a7e65

File tree

1 file changed

+75
-2
lines changed

1 file changed

+75
-2
lines changed

README.md

Lines changed: 75 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@
3636
- [Incident response (alerting, outages, firefighting)](#incident-response-alerting-outages-firefighting)
3737
- [Internet](#internet)
3838
- [Interviewing](#interviewing)
39-
- [Learning & memorising](#learning--memorising)
39+
- [Learning & memorizing](#learning--memorizing)
40+
- [Low-level](#low-level)
41+
- [Network](#network)
4042
- [Problem solving](#problem-solving)
4143
- [Project management](#project-management)
4244
- [Programming languages](#programming-languages)
@@ -103,8 +105,40 @@ There are some free books available, including:
103105
* [On Being A Senior Engineer](http://www.kitchensoap.com/2012/10/25/on-being-a-senior-engineer/)
104106
* [Lessons Learned in Software Development](http://henrikwarne.com/2015/04/16/lessons-learned-in-software-development/): one of those articles that give you years of hard-earned lessons, all in one short article. Must read.
105107
* [Things I Learnt The Hard Way](https://blog.juliobiason.net/thoughts/things-i-learnt-the-hard-way/)
108+
* Spec first, then code
109+
* Tests make better APIs
110+
* Future thinking is future trashing
111+
* Documentation is a love letter to your future self
112+
* Sometimes, it's better to let the application crash than do nothing
113+
* Understand and stay away of cargo cult
114+
* "Right tool for the job" is just to push an agenda
115+
* Learn the basics functional programming
116+
* ALWAYS use timezones with your dates
117+
* ALWAYS use UTF-8
118+
* Create libraries
119+
* Learn to monitor
120+
* Explicit is better than implicit
121+
* Companies look for specialists but keep generalists longer
122+
* The best secure way to deal with user data is not to capture it
123+
* When it's time to stop, it's time to stop
124+
* You're responsible for the use of your code
125+
* Don't tell "It's done" when it's not
126+
* Pay attention on how people react to you
127+
* Beware of micro-aggressions
128+
* Keep a list of "Things I Don't Know"
106129
* [Signs that you're a good programmer](http://www.yacoset.com/Home/signs-that-you-re-a-good-programmer)
107130
* [Signs that you're a bad programmer](http://www.yacoset.com/Home/signs-that-you-re-a-bad-programmer)
131+
* [7 absolute truths I unlearned as junior developer](https://monicalent.com/blog/2019/06/03/absolute-truths-unlearned-as-junior-developer/)
132+
* Early in your career, you can learn 10x more in a supportive team in 1 year, than coding on your own
133+
* Every company has problems, every company has technical debt.
134+
* Being overly opinionated on topics you lack real-world experience with is pretty arrogant.
135+
* Many conference talks cover proof of concepts rather than real-world scenarios.
136+
* Dealing with legacy is completely normal.
137+
* Architecture is more important than nitpicking.
138+
* Focus on automation over documentation where appropriate.
139+
* Having some technical debt is healthy.
140+
* Senior engineers must develop many skills besides programming.
141+
* We’re all still junior in some areas.
108142

109143
## Other general material and list of resources
110144

@@ -190,6 +224,11 @@ Biases don't only apply to hiring. For instance, the fundamental attribution bia
190224
* [Write code that is easy to delete, not easy to extend](http://programmingisterrible.com/post/139222674273/write-code-that-is-easy-to-delete-not-easy-to)
191225
* [The Ten Commandments of Egoless Programming](http://blog.codinghorror.com/the-ten-commandments-of-egoless-programming/)
192226
* [Clean Code: A Handbook of Agile Software Craftsmanship](https://www.goodreads.com/book/show/3735293-clean-code) 📖, Robert C. Martin. Describes numerous useful best practices. A bit long. There's also a [clean code cheatsheet](cheatsheets/Clean-Code-V2.4.pdf).
227+
* [What Software Craftsmanship is about](https://blog.cleancoder.com/uncle-bob/2011/01/17/software-craftsmanship-is-about.html)
228+
* We’re tired of writing crap.
229+
* We will not accept the stupid old lie about cleaning things up later.
230+
* We will not believe the claim that quick means dirty.
231+
* We will not allow anyone to force us to behave unprofessionally.
193232

194233
### Computer science
195234

@@ -351,7 +390,7 @@ Note: this is about you as an interviewee, **not** as an interviewer. To check o
351390
* [Interactive Python coding interview challenges](https://github.com/donnemartin/interactive-coding-challenges)
352391
* [tech-interview-handbook/cheatsheet.md](https://github.com/yangshun/tech-interview-handbook/blob/master/preparing/cheatsheet.md)[](https://github.com/mbeaudru/modern-js-cheatsheet):)
353392

354-
### Learning & memorising
393+
### Learning & memorizing
355394

356395
Learn how to learn!
357396

@@ -387,13 +426,29 @@ Learn how to learn!
387426
* Personalize and provide examples - personalization might be the most effective way of building upon other memories. Your personal life is a gold mine of facts and events to refer to. As long as you build a collection for yourself, use personalization richly to build upon well established memories
388427
* Provide sources - sources help you manage the learning process, updating your knowledge, judging its reliability, or importance
389428
* Prioritize - effective learning is all about prioritizing.
429+
* [How to Remember Anything You Really Want to Remember, Backed by Science](https://www.inc.com/jeff-haden/how-to-remember-anything-you-really-want-to-remember-backed-by-science.html)
430+
* Quiz yourself
431+
* Summarize and share with someone else.
432+
* Connect what you just learned to experiences you previously had.
390433

391434
Richard Feynman's Learning Strategy:
392435

393436
1. Step 1: Continually ask "Why?”
394437
2. Step 2: When you learn something, learn it to where you can explain it to a child.
395438
3. Step 3: Instead of arbitrarily memorizing things, look for the explanation that makes it obvious.
396439

440+
### Low-level
441+
442+
* [Back to Basics](https://www.joelonsoftware.com/2001/12/11/back-to-basics/), Joel Spolsky. Explains why learning low level programming is important.
443+
* I think that some of the biggest mistakes people make even at the highest architectural levels come from having a weak or broken understanding of a few simple things at the very lowest levels.
444+
445+
### Network
446+
447+
* [The Great Confusion About URIs](https://benbernardblog.com/the-great-confusion-about-uris/)
448+
* A URI is a string of characters that identifies a resource. Its syntax is `<scheme>:<authority><path>?<query>#<fragment>`, where only `<scheme>` and `<path>` are mandatory. URL and URN are URIs.
449+
* A URL is a string of characters that identifies a resource located on a computer network. Its syntax depends on its scheme. E.g. `mailto:[email protected]`.
450+
* A URN is a string of characters that uniquely identifies a resource. Its syntax is `urn:<namespace identifier>:<namespace specific string>`. E.g. `urn:isbn:9780062301239`
451+
397452
### Problem solving
398453

399454
* [Dealing with Hard Problems](https://artofproblemsolving.com/articles/hard-problems)
@@ -436,6 +491,12 @@ JavaScript is such a pervasive language that it's almost required learning.
436491
* [Goodbye, Object Oriented Programming](https://medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4c0e53#.39ax09e4k)
437492
* [Functional Programming & Haskell](https://www.youtube.com/watch?v=LnX3B9oaKzw): some good reasons to learn FP!
438493
* [Functional Programming Fundamentals](https://www.matthewgerstman.com/functional-programming-fundamentals/): short introduction to FP and its advantages.
494+
* [OO vs FP](https://blog.cleancoder.com/uncle-bob/2014/11/24/FPvsOO.html), Robert C. Martin, The Clean Code Blog. A pretty interesting take on the differences between OOP and FP from an expert in OOP.
495+
* OO is not about state. Objects are bags of functions, not bags of data.
496+
* Functional Programs, like OO Programs, are composed of functions that operate on data.
497+
* FP imposes discipline upon assignment.
498+
* OO imposes discipline on function pointers.
499+
* The principles of software design still apply, regardless of your programming style. The fact that you’ve decided to use a language that doesn’t have an assignment operator does not mean that you can ignore the Single Responsibility Principle.
439500

440501
### Over-engineering
441502

@@ -558,6 +619,18 @@ Rob Pike, [Go at Google: Language Design in the Service of Software Engineering]
558619

559620
* [Your non-linear problem of 90% utilization](https://blog.asmartbear.com/utilization.html), Jason Cohen: why constantly running at 90% utilization is actually counter-productive.
560621
* [Evidence-based advice on how to be successful in any jobs](https://80000hours.org/career-guide/how-to-be-successful/): most self-help advices are not research-based. The ones listed in this article are.
622+
* [The Complete Guide to Deep Work](https://doist.com/blog/complete-guide-to-deep-work/)
623+
* The ability to perform deep work is becoming increasingly rare at exactly the same time it is becoming increasingly valuable in our economy.
624+
* Choose Your Deep Work Strategy
625+
* Build a Deep Work Routine
626+
* Discipline #1: Focus on the Wildly Important
627+
* Discipline #2: Act on the Lead Measures
628+
* Discipline #4: Create a Cadence of Accountability
629+
* Our Ability for Deep Work is Finite
630+
* The Craftsman Approach to Tool Selection
631+
* Stop Using Social Media
632+
* Get Your Boss on Board With Deep Work
633+
561634

562635
### Web development
563636

0 commit comments

Comments
 (0)