How you name your functions doesn't necessarily demonstrate that you have skill or lack thereof, but rather, the names that you use should serve as a good example of how that variable or method should behave. So if I wrote a method called stringify , without you knowing the inside of the method you could probably deduce that it would convert something to a string. However if I named this method convert instead, it's a much more abstract term and you would probably have to read the method body to find out its functionality. Good variable names should describe their contents and should mean that you can hold off commenting your code with filler; it looks nice but isn't necessary: function sum ( a, b ) { // Add the two numbers together return a + b; } This code would be clearer if the parameters describe what they are: function sum ( numberA, numberB ) { return numberA + numberB; } The code is more verbose, but it's clearer that both of the arguments are numbers. You could also use something like Flow as a type system, which would make this explicit: function sum ( a: number, b: number ) { return a + b; } I tend to prefer this style over using block comments, as they can end up being overly verbose. For example, the same code using something like JSDoc: /** * Add two numbers * @param {number} a * @param {number} b */ function sum (a, b) { return a + b; } It's also good to use naming conventions when appropriate . For example, many Node-style callbacks are represented as cb : function foo ( cb ) { return cb( null , 'foo' ); } And e is often an acceptable identifier for an error: try { functionThatThrows(); } catch (e) { console .log(e); } There are others, and sometimes the language necessitates the usage of short variables so as to not confuse your variable/method name with a global keyword - e.g. fn is often used for a generic function , or str for string . Don't go overboard with custom short names though; remember at least in JavaScript there are tools you can use to compress identifiers for production code, e.g. https://github.com/mishoo/UglifyJS2 . And one thing that is a big help; don't deviate from the standard practices in an ecosystem when it comes to naming things. So for example Ruby uses snake_case for method names whereas JS projects use camelCase . In my view it's best to use these conventions, because it will keep your code looking consistent with other libraries that you may be using. It's also easier for debugging, as you won't need to remember which style you used for any given method (if you used more than one).