Что самое сложное в программировании
Перейти к содержимому

Что самое сложное в программировании

  • автор:

15 самых сложных вещей в профессии разработчика

Думаете, самая большая проблема — выучить новый язык? Опытные разработчики рассказывают, что действительно трудно в профессии.

Общение

Андрей Черабаев, разработчик в IT-компании MediaSoft:

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

И при этом нужно быть очень терпеливым, помнить, что люди разные: одни не понимают вас с первого раза, а другие любят объяснять по десять раз одно и то же. Сам этим страдаю.

Хаос из-за множества языков и фреймворков

— Появляется множество языков программирования и фреймворков, которые применяют повсеместно, как таблетки от всех болезней. И разработчику часто приходится сталкиваться с тем, что он должен хорошо знать слишком многое. Это и скриптовые языки на стороне фронта: HTML/CSS, JS, включая набор современных фреймворков BackBone.JS, AngularJS, ReactJS. Вместе с тем — языки С#, Java, Python и спецификации типа .Net Framework, JavaEE для серверной стороны. Добавим сюда знание баз данных и языка манипуляции с данными, стандартов сервисного взаимодействия. Этот огромный бум порождает хаос, и зачастую разработчики не усваивают тонкости языков или технологий.

Огромная нагрузка

— Сегодня в разработке приложений фичи продукта поставляются быстро, чтобы не заставлять пользователя ждать. Это порождает колоссальную нагрузку на программистов: то, что 10 лет назад разрабатывалось месяцами, сейчас реализуется в 2, а то и в 4 раза быстрее. Специалист, не умеющий применять паттерны проектирования (прототипирование, синглтон, адаптер, фасад, декоратор, архитектурный паттерн MVC), не сможет построить правильное веб-ориентированное приложение для широкой аудитории.

Не тратить драгоценные ресурсы на ненужные задачи

Юрий Пономарев, консультант центра технической поддержки компании «РДТЕХ»:

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

Бизнес-аналитики говорят, что исполнить запрос нельзя. Менеджер обещает премию тому, кто это откроет. Гугление по заголовкам файла каждый день приносит разный результат. Средства Windows не помогают понять содержимое. Средства сортировки падают при попытке его отсортировать. Средства распознавания форматов говорят, что там минимум 15 различных файлов. При передаче по сети корпоративный антивирус сходит с ума. На архив файла ругаются все почтовые системы, но он сжимается в 10 раз легко.

Старый разработчик пишет:

public static void main(String[] s) throws Exception VTDGenHuge vgh = new VTDGenHuge(); if (vgh.parseFile("C://TEMP//file_big",true,VTDGenHuge.MEM_MAPPED)) VTDNavHuge vn = vgh.getNav(); AutoPilotHuge aph = new AutoPilotHuge(vn); aph.selectXPath("//company/@Name"); int i = 0; while ((i=aph.evalXPath())!=-1) System.out.println(" element name is "+vn.toString(i)); > > > 

По имени компании разработчик находит ее почту, пишет письмо и выясняет, что это — вордовый файл с корпоративной отчетностью, который почему-то поместили в виде слайд-шоу в jpeg, а потом — несколько раз скопировали в XAML.

Вот поэтому трудность не в том, чтобы скачать файл, отключить антивирус или даже придумать применение данным. Самое сложное — не тратить на ненужные задачи драгоценные ресурсы. А если и тратить, то с умом.

Смешанные принципы современных языков программирования

Юлиана Науменко, руководитель департамента развития софтверных решений ГК «Авилекс

— Яркий пример — язык программирования JavaScript. Центральное ядро в части организации строительных блоков — функции.

Но, если внимательно на это взглянуть, все не так просто:

  • функция — элемент парадигмы функционального программирования;
  • функция — классический элемент процедурного программирования;
  • функция — объект.

