За последние несколько дней Microsoft выложила в youtube большой и бесплатный курс по Python для программистов. Компания хочет, чтобы все знали этот простой язык скриптов, потому что на нем можно программировать искусственный интеллект под Azure.
Облачные технологии становятся основными для компании и ради доминирования они даже не особо думают о создании собственного языка скриптов, возможно даже на C#. Вместо этого взят достаточно популярный и проверенный Python.
Уроки доступны здесь: Programming with Python | Python for Beginners
Я постоянно что-то читаю, изучаю, смотрю видео в интернете и даже посещаю курсы. Постоянные посетители сайта знают, что я недавно сам был на недельных курсах по React. До этого я читал про этот фреймворк, смотрел уроки и в принципе понимал, о чем речь, но все же курсы дали мне на много больше, потому то на них мы делали практические примеры. Нам рассказывали пару часов про какую-то тему, показывали примеры, а потом мы должны были работать над каким-то заданием. Возможность практиковаться и пообщаться с экспертом во время курса – было самым важным и ценным для меня.
Я много раз на блоге и в своих видео говорил о том, что для того, чтобы стать программистом, нужно практиковаться и желательно работать в команде. Учится можно сделать самостоятельно, но лучше все же это делать в команде и с преподавателем.
Бывает такое, что начинаешь учить программирование и тут же понимаешь, что что-то не получается и не даются как-то знания. В таких случаях очень часто задается вопрос – как же все же стать программистом. Да, это важный вопрос, но очень важно еще и понимать, какие ошибки не совершать.
Почитайте, попробуйте простые вещи. Когда вы учились читать в первом классе, то начинали с букваря, со слогов, а не бросались сразу же на Войну и Мир. Мне достаточно часто приходят вопросы, в которых новички интересуются тем, как создать что-то, что даже не каждый продвинутый программист решиться создавать.
В интернете с постоянной регулярностью появляются разговоры на тему того, какой язык программирования самый лучший. Лично я не понимаю, зачем он нужен – самый лучший язык программирования?
У меня лично нет самого лучшего, я с удовольствием использую C#, PHP, Swift и даже старый классический С или С++. Хотя последний уже очень давно не использовал (имею ввиду С++). Если классический С еще использую на Arduino, то C++ как-то негде использовать. Последний раз я на C++ писал, когда еще было время в свободное время тратить время на графику и я его использовал с DirectX.
Я даже неплохо относился к Objective-C. Этот язык я считаю самым ужасным из всего, что я использовал, потому что читаемость кода не очень хорошая. Я сейчас взглянул на статистику на stackoverflow и Objective-C заслуженно входит в 10 самых ужасных языков, занимая в нем 9-е место. Хуже три вариации VB (VB 6, VB .NET и VBA), Cobol, Perl, Matlab, Assembly, CoffeeScript. Читаемость и возможности языка слишком слабые.
Уже не первый раз вижу код, в котором отправляется запрос на базу данных, который вытаскивает больше данных, чем нужно, а потом фильтрация идет на стороне Application сервера. И ладно, если этот код выполниться один раз и никогда больше не будет выполняться, а если его поставить на постоянку.
Нужно же понимать, что при таком подходе абсолютно каждый раз сервер будет возвращать больше данных, чем нужно, а это напряг как для самого сервера, так и для сети. Сервер приложений будет напрягаться и дополнительно фильтровать лишние данные.
Может показаться, что нагрузка на сеть – это фигня, ведь 10 лишних строк из базы – это пару килобайт. При нынешних гигабитных сетях это капля в море. А если это нагруженный сайт с 1000 посетителей в минуту? Это уже 10 мегабайт абсолютно бесполезных данных в минуту. А если таких запросов будет еще десяток – это еще больше мусора на сеть.
Сейчас читаю мануал про безопасность мобильных приложений и там одним из пунктов повышения безопасности называют обфускацию и усложнение кода, чтобы не допустить реверс.
Обфускация не остановит хакеров. Оно может немного притормозить взлом, но вот остановить. . . Реверс позволяет понять, как работает приложение. В случае с .NET увидеть исходный код - это достаточно тривиальная задача. Можно попробовать использовать обфускацию, которая заменит все читаемые имена переменных на какой-то мусор, могут добавить чего-то мусорное, но только с добавление шифрования можно реально отодвинуть дату, когда хакер увидит код.
Сегодня водном из видео на youtube услышал, что PHP не стоит учить и в качестве основания было то, что он привяжет тебе несколько привычек, от которых тяжело избавится. Согласен на счет плохих привычек, потому что это интерпретируемый язык без строгой типизации данных, который позволяет написать программу без единой функции, не говоря уже об объектно-ориентированном подходе.
На этот вопрос разные опытные программисты могут дать разные советы, потому что каждый сам развивался по-разному, и у два разных программиста дадут два разных совета. Сказать, что какой-то из советов будет более верный – неверно. Они просто разные. Кому-то лучше подходит один подход, кому-то другой, а я попробую дать свои советы и надеюсь, они будут вам полезны.
У меня нет профессионального образования в ИТ, практически все приходилось изучать самому. Единственное, что я заканчивал – небольшие курсы. В начале 2000-х годов это были официальные курсы по программированию и администрированию (два отдельных курса по недели на каждый) от Майкрософт, которые проходили на территории МГТУ им Баумана. К самому МГТУ они мало имеют дела, просто проходили на его территории, это все же официальные Майкрософт курсы.
На первом стриме меня спросили, какие алгоритмы нужно знать и я в качестве основных назвал поиск и сортировку. Сегодня под одним из видео о алгоритмах заметил много комментариев о том, что знание алгоритмов сортировки нужно только для ответа на собеседовании на вопрос, который любят задавать.
На самом деле знание базовых алгоритмов необходимо не только для прохождения собеседования, но и для саморазвития и умения решать типовые задачи.
Возможно вы даже не замечаете, как вы используете эти знания. Понимание алгоритмов даже сортировки, даже пузырьком позволяет вам понять просто типичные решения пробелем, которые вы будете накладывать в других задачах.
Очень часто нам не нужно реализовывать сортировку, уже все за нас сделано, особенно в простых прикладных приложениях. Но в алгоритмах сортировки и поиска есть что-то более важное. Если вы знаете их, то на примерах уже видели, как разные задачи решаются простым делением (поиск, сортировка) и можете использовать этот же патерн в других задачах.
На собеседованиях как раз начали в последнее время спрашивать на много более сложные вопросы. У меня на работе вообще спрашивают банальный вопрос о поиске в строке и то из 10 человек пока только один смог решить проблему более менее терпимо, хотя задача реально банальная.
Разработчики статического анализатора PVS-Studio, который до недавнего времени искал ошибки и потенциальные уязвимости в коде на С, С++ и С#, выпустили новую версию продукта, способного обнаружить баги в Java проектах.
По традиции, автор статьи приводит примеры найденных ошибок с помощью PVS-Studio. Предвидя вопросы, сможет ли анализатор найти что-то в таких проектах как IntelliJ IDEA, SpotBugs и других известных инструментах по поиску ошибок в Java коде, в статье предлагается рассмотреть примеры ошибок разного типа из этих проектов.
Например, интересная опечатка из IntelliJ IDEA: