Привет, Хабр! Представляю вашему вниманию перевод статьи «5 Tips On Learning How to Code – General Advice For Programmers» автора kristencarter7519.

Хотя кажется, что до наступления 2020 года нам осталось всего несколько дней, эти дни также важны в области разработки программного обеспечения. Здесь, в этой статье, мы увидим, как наступающий 2020 год изменит жизнь разработчиков программного обеспечения.

image

Будущее разработки программного обеспечения уже здесь!


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

Давайте попробуем с некоторым кодом


Со временем системы разработки программного обеспечения нейронных сетей стали более сложными с точки зрения интеграции, а также уровней функциональности и интерфейсов. Разработчики, например, могут построить очень простую нейронную сеть с Python 3.6. Вот пример программы, которая выполняет двоичную классификацию с 1 или 0.

Конечно, мы можем начать с создания класса нейронной сети:


импорт NumPy как NP

X=np.array([[0,1,1,0],[0,1,1,1],[1,0,0,1]])
y=np.array([[0],[1],[1]])

Применение функции сигмоида:


def sigmoid ():
   return 1/(1 + np.exp(-x))
def derivatives_sigmoid ():
   return x * (1-x)

Обучение модели с начальными весами и отклонениями:


epoch=10000
lr=0.1
inputlayer_neurons = X.shape[1]
hiddenlayer_neurons = 3
output_neurons = 1

wh=np.random.uniform(size=(inputlayer_neurons,hiddenlayer_neurons))
bh=np.random.uniform(size=(1,hiddenlayer_neurons))
wout=np.random.uniform(size=(hiddenlayer_neurons,output_neurons))
bout=np.random.uniform(size=(1,output_neurons))

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

Модификация кода с помощью нейрона выходного слоя


hidden_layer_input1=np.dot(X,wh)
hidden_layer_input=hidden_layer_input1 + bh
hiddenlayer_activations = sigmoid(hidden_layer_input)
output_layer_input1=np.dot(hiddenlayer_activations,wout)
output_layer_input= output_layer_input1+ bout
output = sigmoid(output_layer_input)

Ошибка вычисления для скрытого слоя кодов


E = y-output
slope_output_layer = derivatives_sigmoid(output)
slope_hidden_layer = derivatives_sigmoid(hiddenlayer_activations)
d_output = E * slope_output_layer
Error_at_hidden_layer = d_output.dot(wout.T)
d_hiddenlayer = Error_at_hidden_layer * slope_hidden_layer
wout += hiddenlayer_activations.T.dot(d_output) *lr
bout += np.sum(d_output, axis=0,keepdims=True) *lr
wh += X.T.dot(d_hiddenlayer) *lr
bh += np.sum(d_hiddenlayer, axis=0,keepdims=True) *lr

Выход


print (output)

[[0.03391414]
[0.97065091]
[0.9895072 ]]

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

В 2020 году разработчикам программного обеспечения следует рассмотреть возможность включения этих 5 инструментов разработки программного обеспечения в свои продукты независимо от того, какой язык программирования они используют:

1. Обработка естественного языка(NLP)


С помощью чатбота, который оптимизирует обслуживание клиентов, NLP привлекает внимание программистов, работающих над разработкой современного программного обеспечения. Они применяют наборы инструментов NLTK, такие как Python NLTK, для быстрого включения NLP в чат-ботов, цифровых помощников и цифровые продукты. К середине 2020 года или в ближайшем будущем вы увидите, что NLP приобретёт бОльшее значение во всем, начиная с розничного бизнеса и заканчивая автономными транспортными средствами и устройствами для дома и офиса.

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

2. GraphQL, заменяющий REST Apis


По словам разработчиков в моей фирме, которая является оффшорной компанией по разработке программного обеспечения, REST API теряет свое доминирование над вселенной приложений из-за медленной загрузки данных, которую необходимо выполнять с нескольких URL-адресов по отдельности.

GraphQL — это новая тенденция и лучшая альтернатива архитектуре на основе REST, которая извлекает все релевантные данные с нескольких сайтов с помощью одного запроса. Это улучшает клиент-серверное взаимодействие и уменьшает задержку, что делает приложение значительно отзывчивее для пользователя.

Вы можете улучшить свои навыки разработки программного обеспечения, когда используете GraphQL для разработки программного обеспечения. Кроме того, он требует меньше кода, чем REST Api, и позволяет совершать сложные запросы в несколько простых строк. Он также может быть снабжен рядом функций Backand as a Service (BaaS), которые упрощают его использование разработчиками программного обеспечения на разных языках программирования, включая Python, Node.js, C ++ и Java.

