Programing and memorizing?

If you arren`t very good at programing but you memorize a book or to on a particular language program will that make you really good? Similar with photoshop if you somehow memorize a lynda tutorial will that make you an excelent graphic designer?
Thank you

I don’t think that memorization alone is enough. I think it’s similar to human languages – if you memorize a lot of vocabulary, it will reduce the need for a dictionary, but you still won’t be able to understand conversations or speak until practicing those skills.

Here’s an example of the kind of thing that is hard to understand immediately just from reading a book, without practice. To a beginner, this JavaScript code might look like it would work, but there is a disastrous bug in in that increment function. :slight_smile:

<form>
    <input type="text" id="price" />
</form>
<script>
    var input = document.getElementById('price');
    input.addEventListener('keyup', function (e) {
        console.log(increment(input.value));
    });

    function increment(n) {
        return n + 1;
    }
</script>

I think that memorization can speed things up significantly, but a lot of practice is still required in order to find all of the quirks in the language and juggle a lot of dry rules. I could be wrong, but I think the ability to quickly identify that a particular rule applies to the current problem or bug generally requires more than just memorization.

(The bug there is that the + operator is going to concatenate the value of the input box instead of performing addition, because the code forgot to check if the input is a number or string.)

That guy who did GMS giordanio memorization systems said it can happen to you in a matter of weeks become senior. When you memorized it you know the answer even though you lack experience it feels natural. But i don`t know if he lied or its truth thats the reason i am asking

A matter of weeks to become a senior programmer? I don’t think that it is possible. Memorization is very powerful, but it’s just one part of learning.

Do you mean the guy who “invented” the GMS or just someone who gave his testimony?

If it’s the second option, you might still give it the benefit of the doubt; but if it’s the first option, he just did you a great favor: you now know you should forget about his system and just put in the hours.

I have very little programming experience with respect to a senior, but the little I have already suffices to know that remembering commands, expressions, and the like is one of the least important skills. Experienced programmers can pick up any new language in a matter of hours and solve complex problems. This is not because they memorize the language so fast – they have Google and APIs and Stackoverflow for that – it is because they know how languages in general work, they understand the algorithms, they have in memory, not commands and their idiosyncrasies, but a thousand situations they have experienced and solved in the past, a “programming vocabulary” that goes way beyond knowing what this and that do. To be a senior in any area demands expertise. Expertise do demand memory, but it demands above all that you put in the hours.

No shortcuts in life, my friend, not even with the art of memory in your arsenal.

They were talking about not memorizing just the syntax but also a book on algorithms a good program book the kind of stuff you learn in college not just the syntax. and RUSLAN whatever the guy who invented GMS said that in a forum

I believe the art of memory can help us with ANY type of knowledge. As you get proficient with it and give some thought to details and tweak it to fit your needs and your personality, it becomes easier to apply it to a wider variety of fields. But there are those fields of knowledge that profit more from sheer memorization and those that profit less. I believe programming belongs to the second category, but in any case, pure memorization won’t turn you into a “senior” or “really good” (these were your expressions) in anything but memorizing per se. How would simple memorization of algorithms suffice to solve a complex problem? To me, it is the same thing to say that if you memorize an entire English dictionary and all its grammar rules (every word of William Strunk’s seminal The Elements of Style, if you will) you would become a great writer. No art surrenders itself to brute force. It demands maturing and finesse and intuition. Memory will take you just so far. And programming is an art, in my opinion.

But this is just my opinion. Maybe this “guy” knows much more than I do (that’s not hard), but I’ve perused this GMS system and all I see is an unscientific repackaging of what has been known for millennia and practiced and discussed at length in this and other forums. There is yet a lot to be developed in mnemonics, I believe, but memorization alone will let you recite poems, not compose them, be them in English or in Javascript.

BTW, Josh, I don’t know any Javascript, but I would like to try to find the bug.

If this kind of scoping works in Javascript (I mean the function being declared after its call) that should work, but it doesn’t seem to be what you’d want. Whatever is passed to the function will be incremented by one, but the result won’t be saved as a new value. If it’s called again the result will be the same. It would be easier to just type console.log(increment(input.value + 1)); in that case, wouldn’t it?

Is that the problem? Or is that something way more serious that I am not seeing?

Best,
M.

The function declaration will be hoisted to the top, so it’s okay to put it at the bottom.

I’ll post a runnable example of the first bug here. You can run this code below and see the bug by clicking on “result” and typing a number:

http://jsfiddle.net/j127/j8khkmjh/2/

Here is a second version that fixes the most obvious bug by converting the input to an integer.

http://jsfiddle.net/j127/5bj28ffu/2

There are still other bugs if you enter anything that isn’t an integer. Memorization might not help to explain why it shows NaN (“not a number”) if you type in some input and then delete it. It also shows NaN if you restart the program, put your cursor in the input box and then press a shift key. There are many bits of information that have to be applied to figure out all of the possible situations that need to be handled.

If that doesn’t make sense, I could explain in more detail.

You can also test it by opening up the browser console (F12 on Linux or Windows with Firefox or Chrome – I’m not sure about Mac) and typing these two lines of code:

This will print 2:

1 + 1

This will print 11:

1 + '1'

If you add a string to an integer in JavaScript, it converts the integer to a string and concatenates instead of adds them.

Thanks, Josh, I got you. Very nice indeed this JSFiddle app, thanks for using it. I used it to ran that one-liner I proposed and it worked. But I understand your idea is to have a robust code that enforces the type of input and avoid errors, so my simple solution wouldn’t work either.

Anyway, turning back to the thread’s subject, I guess we agree that there is much more to it than pure memory, important as it might be.

Best,
M.

Of course memorization will help with programming somewhat. Although nowadays, there is a bit less demand for memorizing since modern compilers will for example, complete syntax for you.

Going to a senior programmer (or even a decent one) wouldn’t happen with just memorizing, for the simple fact that programming is actually about problem solving, not simply recalling commands, syntax, structures, and the principles of OOP.

2 Likes

I agree - we’ve had this convo elsewhere. Your brain does not assemble sentences out of small parts like a Lego set. It learns patterns, sentences, phrases, etc and then puts words in those. As programmers we do much the same.

But a bank of fluent information is still very important. Look how useful it is to have the multiplication table memorized up to just 10. In the end you need both. Every time you have to look something up, you break your train of thought. If you read a page of English where the author is uses unusual vocabulary, it really slows things down.

3 Likes