Разница между компьютерным инженером и программистом.

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

Определение:

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

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

Теперь вопрос в том, как стать компьютерным инженером, кроме как просто стать хорошим программистом.

Я поделюсь кое-чем из того, что знаю. Я обновлю этот пост, как только найду еще.

1. Изучите формулировку проблемы

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

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

2. Выберите своего редактора

Выбор идеального редактора для вашей работы очень важен. Редактор действительно играет важную роль в экономии вашего времени.

Даже меня не волновало, каким редактором я пользовался во время учебы в колледже. Честно говоря, я слишком много времени использовал gedit для написания кода. Судите меня сколько угодно, но это было раньше, когда я познакомился с emacs. Я мог настроить его с помощью своего языка программирования, добавить поддержку git в самом редакторе, чтобы сэкономить время при переключении между редактором и терминалом.

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

3. Используйте комментарии // Ради бога

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

4. var a = «Я - переменная с очень не описательным именем»;

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

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

- Джон Вудс

Я думаю, что приведенной выше цитаты достаточно, чтобы объяснить важность правильного именования.

Не забывайте делать отступ в коде. Код без отступов не только непрофессионален, но и сложен для понимания.

5. Использование правильной структуры данных

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

6. Модульное тестирование

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

Лучше использовать TDD. Если вы не знаете, что такое разработка через тестирование, это практика разработки, при которой вы сначала пишете свои тестовые примеры перед написанием функции, а затем проверяете, проходят ли все ваши тестовые примеры.

7. Убедитесь, что ваш код доступен для модульного тестирования.

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

В сценариях, где функция выполняет несколько задач, модульное тестирование становится затруднительным.

8. Подробнее о git

Если вы работаете в команде, важно правильно использовать git. Любая ошибка приведет к неприятностям у вас и всей вашей команды.

Разберитесь, почему ветвление полезно, поймите разницу между слиянием и перебазированием.

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

Что ж, это некоторые моменты, которые, как мне кажется, различают эти две роли, и добавлю больше, как только узнаю. Большое спасибо за чтение.