Изучить ЯП, скажем C# и строить простые аппы, это всегда позиция джуниор.
Аналогия — это азбука, человек выучил алфавит и научился строить небольшие предложения. Это самое простое что можно сделать, на этом этапе проблем меньше всего.
С таким багажом вас берут джуном и учат строить правильные предложения, не больше.
Через N времени, вам дают/вы получаете задания строить целые блоки, небольшие абзацы. Далее это целые главы, как в книгах. У каждой главы есть четкое вступление, основная часть и заключение. Это позиция мидл.
Еще через N времени вы учитесь строить целые книги, с набором глав, в каждой из которой много блоков, в которых много предложений, в которых много слов. И все это дело гармонично сочетается между собой и имеет смысл. Главы разбиты правильно и идут друг за другом, не выводя ИТОГО по середине книги. Вы раздаете задания мидлам, разделяя между ними главы, а джунам небольшие части в них.
И вот это самое сложное, место где развитие бесконечное и не имеет границ. Алфавит знают многие, простые предложения построить могут многие. Но составить из этого красивый рассказ уже искусство.
У меня не было опыта работы, не профильное образование.
Вечерами смотрел видео курсы на youtube, читал книги/статьи, проходил бесплатные курсы на intuit.ru и т.п.
Потом я приехал в новый для себя город с небольшим количеством $, которых хватало на 3-4 месяца снятия одного из самого дешевого жилья и поиска работы.
Сейчас вспоминаю это как свой личный подвиг, который сильно повлиял на мою жизнь. Теперь за 1 месяц получается больше $, чем накопленные для переезда средства пару лет назад.
C# 8 или 10, не важно. Изучи C# 5, остальное уже не так важно для старта.
И да, каждый вечер гулять и заниматься ерундой не получится, времени не хватит.
Ване не надо вешать нос.
Пусть ищет дальше.
На первой работе деньги не важны, важен опыт.
Не прислушивайся к людям от которых исходит только негатив, иди к своей цели.
А что с защитой от выполнения чужих команд, существует ли что то подобное авторизации?
Звук производимый настоящим человеком в комнате я думаю отличается от звука любого другого устройства воспроизведения звуков. Но вот способны ли устройства это определять не знаю.
Станция будет реагировать на команды с телевизора, радио, соседей, улицы?
Например станция включена постоянно, и тут по улицам проезжает авто и человек в громкоговоритель говорит «Алиса переведи все мои деньги на кошелек №», «Алиса включи песню трава у дома» и т.п.
Или реклама той же станции по телевизору, заставит настоящую станцию в квартире повторять то что говорят в рекламе.
Мартин в своей новой книге дал более понятное объяснение этому принципу.
Имеется ввиду пользователь/группа пользователей/актор, тот кто может инициировать изменение.
«Программное обеспечение изменяется для удовлетворения нужд пользователей и заинтересованных лиц. Пользователи и заинтересованные лица как раз и есть та самая «причина для изменения», о которой говорит принцип.»
Тоже делаю заметки, в моем случае это OneNote для всего. Пишу в него все интересное что нахожу в книгах, блогах или самостоятельно.
Сложнее всего заставить себя перечитать свои заметки по конкретной теме, что бы лучше запомнилось.
«97 вещей, которые должен знать каждый программист» -> «Заботьтесь о коде» — «Чтобы стать хорошим программистом, недостаточно быть хорошим техническим специалистом. Я видел много программистов, способных
реализовать алгоритмы очень высокой сложности и знающих стандарты языков назубок, но при этом писавших полный ужас, который было
больно читать, больно использовать и особенно больно изменять. И я видел более скромных программистов, не уходивших далеко от
простых конструкций, но при этом пишущих элегантные программы, с которыми приятно иметь дело в дальнейшем.»
Читать книги по алгоритмам нужно, но это такой же шаг вперед как и изучение фреймворков с которыми работаешь каждый день. Эти направления не исключают друг друга, а хорошо дополняют. Но у первого есть большой плюс, оно редко меняется :)
1) Текст изменится только в следующем релизе, т.к. выдавать новый только ради текста не имеет смысла, больше возни с выдачей (деплоем). Итого — запилили новый текст в ветке которая для него и создана, а она еще в разработке/тестировании, и в нее возможно еще пару изменений внесут по ходу дела, что откладывает релиз.
2) Плохо тестировали, или не тестировали. Или по ходу доделывания ветки с новым релизом внесли изменения в одном месте, а аукнулось в нескольких других (глобальные стили), опять же не проверили где используются и не прошли смоук тест.
И статья говорит об этом, «просто» добавили текст.
Без привязки к языку и того что было в шапке:
1) «Применение UML 2.0 и шаблонов проектирования. Введение в объектно-ориентированный анализ, проектирование и итеративную разработку» Крэг Ларман.
2) «Принципы, паттерны и методики гибкой разработки» Роберт Мартин.
3) «Алгоритмы. Теория и практическое применение» Род Стивенс.
Бонус — «Design Patterns via C#» Александр Шевчук, Дмитрий Охрименко, Андрей Касьянов (бесплатно).
Добавлю немного от себя, точнее немного текста из книги «Оптимизация приложений на платформе .NET».
1) Микросхемы памяти типа DDR3 SDRAM дают задержки доступа к памяти порядка 15 наносекунд.
2) Процессоры за это время могут выполнить — десятки (а иногда сотни) инструкций. Явление простоя в ожидании доступа к памяти известно под названием удар о стену памяти.
3) Чтобы увеличить расстояние между приложением и этой «стеной», современные процессоры снабжаются несколькими уровнями внутренней кэш-памяти. L1 ~5 тактов CPU, L2 ~10 тактов, L3 ~40 тактов.
4) Когда процессор обращается к главной памяти (RAM), он читает из нее не один байт или слово, а строку кэша (cache line), размер которой в современных системах составляет 32 или 64 байта. Обращение к любому слову в той же строке кэша уже не будет вызывать промах кэша, пока эта строка не будет вытеснена из кэша.
Например, при суммировании элементов Int32 расположенных в массиве:
При обращении к элементу массива, вначале происходит промах кэша и загрузка строки кэша, содержащей 16 последовательно расположенных целых чисел (строка кэша = 64 байта = 16 целых чисел). Так как доступ к элементам массива выполняется последовательно, следующие 15 чисел оказываются в кэше и при обращении к ним не возникает промаха кэша. Это почти идеальный сценарий с соотношением промахов кэша 1:16.
Изучить ЯП, скажем C# и строить простые аппы, это всегда позиция джуниор.
Аналогия — это азбука, человек выучил алфавит и научился строить небольшие предложения. Это самое простое что можно сделать, на этом этапе проблем меньше всего.
С таким багажом вас берут джуном и учат строить правильные предложения, не больше.
Через N времени, вам дают/вы получаете задания строить целые блоки, небольшие абзацы. Далее это целые главы, как в книгах. У каждой главы есть четкое вступление, основная часть и заключение. Это позиция мидл.
Еще через N времени вы учитесь строить целые книги, с набором глав, в каждой из которой много блоков, в которых много предложений, в которых много слов. И все это дело гармонично сочетается между собой и имеет смысл. Главы разбиты правильно и идут друг за другом, не выводя ИТОГО по середине книги. Вы раздаете задания мидлам, разделяя между ними главы, а джунам небольшие части в них.
И вот это самое сложное, место где развитие бесконечное и не имеет границ. Алфавит знают многие, простые предложения построить могут многие. Но составить из этого красивый рассказ уже искусство.
Вечерами смотрел видео курсы на youtube, читал книги/статьи, проходил бесплатные курсы на intuit.ru и т.п.
Потом я приехал в новый для себя город с небольшим количеством $, которых хватало на 3-4 месяца снятия одного из самого дешевого жилья и поиска работы.
Сейчас вспоминаю это как свой личный подвиг, который сильно повлиял на мою жизнь. Теперь за 1 месяц получается больше $, чем накопленные для переезда средства пару лет назад.
C# 8 или 10, не важно. Изучи C# 5, остальное уже не так важно для старта.
И да, каждый вечер гулять и заниматься ерундой не получится, времени не хватит.
Пусть ищет дальше.
На первой работе деньги не важны, важен опыт.
Не прислушивайся к людям от которых исходит только негатив, иди к своей цели.
Ване нужно прочитать хотя бы одну книгу по C#, например — C# для профессионалов. Тонкости программирования. Или зайти на сайт метанит, и провести там часов 100-150.
C# это в большинстве случаев — web, так что HTML,CSS,JS тоже лишними не станут.
Тут уже поможет — html5book.ru/osnovy-javascript
И видео курс Техностим Web-технологии. (про Diango там мало, пропускаем).
Звук производимый настоящим человеком в комнате я думаю отличается от звука любого другого устройства воспроизведения звуков. Но вот способны ли устройства это определять не знаю.
Станция будет реагировать на команды с телевизора, радио, соседей, улицы?
Например станция включена постоянно, и тут по улицам проезжает авто и человек в громкоговоритель говорит «Алиса переведи все мои деньги на кошелек №», «Алиса включи песню трава у дома» и т.п.
Или реклама той же станции по телевизору, заставит настоящую станцию в квартире повторять то что говорят в рекламе.
Имеется ввиду пользователь/группа пользователей/актор, тот кто может инициировать изменение.
«Программное обеспечение изменяется для удовлетворения нужд пользователей и заинтересованных лиц. Пользователи и заинтересованные лица как раз и есть та самая «причина для изменения», о которой говорит принцип.»
Нужен lazy load — прокси.
Нужен контроль доступа — проски.
Нужно имитировать/эмулировать/создать динамическое наследование — декоратор.
Если она сможет проигрывать кино из бесплатных источников или хотя бы youtube, то думаю куплю такую.
Сложнее всего заставить себя перечитать свои заметки по конкретной теме, что бы лучше запомнилось.
«97 вещей, которые должен знать каждый программист» -> «Заботьтесь о коде» — «Чтобы стать хорошим программистом, недостаточно быть хорошим техническим специалистом. Я видел много программистов, способных
реализовать алгоритмы очень высокой сложности и знающих стандарты языков назубок, но при этом писавших полный ужас, который было
больно читать, больно использовать и особенно больно изменять. И я видел более скромных программистов, не уходивших далеко от
простых конструкций, но при этом пишущих элегантные программы, с которыми приятно иметь дело в дальнейшем.»
Автор — www.goodliffe.net
Читать книги по алгоритмам нужно, но это такой же шаг вперед как и изучение фреймворков с которыми работаешь каждый день. Эти направления не исключают друг друга, а хорошо дополняют. Но у первого есть большой плюс, оно редко меняется :)
2) Firewall с логгированием.
3) www.snort.org и подобные.
Это сходу что в голову пришло, больше на лубых курсах по ИБ. PentestIt например.
С годами ТОП меняется, но Linux там явно не среди последних.
1) Текст изменится только в следующем релизе, т.к. выдавать новый только ради текста не имеет смысла, больше возни с выдачей (деплоем). Итого — запилили новый текст в ветке которая для него и создана, а она еще в разработке/тестировании, и в нее возможно еще пару изменений внесут по ходу дела, что откладывает релиз.
2) Плохо тестировали, или не тестировали. Или по ходу доделывания ветки с новым релизом внесли изменения в одном месте, а аукнулось в нескольких других (глобальные стили), опять же не проверили где используются и не прошли смоук тест.
И статья говорит об этом, «просто» добавили текст.
1) «Применение UML 2.0 и шаблонов проектирования. Введение в объектно-ориентированный анализ, проектирование и итеративную разработку» Крэг Ларман.
2) «Принципы, паттерны и методики гибкой разработки» Роберт Мартин.
3) «Алгоритмы. Теория и практическое применение» Род Стивенс.
Бонус — «Design Patterns via C#» Александр Шевчук, Дмитрий Охрименко, Андрей Касьянов (бесплатно).
1) Микросхемы памяти типа DDR3 SDRAM дают задержки доступа к памяти порядка 15 наносекунд.
2) Процессоры за это время могут выполнить — десятки (а иногда сотни) инструкций. Явление простоя в ожидании доступа к памяти известно под названием удар о стену памяти.
3) Чтобы увеличить расстояние между приложением и этой «стеной», современные процессоры снабжаются несколькими уровнями внутренней кэш-памяти. L1 ~5 тактов CPU, L2 ~10 тактов, L3 ~40 тактов.
4) Когда процессор обращается к главной памяти (RAM), он читает из нее не один байт или слово, а строку кэша (cache line), размер которой в современных системах составляет 32 или 64 байта. Обращение к любому слову в той же строке кэша уже не будет вызывать промах кэша, пока эта строка не будет вытеснена из кэша.
Например, при суммировании элементов Int32 расположенных в массиве:
При обращении к элементу массива, вначале происходит промах кэша и загрузка строки кэша, содержащей 16 последовательно расположенных целых чисел (строка кэша = 64 байта = 16 целых чисел). Так как доступ к элементам массива выполняется последовательно, следующие 15 чисел оказываются в кэше и при обращении к ним не возникает промаха кэша. Это почти идеальный сценарий с соотношением промахов кэша 1:16.