Question

Juste curieux, je me demande ce que vous avez vécu tous les programmeurs ou les débutants (comme moi) là-bas ont fait. Alors, quel est le programme le plus compliqué HARDEST que vous avez écrit?

Était-ce utile?

La solution

L'application que je crée en 2005/6 permet aux gens de créer leurs maisons de visualisations / voitures etc peintes dans des couleurs différentes. Maintenant, cela peut certainement être fait dans Photoshop, mais il y avait beaucoup, beaucoup plus à lui.

Aperçu de la sortie Viresol

Autres conseils

un compilateur

Celui que je ne voulais pas, ou vous amuser, écrire.

Une fois, je devais écrire un algorithme de compression qui utilise BWT (Burrows Wheeler Transform) et il y a une étape dans l'algorithme où vous devez créer une matrice énorme. J'ai eu des problèmes avec des problèmes de mémoire et de la vitesse parce que la matrice était si énorme. Venez découvrir, il existe un algorithme très simple que je aurais pu utiliser et éviter la matrice tout à fait.

Je devais aussi écrire un système d'exploitation simple en ASM et qui était assez délicat.

Une fois, je fait en temps réel logiciel de traitement vidéo multi-caméra, faire la détection de mouvement et de la magie histographic cumulatif, tous les processeurs de 33MHz et 640Mo de RAM. Le plus dur était fait ce aller vite; de grandes quantités de hachage, les bits de décalage, la tricherie, jurant et tard le soir avec une pizza et ephiphanies pendant environ 4 ans. Oh, et je l'ai fait une version traitant de la couleur. Oh, et un module qui pourrait voir la différence entre la vapeur et de la fumée blanche dans de grandes salles (comme les réacteurs nucléaires, pour ainsi dire). Hah, vous essayez juste! Vous ne trouverez pas des exemples de tels dans tout livre de texte. :)

Une bibliothèque pour résoudre les équations partielles Differenential non linéaires. Nous avons utilisé dans un groupe de physique théorique pour résoudre une adaptation non linéaire de l'équation de Schrôdinger qui se produit dans des environnements à basse température très spéciaux.

Il est relativement facile d'obtenir un solveur simple, de travail, mais généralisant et ce qui en fait rapide a été un défi.

Il est actuellement open source sur le code google: FDTL

Une application qui a compilé et a couru sur les deux -. Windows et mac avec une base de code

Rien à voir avec le chiffrement et la sécurité est toujours 1000% plus difficile qu'il n'y paraît!

Un pilote général modem fin pour un service en ligne squameuse. Il a également pour soutenir les 30 types de modem (avant modems Hayes). Ils avaient tous des caractéristiques différentes de synchronisation.

Il devait être écrit dans les deux assembleur 8086 et Z80 pour les versions de CP / M et DOS de nos produits. Je fais encore des cauchemars d'un certain modem semi-duplex ...

Automatisation avec COM, avec une exécution sur la grille

Une classe vidéo en continu propriétaire en utilisant l'API ffmpeg - au niveau de la manipulation des paquets et l'affichage des trames au bon moment, la synchronisation avec l'audio. Pas aussi dur que certains des autres dans la liste, mais il a lancé mes fesses pendant plusieurs semaines!

Probablement un lien: un solveur de problème de décision pour les jeux en utilisant satisfiability modulo théories et un processus de coopération programmateur en C / ASM qui reçoit une partie supérieure d'un système d'exploitation UNIX. Le premier était tout simplement difficile - il n'a jamais été fait avant d'utiliser SMT et la traduction du document hautement théorique dans une mise en œuvre effective dans un contexte différent a été difficile. La seconde implique creuser pour des structures de données OS pour les comprendre, en remplaçant ensuite des morceaux pour aller et venir entre les fonctions dans le programme comme si elles étaient séparément fils prévus.

un débogueur

bibliothèque de graphiques vectoriels je commencé à écrire en 1998 qui a fait un large usage de subdivision hiérarchique pour fournir de nombreuses opérations en O (log n) et pavages anisotropes memoized dans les listes d'affichage OpenGL pour maintenir une cadence élevée sur les scènes dynamiques. En particulier, il pourrait zoomer dans des graphiques vectoriels complexes de façon fluide, car il les décompose en arbres et les cueilli efficacement. Pendant de nombreuses années, il était de loin le plus rapide des graphiques vectoriels niveau de consommation dans le monde renderer.

La version originale a été 200kLOC de C ++, mais les problèmes théoriques qui formaient la base de sa conception m'a pris 2 ans pour résoudre.

2 choses:

