Be ready for the end-game -> creating bad-ass (awesome) developers.
- Bad-ass: The Book Trailer (1:52 minutes),
- Making Bad-ass Developers (23:03 minutes) ,
- Bad-ass: Making Users Awesome (47:58 minutes) - by Kathy Sierra
Problem statement - (There is too much to learn?)
Doing code reviews with the "dev's" I found an interesting pattern: When code is explained - the comments are read - and when there are no comments then - "it is clear what the code does" is communicated - and one usually do not ask anything more. This situation highlights the question: "Does the devs really know it all?"
The reality is that it take years of specialisation and dedication to really master a new skill. This makes it very rare to truly meet a person that is really a web expert (as there are so many languages and things available plus everything is radically changing all the time). What you do find, is "dev's" that know how to google and how to stack-overflow and who is extremely proficient at copy and paste boiler-plate code on a continued basis.
This process of "copy-paste" has become the way development is done and everything is build and created from templates. This process makes it difficult to master new technology. How can this problem be solved - or how can dev's continue with a "copy-paste" and also master new technologies?
Solution - (Bad-ass developers create awesome apps)
The solution presented is that "bad-ass (awesome) dev's will create apps fast that will make users awesome". Bad-ass developers will make the world more awesome. The purpose of this module is to create awesome dev's out of ordinary dev's. The focus is on 3 things:
- Memory (help to remember new content).
- Move forward (remove the need to go back).
- Enjoy the process.
This solution assist "dev's" in easily create templates (crib-notes) and to use those notes. In short it helps to minimise the time to get from new to master. This process & structure allows the "dev" to:
- Identify what is important by setting up own templates (or use the ones that are already setup).
- Add personal comments to pre-defined templates.
- Group important code templates together -> easy retrieval, usages and mastering.
- Facilitates the setup of master cheat sheets.
- And ultimately to master new technologies quicker.
- To be awesome and to kick some ass doing it.
What this solution is not
- This is not another template based system -> this is a process to learn & remember.
- This is not a quick fix -> it is a process to be a quick learner.
- This is not a new way of doing things -> it is an opportunity to do old things differently.
ROI - (Return on Investment)
- Do I use this module on a continued basis doing my daily tasks?
- Yes I do.
- Has this module allowed me to learn new technologies faster?
- Yes it did.
- Where do I use this module?
- When learning new stuff - I will define new templates to remind me how to do things.
To use templates:
- clone: https://github.com/perezLamed/Lamedal1/
npm i lamedaljs_awesome -s
Samples of usage:
node ll -h// show the help
node ll// show all templates
node ll return// show all templates with value 'return' in the template name
node ll express listen// Show template with keywords 'express' and 'listen'
To load most used modules (lodash / express / axios / commander etc.):
About the solution
- This module helps to easily use custom templates within text files.
- Templates are stored in the templates folder. To add a new template - just add a new text file.
- Templates can have 1 parameter that is defined by a starting $ and ending $:
- Sample: $Function_name$ -> will generate question: "Function name? "
- And will replace all occurances with the entered value.
- When there are more than one result - all options will be displayed and a selection can be made.
- Once you have chosed a template -> the template detailed will be displayed to the console and coppied to the clipboard.
- If you do not like the defined templates -> just change them in the way you want to use them.
Template folder structure
- Run of batch commands
- When template ends with '.bat' -> give option to run the command (y/n).
- Add --edit (-e) option -> edit the last selected template.
- Add --delete (-d) option -> delete the last selected template.
Create initial solution Add unit (mocha & expect) tests. If template is URL -> then open it.
- This turned out to be non-practical feature after testing and has been removed. (It is too difficult to identify when the url needs to be opened and when not to )
- -z list the applications and give option to choose one
- Set option to swap between languages (JS, c#, SQL)
- Add a second keyword search option:
- node ll keyword1 keyword2 (and remove 'keyword1' from result template name)
- --q123 (-1) option. This will present challenges or tests that can be done using templates.