To be a Programmer(Craftsman)
What Did You Practice for Your Body Today?
Make a change: From knowledge collection perspective to project and structure perspective.
Knowledge that I think I should know to be a better programmer named ikeepo. This is a collection, rather introduction.
Knowledge should be learned by building something, all the input should be attached on a certain output, even just simple code. This mind comes from harmony of body and mind. The body is constrained by the physical world, while the mind, unattached, easily slips into a simulated world. The logic in the simulated world aligns with that of the real world, so staying confined to the mind doesn't feel strange. However, the physical world's restrictions and constraints on the body are simple, direct, and effective. This necessitates the coordination and unity of the two. Consciousness and logic have a serious flaw: they can only reason based on superficial cognition. Deeper understanding requires the body to engage fully to access more information. This is why unity is essential.
Programming is some kind of craft rather research
Keep away from too much news, which 99.99% of them are ads already, even not news.
Knowledge is not used to guide your life
Thought only be meaningful when reflecting your own experience, but if you want to learn Knowledge or even by thinking to guide your life, you would be kidnaped by the opinion outputer who even don't know what he recognized, just another node about the information propagation chain whose final initial point is a commercial need by someone.
Knowledge is only live on some host
If you are not the host of some knowledge, it wouldn't live on your world, just some others advertisement, even the knowledge from school. So, the book knowledge can only used to verification, rather learning. Focus on your product, abstract into knowledge, then compare with other people's knowledge recored on book, verifying your own, this process can be defined as "LEARNING".
Refs
- [Think Like a Craftsman and Master a Skillset; it Will Give You Meaning and Transform Your Career](https://www.omaritani.com/blog/craftsman-skill-mastery) - [Unlocking Craftsmanship: 10 Essential Traits That Define a Great Craftsman](https://cleanwhale.de/en/blog/unlocking-craftsmanship-10-essential-traits-that-define-a-great-craftsman)RULES
- Fuck Away Learning, Let's Training
- Define a good question, then discussing with AI
Awesome Tools
Design Patterns
idol
Principles
- professional programming
- The Twelve-Factor App
- (Neo)Vim Made Me a Better Software Developer
- How To Ask Questions The Smart Way
- How to Report Bugs Effectively
- Liskov Substitution Principle, LSP
Environment
Practice Tricks
- best error catch
try:
code
except Exception as e:
location.href = `https://stackoverflow.com/search?q=${e}`
Spec
- XDG
Questions
- How to be a better JS developer?
- What make me a better programmer?
- What make me a better JS developer?
Tools
Roadmap
Course Platform
Compilers
Program Philosophy
database
database migrate
language
visiualization
Write a Programming Language
- Writing a Simple Programming Language from Scratch
- Create Your Own Programming Language
- I wrote a programming language. Here’s how you can, too.
- Let’s Build a Programming Language
- Build your own programming language
- Build your own programming language
- Building Your Own Programming Language From Scratch
- HOW TO WRITE A PROGRAMMING LANGUAGE: PART 1, THE LEXER
Write a OS
Frontend
React
Network Programming
- Hands-On-Network-Programming-with-C
- 计算机网络超详细系统学习路线(2024年最新
- How to Learn Networking Roadmap
- Network Engineering at Scale Roadmap/Landscape
- Cyber Security Education RoadMap
- Learn networking in Python by building 4 projects
- roppers.org
- Linux 4.4.0内核源码分析TCP实现.pdf: 知识性强, 初期看不懂
- Wireshark网络分析就这么简单
- https://cs144.github.io/
- roppers.org
- Learn networking in Python by building 4 projects
CodeInterview
- Cracking the Behavioral Interviews: for Software Engineers
- De-Coding The Technical Interview Process
- System Design Interview - An insider's guide
- Preparing for the Systems Design and Coding Interview
unfold
- [ ] Introduction to Algorithms
- [ ] "Algorithms" by Robert Sedgewick and Kevin Wayne
- [ ] "The Art of Computer Programming" by Donald Knuth
- [ ] "Structure and Interpretation of Computer Programs" (SICP) by Abelson and Sussman
- [x] Clean Code: A Handbook of Agile Software Craftsmanship: By Robert C. Martin
- The Mythical Man-month: By Frederick Brooks
- [x] The Pragmatic Programmer: Your Journey to Mastery
- Code Complete (2 Edition): By Steve McConnell
- The Art of Computer Programming
- Programming Pearls
- Code: Charles Petzold
- [x] Refactoring: Improving the Design of Existing Code
- [x] Design Patterns: Elements of Reusable Object-Oriented Software
- Coders At Work
- Inside the Machine how computers work
- CODE processors and stuff
- Concrete Mathematics: A Foundation for Computer Science
- Structure and Interpretation of Computer Programs proper introduction into programming
- How to Design Programs: An Introduction to Programming and Computing
- The Algorithm Design Manual and Introduction to Algorithms for a good understanding of algorithms
- good programmers should understand how compilers works Compilers: Principles, Techniques, and Tools
- every programmer should know C Programming Language
- Advanced Programming in the UNIX Environment
- Unix Network Programming volume 1 and 2
- Growing Object-Oriented Software, Guided by Tests
- Domain-Driven Design
- The Elements of Programming Style
- Design Patterns
- Structure and Interpretation of Computer Programs
- Fundamental Algorithms Vol.1 of The Art of Computer Programming series
- The Annotated Turing
- Refactoring
- Extreme Programming Explained
- Redshirts
- The “Bobiverse” trilogy
- On Growth and Form
- The Timeless Way of Building
- Nature’s Patterns series: Shapes, Flow, and Branches
- Code complete 2
- The Mythical Man-Month
- Don’t Make Me Think, Revisited: A Common Sense Approach to Web Usability
- Rapid Development
- Peopleware
- The Design of Everyday Things
- About Face: The Essentials of Interaction Design
- The Inmates Are Running the Asylum
- Programming Pearls
- The Pragmatic Programmer: From Journeyman to Master
- Designing Web Usability
- Regular Expressions Cookbook
- The Visual Display of Quantitative Information
- Visual Explanations: Images and Quantities, Evidence and Narrative
- Envisioning Information
- Beautiful Evidence
- Waltzing With Bears: Managing Risk on Software Projects
- Dynamics of Software Development
- Smalltalk Best Practice Patterns
- Refactoring: Improving the Design of Existing Code
- Patterns of Enterprise Application Architecture
- Domain-Driven Design: Tackling Complexity in the Heart of Software
- Are Your Lights On?: How to Figure Out What the Problem Really Is
- The Elements of Style, Fourth Edition
- On Writing Well: The Classic Guide to Writing Nonfiction
- Are Your Lights On
- The Pragmatic Programmer: From Journeyman to Master
- The pheonix project & the unicorn project
- Working effectively with legacy code
- The Software Craftsman: Professionalism, Pragmatism, Pride
- Coders at Work (P. Seibel)
- The Art of Unix Programming (E. Raymond)
- The Psychology of Computer Programming (G. Weinberg)
- So Good They Can't Ignore You (C. Newport)
- Developer Hegemony - Eric Dietrich
- The Pragmatic Programmer - David Thomas & Andrew Hunt
- Clean Code - Robert C. Martin
- Design Patterns: Elements of Reusable Object-Oriented Software - Erich Gamma
- Data Structures and Algorithms Made Easy - Narasimha Karumanchi
- Refactoring - Martin Fowler
- The Mythical Man-Month - Frederick Brooks Jr.
- Coders at Work - Peter Seibel
- Test Driven Development: By Example - Kent Beck
- Pragmatic Thinking and Learning - Andy Hunt
- Code Complete - Steve McConnell
- Cracking the Coding Interview - Gayle Laakmann McDowell
- Code - Charles Petzold
- The Art of Computer Programming - Donald Knuth
- The Effective Engineer - Edmund Lau
- Type Theory Hacker
Books
- EricEvans-Domain-DrivenDesign-TacklingComplexityintheHeartofSoftware2003_AddisonWesley.pdf
- ThinkingForth_Brodie_Leo-ALanguageandPhilosophyforSolvingProblems.pdf
- ArashGharehbaghi-DeepLearninginTimeSeriesAnalysis2023_CRCPress_SciencePublishers.pdf
- ReactExplained-OSTraining.pdf
- HowardKarloff-MathematicalThinking_WhyEveryoneShouldStudyMathCompactTextbooksinMathematics2023_Birkh辰user.pdf
- Introductiontographtheory_solutionsmanual--KohKheeMeng_DongFengming_TayEngGuan--March15_2007--WorldScientific_WorldScientific--9789812703866--cc600f7901a9230a593843c75b3dfce6--Anna'sA.pdf
- BenjaminC.Pierce-TypesandProgrammingLanguages2002_MIT.pdf
- BrendanFong_DavidI.Spivak-AnInvitationtoAppliedCategoryTheory_SevenSketchesinCompositionality2019_CambridgeUniversityPress.pdf
- SimonMarlow-ParallelandConcurrentProgramminginHaskell_2013.pdf
- RobertNystrom-CraftingInterpreters2021_GeneverBenning.pdf
- BenjaminC.Pierce-PierceAdvancedTopicsInTypesAndProgrammingLanguages2004_MIT.pdf