2009-04-18 19 views
17

Chỉ cần tò mò, tôi tự hỏi những gì tất cả các bạn có kinh nghiệm lập trình hoặc người mới (như tôi) ra có đã làm. Vậy chương trình phức tạp nhất HARDEST bạn đã viết là gì?Chương trình HARDEST bạn đã viết là gì?

+0

câu hỏi .. và nhìn bên dưới có một xu hướng tuyệt vời đang nổi lên. Thanh niên vs Kinh nghiệm .. :) –

+0

Đang cố gắng để hack các hệ thống thích ứng – om471987

Trả lời

33

Ứng dụng tôi đã tạo trong 2005/6 cho phép mọi người tạo ra hình ảnh của ngôi nhà/xe hơi của họ, vv được tô màu khác nhau. Bây giờ chắc chắn có thể được thực hiện trong Photoshop, nhưng có rất nhiều, nhiều hơn nữa cho nó.

Viresol output preview

+0

Và tại sao nó lại khó như vậy? –

+4

Nó chỉ xảy ra là khó nhất tôi đã viết cho đến nay :) Không phải là nó quá khó, nhưng về cơ bản tái tạo rất nhiều khả năng của Photoshop đã thực sự khó khăn cho tôi. Tôi là nhà phát triển duy nhất trong nhóm đó và tôi đã 19-20 tuổi. Lớp, cây đũa thần, mô hình màu, bóng, họa tiết, tối ưu hóa cho hiệu suất và những gì bạn thấy chỉ là một trong 6 mô-đun của sản phẩm cuối cùng. Các mô-đun khác sẽ cung cấp cho bạn các công thức cho các sắc thái màu được sử dụng trong dự án, hoặc tìm kiếm những màu gần nhất –

+4

V.big job for a one man show ... Tôi ấn tượng với tư cách là một lập trình viên cơ sở bản thân mình – Aaron

19

một trình biên dịch

+3

Rất thích nghe thêm về nó ... –

+0

Ya cũng rất khó cho tôi. –

7

Một ứng dụng biên dịch và chạy trên cả hai - Windows và Mac với một codebase.

+4

trở lại trong thập niên 90 - không có khung phổ biến như WxWidgets – jim

+0

Gotta yêu wxWidgets. –

1

Tôi đang làm việc trên Khung công tác PHP khác, đã là một hành trình thú vị từ trước tới nay.

4

Tự động hóa với COM, với việc thực thi trên Lưới

16

Điều tôi không muốn hoặc không vui, viết.

10

Có lần tôi đã phải viết một thuật toán nén được sử dụng BWT (Burrows Wheeler Transform) và có một bước trong thuật toán, nơi bạn có để tạo ra một ma trận HUGE. Tôi đã có vấn đề với vấn đề bộ nhớ và tốc độ vì ma trận là rất lớn. Hãy đến để tìm hiểu, có một thuật toán thực sự đơn giản mà tôi có thể đã sử dụng và tránh ma trận hoàn toàn.

Tôi cũng phải viết một hệ điều hành đơn giản trong ASM và điều đó khá phức tạp.

+0

Tôi đang tham gia vấn đề ngay bây giờ, bạn có thể cho tôi biết làm thế nào để đi về điều này mà không cần tạo ra một ma trận khổng lồ? – SNyamathi

+0

Đang cố gắng ghi nhớ ... –

+0

Kiểm tra phần 3.3.2 để biết cách giải thích hơi khó hiểu .. Tôi đã tìm kiếm một điều đơn giản hơn: http://www.stanford.edu/class/cs262/notes/lecture5.pdf –

8

Thư viện để giải các phương trình vi phân một phần phi tuyến tính. Chúng tôi sử dụng nó trong một nhóm vật lý lý thuyết để giải thích sự thích nghi phi tuyến tính của phương trình Schrodinger xảy ra trong môi trường nhiệt độ rất đặc biệt thấp.

Thật dễ dàng để có được một người giải quyết đơn giản làm việc nhưng khái quát nó làm cho nó nhanh chóng là một thách thức.

Đó là hiện mã nguồn mở trên google mã: fdtl

+4

+1 cho bất cứ điều gì nó là –

6

Bất cứ điều gì để làm với mã hóa và bảo mật là luôn luôn khó khăn hơn 1000% so với nó xuất hiện!

+0

Hey tôi có thể tìm thấy thông tin về chủ đề này liên quan đến lập trình? – Aaron

+1

Đó là bởi vì luôn có những người thông minh hơn bạn ngoài kia, và nếu họ muốn phản đối công việc của bạn thì bạn phải chiến thắng. – Kzqai

4

Có thể là cà vạt: bộ giải quyết vấn đề cho các bộ sử dụng satisfiability modulo theories và trình lên lịch quy trình hợp tác trong C/ASM chạy trên hệ điều hành UNIX. Việc đầu tiên chỉ đơn giản là khó khăn - nó chưa bao giờ được thực hiện trước khi sử dụng SMT và dịch các bài báo lý thuyết cao thành một thực hiện thực tế trong một bối cảnh khác nhau là khó khăn. Việc thứ hai liên quan đến việc đào đến các cấu trúc dữ liệu OS để hiểu chúng, sau đó thay thế các bit và các phần để nhảy qua lại giữa các hàm trong chương trình như thể chúng là các luồng được lập lịch riêng biệt.

+0

Bạn có thể tham khảo các tài liệu, tài liệu liên quan đã đề cập không? Nghe có vẻ thú vị :). –

+0

Có thể nguồn của chương trình ở đâu đó có sẵn? –

+1

@Grzegorz - nó không thành công lắm. Bạn có thể muốn kiểm tra công việc của Cesare Tinelli (http://www.cs.uiowa.edu/~tinelli/index.html). Có khả năng anh ấy đã có một sinh viên tốt nghiệp nhìn vào làm đúng. – tvanfosson

2

Tôi đã viết một số đoạn mã làm mẫu trong nhiều không gian kích thước (từ 3 đến cao khoảng 7 kích thước.) Các vấn đề trở nên khó khăn hơn khi bạn làm việc trên thứ gì đó mà bạn thực sự không thể vẽ hoặc thậm chí hình dung được. Nhưng thực sự, là người đã dành phần lớn thời gian xây dựng bộ công cụ của tôi cho người khác để sử dụng trong công việc của họ, tôi cho rằng các chương trình phức tạp nhất mà tôi đã thực hiện thực sự là hộp công cụ, bộ công cụ được thực hiện để làm việc với lẫn nhau một cách nhất quán.Bởi vì tất cả chúng đều được thực hiện để làm việc cùng nhau, bạn có thể tranh luận rằng vài chục tiện ích thực sự hoạt động như trên thực tế là một công cụ duy nhất. (Tất nhiên, bất kỳ mã mô-đun nào cũng tương tự về khía cạnh này.) Ở đây, những gì tôi cung cấp thường là các công cụ tạo mô hình, được thực hiện để giải quyết các vấn đề quản lý màu sắc.

4

Lớp video trực tuyến độc quyền sử dụng ffmpeg api - ở cấp xử lý gói và hiển thị khung vào đúng thời điểm, đồng bộ hóa với âm thanh. Không khó như một số người khác được liệt kê, nhưng nó đá mông của tôi trong nhiều tuần!

+0

+1 vì tôi đã chiến đấu với nhau! – chrism1

0

Không có gì đặc biệt, nhưng có thể vẽ một hình cầu có hình tam giác, với các điểm n x n và nội suy tam giác betweeen hai màu (do đó đầu vào là bán kính, số subdivisons, color1, color2). Thật khó nhưng rất vui khi nó hoạt động :)

5

Trình điều khiển modem có mục đích chung cho một dịch vụ trực tuyến không ổn định. Nó cũng phải hỗ trợ 30 loại modem (trước các modem Hayes). Tất cả chúng đều có những đặc điểm thời gian khác nhau.

Nó phải được viết trong cả hai 8086 và Z80 assembler cho các phiên bản CP/M và DOS của các sản phẩm của chúng tôi. Tôi vẫn còn gặp ác mộng về một modem half-duplex nhất định ...

2

Tôi đã được hỏi câu hỏi này trong một cuộc phỏng vấn cách đây vài tuần (vẫn chưa biết liệu tôi có nhận được công việc) hay không.

Đối với tôi đó là một số bài tập trong lớp lập trình đầu tiên của tôi sau các lớp giới thiệu cơ bản. Đây là lần đầu tiên một khóa học về Thiết kế web được cung cấp tại trường đại học của tôi. Kể từ khi nó là mới, một số người cao niên tốt nghiệp đã đăng ký và bao gồm khoảng một nửa lớp. Người hướng dẫn được sử dụng để dạy các lớp cấp cao, và đã biết nhiều người trong lớp. Về cơ bản, ông đã dạy nó ở cấp độ của họ, chứ không phải cho nửa kia của lớp học đã được khá thiếu kinh nghiệm.

Có lẽ nhiệm vụ khó khăn nhất là viết một trình duyệt chỉ có văn bản. Tôi đã gặp sự cố khi phân tích cú pháp cho các thẻ khác nhau và yêu cầu trợ giúp. Người hướng dẫn nói, Vâng, nếu bạn đã có khóa học Compilers bạn chỉ có thể viết một đơn giản. Tại thời điểm đó 'Compiler' là một hộp đen đã làm những điều kỳ diệu trước khi chương trình chạy. Tôi thực sự không biết nó là gì, ít hơn nhiều là tôi có thể viết một cái.

Điều khiến việc gặp khó khăn là không có các công cụ cần thiết để thực hiện công việc, bao gồm hiểu các kết quả tôi nhận được khi tôi Googled. (Các trang người dùng và các API rất tuyệt vời nếu bạn đã hiểu những gì bạn đang tìm kiếm, nhưng không phải để dạy một noob.) Trong những kinh nghiệm hợp tác của tôi, tôi đã học được nhiều nhất khi tôi có một người cố vấn nói, Nếu bạn bị mắc kẹt hơn một vài giờ, hãy cho tôi biết để tôi có thể giúp bạn cởi mở và di chuyển. Tốt hơn nhiều so với những người không muốn nghe từ tôi ngoại trừ mỗi tuần hoặc lâu hơn.

8

Tôi từng làm phần mềm xử lý video đa camera thời gian thực, phát hiện chuyển động và phép thuật mô phỏng tích lũy, tất cả trên bộ xử lý 33MHz và RAM 640Mb. Phần khó khăn đã làm cho việc này diễn ra nhanh chóng; một lượng khổng lồ của băm, bit-shifting, gian lận, chửi thề và đêm khuya với pizza và ephiphanies trong khoảng 4 năm. Ồ, và tôi cũng đã làm một phiên bản với màu sắc. Ồ, và một mô-đun có thể thấy sự khác biệt giữa hơi nước và khói trắng trong các phòng lớn (như lò phản ứng hạt nhân). Hah, bạn cứ thử đi! Bạn sẽ không tìm thấy ví dụ về điều đó trong bất kỳ cuốn sách văn bản nào. :)

+0

nội dung thú vị. âm thanh chắc chắn khó. –

1

Tôi hiện đang viết một ứng dụng iPhone. Đó chắc chắn là chương trình khó nhất mà tôi từng viết. Không phải vì ngôn ngữ là khó khăn, mã là khó khăn hoặc bất kỳ lý do nào khác, nhưng bởi vì tất cả mọi thứ trên thiết bị phải rất thông thạo.

Mọi thứ phải nhìn và cảm nhận tự nhiên. Vì tôi là một lập trình viên thực sự (với sự hiểu biết nil của sự trôi chảy, êm ái hoặc thiết kế .. vì vậy nó xuất hiện) điều này làm cho nó thực sự khó khăn đối với tôi.Chương trình hoạt động, mã khôn ngoan, nhưng giao diện người dùng khôn ngoan tôi có một thời gian khó khăn hơn nhiều để hoàn thành công việc.

Cũng đề hút ;-)

3

Một vector graphics library tôi bắt đầu viết vào năm 1998 đã làm cho sử dụng rộng rãi phân thứ bậc để cung cấp nhiều hoạt động trong thời gian O (log n) và tesselations anisotropic memoized trong danh sách hiển thị OpenGL để duy trì độ khung hình cao giá trên cảnh động. Đặc biệt, nó có thể phóng to vào đồ họa vector phức tạp trôi chảy bởi vì nó phân hủy chúng thành cây và tiêu hủy chúng một cách hiệu quả. Trong nhiều năm, nó là cho đến nay người tiêu dùng đồ họa vector cấp cao nhất renderer trên thế giới.

Phiên bản gốc là 200kLOC của C++ nhưng các vấn đề lý thuyết hình thành nền tảng thiết kế của nó đã khiến tôi mất 2 năm để giải quyết.

3

2 điều:

1) Trình biên dịch. Tên của ngôn ngữ là "3 quả bóng" (tưởng nhớ đến một người bạn đã vận hành bóng)

2) Chương trình lắp ráp Windows không có macro đơn lẻ, mọi thứ được đẩy vào ngăn xếp và địa chỉ đều tương đối. Nó hoạt động trong tất cả Windows (không có địa chỉ bị bẻ khóa). Về cơ bản nó là một cửa sổ đơn giản với một số nút & nhãn. Nhưng điều tốt đẹp là, từ các đối tượng và các tập tin thực thi, tôi trích xuất các opcodes và tạo ra một shellcode từ nó. Vì vậy, tôi có thể khai thác bất kỳ bộ đệm trên một chương trình và nghĩa đen tạo ra ứng dụng của riêng tôi trên một chạy! Rất vui khi hiển thị một màn hình trên một máy tính từ xa, và máy tính từ xa sẽ thực thi một chương trình không tồn tại trên máy tính của mình, bạn đã gửi chương trình này đến máy tính từ xa.

Tất nhiên đây là quá nhiều headcache cho không có gì ... nhưng nó có giá trị tất cả các byte tôi đã gõ!

+2

3 quả bóng ... ahahaha – Skidgirl

+1

quả bóng thứ 3 xứng đáng được "cộng một" chắc chắn – fantaghirocco

Các vấn đề liên quan