Что надо знать начинающему программисту

Что надо знать начинающему программисту

Что вам нужно знать, если вы решили стать программистом?
Мы подготовили список из 25 пунктиков – то, что нужно знать каждому начинающему программисту.

  1. Терпение и труд всё перетрут. Единственный способ научиться программированию – это программировать. Не позволяйте думам-раздумам свести вас с данного пути, а еще хуже – лишить вас мотивации.
  1. Обучение программированию не является подготовкой к экзамену. Зубрежка в случае с программированием абсолютно бесполезна. Даже если вы и запомните наизусть какие-то алгоритмы, толку от этого будет мало. Ведь важно не то, как много информации вы запомнили, а как хорошо вы можете ей пользоваться.
  1. Уловки приветствуются! Многие программисты используют Google для решения большинства проблем и не считают это зазорным делом. Не знаешь как разрешить загвоздку в коде? Прогугли…
  1. Не накапливайте ошибки. Казалось бы очевидная вещь, но можно встретить немало программистов, которые пишут в один забег целый блок кода и ожидают, что он сработает без ошибки. Когда же выходит ошибка, то становится совсем непонятно, что пошло не так. Гораздо проще писать код маленькими шажками и проверять как можно чаще. Если же вы совершаете изменение в коде, дабы понять, где была сделана ошибка, то делайте одно изменение за раз. Иначе будет непонятно какое именно из изменений помогло в решении проблемы.
  1. Один в поле не воин. Довольно тяжело учиться программированию в одиночку. Не стесняйтесь спрашивать и обсуждать программирование и с начинающими, и с опытными разработчиками. Существует множество форумов, блогов и курсов, посвященных программированию.

  1. Не кипятись! Вы начинаете печатать свой код, и то и дело получаете ненавистное слово под названием ‘Error’. Являетесь ли вы начинающим программистом или разработчиком со стажем, вышеупомянутое слово будет преследовать вас на протяжении всего вашего программного пути. Спокойствие, только спокойствие!.
  1. Вам не нужны 5 мониторов. Вопреки голливудским фильмам о гениях-программистах, вам вряд ли понадобится супер-пупер навороченный компьютер. Компьютер, который у вас есть сейчас, вероятно, достаточно хорош, чтобы начать программирование. Не тратьте деньги.
  1. Существует большая разница между прописной буквой и строчной буквой. Многим требуется некоторое время, чтобы начать замечать различия между похожими символами. В первое время вас это может раздражать, но потом войдет в привычку.
  1. Попытка понять все – это потерянное дело. Не пытайтесь найти ответ на каждое «почему» для любой проблемы, с которой вы сталкиваетесь. Компьютеры настолько сложны, что у вас никогда не получится понять абсолютно всё. Ничего страшного.
  1. Парное программирование. Вы можете объединить свои усилия с другим начинающим программистом и работать над кодом совместно. Парным бывает не только танго!
  2. Замена плохого кода является частью процесса. Не думайте, что каждый фрагмент кода, который вы напишете, должен быть совершенным. Внесение постоянных улучшений в ваш код является нормальным процессом. Вы не пишете книгу, которая не может быть изменена после ее публикации.
  3. Вам не нужно быть математическим гением. Если вы не «математик», это не значит, что вы не можете быть программистом.
  1. Всегда радуйтесь небольшим победам. Невероятно здорово создавать что-то пробегая пальцами по клавишам клавиатуры. Однако, со временем это воспринимается как нечто самой собой разумеющееся. Не зацикливайтесь на ошибках, но празднуйте каждую крохотную победу.
  1. Встречи невероятно ценны. Возможно, сама идея о встречи с другими программистами вызывает у вас чувство страха. Но не стоит пугаться. Попробуйте, и вы убедитесь, что никто не будет показывать в вас пальцем, если вы чего-то не знаете.
  1. Для того, чтобы получить работу, не требуется 10 000 часов. В действительности, вы должны знать как подкорректировать и исправить себя, если что-то идет не так. А на это требуется гораздо меньше времени, чем 10 000 часов.
  1. Просите о помощи правильно. В какой-то момент все должны попросить о помощи. И когда вы это сделаете, убедитесь, что вы делаете следующие 4 вещи:
  • Обозначьте детали, которые вы видите.
  • Объясните, что именно вы думаете, что должно произойти.
  • Объясните, что именно происходит на самом деле.
  • Объясните, почему вы думаете, что он должен работать по-другому.

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

  1. Вы просыпаетесь утром, думая о коде. И когда это происходит, это действительно здорово!
  1. Вполне допустимо совершать большие ошибки. Можно услышать истории, когда ошибка программиста может стоить компании тысячи долларов. Если вы услышите её от первого лица, вы убедитесь, что программист, совершивший ошибку, вынес из этой ситуации бесценнейший урок. Не ошибается тот, кто не работает.
  1. Алгоритм похож на поиск имени в телефонной книге. Алгоритмы – это пошаговый подход, где есть ровно один правильный следующий шаг. Более простой способ подумать об этом – это стратегия, которую вы бы выбрали, чтобы найти одно конкретное имя в телефонной книге.
  1. Вы никогда не почувствуете, что готовы программить полный рабочий день. Синдром самозванца на самом деле существует. Попытайтесь вспомнить, что это абсолютно нормально не знать все. Самое главное – понять, что вы можете узнать то, что вы не знаете.
  1. Программисты никогда не перестают учиться. Новые технологии выходят все время, поэтому успешные программисты – это те, кто продолжает изучать и развивать свои ремесла на постоянной основе.
  1. Заставьте компьютер думать, как человек. Много людей создают впечатление, что вам нужно думать, как компьютер. На самом деле все наоборот.
  1. Правильный инструмент для задания. В вашем распоряжении огромное количество различных библиотек, инструментов и фреймворков с открытым исходным кодом. Поэтому вам нужно расширить инструментарий разработчика и понять, какой инструмент имеет смысл для каждой проблемы, с которой они сталкиваются.
  1. Не сдавайтесь за шаг до победы. Изучение кода (особенно когда вы решились сменить карьеру) – это большая работа. Это требует времени и много дисциплины, но это возможно. Слишком много людей совершают ошибку, выполняя почти достаточную работу, чтобы добраться туда, куда хотят.
  1. Обучение программированию непросто. Но именно поэтому это стоит того.
Читайте также:  Как снимать видео на айфон с музыкой

Какие знания нужны, чтобы стать хорошим программистом? Есть ли какие-то умения, отличающие хорошего программиста от плохого? Если вы готовитесь к выбору профессии и хотите в этом разобраться, наша статья – для вас.

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

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

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

  • Стремление быть лучше, знать больше – саморазвитие.

Без постоянного саморазвития не стать хорошим программистом. IT-сфера развивается неустанно: появляются новые языки, фреймворки и другие инструменты. Регулярное обновление своих знаний, сомнения в том, что вы знаете «как правильно» приведут вас к успеху в карьере и сделают настоящим профессионалом.

  • Любовь к программированию

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

Так, в общих чертах мы понимаем, кто такой «хороший программист». Давайте теперь разберемся, что нужно знать программисту.

Какие знания нужны программисту?

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

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

  • Алгоритмы и структуры данных.

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

Читайте также:  Как удалить ненужные приложения без рут прав

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

    Переводы, 29 апреля 2015 в 13:12

Эта статья — не самоучитель по кодингу. И не пост о том, «какой язык программирования выбрать». Если вы хотите понять, насколько вам интересно изучать мир кода, то более важным вопросом будет: что такое программирование? Как выглядит программирование изнутри? Совместимы ли я и программирование?

Принцип «логика, а не математика»

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

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

Принцип «поймать падающую звезду»

На программирование можно смотреть, как на запуск множества «процессов» — как бы принуждение компьютера «делать работу за вас» — и управление этими процессами. В программировании процесс часто выдаёт некий результат. Результатом может быть файл, но может быть и нечто попроще, например строка, или число.

Проблема в работе с процессами заключается в том, что если вы ничего не делаете с их результатами, то они просто растворяются. Говоря литературно, «уходят в небытие», никогда не воссоздаются, очень похожи на звёзды, которые сверкают на небе и исчезают. Другими словами, вам надо «поймать их».

3–5 апреля, онлайн, беcплатно

Если вы создаёте что-то с помощью процесса, вам надо схватить его, или вы его потеряете. Вот где в игру вступают переменные — как способ «запечатлеть» результаты процесса. Этот принцип сильно помогает понять, что такое программирование, на ранних этапах обучения. И если вы рано его ухватите, то найдёте его очень полезным.

Принцип «словаря»

В программировании есть много «типов». Представляйте типы как строительные блоки языка программирования. Один из типов — это строка, или коллекция символов внутри кавычек. И «яблоко», и «апельсин» — это строки. Их можно, например, объединить и сделать «яблокоапельсин». Числа — это другой тип. Числа можно складывать, вычитать, умножать (помимо остальных действий). Затем идут «массивы» — множество объектов в определённом порядке. [«Первое», «идёт», «перед», «вторым»], например, является массивом с первым элементом «Первое» и последним элементом «вторым».

Но, возможно, одним из самых мощных типов является «хэш», или пара «ключ-значение». Хэш имеет много названий. В Ruby это «hash». В JavaScript он называется «object» (объект). Возможно, лучшее имя ему дал Python: «dictionary» (словарь). Если немного подумать, то словарь это и есть набор ключей (слов), указывающих на свои значения.

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

Есть ключи «first_name» (имя), «last_name» (фамилия) и т.д. Это как бы свойства, или атрибуты человека. Можно ещё добавить «hair_colour» (цвет волос), «age» (возраст), или «gender» (пол). И каждый из этих ключей имеет значение. Значительная часть программирования связана с определением форматов структур данных. И пары «ключ-значение» становятся ценнейшим оружием в арсенале, поэтому полезно понять, как они работают, как можно раньше.

Принцип «матрёшек»

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

Добавим в предыдущий пример свойство «siblings» (братья/сёстры):

Этот принцип вы будете встречать на протяжении всего программирования. В HTML одни элементы включают в себя другие элементы:

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

Принцип «сосиски»

В вычислениях объектами в основном являются программы или файлы. Это крайне полезный принцип. В программировании вы часто услышите термины «in» и «out» — ввод и вывод. Причина в том, что задачей часто является получение входных данных (ввод), их обработка (процесс), и произведение изменений (вывод). Обработкой занимаются процессы (активные биты), которые управляются вашим кодом. Пассивными битами являются данные, с которыми работают процессы. Это всё похоже на превращение фарша в сосиску.

Читайте также:  Приложение барометр для андроид

Принцип «собаки, кошки и рыбы»

(или принцип причинно-следственной связи)

Представьте, что у вас есть комната. В этой комнате есть кошка и рыба в чаше. Рыба ведёт себя как обычно. В определённый момент происходят 2 вещи: собака входит в комнату, а кошка выходит из комнаты. В то же время рыба начинает петь. Вопрос: что заставило рыбу петь?

Можно рассмотреть много возможностей. Можно предположить, это случилось потому, что вошла собака. А можно предположить, что причина в том, что вышла кошка. А может быть, причина в комбинации обоих событий. Возможно, оба события тут не при чём. А дело в том, что 18:17 — это время превращения рыбы в ведьму. Может быть, все рыбы поют. Некоторые из этих вариантов могут оказаться правдой.

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

Абстракции, или принцип «пиццы»

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

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

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

Давайте превратим приготовление пиццы в код. Сначала начнём делать это неправильно. Сделаем метод make_a_napoletana_pizza (приготовить пиццу Неаполитана):

В нём будет 5 шагов (сделать основу, добавить томатный соус, добавить анчоусы, добавить сыр, запечь):

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

Вот что имеется ввиду. Представим, что наш метод make_a_pizza (приготовить пиццу) вызывается с аргументом «toppings» (начинки). Метод будет выглядеть примерно так:

И он будет работать следующим образом:

В 3-й строке мы берём начинки, определённые ранее, и добавляем их в пиццу.

Теперь, когда мы определили общий метод по приготовлению пиццы, мы можем просто вызвать его и задать ингредиенты, которые хотим. Всё происходит автоматически. Другими словами, мы вызываем make_pizza(salami), и когда метод запустится, salami (салями) станет toppings (начинкой) и добавится в пиццу, когда метод дойдёт до 3-й строки. Просто изменяя начинку, можно одним методом создать 2 разные пиццы. Это так же экономно, как когда официантка просто пишет в форме заказа «1 х салями, 1 х вегетарианская», и повар знает всё, что ему нужно. В программировании это называется «абстракция».

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

Ссылка на основную публикацию
Что делать если игры не скачиваются
Play Market — официальный магазин приложений для Андроида и главный источник загрузки новых игр и программ на смартфоны и планшеты...
Хороший принтер для школьника
Для ученика возможность распечатывать доклады, рефераты и иллюстрации для занятий в школе - совсем не лишняя. Школьнику в XXI веке...
Хороший телефон с aliexpress
Обновлено 22.10.2019 На Алиэкспресс есть много разных производителей смартфонов. Даже есть такие международные бренды, как Apple. В этой подборке мы...
Что делать если заглючил планшет
Если завис планшет леново, самсунг, асус, престижио, дигма и так далее, да еще и в самое неподходящее время радости конечно...
Adblock detector