Faits: Faits: A. X._ SA est une société active dans les services informatiques, en particulier dans le développement de logiciels de gestion. A un moment donné, B._, fondateur et administrateur de X._ SA, a jugé nécessaire d'engager un employé pour le seconder et devenir son bras droit; il s'est alors approché de A._, avec lequel il avait déjà travaillé dans une autre entreprise. Par contrat de travail du 15 décembre 2000, X._ SA a engagé A._ en qualité de consultant en informatique et en organisation à partir du 3 janvier 2001; le salaire mensuel brut était fixé à 6500 fr., puis augmenté à 6800 fr. après le temps d'essai de trois mois. Selon le cahier des charges, A._ devait suivre une formation pendant six mois, afin d'être en mesure de conseiller les clients, de «participer au développement des solutions de X._» et de «présenter des produits à des prospects». A cet effet, X._ SA a remis à l'Office régional de placement de Carouge une formule intitulée «allocation d'initiation au travail (AIT) - demande et accord d'objectifs»; sous la rubrique consacrée aux remarques, B._ a écrit les lignes suivantes: «Je suis convaincu du potentiel de M. A._. Les compétences professionnelles à acquérir sont cependant nombreuses et nécessitent un temps de formation important. Une durée de l'allocation au travail maximale serait donc extrêmement appréciable pour la société.» Bons au début, les rapports de travail se sont peu à peu dégradés par la suite. En particulier, A._ ne parvenait pas à trouver des solutions aux différents problèmes informatiques posés par l'une des sociétés clientes de X._ SA; il devait souvent appeler B._ à la rescousse. Par lettre du 14 août 2001 rédigée sous forme d'avertissement, B._ a adressé à A._ une liste de reproches; il indiquait que son travail ne donnait pas satisfaction depuis juin 2001, que des contrôles systématiques étaient nécessaires et que les erreurs commises étaient de nature à porter atteinte à la crédibilité de X._ SA. Il ajoutait que, composée de deux personnes, l'entreprise ne pouvait se permettre la répétition de tels manquements et qu'elle se verrait dans l'obligation de mettre fin au contrat de travail si une nette amélioration dans la mise en oeuvre des concepts appris et la qualité de l'activité ne se faisait pas sentir dans les prochaines semaines. Selon certificat médical du 7 septembre 2001, A._ a été incapable de travailler du 30 août au 11 septembre 2001. Il a informé l'employeur de son absence par messagerie électronique. Le 12 septembre 2001, le travailleur est arrivé à son poste avec au moins trois heures de retard, car il avait mal dormi en raison des événements tragiques qui avaient eu lieu la veille aux Etats-Unis; il avait téléphoné à l'entreprise pour annoncer son retard. Par lettre du même jour, X._ SA a résilié le contrat de travail avec effet immédiat. L'employeur faisait valoir notamment que, malgré des avertissements écrits et oraux, la qualité du travail de A._ ne s'était pas améliorée. Par courrier du 26 septembre 2001, le travailleur a contesté l'existence de justes motifs et réclamé le paiement de son salaire jusqu'au 31 octobre 2001. Par la suite, il a demandé le versement de son salaire jusqu'au 31 décembre 2001. Par courrier du 26 septembre 2001, le travailleur a contesté l'existence de justes motifs et réclamé le paiement de son salaire jusqu'au 31 octobre 2001. Par la suite, il a demandé le versement de son salaire jusqu'au 31 décembre 2001. B. Par requête du 1er mars 2002, A._ a conclu à ce que X._ SA soit condamnée à lui payer le montant de 30 000 fr., avec intérêts à 5% dès le 18 octobre 2001, et à lui fournir sans délai un certificat de travail conforme à l'art. 330a CO. Par jugement du 16 juillet 2002, le Tribunal des prud'hommes de l'arrondissement de Lausanne a rejeté les conclusions du travailleur. A._ a recouru auprès de la Chambre des recours du Tribunal cantonal du canton de Vaud. Par arrêt du 29 juillet 2003, la cour cantonale a admis le recours; elle a condamné X._ SA à payer à A._ la somme brute de 27 200 fr. à titre de solde de salaire, sous déduction des charges sociales usuelles et d'un acompte de 2386 fr.60, ainsi que la somme de 4671 fr.55 à titre d'indemnité selon l'art. 337c al. 3 CO. X._ SA était en outre invitée à délivrer sans délai un certificat de travail à son ancien collaborateur. C. X._ SA interjette un recours en réforme au Tribunal fédéral. Elle conclut à la réforme de l'arrêt attaqué en ce sens que les conclusions libératoires de la défenderesse sont accueillies et la demande rejetée. A._ propose le rejet du recours dans la mesure où il est recevable.