Levando o desenvolvimento orientado a objetos para o próximo nível [fechado]

5

Você pode mencionar alguns tópicos ou conceitos OO avançados dos quais deve estar ciente?

Sou desenvolvedor há 2 anos e atualmente miro para uma determinada empresa que exige um desenvolvedor da Web com uma experiência mínima de 3 anos.

Eu imagino que a entrevista terá os tópicos básicos orientados a objetos como (Abstração, Polimorfismo, Herança, Padrões de design, UML, Bancos de dados e ORMs, princípios SOLID, princípio DRY, ... etc)

Eu tenho esses tópicos abordados, mas o que eu estou esperando é trazer tópicos como Efferent Coupling , Acoplamento aferente , Instabilidade , A lei de Deméter , ... etc.

Até poucos dias atrás eu nunca soube que tais conceitos existiam (talvez porque eu sou um engenheiro de comunicação, basicamente não um graduado em CS.)

Por favor, você pode recomendar alguns tópicos mais avançados sobre programação orientada a objetos?

    
por Songo 14.06.2012 / 11:59
fonte

2 respostas

2

Irmão, irmão, ninguém que realmente entreviste você (ou seja, outros programadores) vai querer ouvi-lo falar sobre termos vagos e sofisticados. Você vai soar exatamente como o que você treinou - um cara que lê um monte de páginas da Wikipedia.

Em vez disso, concentre-se em compreender as vantagens da abstração sobre a implementação, prepare alguns exemplos de antemão, explique as falácias do acoplamento strong, como reconhecê-los e como evitá-los (na verdade, Law of Demeter vem a calhar aqui - mas é importante para saber quando para usá-lo e por que ).

Isso é tudo que você precisa saber para não estragá-los com códigos ruins. Quero dizer, é com isso que eles estão preocupados, que vão ter um cara novo que vai entrar e fazer uma grande bagunça. Você precisa se concentrar mais em deixá-los sentir que podem confiar em você, em vez de impressioná-los.

Uma apresentação muito boa desses tópicos está no livro PPP Agile por Bob Martin .

    
por 14.06.2012 / 15:28
fonte
0

A partir da leitura inicial do seu post eu teria dito: "você está bem preparado". Mas na verdade o som é como Yam tem alguns pontos lá .

Eu fui colocado na posição de liderar algumas entrevistas e também ser parte do processo de decisão, então eu posso dizer que você ficará surpreso quando se sentar do outro lado da mesa, até que ponto as pessoas tendem a interpretar erroneamente sua situação como candidato a emprego:

  1. Eles precisam de VOCÊ - você, em contraste, tem uma habilidade (contando a partir de sua escrita que você não tem estado sentado em suas mãos durante esses dois anos) em um nível avançado que é muito procurado pela indústria
  2. Eles também são pessoas - eles precisam ter pelo menos a imaginação de poder trabalhar junto com você diariamente, e você não conseguirá o emprego se se sentir menos à vontade e talvez se torne um tímido ou mais silencioso. versão de si mesmo.
  3. Nunca tenha medo de dizer imediatamente que você não sabe de algo. Se você leu o tópico em questão até há séculos atrás e sabe apenas vagamente o que é, diga isso claramente. Isso é claro, depois de ser perguntado por algo específico. Se houver algum "elefante na sala", como talvez uma lacuna não documentada em seu currículo, deixe a história clara para você.

Sempre tenha isso em mente. Eu não posso dizer quais coisas vão te dar o emprego em qualquer empresa específica que você está se candidatando, mas eu posso te dizer que tipo de caras sempre tem um sinal positivo e um segundo convite:

  • se você está mostrando de forma autêntica que este trabalho é a sua paixão, que você está queimando para resolver problemas desse tipo e apenas fazer as máquinas fazerem todas essas coisas más, que você tem uma mente aberta, em constante evolução personagem que um pode também "concordar-discordar", mas ainda cooperar construtivamente com, então você tem um pé na porta
  • trazer um exemplo de seu kung-fu mais legal (nada acadêmico, algo legal ou prático que melhor se relacione de alguma forma com o que eles estão fazendo, você pode mostrar no laptop que você vai levar) pode ajudar a empurrá-los a borda
  • pesquise o máximo possível sobre o que eles fazem, quem são seus clientes e o que atualmente pode ser o projeto mais proeminente. Encontre algo, apenas uma faísca, talvez, que realmente lhe interesse, PERGUNTE-LHE PERGUNTAS. Se for uma grande empresa, tente entender qual setor exato (horizontal) e nível (vertical) da hierarquia à qual você está se inscrevendo.

A melhor coisa é: se você conseguir seguir estes - é claro, dependendo do tamanho da empresa e práticas de RH - você pode não ser colocado em uma situação de exames-oral em tudo. Ou seja, se o entrevistador sentir que realmente gosta de entender e explorar as coisas que você faz, e que você não é apenas o Mysql ou MongoDb fanboy recitando algumas características do seu favorito " Martelo de ouro "(veja Anti-Patterns ) sem nunca ter a menor idéia sobre as origens dos fatos.

Ninguém precisa ser um dicionário humano de ciência da computação, hoje em dia precisamos de criadores, inventores, solucionadores de problemas.

Naturalmente, tudo isso sendo apenas meus dois centavos pessoais dessa perspectiva muda a experiência.

P.S. As leituras mais inovadoras para mim em minha carreira foram "Código Limpo", de RCMartin e "Programador Pragmático" (Hunt / Thomas), que conseguiram restaurar minha vontade de combater continuamente códigos medíocres ou "apenas bons" e identificar e melhorar processos sub-ótimos onde os vejo. Alguém que tivesse abraçado esses livros sempre atiraria imediatamente na minha lista de candidatos para dar o trabalho.

    
por 26.06.2012 / 02:29
fonte