Até hoje eu não sei dar prazos. Porque é comum eu fazer coisas novas. Se for para fazer o que eu já fiz, não tem porque eu pegar esse trabalho. Se for algo repetitivo, estou vendendo um produto e não meu serviço, não tem prazo.
É lendário que programadores não conseguem estimar bem o que vão fazer, e tem metodologias que pregam que eles nem devem existir, ainda que isso seja sempre complicado de vender.
Me lembro que todos os clientes recusavam essa de "pague pelo tempo que levar". Queriam uma estimativa, e eu tinha que dar uma pelo menos 3x o que eu achava que ia levar, porque eu podia quebrar a cara. E aí era difícil fechar. Eu reduzia, e assumia o risco de fechar algo. Esperando que aquilo servisse depois para outras coisas.
Imagino que alguém inexperiente seja bem mais difícil mesmo. Para isso precisa ir ganhando experiência, errar muito, e dominar o que faz. Enquanto não domina, tudo que ganhar é lucro porque está sendo pago para aprender. Enquanto está sem totais condições de exercer aquilo deve assumir todos os riscos. Tem que dar o preço que a pessoa está disposta a pagar, mesmo que ela esteja te explorando. Afinal você está explorando ela de uma certa forma por estar fazendo algo que não domina.
Aí vai ganhando experiência, e pode estimar melhor, pode entender o mercado, pode cobrar por algo que seja mais certo, que está dando um ganho maior para a pessoa que te contratou do que o ganho que você tem fazendo algo para ela.
E o processo é assim, depois das pessoas darem os primeiros passos elas vão tendo conhecimento para dar os próximos. Se isso não está acontecendo é porque os passos anteriores não foram bons, precisa focar mais neles ainda.
Se tem a sensação que sabe por onde começar, mas quando vai pesquisar não consegue, é porque a sensação está errada. Precisa estudar coisas mais básicas. Acabei de dar duas respostas sobre isso aqui e aqui.
Evite pegar coisas que ainda não está preparado. Pode pegar alguma coisa que desafie, mas sem exagero. É sempre bom pegar algo um pouco além do limite para conseguir evoluir, mas se exagerar fará tudo errado, criará problema e para o contratante. Por iss que eu sempre falo que não dá para pular etapas.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).
Só avisando que agora o sistema pune quem não recebe likes no que escreve, portanto se ficar em 1 aqui não estranhe se eu apagá-lo. Lamento, mas é necessário para não ser prejudicado. Se não teve, é porque ninguém gostou, então não fará diferença mesmo. Se acha que é interessante, considere dar like aqui.