Guest User

Untitled

a guest
Aug 17th, 2025
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.50 KB | None | 0 0
  1. site: https://treeform.github.io/devcompas/
  2.  
  3. Your Programming Philosophy
  4. You prefer elegant, high-level solutions that are intuitive and
  5. accessible to other developers. You likely favor functional
  6. programming, clear abstractions, and code that reads like prose.
  7.  
  8. Abstract ↔ Concrete: +3 Abstract
  9. Human ↔ Computer Friendly: +2 Human-Friendly
  10.  
  11. ────────────────────────────────────────────────────────────────────────
  12.  
  13. My approach to learning new technologies is: Understand the underlying principles
  14. For testing, I believe in: Whatever catches bugs most effectively
  15. When writing algorithms, I focus on: Correctness and clarity above all
  16. For libraries, I prefer: Normal libraries that everyone uses
  17. My preferred approach to error handling is: Using monadic error types (Result, Maybe, etc.)
  18. Which style of programming do you prefer: Functional style
  19. My preferred approach to configuration is: Type-safe configuration with validation
  20. For making user interfaces, I believe in: Simple, easy to edit HTML/CSS
  21. My philosophy on software architecture is: Optimize for team understanding and collaboration
  22. When refactoring code, I prioritize: Improving readability and maintainability
  23. When writing code, I prefer: Whatever makes the code most maintainable
  24. When it comes to code comments, I believe: Comments should explain the 'why', not the 'what'
  25. When debugging, I typically: Write tests to isolate the problem
  26. For variable names, I believe in: Short, concise names and abbreviations
  27. For data structures, I prefer: Functional style with immutable data
  28. My attitude toward code reuse is: Optimize for readability first, reuse second
  29. When it comes to performance optimization: Measure first, optimize bottlenecks only
  30. For code organization, I prefer: Flat structures with clear file naming
  31. My attitude toward type systems is: I like strong static types
  32. When designing APIs, I prioritize: Consistency with existing patterns
  33.  
  34. ────────────────────────────────────────────────────────────────────────
  35.  
  36. My approach to learning new technologies is:
  37. Jump in and learn by doing
  38. ■ Understand the underlying principles
  39. Read the documentation thoroughly first
  40. Start with tutorials and examples
  41.  
  42. For testing, I believe in:
  43. Comprehensive unit tests for every function
  44. Property-based testing and generative tests
  45. ■ Whatever catches bugs most effectively
  46. Integration tests that verify user scenarios
  47.  
  48. When writing algorithms, I focus on:
  49. ■ Correctness and clarity above all
  50. Practical performance in real scenarios
  51. Elegant mathematical formulation
  52. Optimal time and space complexity
  53.  
  54. For libraries, I prefer:
  55. Large, batteries-included frameworks
  56. Build things myself from scratch
  57. Small, header-only, or micro-libraries
  58. ■ Normal libraries that everyone uses
  59.  
  60. My preferred approach to error handling is:
  61. Based on the code convention of the project
  62. ■ Using monadic error types (Result, Maybe, etc.)
  63. Using return error codes
  64. Using exceptions
  65.  
  66. Which style of programming do you prefer:
  67. Object-oriented style
  68. ■ Functional style
  69. Imperative style
  70. Whatever the team is most comfortable with
  71.  
  72. My preferred approach to configuration is:
  73. ■ Type-safe configuration with validation
  74. Simple key-value pairs in plain text files
  75. Convention over configuration
  76. DSLs that express configuration declaratively
  77.  
  78. For making user interfaces, I believe in:
  79. Consistent platform conventions (SwiftUI, WinUI, etc.)
  80. Powerful WYSIWYG editors with rich functionality (Figma, etc.)
  81. Declarative UI frameworks (React, Vue, etc.)
  82. ■ Simple, easy to edit HTML/CSS
  83.  
  84. My philosophy on software architecture is:
  85. Start simple, add complexity only when needed
  86. Follow proven patterns and practices
  87. ■ Optimize for team understanding and collaboration
  88. Design for extensibility from the beginning
  89.  
  90. When refactoring code, I prioritize:
  91. ■ Improving readability and maintainability
  92. Optimizing performance and resource usage
  93. Extracting reusable abstractions
  94. Reducing complexity and coupling
  95.  
  96. When writing code, I prefer:
  97. High-level abstractions that hide implementation details
  98. A balance of abstraction and clarity
  99. Direct, explicit code that shows exactly what's happening
  100. ■ Whatever makes the code most maintainable
  101.  
  102. When it comes to code comments, I believe:
  103. Comments are only needed for complex algorithms
  104. Extensive documentation makes code more accessible
  105. ■ Comments should explain the 'why', not the 'what'
  106. Code should be self-documenting, comments are code smell
  107.  
  108. When debugging, I typically:
  109. Reason about the code logically first
  110. ■ Write tests to isolate the problem
  111. Add print statements to understand data flow
  112. Use a debugger to step through code systematically
  113.  
  114. For variable names, I believe in:
  115. ■ Short, concise names and abbreviations
  116. Pefixes and suffixes
  117. Domain-specific terminology and conventions
  118. Descriptive, self-documenting names even if they're long
  119.  
  120. For data structures, I prefer:
  121. Object-oriented with inheritance and interfaces
  122. Simple arrays and objects that anyone can understand
  123. ■ Functional style with immutable data
  124. What is natural for the problem domain
  125.  
  126. My attitude toward code reuse is:
  127. DRY (Don't Repeat Yourself) is a fundamental principle
  128. ■ Optimize for readability first, reuse second
  129. Some duplication is better than wrong abstraction
  130. Build reusable components from the start
  131.  
  132. When it comes to performance optimization:
  133. Profile and optimize the critical path
  134. ■ Measure first, optimize bottlenecks only
  135. Use high-level optimizations and let tools handle details
  136. Write efficient code from the beginning
  137.  
  138. For code organization, I prefer:
  139. ■ Flat structures with clear file naming
  140. Domain-driven design principles
  141. Layered architectures with clear boundaries
  142. Whatever the framework/language suggests
  143.  
  144. My attitude toward type systems is:
  145. I like composable types
  146. I like dynamic types
  147. I like a mix of static and dynamic types
  148. ■ I like strong static types
  149.  
  150. When designing APIs, I prioritize:
  151. ■ Consistency with existing patterns
  152. Minimal, orthogonal operations
  153. Performance and efficiency above all
  154. Intuitive interfaces that feel natural to use
  155.  
  156. ────────────────────────────────────────────────────────────────────────
  157.  
  158. questions: https://raw.githubusercontent.com/treeform/devcompas/refs/heads/master/questions.json
  159.  
  160. {
  161. "questions": [
  162. {
  163. "id": 1,
  164. "question": "When writing code, I prefer:",
  165. "options": [
  166. {"text": "High-level abstractions that hide implementation details", "abstract": 2, "human": 1},
  167. {"text": "Direct, explicit code that shows exactly what's happening", "abstract": -2, "human": 0},
  168. {"text": "A balance of abstraction and clarity", "abstract": 0, "human": 0},
  169. {"text": "Whatever makes the code most maintainable", "abstract": 1, "human": 1}
  170. ]
  171. },
  172. {
  173. "id": 2,
  174. "question": "For variable names, I believe in:",
  175. "options": [
  176. {"text": "Descriptive, self-documenting names even if they're long", "abstract": 2, "human": 2},
  177. {"text": "Short, concise names and abbreviations", "abstract": -1, "human": 0},
  178. {"text": "Domain-specific terminology and conventions", "abstract": 0, "human": 0},
  179. {"text": "Pefixes and suffixes", "abstract": 2, "human": -2}
  180. ]
  181. },
  182. {
  183. "id": 3,
  184. "question": "When designing APIs, I prioritize:",
  185. "options": [
  186. {"text": "Intuitive interfaces that feel natural to use", "abstract": 0, "human": 2},
  187. {"text": "Minimal, orthogonal operations", "abstract": 2, "human": -1},
  188. {"text": "Performance and efficiency above all", "abstract": -1, "human": -2},
  189. {"text": "Consistency with existing patterns", "abstract": 1, "human": 0}
  190. ]
  191. },
  192. {
  193. "id": 4,
  194. "question": "My preferred approach to error handling is:",
  195. "options": [
  196. {"text": "Using return error codes", "abstract": -1, "human": -1},
  197. {"text": "Using exceptions", "abstract": 1, "human": 1},
  198. {"text": "Using monadic error types (Result, Maybe, etc.)", "abstract": 2, "human": -1},
  199. {"text": "Based on the code convention of the project", "abstract": 0, "human": 0}
  200. ]
  201. },
  202. {
  203. "id": 5,
  204. "question": "When it comes to code comments, I believe:",
  205. "options": [
  206. {"text": "Code should be self-documenting, comments are code smell", "abstract": 1, "human": -1},
  207. {"text": "Comments should explain the 'why', not the 'what'", "abstract": 0, "human": 1},
  208. {"text": "Extensive documentation makes code more accessible", "abstract": -1, "human": 2},
  209. {"text": "Comments are only needed for complex algorithms", "abstract": 0, "human": -1}
  210. ]
  211. },
  212. {
  213. "id": 6,
  214. "question": "For data structures, I prefer:",
  215. "options": [
  216. {"text": "Simple arrays and objects that anyone can understand", "abstract": -2, "human": -2},
  217. {"text": "Object-oriented with inheritance and interfaces", "abstract": 2, "human": 0 },
  218. {"text": "Functional style with immutable data", "abstract": 2, "human": -2},
  219. {"text": "What is natural for the problem domain", "abstract": 0, "human": 0}
  220. ]
  221. },
  222. {
  223. "id": 7,
  224. "question": "Which style of programming do you prefer:",
  225. "options": [
  226. {"text": "Functional style", "abstract": 0, "human": 0},
  227. {"text": "Imperative style", "abstract": -2, "human": 1},
  228. {"text": "Object-oriented style", "abstract": 2, "human": 1},
  229. {"text": "Whatever the team is most comfortable with", "abstract": 0, "human": 2}
  230. ]
  231. },
  232. {
  233. "id": 8,
  234. "question": "My attitude toward code reuse is:",
  235. "options": [
  236. {"text": "DRY (Don't Repeat Yourself) is a fundamental principle", "abstract": 1, "human": 0},
  237. {"text": "Some duplication is better than wrong abstraction", "abstract": -1, "human": 1},
  238. {"text": "Build reusable components from the start", "abstract": 2, "human": -1},
  239. {"text": "Optimize for readability first, reuse second", "abstract": -1, "human": 2}
  240. ]
  241. },
  242. {
  243. "id": 9,
  244. "question": "For testing, I believe in:",
  245. "options": [
  246. {"text": "Comprehensive unit tests for every function", "abstract": -1, "human": -1},
  247. {"text": "Property-based testing and generative tests", "abstract": 2, "human": -2},
  248. {"text": "Integration tests that verify user scenarios", "abstract": 0, "human": 2},
  249. {"text": "Whatever catches bugs most effectively", "abstract": 0, "human": 0}
  250. ]
  251. },
  252. {
  253. "id": 10,
  254. "question": "When debugging, I typically:",
  255. "options": [
  256. {"text": "Use a debugger to step through code systematically", "abstract": -1, "human": 0},
  257. {"text": "Add print statements to understand data flow", "abstract": -2, "human": 1},
  258. {"text": "Reason about the code logically first", "abstract": 1, "human": 1},
  259. {"text": "Write tests to isolate the problem", "abstract": 0, "human": -1}
  260. ]
  261. },
  262. {
  263. "id": 11,
  264. "question": "My preferred approach to configuration is:",
  265. "options": [
  266. {"text": "Simple key-value pairs in plain text files", "abstract": -2, "human": 2},
  267. {"text": "Type-safe configuration with validation", "abstract": 1, "human": -1},
  268. {"text": "DSLs that express configuration declaratively", "abstract": 2, "human": 0},
  269. {"text": "Convention over configuration", "abstract": 1, "human": 1}
  270. ]
  271. },
  272. {
  273. "id": 12,
  274. "question": "When it comes to performance optimization:",
  275. "options": [
  276. {"text": "Measure first, optimize bottlenecks only", "abstract": 0, "human": 0},
  277. {"text": "Write efficient code from the beginning", "abstract": -1, "human": -2},
  278. {"text": "Use high-level optimizations and let tools handle details", "abstract": 2, "human": 1},
  279. {"text": "Profile and optimize the critical path", "abstract": -1, "human": -1}
  280. ]
  281. },
  282. {
  283. "id": 13,
  284. "question": "For code organization, I prefer:",
  285. "options": [
  286. {"text": "Flat structures with clear file naming", "abstract": -1, "human": 2},
  287. {"text": "Layered architectures with clear boundaries", "abstract": 1, "human": 0},
  288. {"text": "Domain-driven design principles", "abstract": 2, "human": 1},
  289. {"text": "Whatever the framework/language suggests", "abstract": 0, "human": 1}
  290. ]
  291. },
  292. {
  293. "id": 14,
  294. "question": "My approach to learning new technologies is:",
  295. "options": [
  296. {"text": "Start with tutorials and examples", "abstract": -1, "human": 2},
  297. {"text": "Read the documentation thoroughly first", "abstract": 0, "human": 0},
  298. {"text": "Understand the underlying principles", "abstract": 2, "human": -1},
  299. {"text": "Jump in and learn by doing", "abstract": -2, "human": 1}
  300. ]
  301. },
  302. {
  303. "id": 15,
  304. "question": "When writing algorithms, I focus on:",
  305. "options": [
  306. {"text": "Correctness and clarity above all", "abstract": -1, "human": 2},
  307. {"text": "Optimal time and space complexity", "abstract": 0, "human": -2},
  308. {"text": "Elegant mathematical formulation", "abstract": 2, "human": -1},
  309. {"text": "Practical performance in real scenarios", "abstract": -1, "human": 0}
  310. ]
  311. },
  312. {
  313. "id": 16,
  314. "question": "For libraries, I prefer:",
  315. "options": [
  316. {"text": "Normal libraries that everyone uses", "abstract": 0, "human": 0},
  317. {"text": "Build things myself from scratch", "abstract": -1, "human": -2},
  318. {"text": "Small, header-only, or micro-libraries", "abstract": 0, "human": 1},
  319. {"text": "Large, batteries-included frameworks", "abstract": 2, "human": 0}
  320. ]
  321. },
  322. {
  323. "id": 17,
  324. "question": "My attitude toward type systems is:",
  325. "options": [
  326. {"text": "I like strong static types", "abstract": 0, "human": -2},
  327. {"text": "I like dynamic types", "abstract": 0, "human": 2},
  328. {"text": "I like a mix of static and dynamic types", "abstract": 0, "human": 0},
  329. {"text": "I like composable types", "abstract": 2, "human": 0}
  330. ]
  331. },
  332. {
  333. "id": 18,
  334. "question": "When refactoring code, I prioritize:",
  335. "options": [
  336. {"text": "Improving readability and maintainability", "abstract": -1, "human": 2},
  337. {"text": "Extracting reusable abstractions", "abstract": 2, "human": 0},
  338. {"text": "Optimizing performance and resource usage", "abstract": 0, "human": -2},
  339. {"text": "Reducing complexity and coupling", "abstract": 1, "human": 1}
  340. ]
  341. },
  342. {
  343. "id": 19,
  344. "question": "For making user interfaces, I believe in:",
  345. "options": [
  346. {"text": "Simple, easy to edit HTML/CSS", "abstract": -1, "human": -2},
  347. {"text": "Powerful WYSIWYG editors with rich functionality (Figma, etc.)", "abstract": 1, "human": 2},
  348. {"text": "Declarative UI frameworks (React, Vue, etc.)", "abstract": 2, "human": 0},
  349. {"text": "Consistent platform conventions (SwiftUI, WinUI, etc.)", "abstract": 0, "human": 0}
  350. ]
  351. },
  352. {
  353. "id": 20,
  354. "question": "My philosophy on software architecture is:",
  355. "options": [
  356. {"text": "Start simple, add complexity only when needed", "abstract": -1, "human": 1},
  357. {"text": "Design for extensibility from the beginning", "abstract": 2, "human": -1},
  358. {"text": "Follow proven patterns and practices", "abstract": 1, "human": 0},
  359. {"text": "Optimize for team understanding and collaboration", "abstract": 0, "human": 2}
  360. ]
  361. }
  362. ]
  363. }
Advertisement
Add Comment
Please, Sign In to add comment