Глупый и очень общий вопрос о программировании?

Добрый день те, кого не испугал заголовок.


Мне 22, я учусь в Германии, здесь же работаю на 2-х работах при университете. Занимаюсь, в основном, роботикой, а это значит, что большую часть времени интересной математикой + относительно простым программированием + когда очень не везет, каким нибудь унылым и жестким кросс-компилированием.


Проблема такая.


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

Недавно решил написать приложение, которое бы мне было нужно самому. И я понял, что во-первых в SDK много чего поменялось и во-вторых, я, как не бьюсь, не могу ни придумать хорошую архитектуру, ни собственно реализовать хоть что нибудь, что бы работало и на что можно было бы смотреть без слез.


И так во всем, что касается программирования чуть более сложного, чем создать пару классов, исключительно, чтобы создать какой-то пользовательский тип, нужный для удобства последующих математических вычислений или заюзать простую API какого нибудь проекта типа OpenCV.


Помогите советом.

Первое — может есть какие хорошие книжки (желательно в свободном доступе), которые ставят мозги на правильное место. Особенно в построении большого приложения с нуля. Потому что в этом я именно этот самый, вышеназванный ноль.
Второе — поделитесь опытом достижения высокого мастерства в программировании.
Третье — не рано ли я паникую.
Четверное — не поздно ли я паникую.


Заранее спасибо.

Может кому покажется вопрос глупым — так это наверное потому, что он таким и есть, но мне бы хотелось услышать хоть пару мнений. Также, я понимаю, что на слишком общий вопрос большая часть ответов будет слишком общими.
  • Вопрос задан
  • 7776 просмотров
Решения вопроса 5
@anitspam
Тут очень подойдёт аналогия с вождением.

1. Большое приложение (хорошее вождение) начинается с маленьких приложений (не очень хорошего вождения).
2. programming-motherfucker.com и русский аналог.
3,4. нет

и будет опыт, который даст понимание, что именно надо изучить по части теории.
Ответ написан
EugeneOZ
@EugeneOZ
Имхо, в Вашем случае нужно начать с «Программист прагматик» и потом прочитать «Совершенный код» (хотя бы первую половину).
Ответ написан
Умение создавать сложные приложения с нуля приходит с опытом. Сперва это опыт создания маленьких приложений. Потом — приложений побольше. Затем комбинация нескольких маленьких приложений в одно. Для прокачивания навыка почитайте книги по проектированию программных систем. «Совершенный код» вам уже посоветовали. В свою очередь хочу посоветовать книгу Эрика Аллена — «Типичные ошибки проектирования».

По второму вопросу — практика, практика и ещё раз практика. Пишите программы, которые вам интересно писать. Показывайте свой код более опытным программистам, просите совета и мнения. И обратите внимание на книгу Мартина Фаулера — «Рефакторинг». Она тоже поможет вам повысить качество вашего кода.

по третьему и четвертому вопросам — ответ «нет».
Ответ написан
akalend
@akalend
программирую
>Первое — может есть какие хорошие книжки (желательно в свободном доступе), которые ставят мозги на правильное место. Особенно в построении большого приложения с нуля. Потому что в этом я именно этот самый, вышеназванный ноль.
По архитектуре гугли автора: Фаулер, на торрентах найдешь djv

>Второе — поделитесь опытом достижения высокого мастерства в программировании.
Это от Бога. Шутка, гений состоит в 99 % труда и 1% генетики. Все приходит с опытом. А опыт со временем.
>Третье — не рано ли я паникую.
не рано, но реши для себя, на сколько глубоко это тебе нужно и копай. Начнешь копать в программировании, упустишь где-то в другом месте… Но, главное, не останавливаться на достигнутом.

Мой отец в детстве говорил мне, что бы я обращал на программирование как на инструмент, а не основную профессию. Он сравнивал программирование с карандашом, который одинаково нужен и художнику и архитектору и ученому. Но, художнику, достаточен только карандаш, чтоб рисовать… А ученому, он необходим, чтоб записывать и выводить новые формулы. Жизнь распорядилась так, что наша наука стала загнивать, а кормить семью как-то надо было, по этому мой «карандаш» стал основным инструментом зарабатывания денег.

>Четверное — не поздно ли я паникую.
Сколько людей — столько и мнений. Программирование нужно инженеру/ученому так же, как умение «вождения автомобиля» простому смертному. Можно без него просуществовать — да. Но, с автомобилем чувствуешь себя — свободнее с передвижением. Возможно тебе не нужно быть «Гонщиком Ф-1» и у тебя другое призвание… Но умение свободно водить в «сложных условиях» может тебе дать некоторые или даже конкретные преимущества.
Ответ написан
niosus
@niosus Автор вопроса
С момента написания этого вопроса прошло достаточно много времени и как результат, мой гитхаб пополнился некоторыми маленькими и не очень проектами и добавилось одно приложение в плей стор, на которое у меня выходит смотреть без слез. потлму, если кто вдруг набредет на этот вопрос и не будет знать что делать, ответ с моей стороны очень просто - просто берите и делайте. Это реально помогает.

Ах да, и книга 'совершенный код' просто обязательна к прочтению, хотя бы частями.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@egorinsk
Говорят, есть книга «Совершенный код», но я ее не читал. Также, говорят, для начала достаточно научиться принципам вроде DRY и KISS, правилному именованию методов и классов и код уже станет неплох.
Ответ написан
@xaoc80
По мимо прочтения рекомендованых выше книг, могу рекомендовать попробовать разобраться самому с исходниками нескольких open source проектов, коих в сети достаточно, например на github. Кроме этого в сети много хороших статей, где решены те или иные задачи проектирования архитектуры приложения и приведены неплохие техники написания программ как на хабре, так и на том же IBM developer works.
Ответ написан
@cdev
Хорошей архитектуры не бывает :)
Бывает работающая в данный момент и не работающая.
Обычно делается первая версия — на ее примере видно что плохо. Это прототип.
Он выбрасывается и пишется новая с нуля с учетом ошибок предыдущей.
Пробуйте — опыт это сумма попыток и ошибок.
Ответ написан
Комментировать
Совет: найдите возможность получать фидбэк на свой код, вплоть до платы за Code Review. Только выбирайте потщательней своего «гуру».
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы