Pergunta

Só por curiosidade, eu estou querendo saber o que tudo o que você programadores experientes ou novatos (como eu) lá fora, têm feito. Então, qual é o programa MAIS DIFÍCIL mais complicada que você escreveu?

Foi útil?

Solução

O aplicativo que eu criei em 2005/6 permite às pessoas criar visualizações de suas casas / carros etc pintadas em cores diferentes. Agora que certamente pode ser feito no Photoshop, mas não havia muito, muito mais do que isso.

Viresol previsão de saída

Outras dicas

um compilador

O que eu não queria, ou divertir-se, por escrito.

Uma vez eu tive que escrever um algoritmo de compressão que é utilizado BWT (Burrows Wheeler Transform) e há um passo no algoritmo onde você tem que criar uma matriz enorme. I teve problemas com problemas de memória e velocidade, pois a matriz foi tão grande. Venha descobrir, existe um algoritmo muito simples que eu poderia ter usado e evitou a matriz inteiramente.

Eu também tive que escrever um sistema operacional simples em ASM e que foi bastante complicado.

uma vez eu fiz um software de processamento de vídeo multi-câmara em tempo real, fazendo a detecção de movimento e magia histográfica cumulativo, todos em processadores de 33MHz e 640MB de RAM. A parte mais difícil foi fazer este ir mais rápido; grandes quantidades de hashing, pedaços de mudança, fazer batota, palavrões e noitadas com pizza e ephiphanies por cerca de 4 anos. Oh, e eu fiz uma versão lidar com a cor também. Ah, e um módulo que pode ver a diferença entre vapor e fumaça branca em grandes salas (como reatores nucleares, por assim dizer). Hah, você apenas experimentá-lo! Você não vai encontrar exemplos de tais em qualquer livro-texto. :)

Uma biblioteca para a resolução não-linear parcial Differenential Equações. Que usamos em um grupo de física teórica para resolver uma adaptação não-linear da equação de Schrodinger que ocorre em ambientes muito especiais de temperatura baixa.

Foi relativamente fácil de obter um solver simples trabalhando, mas generalizando- e tornando-o rápido foi um desafio.

É atualmente open source no Google Code: FDTL

Um aplicativo que compilado e correu em ambos -. Janelas e mac com uma base de código

Nada a ver com criptografia e segurança é sempre de 1000% mais difícil do que parece!

Um driver do modem de propósito geral para um serviço on-line escamosa. Ele também teve que suportar 30 tipos de modem (antes modems Hayes). Todos eles tinham características diferentes de tempo.

Ele teve que ser escrito em 8086 e Z80 assembler para as versões de CP / M e do DOS dos nossos produtos. Eu ainda tenho pesadelos sobre uma determinada half-duplex modem ...

automação com COM, com a execução do outro lado da grade

Uma classe-streaming de vídeo proprietário usando a API ffmpeg - ao nível da manipulação de pacotes e exibição de quadros na hora certa, a sincronização com o áudio. Não é tão duro como alguns dos outros listados, mas chutou a minha bunda por muitas semanas!

Provavelmente um empate: um solucionador de problemas de decisão para conjuntos utilizando satisfiability modulo teorias e um processo cooperativo programador em C / ASM que correu em cima de um sistema operacional UNIX. O primeiro era simplesmente difícil - nunca tinha sido feito antes usando SMT e traduzir o papel altamente teórico em uma implementação real em um contexto diferente foi difícil. A segunda escavação envolvidos para que as estruturas de dados do sistema operacional para compreendê-los, em seguida, substituindo pedaços e peças para saltar e para trás entre as funções no programa como se eles foram programados em separado threads.

um depurador

A vector biblioteca gráfica comecei a escrever em 1998, que fez uso extensivo de subdivisão hierárquica para fornecer muitas operações em O (N log N) e Tesselations anisotrópicos memoized em listas de exibição OpenGL de manter altas taxas de quadros em cenas dinâmicas. Em particular, pode dar zoom em gráficos vetoriais complicadas fluida porque decomposto-los em árvores e abatidos-los de forma eficiente. Por muitos anos, era de longe os gráficos mais rápidos no nível do consumidor vetor renderizador no mundo.

A versão original foi 200kLOC de C ++, mas os problemas teóricos que formaram a base da sua concepção me levou 2 anos para resolver.

2 coisas:

1) Um compilador. O nome da língua foi "3-bolas" (homenagem a um amigo que tinha Ele está bolas operado)

) programa de montagem 2 A Windows sem uma única macro, tudo foi empurrado para a pilha eo endereço estavam todos relativa. Ele funciona em todos os Windows (sem endereço harcoded). Basicamente, é uma janela simples com alguns botões e etiquetas. Mas a coisa boa é que, a partir do objeto e arquivos executáveis, que extraiu os opcodes e gerou um shellcode dele. Assim eu poderia explorar qualquer tampão em um programa e, literalmente, criar meu próprio aplicativo acima da corrente! Bom para mostrar uma tela em um computador remoto, e o computador remoto irá executar um programa que não existe no seu computador, você enviou literalmente o programa a ser executado no computador remoto.

Claro que isto é muito headcache para nada ... mas vale a pena todos os bytes eu digitei!

Eu escrevi várias peças de código que fazer a modelagem em múltiplas dimensões espaciais (de 3 a tão elevada como cerca de 7 dimensões.) Problemas tornam-se mais difícil quando você trabalhar em algo que você não pode realmente traçar ou até mesmo visualizar.

Mas, realmente, como alguém que passou a maior parte do meu tempo a construção de kits de ferramentas para outros usarem em seu trabalho, eu diria que os programas mais complexos que eu fiz eram realmente caixas de ferramentas, conjuntos de ferramentas feitas para trabalhar com cada outros de uma forma consistente. Porque eles são todos feitos para trabalhar em conjunto, você pode argumentar que dúzia de vários utilitários realmente funcionar como de fato uma única ferramenta. (Claro, qualquer código modular é similar a este respeito.) Aqui também, o que eu fornecidos eram geralmente ferramentas de modelagem, feito para resolver os problemas de gerenciamento de cores.

me pediram essa mesma questão em uma entrevista há algumas semanas (ainda não ouviu falar se eu consegui o emprego).

Para mim, foi várias atribuições na minha primeira aula de programação após as classes básicas de introdução. Foi a primeira vez que um curso de Web Design foi oferecido na minha universidade. Desde que era novo, vários formandos inscreveram e compreendeu cerca de metade da classe. O instrutor foi usado para dar aulas de nível sênior, e já conhecia muitas das pessoas na classe. Basicamente, ele ensinou ao seu nível, em vez de para a outra metade da classe que eram muito inexperiente.

Provavelmente, a tarefa mais difícil foi escrever um navegador só de texto. Eu tive problemas com a análise para as várias marcas e pediu ajuda. O instrutor disse, Bem, se você tivesse os compiladores claro que você poderia apenas escrever um simples. Nesse ponto 'Compiler' era uma caixa preta que fez coisas mágicas antes do ran programa. Eu realmente não sabia o que era, muito menos eu era capaz de escrever um.

A única coisa que tornava difícil foi não ter as ferramentas necessárias para fazer o trabalho, para incluir a compreensão dos resultados que obtive quando eu Googled. (Páginas homem e APIs são grandes, se você já entende o que você está procurando, mas não para ensinar um noob.) Em minhas experiências co-op eu aprendi mais quando eu tive um mentor que disse, se você está preso mais do que um par de horas, me avise para que eu possa levá-lo descolar e se movendo. Muito melhor do que aqueles que não querem ouvir de mim, exceto a cada semana ou assim.

Eu estou trabalhando em Yet Another PHP Framework, que tem sido uma viagem divertida até agora.

Atualmente, estou escrevendo um aplicativo iPhone. É definitivamente o programa mais difícil que eu já escrevi. Não porque a língua é difícil, o código é difícil ou qualquer outro motivo, mas porque tudo no dispositivo tem de ser tão fluente.

Tudo tem que olhar e sentir natural. Desde que eu sou um programador real (com o entendimento nulo de fluência, suavidade ou desenho .. assim parece) o que torna muito difícil para mim. As obras do programa, código sábio, mas interface de usuário sábio eu tenho um tempo muito mais difícil fazer as coisas.

Além disso tópicos chupar; -)

Nada especial, mas uma função que poderia desenhar uma "esfera" com triângulos, com n x n pontos e interpolados os triângulos betweeen duas cores (para que a entrada era o raio, número de subdivisões, color1, color2). Foi difícil, mas muito divertido quando ele trabalhou:)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top