Скільки може зробити один програміст самостійно? [зачинено]


13

Якщо програмні продукти беруть на себе цілі команди людей, скільки може зробити один програміст самостійно? Іншими словами, чи може одна людина написати Photoshop, слово MS тощо ...? І якби вони не змогли, чи буде веб-розробка сферою, де один програміст міг би зробити багато?


2
Я не впевнений, про що тут просять. Якщо у вас є моджо, щоб розробити програмне забезпечення, ви, звичайно, можете його виконати самостійно - в Інтернеті чи ні. Це може зайняти деякий час, адже MZ за один день не був розроблений.
CoolBeans

Загляньте на blitwise.com для роботи з одним розробником.
Майкл К

Продуктивність кодера дуже різниться. Деякі кодери кодують 10х + швидше, ніж інші ...
Дені де Бернарді

2
Якби це була одна будівля розробника, фотошоп та слово ms, вони мали б розмір приблизно 1/100. Я не вважаю це поганим.
JeffO

1
Це залежить. :-)
Річард

Відповіді:


14

Почніть з малого

На даний момент Linux набагато більший, ніж його перші ітерації, але важливим є те, що він вийшов з достатньою кількістю речей, щоб отримати тягу.

Тільки якщо воно того варте

Я маю особисте правило, що великі речі просто варто робити, якщо вони принципово відрізняються від решти. Інакше ви пірнаєте в червоний океан .

Добре почати, але не завжди сталий

Якщо ваше програмне забезпечення достатньо хороше, можливо, ви захочете серйозно поставитися до цього. Візьмемо для прикладу Маркуса "Notch" Перссона, творця Minecraft. IIRC розпочав гру самостійно, і коли гра набрала тяги, він почав шукати співробітників і навіть створив компанію.

Хоча винагорода за те, щоб досягти чогось одного, великі проекти реалізують свій потенціал завдяки співпраці розробників, а не єдиного генія, який переносить мене до моєї наступної точки.

Міф

Ознайомтеся з міфом про програму генія , розмову Бена Коллінза-Суссмана та Брайана Фіцпатріка в Google I / O 2009. Тут ви маєте отримати всі помилкові очікування. Головне, що я хочу тут зробити, - це те, що іноді один розробник отримує кредит на всю справу, тоді як позаду було більше людей.

Це, безумовно, можливо

Ще один приклад, окрім Лінуса Торвальда, - Джон Кармак. Він переніс Вольфенштейна всього за чотири дні, коли EA за два місяці оцінила повну команду.

Адже не кількість коду, його архітектурно-технічні знання дозволяють вам досягати великих речей з меншим кодом, ніж ви очікували.

Враховуючи майстерність та знання (понад середній рівень), ви можете зробити багато роботи, як мало.


7
+1 IMO, Лінус не має лайна на Кармаку. Його речі - це легенда.
Стівен Еверс

1
чий матеріал - це легенда? Лінус або Джон. ви не повернули свій сленг туди
Chani

1
@RYUZAKI: Я думаю, що коментар @ SnOrfus - це ціле питання для англійської stackexchange.
Спайк

1
@RYUZAKI - в коментарі SnOrfus у Джона є легенда.
ocodo

1
Чи отримав Кармак за 2 місяці повну зарплату команди за свою 4-денну роботу, або просто погладити по спині?
Дрю

5

Через характер роботи, яку я виконую, я сам розробив пару досить великих додатків. Так що так, це можливо. Я міг би продовжувати це робити годинами, але зараз у мене мало часу, тому ось деякі плюси і мінуси з особистого досвіду.

Плюси:

  • ти повністю контролюєшся і немає команди, з якою би боротися, тож ти можеш працювати з тим, що вважаєш / знаєш найкращим. Не витрачайте часу на нескінченні дискусії про крихітний маленький аспект коду.
  • у вас є вся архітектура в голові, ви знаєте буквально все про це, підтримка клієнтів - це легкий вітер, оскільки ви самі знаєте всі відповіді
  • ви багато дізнаєтесь про всі аспекти програмування. Інтерфейс користувача низького, середнього, високого рівня, ...

Мінуси:

  • немає команди, з якою би боротися, тому іноді ви приймаєте погані рішення, без того, щоб ніхто вам сказав
  • легко загубитися в ньому, більше не бачачи великої картини. І немає нікого, хто може вам допомогти. (крім SO / SA і подібних:])
  • витрачати багато часу на підтримку клієнтів, яку ви скоріше витратите на програмування

3

Маючи певну відданість та вміння, одна людина може безумовно досягти багато чого. Однак це непросто, недостатньо просто бути хорошим програмістом. Для успішного проекту вам часто доводиться думати про випадки використання, дизайн інтерфейсу користувача, документацію, підтримку та багато іншого. Після того, як все змінюється, а кількість користувачів зростає, це все одноосібно стане все більш нереальним - саме тоді або більше людей потрапляють на проект (за участю громади, наймаючи людей чи іншим чином), або проект гине.


1

Це залежить від програмного забезпечення, яке він / вона намагається розробити, обмеження часу та навичок. Якщо він / вона розробляє просту програму MIS, можливо, він може це зробити за короткий час. Спроба розробити таке програмне забезпечення, яке є таким складним, як Photoshop, MS Word, Blender, Flash і т.д.


1

Все залежить від майстерності, витраченого часу та готовності це зробити. Чим більше знань у вас, тим менше часу знадобиться для досягнення чогось. Ви отримаєте надзвичайно інтимні знання про кодову базу як єдиного розробника, який також може прискорити процес з'ясування / рефакторингу / налагодження.

Я особисто працював над додатком для перенесення з робочого столу на сервер. Я зашифрував серверну програму, настільний додаток і все сам тестував. Я навіть написав інсталятор програми. Я придумав спосіб дозволити перетягування на піктограми системного лотка в Windows і навіть завершив написання нової бібліотеки Java з нуля. Я робив це протягом року, і його ще знаходяться в стадії розробки та тестування.

Весь цей проект став основним випробуванням. Щодня після школи я працював над проектом, а також у вихідні дні. Це настільки масово, як MS Word, Photoshop тощо? Ні. Проект все ще великий і постійно зростає, хоча і багато чого можна досягти.


Подивіться, що мені було цікаво ... це може зайняти більше часу, але оскільки ви знаєте, що робиться у коді, це, можливо, буде простіше налагоджувати. І чудовий досвід навчання.
fender1901

@ fender1901 Програмування добре повинно постійно бути досвідом навчання, тому що день це не той момент, коли ви або все це знаєте, або потрібно знайти більш складне завдання.

1

Зараз я працюю над таким проектом у вільний час (це веб-додаток, а не настільний додаток, але принципи однакові). Ось що я знайшов поки що:

1) Не винаходити колесо . Використовуйте наявні бібліотеки / рамки, а не робити все з нуля. Одне застереження тут: переконайтеся, що ви звертаєте увагу на ліцензії, оскільки вони застосовуються до потрібної моделі розповсюдження / випуску / будь-якої іншої моделі. Деякі ліцензії на копілефт вимагатимуть, щоб ви відкривали код своєї "похідної роботи". Деякі ліцензії дозволяють використовувати лише некомерційне використання. Слідкуйте за бібліотеками / рамками, якими ви користуєтесь, щоб ви могли надати відповідну атрибуцію на екрані "Кредити" / області / будь-якому іншому

2) Працюйте ітераційно . Це пов'язує те, що герцогство стосується слова "Почніть з малого" . Ви набагато більше шансів дотримуватися проекту, якщо зможете побачити результати. Поки ви не зможете побачити щось працююче, будь-який розвиток, який ви робите, є еквівалентом малювання в темряві.

3) Не бійтеся просити відгуків / допомоги на початку . Швидше за все, ти не добрий у всьому. Якщо ви чудово справляєтеся з низьким рівнем кодування, ви, ймовірно, всмоктуєте інтерфейс користувача. Звертається також зворотнє. Ніколи не зашкодить отримати поради від тих, хто кращий за вас у певній області. Багато людей уникають цього, бо переживають за те, щоб хтось вкрав їхню ідею. Не хвилюйтеся з цього приводу - якщо хтось намагається скопіювати вас, це означає, що ви натрапили на щось вартісне. Ідеї ​​дешеві, реалізація є ключовою. Apple не винайшла MP3-плеєр, Microsoft не винайшла операційну систему, Facebook не винайшов соціальну мережу, а Google не винайшов пошукову систему. Що вони зробили, це зробило його переконливим для користувачів (а не смоктати).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.