1) un compilateur. Le nom de la langue était « 3 boules » (hommage à un ami qui avait des balles qu'il fonctionne)

2) Un programme de montage Windows sans une seule macro, tout a été poussé à la pile et l'adresse étaient tous relative. Il fonctionne dans toutes les fenêtres (pas d'adresse harcoded). Fondamentalement, il est une simple fenêtre avec des boutons et des étiquettes. Mais la bonne chose est que, de l'objet et les fichiers exécutables, j'extrait les opcodes et Generated un shellcode de celui-ci. Je pourrais donc exploiter tout tampon sur un programme et créer littéralement ma propre application au-dessus de la course un! Enchanté de montrer un écran sur un ordinateur distant et l'ordinateur distant exécutera un programme qui n'existe pas sur son ordinateur, vous literaly envoyé le programme à exécuter à l'ordinateur distant.

Bien sûr, cela est trop headcache pour rien ... mais il vaut tous les octets que je tapé!

J'ai écrit plusieurs morceaux de code qui font la modélisation en plusieurs dimensions spatiales (de 3 à atteindre environ 7 dimensions.) Les problèmes deviennent plus difficiles lorsque vous travaillez sur quelque chose que vous ne pouvez pas réellement tracer ou même visualiser.

Mais vraiment, comme celui qui a passé la plupart de mes boîtes à outils de construction de temps pour les autres à utiliser dans leur travail, je dirais que les programmes les plus complexes que je l'ai fait étaient en fait des boîtes à outils, ensembles d'outils conçus pour fonctionner avec chaque autre de manière cohérente. Parce qu'ils sont tous faits pour travailler ensemble, vous pouvez faire valoir que plusieurs services publics douzaine fonctionnent réellement comme en fait un seul outil. (Bien sûr, tout code modulaire est similaire à cet égard.) Ici aussi, ce que j'ai fourni des outils de modélisation ont été en général, fait pour résoudre les problèmes de gestion des couleurs.

On m'a demandé cette question très dans une interview il y a quelques semaines (ai toujours pas entendu si je suis arrivé au travail).

Pour moi, il a été plusieurs missions dans ma première classe de programmation après les cours d'introduction de base. Ce fut la première fois un cours en design Web a été offert à mon université. Comme il était nouveau, plusieurs aînés diplômés ont signé et représentaient environ la moitié de la classe. L'instructeur a été utilisé pour l'enseignement des classes de niveau supérieur, et connaissait déjà beaucoup de ceux de la classe. En fait, il a enseigné à leur niveau, plutôt que pour l'autre moitié de la classe qui étaient assez inexpérimentés.

Probablement la tâche la plus difficile a été d'écrire un navigateur texte uniquement. J'ai eu des problèmes avec l'analyse syntaxique pour les différentes variables et a demandé de l'aide. L'instructeur a dit, Eh bien, si vous aviez le Compilateurs Bien sûr, vous pouvez simplement écrire un simple. À ce moment « compilateur » était une boîte noire qui a fait des choses magiques avant que le programme a couru. Je ne savais pas vraiment ce qu'il était, beaucoup moins ai-je pu écrire un.

La seule chose qui a rendu difficile a été de ne pas avoir les outils nécessaires pour faire le travail, afin d'inclure la compréhension des résultats que j'ai eu quand je googlé. (Pages Man et les API sont très bien si vous comprenez déjà ce que vous cherchez, mais pas pour l'enseignement un noob.) Dans mes co-op expériences que je l'ai appris le plus quand j'ai eu un mentor qui a dit, si vous êtes coincé plus de quelques heures, laissez-moi savoir si je peux vous décoller et se déplaçant le long. Beaucoup mieux que ceux qui ne veulent pas entendre parler de moi, sauf chaque semaine.

Je travaille sur un autre cadre PHP, qui a été un voyage amusant jusqu'à présent.

Je suis en train d'écrire une application iPhone. Il est très certainement le plus dur programme que j'ai jamais écrit. Non pas parce que la langue est difficile, le code est difficile ou toute autre raison, mais parce que tout le dispositif doit être aussi fluide.

Tout doit regarder et se sentir naturel. Depuis que je suis un vrai programmeur (avec la compréhension de la fluidité nulle, la douceur ou la conception .. Il semble donc) ce qui le rend vraiment difficile pour moi. Le programme fonctionne, le code sage, mais l'interface utilisateur sage-je avoir un temps beaucoup plus difficile faire avancer les choses.

enfile également sucer; -)

Rien de spécial, mais une fonction qui pourrait tracer une « sphère » avec des triangles, avec des points n x n et interpoler les triangles betweeen deux couleurs (si l'entrée est le rayon, le nombre de subdivisons, color1, color2). Il était difficile, mais très amusant quand il a travaillé:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top