Можно ли стать хорошим программистом без знания математики и алгоритмов?

      Комментарии к записи Можно ли стать хорошим программистом без знания математики и алгоритмов? отключены

Возможно ли стать хорошим программистом без знания математики и методов? Данный вопрос обсудили пользователи сайта Quora. А KV.by решили собрать для собственных читателей самые занимательные ответы.

Можно ли стать хорошим программистом без знания математики и алгоритмов?

Джиакомбо Сорби, программист-самоучка

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

Это не тот случай, в то время, когда вы, к примеру, желаете стать классным экспертом по латинскому языку (не в обиду будет сообщено тем людям, кто получает себе на судьбу латинским языком), и в какой-то момент вы достигаете большого уровня мастерства в собственном предмете и имеете возможность сообщить себе «я наконец-то это сделал!».

IT-сфера начинается с поразительной скоростью, и, если вы сначала ограничиваете себя, то в долговременной возможности это обойдется вам дороже.

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

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

Попытайтесь кодить, соревнуясь с другими. Так вы сможете не только усвоить базы программирования, но и, в полной мере быть может, развлечетесь. Я полагаю, что у меня, например, были хорошие знания в математике, но довольно много занимательного и нового я определил в таких проектах, как Project Euler (внимание: данный проект не для новичков) либо CodeWars ( более дружелюбное по отношению к нубам сообщество).

Вестон Бикрофт, эксперт в сфере ПО, математики, философии, когнитивной науки

В сфере IT, как и в каждый, существует правило, в соответствии с которому практика и теория связаны между собой, то есть, теория приводит к желанию применять ее на практике, практика закрепляет теорию, и без того по кругу. Я бы дал совет перед проектом убедиться, что вы владеете всей нужной теорией для работы над ним. С практической точки зрения, теория весьма окажет помощь вам на протяжении работы, исходя из этого я мало углублюсь в эту тему.

Первое: методы. Не переживайте очень сильно на их счет. Существует достаточно теоретического материала касательно данной темы, как обрисовывающего их природу, так и затрагивающего то, сколько ресурсов пригодится для исполнения того либо иного метода. В случае, если вас что-то из этого заинтересует, то, само собой разумеется, ознакомьтесь с этим. Теория вряд ли очень сильно повлияет на ваши опытные качества как программиста. Что вправду вам понадобится касательно методов, так это практика. Легко продолжайте их писать, следить за тем, что из написанного вами трудится, а что нет, смотрите, что пишут другие люди, делайте выводы, снова пишите сами и без того потом.

Второе: математика. по поводу этого сказать сложнее, в силу того, что термин «математика» может относиться ко многим вещам. Я не пологаю, что какие-то определенные знания в математике смогут очень сильно оказать влияние на ваши способности в качестве программиста. На мой взор, тут имеется лишь одно исключение: теория языков программирования (Programming language theory).

Узкий момент касательно математики содержится в том, что, с одной стороны, у вас нет необходимости в знаниях касательно определенных областей этого предмета (не считая теории языков программирования), а иначе, вам весьма нужно четкое познание характера данной науки и того, как мыслят математики. Потому что программирование – это и имеется математика!

Его «природа» берет собственные корни в лингвистике и математике. Исходя из этого, если вы желаете взять теоретическую подпитку, то я бы на вашем месте постарался достигнуть максимально четкого понимания того, что происходит на протяжении того, как вы программируете. Попытки достигнуть этого понимания смогут занять годы – в полной мере быть может, что вы станете заняты этим в течение всей вашей карьеры. Возвращайтесь к этому вопросу тогда, в то время, когда сможете либо в то время, когда станете ощущать в этом необходимость, но ни при каких обстоятельствах не разрешайте собственному неведению не разрешить вам программировать.

Я бы советовал следующие первые шаги в теории программирования: определите мало о том, как компьютерная техника делает программы, после этого изучите базы теории компиляторов. Продолжительное время я вычислял компиляторы только дополнительными инструментами, каковые нам только приходилось применять, но в действительности, познание их работы очень принципиально важно для неспециализированного понимания того, как функционируют сами программы. Если вы удачно усвоите базисные знания, то они станут картой, которая разрешит с одного взора на новый объект осознать, что происходит около вас.

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

на данный момент Де Лима Арканьё

Нет. Дабы растолковать собственную позицию, я предположу, что у вас совсем нет опыта в программировании, и для объяснения постараюсь применять аналогию.

Скажем, вы со своим ребенком желаете выстроить маленький игрушечный домик. Вы берёте конструктор Лего и вдвоем строите из кирпичиков что-то, что по завершению работы смотрелось бы как домик. Вы, как и ваш ребенок, радостны. Некое время игрушечный домик стоит в сохранности и целости, поскольку он выстроен из легких и прочных кирпичиков.

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

Программирование без хорошего знания методов и математики похоже на постройку вот для того чтобы вот дома из конструктора. Со временем вы имеете возможность набить руку в этом. Получая все больше опыта, вы, возможно, кроме того начнете подмечать, что определенные соединения подробностей смогут вести к отличных показателей. Не обращая внимания на все это, вы вряд ли сможете заявить что-то наподобие «эта конструкция может выдержать N кг» либо «данный дом достаточно надёжен, дабы в нем жить».

Хуже того, совместно со сложностью проекта будет возрастать и отличие в это же время, в каких случаях возможно применять любой отдельный подход. В полной мере быть может, что строительство маленькой будки по разработке, схожей со постройкой из лего-подробностей, еще может сработать, но маловероятно, что громадный мост, выстроенный по той же технологии, будет держаться. Совершенно верно кроме этого и в программировании: более простые задания, такие как, к примеру, создание маленького сайта, будут в полной мере по силам команде программистов, не очень сильно разбирающихся в алгоритмах и математике, в то время, как работа с этими гигантами, как Amazon либо Гугл, вряд ли будет вероятна.

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

В конечном счете, на данный момент я могу написать код за намного меньшее время. Помимо этого, на данный момент я могу написать код для таких заданий, о которых понятия не имел раньше. Я кроме этого могу проанализировать код, дабы четко осознавать, как он будет выполняться. Другими словами, на данный момент я во многом разбираюсь намного лучше, чем это было раньше.

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

Мальком Теас, обучался программированию

Программирование – это не просто написание кода, это правильное познание того, какой поэтому код писать. Если вы не желаете изучать методы и математику, то ваша карьера постоянно будет ограничена.

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

Барри Роунтри, эксперт в области информатики

Знание методов имеет мало неспециализированного с навыками программирования. Как сообщил кто-то из великих: В то время, когда сомневаешься, применяй неотёсанную силу. Давайте разберемся, что же это значит.

Хороший программист знает, как выполнить метод сортировки на языке Python. Хороший программист знает, что кто-то умнее его уже ввел сортировку в данный язык, и верит, что готовая сортировка будет трудиться достаточно отлично как правило.

Хороший программист пробует выбрать наилучший метод с позиций производительности. Хороший программист выбирает несложный подходящий в данной ситуации метод и оптимизирует код позднее в том случае, если производительность есть основной целью (что далеко не всегда так), в случае, если изменение метода значительно повысит неспециализированную производительность (что редко случается), в случае, если улучшение производительности оправдывает те средства, каковые будут израсходованы на внесение трансформаций (какое количество долларов стоит 5% улучшение неспециализированной производительности?).

Хороший программист знает, что он израсходует 98 дней в году на отладку и 2 дня в году на оптимизацию производительности. Хороший программист поменяет это соотношение в сторону оптимизации, выбирая более простые методы, каковые несложнее осознавать и отлаживать.

В случае, если совершить аналогию, то вам нет необходимости понимать язык ассемблера, помимо этого случая, в то время, когда вы занимаетесь разработкой ОС либо кодом компилятора. Совершенно верно кроме этого вам необязательно глубокое познание методов, не считая тех случаев, в то время, когда вы трудитесь с математической библиотекой.

Мария Королева, редактор издания Hypergrid Business

Это зависит от того, какой поэтому деятельностью в сфере программирования вы желали бы заниматься. Вы имеете возможность заняться дизайном интерфейса пользователя, развитием игровой динамики либо отображением корпоративных данных в структурах баз данных.

в один раз мне было нужно применять тригонометрию при создании графических приложений. Не обращая внимания на то, что я точно знаю, что все это должно понадобиться в специальных сферах программирования. Но, в то время, когда я трудилась программистом, мне ни при каких обстоятельствах не приходилось применять вычисления, линейную алгебру либо дифференциальные уравнения.

Вам пригодится математика, но на этом все.

Но «метод» – это синоним к понятию «компьютерная программа», исходя из этого нет, вы не сможете программировать без знания методов!

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

Нужно ли программисту знать математику?


Интересные записи: