Блог

Как стать программистом?

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

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

Зачем знать алгоритмы сортировки

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

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

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

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

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

А вы знали, что в инструментах по поиску ошибок на Java тоже есть ошибки?

Разработчики статического анализатора PVS-Studio, который до недавнего времени искал ошибки и потенциальные уязвимости в коде на С, С++ и С#, выпустили новую версию продукта, способного обнаружить баги в Java проектах.

По традиции, автор статьи приводит примеры найденных ошибок с помощью PVS-Studio. Предвидя вопросы, сможет ли анализатор найти что-то в таких проектах как IntelliJ IDEA, SpotBugs и других известных инструментах по поиску ошибок в Java коде, в статье предлагается рассмотреть примеры ошибок разного типа из этих проектов.

Например, интересная опечатка из IntelliJ IDEA:

Работа веб программистом – стек технологий

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

После клика я попал в компанию, которая делает что-то похожее на 1C кадры для рынка США и Канады. Это одностраничное приложение, в котором очень много сделано на стороне клиента, поэтому здесь очень даже серьезный упор на JavaScript. 

Web разработка с помощью .NET Core (Часть 1) бесплатный курс

Наконец наступил этот момент. Хотя я этот видеокурс закачал на youtube в пятницу вечером, публичным делаю только сейчас. Просто я его закачал перед сном и сразу стало доступно только видео с самым ужасным качеством, хотя я закачал его в 4k качестве. Логично, ведь ютюбу понадобилось немного времени на то, чтобы обработать все. 

В субботу утром я проверил и мой первый бесплатный видеокурс по Web разработки на .NET Core стал уже доступен во всех возможных вариантах качества. 

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

Языки программирования 2019

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

Мобильные языки

Уже практически свершившийся факт, что на мобильном рынке происходит смена языков программирования. Можно уже с большой долей уверенности говорить о том, что Objective-C мертв. Apple переводит все на Swift и этот язык уже окончательно стал основным на iOS.

Веб программирование – слишком сложно

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

Лет 20 назад сайты были небольшими из нескольких страниц и для этого достаточно было только HTML. С ростом размеров понадобились более сложные вещи и стали появляться CSS и серьезный рост показала разработка бакэнда. 

Лет 10 назад Web начал отбирать рынок у десктопных приложениях и сильное развитие получает JavaScript и различные фреймворки. А тут еще и Apple забивает гвоздь в крышку гроба Adobe Flash, поэтому JS и HTML5 становятся центральными технологиями. 

Где же следующий шаг в развитии Swift?

Скоро исполнится 3 года с момента, как Apple открыла свой язык Swift, но за это время не случилось серьезного толчка в развитии. Все изменения, которые были внесены за это время сделали язык лучше, но он все же остался в рамках инфраструктуры Apple. На Swift можно писать приложения для iOS, но он так и не пошел дальше. 

Когда Microsoft представили миру C#, то не смотря на отсутствие поддержки со стороны самого гиганта, нашлись энтузиасты, которые начали переносить его на другие платформы и появился Mono. Это говорит о том, что C# действительно великолепный язык и его люди готовы переносить самостоятельно. 

Когда я люблю проекты с исходным кодом

В случае с программами и ОС мне в принципе все равно - открыт исходный код или нет. Я уже долгие годы работаю с Windows, Linux и macOS и у меня не возникало желания поменять код. Конечно же из этих трёх ОС, я даже теоретически смог бы поменять что-то только в Linux, потому что исходники остальных не доступны. Но все равно, тут я говорил о желании, а не о возможности. 

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

Изучаю Xamarin

До сих пор я писал мобильные приложения только под iOS поэтому выбирал Objective-C или Swift и мне нравилось использовать их. Меня несколько раз спрашивали, а почему не Xamarin, ведь тогда я смогу писать и для iOS и для Андроида. 

У меня не было цели писать для нескольких платформ. Я на работе пишу на C# и приходить домой и снова писать на C# не особо хотелось. Мне нужно было разнообразие в виде Swift, ведь это новый мир для меня, который интересно и хочется познавать. 

Но вот понадобилось написать для iOS и Андроид платформ и вот тут я выбрал Visual Studio и его возможность  создавать приложения сразу для нескольких платформ. И пока это интересно. Немного непривычно, но по своему интересно. 

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

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

Пишите мне