Spark_Man
@Spark_Man
Начинающий разработчик

Как стать хорошим программистом?

Здравствуйте. Хочу узнать мнение опытных специалистов по следующему вопросу. На данный момент я являюсь учеником 10 класса. Около полугода назад начал активно изучать java на ряду с c# . Для меня это очень интересно, увлекательно и то, с чем я хочу связать будущую профессию. С недавнего времени подключил решение задач по программирование
acm timus ru ( не реклама ) и участие в соревнованиях codeforces . Я думаю, что это хоть и не связано напрямую с программированием, а больше развивает алгоритмическое мышление , принесёт огромную пользу. Но вот проблема, у меня частенько возникают трудности с решением этих задач . Если на codeforces я решу 1-2 задачи в соревновании - это большая победа для меня, но я , к сожалению, трачу на эти пару задач почти два часа всего времени соревнований. Направьте меня, пожалуйста на путь верный ) Подскажите каким образом продолжить работу с программированием и стать более результативным в плане решений , может стоит прочесть какие-нибудь книги по алгоритмам ?
  • Вопрос задан
  • 2054 просмотра
Решения вопроса 5
TexxTyRe
@TexxTyRe
Software Developer
Большая часть аудитории Тостера не способна решить задачи на codeforces (я в их числе), но ей не мешает работать и заниматься тем, что нравится.
Ответ написан
longclaps
@longclaps
Посмотри на codeforces профили разных участников, и ты увидишь среди них тех, кто добился значительного прогресса за несколько лет.
Погугли по тамошнему форуму - никто особенно не хвалит какие-либо учебники.
Так-что - тренировки, разбор задач, участие в соревнованиях.
Ответ написан
zagayevskiy
@zagayevskiy
Android developer at Yandex
На самом деле, решение codeforces это довольно специфичный навык, который можно набить, долго и много их решая, и который не особо коррелирует с тем, хороший ли ты программист. Это, конечно, моё имхо, Павел Дуров и в контакт, и в телеграм набирал олимпиадников. Это не везде так.
Совет - учись хорошо, математика, физика, программирование. Не распыляйся пока на множество языков. Можешь почитать Кормена, Вирта. Чистый код, Совершенный код. Будет скучно - забей и пока не парься.
Поступай в хороший ВУЗ. Учись. На предпоследнем-последнем курсе работать начинай.
Ответ написан
TimeCoder
@TimeCoder
1. Практика. Делать какие-то проекты для себя (или знакомых), не абстрактные, которые реально можно использовать, типа менеджера заметок (на замену дурацкому EverNote), боты для мессенджеров (например, автоответчик), программа для сортировки фотографий, или для фотоэффектов, легкий и удобный звуковой редактор, простейшие игры (если на мобилку, то даже продавать можно). Это я прямо не задумываясь написал, первое, что в голову пришло. Мы живем в мире жаждущем автоматизации. Есть миллионы вещей, которые делать неудобно, и соответствующая программа сделает жизнь чуточку лучше. Главное этим загореться. Когда есть вдохновляющая идея - вы будете писать код (иногда ночами), искать в инете как сделать ту или иную фичу, прокачиваться в целом с архитектурой приложений, алгоритмами, структурами данных. Главное, чтобы с этой практикой понемногу рос ваш уровень (т.е. надо читать, смотреть, спрашивать), чтобы код улучшался. А то есть люди, которые годами пишут ужасный код, и ничему не учатся. Учите стек технологий (если C# - то уметь работать с asp.net, WPF, Entity Framework и пр.), фреймворки, самые основные паттерны и принципы (SOLID). Но и задачки забрасывать не стоит, конечно.

2. Как уже отметили - язык (англ.). Поверьте, это открывает огромное количество дверей. Даже средний уровень (способность более-менее свободно общаться) даст вам возможность работать удаленно, с доходом намного выше того, что вы сможете найти в России. Или поработать в других странах. В общем, весь мир открывается (могу в личных сообщениях подробнее рассказать о своем опыте). Тем более, что язык быстро не учится. Смотрите сериалы или фильмы на англ. с субтитрами, читайте статьи.
Ответ написан
@MaxLich
java developer
Если интересна джава, то есть пару неплохих простеньких книг по ней - это Head First Java и книга Якова Файна. Обе довольно простые, с картинками. Для тебя будет нормально. По алгоритмам тоже есть какие-то книги, но не знаю, насколько сильно туда надо углубляться. Всё это опирается на математику, поэтому её нужно знать хорошо (да и для поступления в вуз и учёбы в вузе она понадобится).
Также, как здесь написали, нужно прокачивать английский, и причём до очень хорошего уровня. Я сам довольно хорошо знал английский в школе (может быть, благодаря учителю в том числе). Но после школы как-то его немного забросил, и теперь сожалею об этом. Теперь приходится его усиленно учить, и навёрстывать упущенное. Английский надо знать на таком уровне, чтобы можно было спокойно читать английские тексты, писать на английском, плюс может быть общаться (это уже не везде надо). Так что английским я советую заниматься постоянно и интенсивно (чтобы через какое-то время выйти на уровень чтения книг в оригинале - на английском, плюс общения на инглише в чатах и мессенджерах).
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Трата времени эти задачки. Лучше языки учите.
Со знанием английского уже будете лучше 90% разработчиков в РФ.
Ответ написан
Я бы посоветовал сразу определиться с прикладными областями, которые интересны. И если они требуют специальных знаний, то начать прокачивать и их.
Ответ написан
tema_sun
@tema_sun
10000 часов.
Дружище, полгода - это совсем мало. Занимайся дальше.
Ответ написан
@potan
Функциональный программист
Стоит попрактиковаться в "экзотических" языках, основанных на разных парадигмах - Haskell, Prolog, APL, Coq, Rust. Это дает новые подходы к задачам, которае потом можно будет использовать и в традиционных языках.
Ответ написан
Ваш ответ на вопрос

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

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