3. Низкий уровень кодирования/нет кода (low code)


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

Согласно отчету TechRepublic, инструменты без кода / low code уже используются в веб-порталах, системах программного обеспечения, мобильных приложениях и других областях. Рынок инструментов low code вырастет до 15 миллиардов долларов к 2020 году. Эти инструменты обрабатывают все, включая управление логикой рабочего процесса, фильтрацией данных, импортом и экспортом. Вот лучшие платформы low code в 2020 году:

  • MicroSoft PowerApps
  • Mendix
  • Outsystems
  • Zoho Creator
  • Salesforce App Cloud
  • Quick Base
  • Spring Boot

4. Волна 5G


Возможность подключения 5G сильно повлияет на разработку мобильных приложений и программного обеспечения, а также веб-разработку. Ведь с такими технологиями, как IoT, все связано. Таким образом, программное обеспечение устройства будет максимально использовать возможности высокоскоростных беспроводных сетей с 5G.

В недавнем интервью Digital Trends Дэн Дери, вице-президент по продукции Motorola, заявил, что «в ближайшие годы 5G обеспечит более быстрый обмен данными, более высокую пропускную способность и ускорит программное обеспечение телефона в 10 раз быстрее, чем существующие беспроводные технологии».

В этом свете компании-разработчики программного обеспечения будут работать над внедрением 5G в современные приложения. На данный момент более 20 операторов объявили об обновлении своих сетей. Итак, разработчики теперь начнут работать над использованием соответствующих API, чтобы использовать преимущества 5G. Технология значительно улучшит следующее:

  • Безопасность сетевой программы, особенно для Network Slicing («сетевой нарезки»).
  • Предоставление новых способов обработки пользовательских идентификаторов.
  • Позволит добавить новые функциональные возможности в приложения с низким уровнем задержки.
  • Будет влиять на развитие системы AR / VR.

5. Легкая аутентификация


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

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

  • Soft Tokens превращают ваши смартфоны в удобные многофакторные аутентификаторы.
  • Шаблоны EGrid — это простая в использовании и популярная форма аутентификаторов в отрасли.
  • Некоторые из лучших программ аутентификации для бизнеса: RSA SecurID Access, OAuth, Ping Identity, Authx и Aerobase.

В Индии и США существуют компании, разрабатывающие программное обеспечение и проводящие обширные исследования в области аутентификации и биометрии. Они также продвигают AI для создания превосходного программного обеспечения для голосовой, face-id-шной, поведенческой и биометрической аутентификации. Теперь вы можете защищать цифровые каналы и улучшать возможности платформ.

Заключение


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

Комментарии (10)


  1. Giltior
    11.12.2019 12:43
    +1

    Мне кажется, что технологии никогда не угоняться за жадностью полетом фантазии маркетологов. Как только станет просто и быстро создавать фичу N, будет придумана еще более сложная в реализации (и сомнительная по нужности) фича Y
    Сегодня они хотят знать каждый клик пользователя на сайте, завтра знать пульс пользователя при взгляде на картинку и была ли у него эрекция (а если была, автоматически отправлять запрос в суд по обвинению в харасменте)


  1. lair
    11.12.2019 12:49
    +4

    5G как "практика разработки программного обеспечения", серьезно?


    1. shai_hulud
      11.12.2019 13:06
      +1

      Пока вы со скепсисом задаете этот вопрос, 100500 программистов уже вписывают в резюме «5G программист». И они получат работу от руководителей которые прочитают подобную статью :)

      Дилетанты пишут, дилетанты нанимают, дилетанты делают. Добро пожаловать в 2020г.


      1. Kriger91
        11.12.2019 13:40

        Хабр для дилетантов разве? Хотя это много объяснило бы…


        1. JustDont
          11.12.2019 13:54

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

          ЗЫ: Далеко не все эти статьи заминусовываются вместе с их авторами, кстати.


        1. lair
          11.12.2019 13:56

          … а как вы думаете, для кого — и кем — написана и переведена эта статья?


  1. APXEOLOG
    11.12.2019 15:38

    Статья кратко: Есть фреймворки и библиотеки, кто-то использует GraphQL, скоро будет 5G.


    Непонятно причем тут практики разработки ПО


  1. Varim
    11.12.2019 15:57

    причем тут хабы

    PHP,
    Python,
    JavaScript,
    Java,
    .NET
    ?


  1. fzn7
    11.12.2019 16:02

    на Spring Boot не надо код писать? лол


  1. vagon333
    11.12.2019 21:51

    Лично для меня набор low code продуктов был полезен.
    Насчет Spring Boot комментария — согласен, в нем нужно кодить.