Такой симбиоз порождает короткие, цепные и гибкие реализации, понимание которых порой приходит не сразу. Это замыкания, колбэки, применение анонимных функций (в C# — применение делегатов в событиях, таски и так далее).

Тесты, названия переменных, общение с коллегами

Кирилл Меженцев, программист группы разработки карты рассрочки «Совесть»:

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

Оценка задач

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

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

Сроки

Константин Коногорский, руководитель отдела разработки ПО в «ВИСТ Групп»:

— Очень часто приходят менеджеры и говорят: «Этот БелАз должен летать на высоте 10 метров над землей, достигая скорости в 10 узлов при идеальных погодных условиях. У тебя три дня. Мы уже всё продали, подписали контракты, получили деньги и премии. Теперь во всем виноват ты». Как правило, продажникам плевать, возможно это или нет, сколько реально потребуется времени, что у тебя пять дедлайнов на неделе. Программист, по их мнению, всемогущ и имеет 1024 часа в сутках. Как справляться? Берешь и делаешь.

Проблемы с документацией сторонних библиотек

— Я часто сталкивался с тем, что в документации видел все необходимые мне функции инструмента, а на деле оказывалось, что они есть только на бумаге. Когда связываешься с производителем или авторами, в ответ получаешь: «Упс, спасибо за отзыв. Ваш звонок очень важен для нас. Идите с миром». Подбор нужных библиотек занимает много времени, а если речь идет об оборудовании — то и денег. В итоге приходится колдовать с тем, что есть.

Находить баланс

Евгений Ким, руководитель отдела разработки платформы RU-CENTER:

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

Богатство выбора

— Выбор сейчас действительно огромный. Можно пойти в backend-разработку, в тестирование, в мобильную разработку. В каждом направлении десятки технологий, и это может вскружить голову. Тут нужно брать и пробовать. И читать профильные ресурсы, такие как geekbrains.ru.

Переделывать

Елисей Самретов, разработчик мобильных продуктов FL.ru:

— Для меня самый ненавистный момент наступает, когда приходит менеджер с суперважной задачей «переделай это срочно». Как справляюсь? Закидываюсь таблетками. Шутка. Музыкой в айфоне и дедукцией Шерлока Холмса: разбиваю задачи на итерации, слежу за синхронизацией дизайна, логикой написания программы.

Рутина

Стас Жеребчук, frontend developer в Weblium:

— Сложнее всего просыпаться по утрам и начинать работать.

Что помогает? Смузи-машина. Что мотивирует? Осознание, что меня могут выгнать, если я не буду ничего делать.

А что для вас самое сложное?

Топ-9 самых сложных IT-профессий

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

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

  1. Аналитик
  2. Data Scientist
  3. Пентестер
  4. DevOps-инженер
  5. Backend-разработчик
  6. Database разработчик
  7. QA-инженер
  8. Software Architect
  9. Интернет-маркетолог
  10. Выводы

Аналитик

Data аналитик в IT-компании занимается тем, что выстраивает причинно-следственные связи, находит оптимальные точки роста для бизнеса и слабые места. Далее эта информация поступает продактам, маркетологам и другим специалистам. Соответственно, аналитик Big Data работает с большими массивами данных.

Объективно, самые сложные профессии в IT связаны с работой с большими объемами данных — аналитики, Data Scientist. Они не только работают с большими массивами данных, но и пишут программный код для их обработки. Также они выполняют исследовательский анализ, используют различные виды алгоритмов машинного обучения для составления прогнозов, сосредоточены на выявлении неизвестных корреляций, скрытых моделей и рыночных тенденций.

Главные направления дата-аналитики в IT:

  1. Маркетинг-аналитика
  2. Business intelligence (BI) аналитика
  3. Product-аналітика

Самая сложная профессия в IT, на мой взгляд, это аналитик. Потому что он должен очень хорошо понимать свою предметную область. Да, «предметки» бывают очень разные. Наверное, для разработки для B2C хватит и просто структурного мышления и скрупулёзности. А вот если мы говорим про сложные государственные системы, в которых всё обросло кучей «нормативки» и законодательных документов и все они взаимосвязаны, — это уже совсем другое дело.

Data Scientist

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

Вход с нуля более или менее доступен для выпускников крайне непопулярной специальности «Прикладная математика», поскольку достаточное число экспериментов с цифрами проводят именно на этом направлении.
Второй блокирующий фактор — это упаковка математической модели при помощи современных аналитических инструментов (Power BI, QlikSense и др.) и программирования. Т. е. это минимум начальная экспертиза сразу по двум стекам, не говоря о владении микросервисной архитектурой — Kubernetes, Docker, Kubeflow.
Последним, но немаловажным фактором, является опыт использования/разработки моделей машинного обучения. Иметь такой опыт на старте — просто нереально, ведь доступ к ресурсам для реализации даже тестовых кейсов очень ограничен.

Вакансий для Джуна в Data Science вы, скорее всего, не найдёте, либо их будет крайне мало. Всё дело в том, что в широком смысле Data Scientist с порога имеет опыт минимум в двух из трёх областей:

  • статистика;
  • программирование;
  • машинное обучение.

Пентестер

Самые дефицитные специалисты это пентестеры. Penetration test — это тест на проникновение, который ничем не отличается от вторжения злоумышленника. Специалист начинает разведку, затем взламывает один из элементов защиты, проникает и закрепляется в системе. Хакер ищет и использует уязвимости IT-инфраструктуры компании, чтобы скачать данные, получить доступ к финансам или документации. Пентестер делает то же самое, но только чтобы выявить слабые места системы раньше, чем злоумышленник захочет ими воспользоваться.

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

Знания, которыми должен обладать кандидат в пентестеры:
– Умение писать код на одном, а лучше на нескольких скриптовых языках программирования. Например, Python, PHP или JavaScript.
– Навык извлечения данных из веб-страниц, понимание того, как работают браузеры и осуществляется коммуникация с сервером.
– Знание особенностей языков программирования и типовых ошибок, которые могут допустить разработчики.
– Понимание бизнес-логики и логики работы системы, способность проводить анализ для выявления ошибок, которые потенциально может допустить разработчик.
– Основы администрирования операционных систем Linux и Windows для проведения аудита безопасности, фильтрации трафика и других способов защиты от атак на сетевые сервисы.
– Понимание основных сетевых протоколов (HTTP, TCP, DNS) / сетевых служб (Proxy, VPN, AD).Знание компьютерной безопасности с разных сторон, включая криминалистику, системный анализ и многое другое.
– Навыки использования софта для аудита и эксплуатации уязвимостей, например SqlMap, Nmap, Metasploit, Acunetix, Burp Suite и прочее.
– Знание особенностей работы баз данных и основных CMS, способов защиты их от атак.
– Коммуникативные навыки и понимание того, как хакеры используют человеческий фактор для получения несанкционированного доступа к защищенным системам.
– Умение автоматизировать свою работу.

DevOps-инженер

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

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

В DevOps можно выделить несколько главных ролей:

  • Build Engineer — сборка кода: подтягивание зависимостей, разбор конфликтов в коде.
  • Release Engineer — качественная доставка кода от разработки на прод.
  • Automation Engineer — любая автоматизация задач: автоматическая сборка при пуше, прогон тестов, деплой на staging и прод.

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

Backend-разработчик

Пока большинство соискателей идут в дизайн и фронт, «на заднем плане» веб-разработки остаются востребованными толковые бэкендеры.

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

Если вам интересно данное направление, держите подробную дорожную карту по backend-разработке.

Database разработчик

Разработчик баз данных занимается проектированием, разработкой и поддержкой БД. За устранением ошибок и обновлением ядра СУБД тоже к нему.

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

В данной профессии выделяют два направления:

  1. Программист — разработка функциональности взаимодействия приложения с БД. В зависимости от языка, разнятся и стеки технологий. Допустим, для С# потребуется освоить Entity Framework/ADO.NET, LINQ to SQL и LINQ to Entities. Разумеется, важно знать язык запросов SQL.
  2. Администратор — проектирование, настройка, оптимизация, управление и другие обязанности по ведению баз данных. Здесь на первый план выходят знания реляционных БД, различных СУБД и SQL.

QA-инженер

Инженеры-тестировщики, работая с требованиями и осуществляя непрерывный контроль, обеспечивают качество продукта. Однако у них хотя бы всегда есть понимание, «как сделано» и «что должно работать».

Краткий перечень того, что требуется от QA-инженера:

  • умение работать с кодом;
  • знание систем bug-трэкинга (bug tracking system);
  • знание протокола HTTP, ответов сервера, программного интерфейса DOM;
  • понимание Agile/SCRUM/Lean методов;
  • знание SQL и умение работать с базами данных;
  • умение вести тестовую документацию;
  • знание и понимание системы CI&CD;
  • умение работать с инструментами и методами обработки больших данных.

Инженер по качеству отвечает за качество готового IT-продукта. Его работа сводится к оптимизации разработки ПО, обнаружению ошибок в его функционировании и предотвращению дефектов. В профессии сочетается сразу 4 специальности – аналитик, проектировщик, исполнитель, менеджер.

Software Architect

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

Наиболее сложными в IT, на мой взгляд, являются комплексные профессии, которые предполагают наличие обширного опыта в разработке, хороших инженерных знаний, системного мышления. Условно это профессии второго уровня, которым нельзя научиться, просто получив определенное образование.
К таким, например, можно отнести архитектора ИТ-систем. Такие специалисты отвечают за поиск и выбор лучшего решения для бизнеса с учетом определенного бюджета, при этом нужно принимать во внимание совместимость с остальной архитектурой ИТ-систем компании. До того, как стать архитектором, обычно ИТ-специалист несколько лет работает по другой профессии (разработчиком, DevOps-инженером, бизнес-аналитиком и т. д.), получает опыт по специальности плюс расширяет свои знания в ИТ в целом.

Интернет-маркетолог

Если формулировать кратко, то это специалист по маркетингу, основная среда деятельности которого находится в сети. Его основная задача — продвижение диджитал-продукта.

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

Выводы

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

Топ-6 самых сложных направлений в информатике

Перевод статьи Клеофаса Мулонго «Top 6 Hardest Subjects In Computer Science».

Самыесложные направления в информатике

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

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

1. Искусственный интеллект

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

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

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

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

2. Теория алгоритмов

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

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

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

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

Искусственный интеллект

3. Микропроцессоры

Еще одна тема информатики, сложная для изучения, – микропроцессоры. Микропроцессоры также известны как чипы логики и являются двигателями компьютеров. Типичный микропроцессор содержит все функции центрального процессора. Он выполняет как арифметические, так и логические функции компьютера.

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

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

Эта тема даст вам знания и навыки, необходимые для создания микропроцессоров.

4. Продвинутые системы баз данных

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

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

Компьютерное зрение

5. Создание компиляторов

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

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

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

6. Обработка изображений и компьютерное зрение

Это две довольно связанные между собой темы. Обработка изображений предполагает предоставление компьютеру возможности вносить некоторые изменения в изображения. Таким образом компьютер сделает изображение более привлекательным.

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

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

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

Что самое сложное в программировании? Без шуток. Правда ли, что самое сложное — выучить все программы/теги?

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

Остальные ответы
сложнее правильно их все совмещать в программе без ошибок

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

Программы не учат, их пишут. А вот самое сложное — это составление алгоритма. Написание кода по заданному алгоритму — это уже во многом дело техники

Правильная идея самое сложное, т. е. архитектура, алгоритмы. Остальное дело техники

>Что самое сложное в программировании?
Формализация произвольной задачи.

>Без шуток.
Да какое там.

>Правда ли, что самое сложное — выучить все программы/теги?
Неправда.

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

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

Знание Алфавита не гарантирует вам Пулитцеровской премии.

Учить все теги и тем более программы совершенно незачем.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *