From 117b7add93ca076501a4ae6dc89001ccf0549f77 Mon Sep 17 00:00:00 2001 From: Marek Madejski Date: Fri, 9 Aug 2024 09:09:45 +0200 Subject: [PATCH] Regular expressions Added regexes as a new competence. --- README.md | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index d121d77..4c6ae95 100644 --- a/README.md +++ b/README.md @@ -167,24 +167,31 @@ Programmer Competency Matrix Can do basic database administration, performance optimization, index optimization, write advanced select queries, able to replace cursor usage with relational sql, understands how data is stored internally, understands how indexes are stored internally, understands how databases can be mirrored, replicated etc. Understands how the two phase commit works. +22. regular expressions +Does not understand the concept +Escaping special characters (\n, \t, \\) +Basic regular expressions (letters, digits, wildcard characters, number of occurrences, grouping) +Advanced features (backreferences, lookahead, lookbehind, greedy/lazy expressions, recursion, subroutines); differences between regex dialects + + D. Experience -22. languages with professional experience +23. languages with professional experience Imperative or Object Oriented Imperative, Object-Oriented and declarative (SQL), added bonus if they understand static vs dynamic typing, weak vs strong typing and static inferred types Functional, added bonus if they understand lazy evaluation, currying, continuations Concurrent (Erlang, Oz) and Logic (Prolog) -23. platforms with professional experience +24. platforms with professional experience 1 2-3 4-5 6+ -24. years of professional experience +25. years of professional experience 1 2-5 6-9 @@ -201,49 +208,49 @@ Programmer Competency Matrix E. Knowledge -25. tool knowledge +26. tool knowledge Limited to primary IDE (VS.Net, Eclipse etc.) Knows about some alternatives to popular and standard tools. Good knowledge of editors, debuggers, IDEs, open source alternatives etc. etc. For e.g. someone who knows most of the tools from Scott Hanselman’s power tools list. Has used ORM tools. Has actually written tools and scripts, added bonus if they’ve been published. -26. languages exposed to +27. languages exposed to Imperative or Object Oriented Imperative, Object-Oriented and declarative (SQL), added bonus if they understand static vs dynamic typing, weak vs strong typing and static inferred types Functional, added bonus if they understand lazy evaluation, currying, continuations Concurrent (Erlang, Oz) and Logic (Prolog) -27. codebase knowledge +28. codebase knowledge Has never looked at the codebase Basic knowledge of the code layout and how to build the system Good working knowledge of code base, has implemented several bug fixes and maybe some small features. Has implemented multiple big features in the codebase and can easily visualize the changes required for most features or bug fixes. -28. knowledge of upcoming technologies +29. knowledge of upcoming technologies Has not heard of the upcoming technologies Has heard of upcoming technologies in the field Has downloaded the alpha preview/CTP/beta and read some articles/manuals Has played with the previews and has actually built something with it and as a bonus shared that with everyone else -29. platform internals +30. platform internals Zero knowledge of platform internals Has basic knowledge of how the platform works internally Deep knowledge of platform internals and can visualize how the platform takes the program and converts it into executable code. Has written tools to enhance or provide information on platform internals. For e.g. disassemblers, decompilers, debuggers etc. -30. books +31. books Unleashed series, 21 days series, 24 hour series, dummies series… Code Complete, Don’t Make me Think, Mastering Regular Expressions Design Patterns, Peopleware, Programming Pearls, Algorithm Design Manual, Pragmatic Programmer, Mythical Man month Structure and Interpretation of Computer Programs, Concepts Techniques, Models of Computer Programming, Art of Computer Programming, Database systems , by C. J Date, Thinking Forth, Little Schemer -31. blogs +32. blogs Has heard of them but never got the time. Reads tech/programming/software engineering blogs and listens to podcasts regularly. Maintains a link blog with some collection of useful articles and tools that he/she has collected