How to save field data I need to programmatically save field data (during node save I want to take the title &amp; path alias and store it in a link field called field_alternative_titles_title). 

Which functions can I use here? Do I use field_attach_insert or hook_field_storage_pre_insert to save the link field?
At first you need to implement hook_node_presave($node)


  Act on a node being inserted or updated.
  
  This hook is invoked from node_save() before the node is saved to the
  database. Parameters
  
  $node: The node that is being inserted or updated.


So it reacts when a node is going to be saved , then you have to check if the node type is the proper node type . then setting field value , so this is some code snippet :

function mymodule_node_presave($node) {
  if($node-&gt;type == "Your Node Type") {
      //dsm($node);//it will show the structure of node
      // as example
      $data = $node-&gt;title.'-'.drupal_get_path_alias('node/'$node-&gt;nid);
      $node-&gt;field_alternative_titles_title[$node-&gt;language][0]['value'] = "data";//check the node structure,this code wont work for sure
  }
}


of-course this is just an snippet , to make it work you have to know the structure of your content type , Devel module will help you , install and enable it so dsm function will work.