Software Documentation (Javascript)

Hi @lual, I have been using Anki since 2014 and collecting Programming stuffs since then to store in Anki. There is no specific timeline,I think. I have been involved in programming since 2000! I started with VB(visual basic). I kept storing most snippets,ideas of programming in different places(MS word,Evernote) since the beginning of my programming journey. Once I started using Anki,I transfered them all into Anki.

I am an Automation guy! I automate almost everything in my job and personal life :stuck_out_tongue: Webscraping is still a favorite thing to me…But there are things I like to do manually,so that my learning gets stronger! Active learning vs Passive learning.

I have been working on the “Alphabet PAO System” for last couple of months. I needed a system that will cover all areas that I am interested in(Books,Programming,Journaling,Office works,etc)! The existing technique is not satisfactory(for me). So,I needed something that helps me in my journey to memorize stuffs………How do you memorize this code: STRXZ690?

With the existing ‘just-convert-the-word-into-image’ idea,I cannot memorize this code well: STRXZ690. So, I have to come up with something by which I can remember this type of code. I work in Medical Billing and Coding sector in which a client is given codes like this as identification number. And under that code,there are important info about the client. I have to remember all the info. And existing mnemonic techniques are not much helpful in this regard. So,I came up with a modified version of Giordano Bruno’s PAO system which is serving my purpose well :smiley:

3 Likes

I used ‘each letter’ of the “Object” word just as an example. If I had to memorize and convert the word “Object” into an image,I would not do it letter by letter. I would just use a shorter form “Obj” and convert this into image by using my Alphabet PAO System.

So,for this line of code of C# “public static void Main”, I would just use something like this: pub stat vod Mn and covert these words into image with Alphabet PAO system.

Or,for converting the word “Hydrogen” into image, I would just use “HDGN” and convert this four letters into image by using “Alphabet PAO System”. So,whenever I recall HDGN,I know it is Hydrogen…

There are so many different ways to use this type of Alphabet System for converting ‘text/words to images’… How do you memorize this code: STRXZ690? I need to memorize codes like this for my day job! And without Alphabet PAO System,I cannot memorize this type of code with the existing mnemonic techniques of converting ‘text/words to image’…!

And because the terms of programming language are just ‘words/texts’,they can also be memorized with the Alphabet System,I think……! Well,that is the theory I am counting on right now for memorizing different ‘terms/ideas/theories’ of programming language…

I try to follow the rule of Active reviewing. So,when I see the front card of Anki,which has the ‘question or hint’,I try to recall the texts in the back card without seeing them. This is known as “Active Recall” by the learning experts. I keep the whole page of code like that just in case,I cannot recall an area. I can check out the original code then……… But as you can understand,It is time consuming and stressful to try to recall long codes(and a bit unrealistic,too!). In that case,I can just ‘think’ of the main ideas used in that code. I don’t need to recall the complete code line by line…….

Besides,I am a Data freak. I store almost everything. I don’t like losing data……….

I see. I do have that need in a limited way - to remember things like strong PWs where non alphabetic characters are used. Otherwise, I dislike the the idea of having to memorize random letter strings - I feel they are ugly and I guess I’ve mostly avoided that kind of encoding. One does not always get a choice.

I’ve never been able to accumulate ‘raw’ information and retrieve it later for comprehension. Or at least I find that very hard. All my information is understood or familiarized in some way before I plant it. Sketching is one way for me.

Rather than memorize tags like public, static etc… I have conventions I turn these into some kind of animal, plant whatever. In Javascript ‘prototype’ is a crocodile, the Object constructor is a stone building, objects themselves are swollen fruit like aubergine, pineapple. Enumerable is a capital N etc… I will use these same items with the same meaning elsewhere but vary the details.

I would like an Major System that can accommodate hex notation. I’m sure it’s out there. I haven’t yet looked.

I use both memory palaces and SuperMemo for learning JavaScript. I am current processing the book “How JavaScript Works” by Douglas Crockford in SuperMemo. I also use Anki but I vastly prefer SuperMemo.

One thing that helps besides mnemonics is to try to see the code while answering. I also sub-vocalize every character in the code. I have little sonic shortcuts for somethings. When I parenthesis () I say “paren”, “{” squiggly, “<” is crocodile.

Although, I am only using mnemonics a bit, and generally follow SuperMemo best practices. Coming up with good question and answer items is an art just like coming up with good mnemonics.

I use the Dominic System for numbers and I use mnemonics based on Star Trek characters for letters.
If the person is from Star Trek, I know it is to remember a letter and not a number.

I am learning PowerShell also.

Anywhoo… good luck!

2 Likes

Thankyou for the tips. I am an experience Javascript developer but I find myself going back to the same documentation repeatedly for details. Also, there are features and options that I haven’t used but would like to be aware of. More than once I’ve written code only to find there was a built in method to do just that.

How does SuperMemo compare with Anki? I just downloaded Anki - have yet to play with it.

If this works, I’d like to try it on a new language - I’ve procrastinated on Python because I didn’t like its indentation format. Sounds silly, but it mattered to me. Anyway, I’ve had a good talking to myself and we’ve changed our mind.

I checked out SuperMemo. It looks like they want me to buy something but they won’t state prices, I have to sign up for a free trial and I really don’t need to learn English. I get the uncomfortable feeling of being ‘handled’.

That’s why, Anki is preferable to any other spaced repetition software out there. Developed by a Python programmer, Anki is free,feature rich,open sourced, and very stable! Its Android version is also free, but not the IOS version…

I personally have great respect for the creator of SuperMemo. After all,he is the guy that developed the algorithm for spaced repetition that we follow. Even Anki follows his algorithm for SR.

I have nothing against people making money off there software. But I expect plain dealing.

I shall have to put some time into one of them Probably Anki.

Thank you for your help.

Wow, then you must be the Derek Banas from Bangladesh!

Really inspiring journey, thanks for sharing! :smiley:

New to this forum. Have been a programmer for the last 15 years. But, googling slows me down and makes simple tasks look huge. Got valuable insights from the conversation above.
Will work on my own alphabet PAO system and use some of the tricks mentioned above. Currently, trying to create a system for learning statistics to help with data analytics that I am looking to shift into.

3 Likes

Hi @elitely, @zvuv and everyone else on this thread. Thank you all for your input, this has been a fascinating discussion. It’s so nice to see fellow developers working on systems to help with using JS.

I am a javascript developer and for a long time have been trying to work out the best ways of turning concepts / code into images. Specifically, I want a system I can show to juniors to help them with the learning process. I can see how something like alphabet PAO would be of enormous use, and something I am going to look into. However, for someone who doesn’t have a menomincs background, would they bother learning a new system like this when they have a dozen other things they need to learn…

In an age where google is the answer to everything, can I ask which you find the most useful:

  1. memorising the main points in documentation - specifically the syntax, such as the object methods you described
  2. Creating images for concepts, rather than memorising exactly what the code looks like. Eg an image for Object Prototypes and how Inheritance works, or an image for Closures.
  3. memorising processes and steps taken during development. Eg the 5 steps you need to link Redux to a React component, or the 10 things you did to create this to-do list?

It seems to be a blend for me, but I am trying to avoid learning syntax structures as these take a lot of time, and don’t actually build the expertise I want. Concepts and project-steps seem to be the most useful.

With that said, there are some pieces of syntax / commands which are useful to memorise. Here is something I use for Github: https://medium.com/@kylerobbo12/remember-the-github-space-station-86cd8a7575f6

Anyway, thanks for all the input guys. Let me know if anyone is based in London and wants to meet up and chat about this.

2 Likes

I’m still producing drawings - and that is working well. While it is a slow process, there’s a lot of engagement and by the time I’m done I know the stuff. I havent had to go back to Object.defineProperty docs since.

I think just the act of drawing the shapes, no matter how crudely helps give substance to abstractions, especially those one doesn’t quite understand yet. Color would be a big asset too. I just can’t draw in color - otherwise I’d add that. And you can go back to your sketches and embelish with more information.

However, this is material that is already familiar and pretty well understood - I plan to try my scheme on Python which I’ve ignored for too long. I find it hard to take a language that doesn’t use curly braces seriously.

I hope to be in London in a few month.

I don’t think,they will……….

I don’t ask my colleagues or subordinates to learn ‘mnemonic’ techniques of any kind. Because majority of them won’t! Not because they are not motivated to learn things that will improve their skills,but because we don’t want to do hard works!

Mnemonics is ‘hard work’!

Another problem is,it is very difficult to change ‘habits’ of any type. If a programmer is used to learning programming without mnemonics,then,it is gonna be very difficult for him/her to change his habit and get used to the ‘new habit’ of using ‘mnemonics’ for programming.

Habit determines a lot of our skill levels,but is one of the most difficult things to change!

It seems to be a blend for me, but I am trying to avoid learning syntax structures as these take a lot of time, and don’t actually build the expertise I want. Concepts and project-steps seem to be the most useful.

I think is all about ‘blending’. Also,I believe,what one will learn depends on one’s level of expertise, choice and needs!

For example,take this page of C# programming(Link). There are basically hundreds of different ‘string methods’ in the link. Let’s say,I want to memorize the widely used ‘string methods’ from that page. There could be around 20+ of them and I want to ‘encode’ all of them within one day in my memory. And I can surely do that by using ‘mnemonics’.

However,I can also memorize them without using mnemonics. But to do that,I have to spend a lot of times,even years. Because I am not gonna use the ‘string methods’ all the times,my memory will not encode them well. And that is why,I will have to refer to that link of methods all the times,or have to ask questions of ‘how to manipulate a string in a certain way’ in stackoverflow every now and then or search ‘google’. All this is time consuming and not efficient…

Here is a frequently used string method of C#(and many other languages): Substring(Int32, Int32)

To memorize this method and ‘when/how/why’ to use it,one might not need more than one minute with mnemonic techniques. The C# programmer has to use ‘integer’ for selecting the beginning and ending text! And he has to encode that in his memory. He has to memorize that he cannot use this format “Substring(a,b)”. He must use this integer format “Substring(2,3)”! Once encoded this string method with mnemonics(which is not gonna take more than a minute),the programmer will not easily forget the ‘hows/when/why’,etc of this string method.

I supervise around 60+ staffs of my company. We work for the 'Medical Billing and Coding" sector of U.S. So,our staffs need a very ‘good memory skill’,as there are thousands of ‘codes’(Alpha numeric) in Medical Coding sector of America. We also have to use ‘programming languages’ in our work for the client. And over the years,I have found that the ‘best’ staffs of my company have the ‘finest’ memory. I think,‘memory’ is the first thing that differentiates a skilled(!) employee from a non-skilled(!) one! Some people have ‘naturally good memory’ and they shine in their works. Others need to learn the skill of ‘memorization’. If they do,they could also become very skilled in their work(whatever that work is)!! Just my observation!!

4 Likes

Very inspiring @elitely!

1 Like

I’ve checked the image with your spreadsheet. Amazing job!
I recognise a column with the letter-shapes :slight_smile:

I like your idea of Alphabet Pao. It’ll be very useful.
Thank you.

I took items of that “Letter Shape Column” from one of your posts. Credit goes to you.

Yes,I found this type of system to be very very useful. I have been applying the system on different areas of my life;and getting very positive result…For example,I love reading books(a lot of them). But I had difficultly remembering the main points of the book. Now,with the system,I can remember the main points of the book very well.

I also use this system for logging the main events of my life on monthly basis. This has helped me tremendously to understand what the heck is going on in my life! :smiley:

Not only in programming,I applied it to remember “Softwares”,too…ha…ha…

For example,let’s say,I want to learn how to apply ‘Gaussian Blur’ in photoshop. To do that,I have to get to “Filter>Blur>Gaussian Blur”.

Now,I can convert “Filter>Blur>Gaussian Blur” to “Fltr>Blr>Gaublr”

Then,with the Alphabet PAO system,I can create story with “Fltr>Blr>Gaublr”!

Pretty fun!!! We can easily remember shortcut keys of Photoshop using Alphabet PAO system!

Seeing its usefulness in my personal life,I got ambitious and I have started to create a more robust and massive “Alphabet PAO system”,though it is taking a lot of time and effort to complete this.

Above system is single digit,but now I am working on double digits Alphabet PAO system. See the image below(Person+Other)…I hope,I will be able to complete it within this year! :dizzy_face: :worried:

2 Likes

Great job! I think you will complete it sooner than a year as it seems you are half way there already.

With my calculation, it’s 26x26 = 676
So by the looks of it, you’d need 676 Two-Letter-Combo with Persons and their actions and objects. It’s a lot of hard work, but then again everything is hard first before it’s very easy.

It’s like a brand new Major system but using all the letters of the alphabet.

I thought of something similar in the past, but was stuck with a single letter shape system instead as you know.

Initially I was converting each letter to a number digit, for example,
A = 1

Y = 25
Z = 26

So if the letters were;
A O Y
I would think of 1 and 15 and 25, and do the usual number pao.

This is the way I used to do it until I started using the letter shapes instead as I couldn’t distinguish the numbers and letters in the pao as they were all numbers.

So I think your system is more robust if learned and practiced well.

I am looking forward to see your completed Alphabet PAO. Hope you will share once completed.

3 Likes

Actually,it is 676 for persons. And 676 for ''others". That means,1352 images in total of persons,objects,animals,etc.

I’m using the Dominic system’s idea(Match the initial letters of the person’s name) for generating ''characters" and Major System idea(CVC) for generating “other”…

Sure,I will… :slight_smile:

3 Likes

Awesome shares! could you share this data table here to download by any chance? I am working on one for international phonetic alphabet. so Sound to images, on this site I can click on the letter and it makes the sound. Want to get them 100% before focusing on the pao.

http://www.internationalphoneticalphabet.org/ipa-sounds/ipa-chart-with-sounds/

1 Like

Hi,sorry for late reply…

Here is the Data Table for you to download>>> https://drive.google.com/file/d/1-acCfrT_7QK17f_oUEwn33URFnD_99cM/view

3 Likes