Нет королевской дороги к программному обеспечению
В древние времена Евклиду задавал такие же вопросы, как и ваш, его ученик король Птолемей. Его ответ: «Нет никакой королевской дороги к геометрии».
Вы упомянули, что ваш руководитель смеялся бы, если бы знал, сколько времени вы тратите, пытаясь писать код, как профессиональный разработчик. Другие ответили на ваши вопросы с подробным списком вещей для изучения - от контроля версий до разработки и анализа алгоритмов.
Они не достигают вашей цели:
«Мне нужно потратить время на физику»
Концертный пианист или One Man Band?
Мир движется слишком быстро, чтобы люди баловались. Если вы хотите стать концертным пианистом, не делите свое время на изучение инструментов, чтобы стать группой одного человека.
Моя концепция роли доктора философии в области физики в средних и крупных проектах заключается в том, чтобы руководить идеями по определению системы, быть экспертом по теории, экспертом по предметам при создании сценариев использования и конечным пользователем / судьей в отношении результатов, генерируемых программными артефактами. Работайте в тесном сотрудничестве с лучшими разработчиками программного обеспечения, которые вы можете.
Как мне оценить, хорошо ли моя работа с точки зрения программиста?
Если вы хотите установить высокую планку, начните здесь:
Архитектура программного обеспечения на практике, Лен Басс, Пол Клементс, Рик Казман
Ищите главу «Понимание атрибутов качества». Помимо кода, он учитывает удобство использования, изменяемость, производительность, безопасность, доступность, надежность, тестируемость, поддержку и переносимость (вы не можете нести это, но можете переносить проект с одной платформы на другую). Всем нужны конкретные измеримые цели. Подобные ссылки включают в себя:
http://msdn.microsoft.com/en-us/library/ee658094.aspx
http://www.sei.cmu.edu/reports/95tr021.pdf
Ваши цели против C и C ++
Как и Фортран, это жесткие и старые языки. Положительные показатели для C / C ++ включают в себя:
- Приложение с аппаратным обеспечением, встроенными системами.
- Существующий проект, который вы хотите в качестве отправной точки.
Есть много людей, занимающихся веб-разработкой, визуализацией данных и большими данными. Многие мотивированы, чтобы найти или сделать другие языки. Например, физик сэр Тим Бернерс-Ли добился успеха с HTML (но мало что знает о физике). Оцените свою цель против вашего языка программирования.
Рассмотрите возможность использования Matlab
Matlab имеет отличную базу, специализируется на математике и естественных науках. Имеет инструменты для визуализации данных. Это позволяет ученым и математикам выражать проблемы в области проблемы, а не в области решения. Matlab производит продукты для Parallel Computing Toolbox и Distributed Computing Server.
Я ожидаю, что успех Matlab связан с использованием междисциплинарных команд с людьми, которые являются экспертами в области физики, математики, электроники и приборостроения, операционных систем, языков программирования, разработки программного обеспечения, тестирования программного обеспечения, архитектуры и дизайна программного обеспечения. Аналогия может быть натянутой, но почему бы вам поставить себя в одиночку, начав с молотка, долота и рашпиля, чтобы сделать что-то, когда у вас есть в наличии 3D-принтер? Как может спросить Ньютон, почему бы не встать на чьи-то плечи?