Фото: medium.com
Денис ЗавгороднийРазработчик, стаж более 10 лет
Меня зовут Денис и я больше 10 лет работаю программистом. Начинал с 1С, сейчас пишу на Java. Есть сертификат Java Oracle, я преподаю курс по Java для новичков.
Содержание статьи [развернуть]
- Игнорирование базовых основ программированияЧитаем много, пишем малоПерфекционизм или код на скорую рукуОверинжиниринг: решение простых задач сложными методамиОтсутствие вопросов или чрезмерное их количество
Игнорирование базовых основ программирования
Крайне важно разобраться в таких вещах как: системы счисления, булева логика, типы данных и структуры данных. В компьютере на уровне железа используется несколько систем счисления: двоичная, восьмеричная, десятичная, шестнадцатеричная. Исторически сложилось, что весь компьютер использует двоичную систему счисления. Это наиболее оптимально для построения ЭВМ. Вы должны понимать как это устроено и быть способным перевести из одной системы в другую. Это очень поможет вам при разработке.
Вам не обязательно быть супер хорошим математиком, чтобы стать хорошим программистом, но нужно разбираться в булевой логике. Математика больше используется в машинном обучении, там да, нужно уметь перемножать матрицы и выполнять прочие сложные математические операции. Булева логика – это особый тип данных, который может принимать только два значения: истина или ложь. Это просто, когда условий не много. Но если они начнут накапливаться, очень важно в них не запутаться и знать как раскрыть скобки, что с чем взаимодействует, как это скажется на разработке.
Особое внимание стоит уделить также типам данных. В компьютере все хранится в двоичной системе, поэтому следует разобраться как компьютер хранит целочисленные числа (без дробей), как хранит числа с плавающей запятой, как хранит строки, почему можно или нельзя делать действия с данными, почему нельзя хранить данные связанные с финансами в данных с плавающей запятой. Разберитесь в этом на уровне работы системы.
Ну и следующий шаг – разобраться как взаимодействуют структуры данных, что такое очередь, стек, связный список, массив, как они работают, как в компьютере резервируется память, как крутятся шестеренки.
Читаем много, пишем мало
Зачастую новички считают, что для начала им нужно прочитать документацию, изучить книжку, пройти 30 часов видео на ютубе, и только потом приступать к написанию кода. Я считаю, это совсем не правильный подход. Потому что быть программистом – это не быть грузчиком, когда ты отработал и пришел домой и забыл. Недостаточно изучать документацию или только смотреть видео. Обязательно нужно закреплять знания на практике. Если вы изучаете любой язык программирования, не важно это C++, Java, JS или другие, обязательно, после прохождения небольшого кусочка материала пишите код. Чем больше кода вы пишете, тем лучше становится этот код.
Лучше всего решать много маленьких, простых задач. Это поможет вам набить руку. Если решать постоянно сложные задачи, то скорее всего вы потратите очень много времени. Если потратить много времени, то особо не напишете много кода. Поэтому лучше решать одну сложную задачу на 10-20 простых. Например, на моем курсе студенты говорят, что в домашних заданиях много маленьких задач и им приходится копипастить. Я же объясняю, что копипастить нельзя, и лучше все писать руками, с нуля. Таким образом вы нарабатываете скилл. Конечно, сложные задачи тоже следует решать, но если не получается – откладываем и переключаемся на более легкие. А потом уже возвращаемся к сложным.
Резюмируя этот пункт – читать документация это мало. Пишем как можно больше кода.
Перфекционизм или код на скорую руку
Существует две полярные ошибки начинающих программистов, которые противоположны по своей сути, но в итоге приводят к похожим проблемам и трудностям.
Код на скорую руку – это написанный за 5 минут код, который может прочитать только программист, который его сделал,, а через неделю – вообще никто. Поэтому дальнейшая поддержка этого кода не возможна и почти всегда приходится его переписывать с нуля.
Как стать программистом с нуля — инструкция от профессионала
240
С другой стороны у нас перфекционизм. Перфекционизм это очень плохо. Потому что вы постоянно будете пытаться написать наилучший код, использовать наилучшие алгоритмы, использовать наилучшие библиотеки, а нужно просто идти и делать код. Чаще всего заказчик не сможет ждать столько же, сколько вы ищете свое наилучшее решение.
Я рекомендую бороться с перфекционизмом по такой схеме:
-
осознать что перфекционизм вредит
пересмотреть текущие проекты
работать в жестких дедлайнах
завершать начатые проекты
анализировать свою работу и свой код
Оверинжиниринг: решение простых задач сложными методами
Бывает, что программисту хочется решить простую задачу сложным путем. Например, он прочитал какие-то статьи, или посмотрел на ютубе крутое видео, увидел интересные техники, и пытается втулить это в свое приложение. Применить там, где это не нужно. К оверинжинирингу часто приводит перфекционизм, когда мы пытаемся найти священный грааль, написать такой код, который будет работать везде и всегда. Но уже есть много готовых шаблонов проектирования, которые были разработаны ведущими программистами. Они помогают использовать готовое решение к вашей задаче.
Так же проблемой может быть, что разработчику жалко удалить свой код. Он старался над задачей, потратил неделю, написал хороший по его мнению код, он ему нравится. Но потом заказчик может отказаться от такого функционала, а разработчик не удалит код, а закомментирует, или просто оставит, захламляя пространство. Растет база кода, его все больше, уже не понятно что вам нужно, а что нет… Поэтому не бойтесь удалить код. Самое важное, что вы получили, написав код – это ваши знания.
Как я стал программистом — личный опыт
198
Часто новички начинают изобретать велосипед. Есть множество библиотек и решений, которые уже придумали и их можно использовать. Но иногда начинающий программист хочет написать все с нуля. Тут нужно понимать цели. Если это с целью обучения – то это всегда хорошо, это практика. Но если мы говорим о задаче, проекте и сроках – то лучше использовать то, что уже работает.
Отсутствие вопросов или чрезмерное их количество
Программисту важно уметь задавать вопросы. Есть такой тип новичков на работе, которые могут сидеть несколько дней, читать документацию, гуглить, искать информацию везде. Хотя человек сидит рядом со мной, а я знаю как решить эту задачу за пять минут. И не надо было тратить столько времени.
Поэтому если вы работаете над задачей, и в течение 15 минут не знаете как ее решить – сразу идете гуглить. Если вы погуглили и не смогли найти решение – тогда стоит обратиться к другу, коллеге или ментору.
Важно правильно поставить вопрос: объяснить задачу, показать какие шаги вы предпринимали для решения для этой задачи, и что у вас не выходит. Бывают такие люди, которые постоянно задают вопросы. Это очень раздражает, и крайне не продуктивно. Давайте держаться баланса.
Для того, чтобы набить руку, попробуйте решать базовые задачи на таких сайтах, как codewars. Будет большим плюсом, если параллельно с изучение языка и документации, вы будете решать задачи на подобных ресурсах.
ITНовые технологииОбразованиеЦифровизация
400000
Источник: