Никто не идеален, особенно в самом начале своего пути. Конечно, каждый набивает себе индивидуальные шишки, но порой хочется избежать бессмысленных и однотипных для всех ошибок. О них и предупреждают пользователи сайта Quora.
Кен Грегг, занимается программированием с 1977 года. Занимал самые разные должности в сфере менеджмента и разработки программного обеспечения
По моему опыту, а мне пришлось поработать разработчиком программного обеспечения, менеджером, а также руководителем в данной области, главные ошибки, которые совершают многие начинающие программисты, это:
- Начинать писать код, не продумав, каким образом будет решаться задача. Около 70% процесса программирования, или даже более того, требует мыслительной работы, и большая часть этой работы должна быть произведена до того, как специалист приступит к написанию кода. Нет ничего плохого в том, чтобы нарисовать диаграмму или расписать последовательность шагов.
- Считать, что постичь программирование можно, только лишь изучая информацию по этой теме и не занимаясь ничем практическим. Но единственный вариант реально чему-то научиться — практика. Много практики, если уж совсем честно.
- Не уделять должное внимание тестированию собственного кода. Если код правильно работает с одним конкретным набором входящих данных, это лишь половина пройденного пути по созданию отличного кода. Создание кода, который будет работать вне зависимости от исходных данных — вот главное, зачем необходимо его тестировать и вычитывать. Кстати, в долгосрочной перспективе тестирование и отладка могут многому вас научить.
- Считать, что когда-то обучение подойдет к концу и достижение максимального уровня профессиональных знаний не за горами. На деле же развитие никогда не заканчивается. Стоит с самого начала делать ставку на непрерывное познание нового, потому что те, кто ограничивает собственное развитие, вряд ли достигнут успеха в конечном счете.
Крис Якоби, большую часть времени занимается разработкой языка программирования
Касательно данной проблемы существует огромное количество советов, как полезных, так и не очень, поэтому ко всем необходимо относиться достаточно скептически.
Обучение программированию требует достаточного количества практики: тот факт, что вы понимаете суть программы, совсем не означает, что вы можете написать такую же.
Выбор подходящей задачи: сложность заключается в том, что некоторые задачи слишком простые, другие же — слишком сложные. Научитесь правильно подбирать задание в зависимости от вашего текущего уровня.
Обучение программированию отличается от самого процесса создания кода с целью решения определенной задачи.
Изучая программирование, не довольствуйтесь малым. Научившись чему-то, постарайтесь придумать, можно ли сделать это лучше или же другим способом.
Когда вы создаете код с целью получения какого-то определенного результата, после крайне тяжело улучшить его или исправить баги. Потратьте достаточное количество времени и усилий не только на написание программы, но и на то, чтобы ее легко было понимать. Некоторые специалисты (я в том числе) иногда переоценивают собственные возможности по созданию читабельного кода.
Вы не сможете стать хорошим программистом, пока не выучите второй язык программирования. Разница между двумя языками автоматически даст более глубокое понимание и видение общей картины.
Дениз Билгили, создает свое собственное ПО для применения в инженерных целях
Слишком сильно волнуются о том, с какого языка или технологии они начнут путь в этой сфере. Посмотрите, сколько вопросов наподобие «с какого языка стоит начать» возникает у новичков.
Программисты создают код. Используемый язык или технологию для этого они могут выбрать сами. Может его выбрать и команда, с которой разработчики работают в данный момент, с целью облегчить программирование. Даже сам процесс создания кода может разниться в зависимости от того, над решением какой проблемы работает программист. Ведь его главной задачей в данной ситуации является нахождение оптимального решения.
Если же вы начинающий, то вам необходимо начать учиться программированию. Не JavaScript, C++ или Python, а самому программированию.
Поэтому обучение необходимо начинать с изучения наиболее часто используемых алгоритмов и структур данных, после чего уже выбирать язык и пытаться с его помощью использовать эти алгоритмы и структуры данных. По факту, без разницы, какой язык вы выберете, потому что пока вы не занимаетесь ничем серьезным, а лишь постигаете основы.
Не стоит спрашивать, быстрее ли выучить язык1 или язык2, потому что даже если язык1 можно выучить в 5 раз быстрее, чем язык2, то, создавая коды на языке1, вы все равно будете работать в разы медленнее, чем опытный программист на языке2, просто потому что вы новичок, а у опытного программиста уже набита рука. Поэтому просто начинайте изучать программирование и практикуйтесь как можно больше.
Вим Тен Бринк, разработчик на языке COBOL. Кроме того, работает с Pascal, C, BASIC и многими другими
Главная проблема заключается в том, что многие забывают о шаблонах проектирования. Кроме того, некоторые также забывают, что документирование и добавление комментариев в код — это также часть работы программиста.
Представьте, что вы уже около 10 месяцев пишете код, и вам необходимо внести в него небольшое изменение. Если вы не документируете код, то при поиске нужного места, в которое вы хотите внести изменения, вам остается полагаться на комментарии, потому что за это время вы уже наверняка подзабыли определенные части созданного кода. Если у вас нет и комментариев, то вам на помощь придут шаблоны проектирования, которые могут стать решением проблемы. Если же и шаблоны у вас отсутствуют, то все, что вам остается, это просмотреть весь код от начала до самого конца и методом проб и ошибок попытаться его исправить и настроить.
Но даже если предположить, что у вас невообразимо хорошая память, на которую вы можете совершенно спокойно полагаться, то всегда может быть так, что кому-то другому придется осуществлять поддержку вашей программы. В таком случае человеку придется сбросить и переписать весь ваш код, потому что использовать его он все равно не сможет, ибо это чистый хаос.
Иными словами, ошибки можно сравнить с несколькими коробками. В одной коробке пусть будут разные виды орехов, а в другой — болтики разных размеров. Профессионал всегда будет иметь коробки разных размеров, и в каждой отдельной коробке будет лежать определенный вид орешков или болтиков. При этом надпись на каждой коробке будет сообщать о том, что в ней лежит. Кроме того, в каждой коробке будет список того, какие орешки или болтики в ней. Исходя из этого, если вам будет нужен определенный болтик, то найти его не составит труда.
Неопытный же программист просто скинет все болтики и орехи в одну огромную корзину, и каждый раз, когда ему будет нужно что-то, придется мучиться с поиском в этой огромной неорганизованной свалке.
Колин Джеймс, 16-летний самопровозглашенный программист
Стремиться изучить программирование только ради высокой заработной платы — вот главная проблема новичков в этой сфере.
Большинство программистов, которые считаются лучшими, искренне заинтересованы в своей работе и любят заниматься этим делом. Существует определенный уровень удовольствия, который можно получить от написания кода, и далеко пойдут именно те люди, которые главным образом стремятся получить это удовлетворение от работы.
Компании наподобие Google не нанимают тех специалистов, которые занимаются программированием лишь потому, что «это их работа». Они нанимают тех, кто увлечен своим занятием. Если вы хороший программист, то у вас всегда будут проекты за рамками вашей основной работы.
Я считаю, что тех, кто стремится лишь подороже продать свои услуги, вряд ли можно назвать хорошими программистами. Да, зарабатывать деньги — это, конечно, очень важно и классно, но если ваша первичная цель заключается только в деньгах, то вы вряд ли далеко уедете на этом.
Если внимательно посмотреть, то можно обнаружить, что большинство известных спортсменов начинали заниматься спортом лишь потому, что им нравилось это, а не с целью стать известными. То же самое и с программированием.
Другой вопрос, что многие новички сначала преувеличивают свою значимость, а потом, встретившись с критикой со стороны профессионалов, пытаются защищать свое раздутое эго. Нет, чувствовать себя гордым за то, что изучил новый пласт информации, это нормально, но в течение месяца изучать язык C++, после чего рассказывать всем, что ты теперь его знаешь, — несколько наивно на мой взгляд. Подобной ложью человек только закрывает себе перспективу изучения новой информации. Когда я принимаюсь за проект, то всегда стараюсь найти новую для себя информацию, даже если у меня есть достаточный бэкграунд для работы с данной задачей.
Правильная статья. Программирования для промышленности в случае написания кода программы требует: комментариев блоков кода, читаемость программы (программа чаще читается, чем пишется), использования средств автоматизации тестирования и правильности алгоритмов, применение того инструментария и языка программирования который наиболее эффективный для приоритетов решаемой задачи (время разработки/стоимость, безопасность кода/средства разработки и т.д.). Над языковый подход в изучении методов программирования и т.д. Европейская школа в этом отличается от Американской. Только следует различать программистов от специалистов работающих в ИТ.