[ARTIGO] - Existe mais de uma forma de resolver problemas
E é possível que executá-los te ajudem a passar em uma entrevista de emprego
Hoje estava fazendo meu desafio diário do Hackerrank, que eu voltei a pouco tempo para praticar um pouco fora do trabalho e cheguei a um insight interessante:
Que tal se eu tentar resolver o problema sem pesquisar pela resolução e tentar fazer meu cérebro trabalhar um pouco? E comecei a ler o problema Time Conversion.
E com isso, eu desenvolvi um código claramente ruim, mas que resolvia o problema, sabendo que claramente existem formas mais adequadas de fazê-lo, mas eu queria ao menos ver os testes passando sem ver a resposta na minha frente, fazer meu cérebro trabalhar pra isso.
def timeConversion(s):
new_hour = ''
if s[-2:] == 'AM':
new = int(s[0:2]) - 12
if new >= 0:
new_hour = str(new).zfill(2) + s[2:-2]
else:
new_hour = s[:-2]
elif int(s[0:2]) == 12:
new_hour = s[:-2]
else:
new = int(s[0:2]) + 12
new_hour = str(new) + s[2:-2]
return new_hour
E depois de ver os testes passando, pensei: Como melhorar esse código ao extremo?
E com alguns minutos de busca no google, cheguei ao código:
from datetime import datetime
def timeConversion(s):
in_time = datetime.strptime(s, "%I:%M:%S%p")
out_time = datetime.strftime(in_time, "%H:%M:%S")
return out_time
Assim, me veio o insight: É um processo natural saber como algo deve ser resolvido, mas fazê-lo nem que seja de uma forma inadequada, faz seu cérebro se acostumar a resolver problemas antes de sair correndo pela resposta. E também não há problema nenhum de pesquisar sobre o assunto, já que com isso é possível conseguir uma solução mais precisa que resolva o problema de um jeito melhor.
E não só isso, usar esse fluxo em uma entrevista técnica pode mostrar que não só você sabe programar, como sabe que nem sempre vai criar códigos perfeitos, e que sabe como e onde procurar quando isso acontecer.
Acesse o artigo abaixo para mais detalhes!