что должен знать программист кроме языка программирования

Содержание

7 дисциплин, которые стоит знать программисту

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

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

Английский язык

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

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

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

Математика

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

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

Логика

Все программы построены на логике. Они получают какие-то данные, проводят вычисления и, в зависимости от результата, делают что-то еще. Например, вот пример кода акции в интернет-магазине:

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

Статистика

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

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

Нужно: аналитикам, ученым, разработчикам ИИ.

Информатика

В школах курс информатики состоит из примерно таких уроков:

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

Профильные науки

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

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

Программирование

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

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

Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.

Источник

Что должен знать любой программист помимо изучения языка программирования?

Простой 6 комментариев

Без задачи, от решение которой вас прёт, вы обречены на провал.

Вначале нужны алгоритмы. Любая программа это алгоритм. Нужно понимание архитектуры ЭВМ. Нужно хотя бы базовое понимание ОС. Нужны знания в каком-то языке. Лучше в двух-трёх. Потом всё прикладное. БД, фреймворки, паттерны и прочее.

Destroymydreams,
1. Выучите английский. Программист обязан знать английский язык, без него вообще никуда.

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

3. Определитесь с языком, который хотите изучать (который вам показался проще, нагляднее и понятнее).

Дальше уже копайте по специфике своего языка. Думаю, на этом этапе у вас уже сложится чёткое понимание того, что и как дальше изучать.

Продолжайте писать код.

Присоединитесь к свободным проектам. Скиллы прокачаете, и пользу принесете.

Фаулера почитайте. С практикой это будет очень полезно.

Источник

Что должен знать программист без профильного образования

Мы собрали список дисциплин, которые должен знать программист без профильного образования, помимо самого языка программирования.


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

Давайте разберемся, что должен знать программист без профильного образования.

Теория графов

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

Математическая логика

Математическая логика нередко используется в кодинге, начиная незамысловатыми условиями if/else и заканчивая работой с БД, так как любой SQL предполагает оперирование с множествами.

Чаще всего нужна булева алгебра. Изучите и поймите правила преобразования логических выражений: это поможет в понимании логики работы условий и при построении алгоритмов.

Теория вероятностей и математическая статистика

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

Вот примерный список разделов программирования, где помогут эти две дисциплины:

— Компьютерное зрение.
— Биржевые торговые роботы.
— Data mining.
— Системы принятия решений и нейросети.
— Алгоритмы шифрования и крипто-анализ.
— Предсказание процессов, системы анализа вероятностей.
— Распределенные вычислительные системы.
— Анализ производительности распределенных вычислительных систем.

Базы данных

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

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

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

Моделирование

Моделирование – описание реальных объектов и процессов в формальных терминах. В общем случае программист без профильного образования сможет лучше понимать не только процессы объектно-ориентированного программирования, изучив математическое моделирование.

Защита компьютерной информации

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

Для определения защиты информации в России даже существует свой ГОСТ (Р 50922—96), который определяет компоненты информационной защиты, а также то, как они должны быть защищены.

Микропроцессорные системы

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

Операционные системы

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

Источник

Что должен знать настоящий программист?

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

Я буду очень благодарен за конкретные ответы (алгоритмы, функции).

Настоящий программист должен знать достаточно, чтобы пройти собеседование 😉 Шучу, конечно. С такого вопроса начинаются священные войны. «Что должен знать программист?» Да ещё и настоящий?

Предлагаю зайти с другой стороны — а чего не должен знать настоящий программист? Эйншейн играл на скрипке (хотя я и не слышал) и хоть это и не относилось к физике, но и не помешало ему стать известным. Думаю, что ответ на вопрос надо искать не в перечислении знаний, относящихся к программированию. Так сказать ответ на вопрос лежит не здесь и не сейчас. В любой работе важно терпение и труд. И не только в профильной области. Готовься к тому, что надо будет работать по 12-14-16 часов в сутки возможно и не один год. Почти на износ, пока «догонишь» острие прогресса и поймёшь смысл поговорки «нужно очень быстро бежать, чтобы оставаться на месте, но чтобы двигаться вперёд надо бежать ещё быстрее». Пройдёт некоторое время и ответ на этот вопрос тебе не понадобиться, т.к. настоящие программисты, а точнее профессионалы, уже ответили себе на этот вопрос 😉 Удачи.

Источник

Как самостоятельно стать программистом с нуля

Читайте внимательно: в этом тексте вы найдете несколько советов и реальных историй выпускников SkillFactory, ставших программистами, а также список бесплатных курсов и материалов для самостоятельного обучения.

Чем занимаются программисты?

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

Но чем конкретно занимаются программисты?

Читайте также: Что выбрать: iOS- или Android-разработку?

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

Читайте также: Что выбрать: frontend, backend или fullstack? Разбираемся, в чем отличия между типами разработки

Читайте также: Главные профессии в ИТ

Какой язык программирования выбрать?

Это зависит от того, чем вы хотите заниматься:

Google использует Python для ранжирования поисковой выдачи, также на нем работают YouTube, Dropbox и Reddit. Еще на этом языке написан фреймворк Django — универсальный инструмент для веб-разработчиков, который отвечает за создание внешнего интерфейса и работу на сервере.

Fullstack-разработчик на Python с нуля

Научитесь программировать на Python и Javascript и получите востребованную профессию за 15 месяцев. Дополнительная скидка 5% по промокоду BLOG.

Если вы хотите идти в веб-разработку — определитесь, что вам больше интересно: backend или frontend. Вот, что нужно освоить для каждой специальности:

Frontend

HTML и CSS — это языки разметки, с помощью которых элементы сайта в браузере встают на нужные места.

Javascript — язык, который добавляет сайту динамику: анимацию нажатия кнопок, движение карточек продуктов, отправку уведомления.

Python — универсальный язык, который подходит для frontend-разработки, а также backend и других интересных задач.

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

Научиться всему этому можно здесь.

Backend

Go — язык для backend с простым синтаксисом. Подходит для крупных проектов и высоконагруженных приложений, таких как YouTube или Ozon.

PHP — простой в освоении язык, подходит только для backend, но специалисты советуют обратить внимание на более современные инструменты.

Java — универсальный язык, который используется уже более 20 лет. Код, написанный на Java, работает одинаково на разных устройствах, что является его базовым преимуществом.

Научиться этому можно здесь.

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

Objective-C — язык программирования Apple, который используется в первую очередь для MacOS. Приложения для iOS раньше тоже писали на нем, но теперь мобильные разработчики используют в основном Swift.

Swift — понятный и логичный язык, который отражает главные качества iOS — функциональность и производительность.

Освоить навыки можно здесь.

Android

Java — кроссплатформенный язык для создания мобильных и серверных приложений. На нем также можно писать backend для сайтов.

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

Освоить профессию можно здесь.

Android-разработчик с нуля

Вы освоите программирование и главные навыки мобильного разработчика, подготовитесь к трудоустройству и уже после первых 8 месяцев обучения сможете начать работать по новой специальности. Дополнительная скидка 5% по промокоду BLOG.

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

C++ — потребуется, если вы планируете создавать крупные AAA-проекты с фотореалистичной графикой для PlayStation и Xbox. В этом случае обойтись простыми в изучении базовыми языками точно не получится. Подробная статья о С++.

C# (Си-шарп) — язык для движка Unity, разработанный компанией Microsoft. Он особенно популярен в России и считается более простым в освоении, чем C++. Изначально на нем создавались проекты эксклюзивно для ПК, но сейчас код, написанный на C#, можно портировать на Android, iOS, Xbox и другие платформы.

Разработчик игр с нуля

Научитесь создавать игры на самом востребованном движке Unity и станьте востребованными специалистом. Дополнительная скидка 5% по промокоду BLOG.

Читайте разбор: Какой язык программирования выбрать?

Что еще нужно знать, чтобы стать программистом?

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

Совет выпускника SkillFactory:

— Только трудом и практикой можно освоить новую профессию. Работодатели не прибегут просто так. Чтобы начать, нужна крепкая база по специальности и главное — практика. Я знаю много людей, которые пропускают фундаментальные вещи. Они часто быстро достигают предела и не могут решать сложные задачи.

Марк Соболев, старший лейтенант полиции, который стал frontend-разработчиком. Читайте его историю

Получите перспективную и творческую профессию в IT с нуля на практике. Дополнительная скидка 5% — по промокоду BLOG.

Что почитать?

Онлайн-медиа — здесь обсуждаются нишевые события и более узкие темы.

Искать решение своей проблемы и задавать вопросы стоит на англоязычных форумах, как специализированных, так и не очень. Есть два популярных варианта:

Я хочу стать программистом. Где учиться?

Можно самостоятельно учиться программированию, записаться на онлайн-курсы и даже учиться очно — плюсы есть у каждого варианта.

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

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

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

Самостоятельное обучение: блоги, приложения, книги, бесплатные курсы и видеоуроки

Плюс: дает возможность попробовать себя в новой сфере деятельности без вложений.

Минус: отсутствие опытного наставника и структуры работы. Кроме этого, бесплатные курсы бывают поверхностными, поэтому с их помощью редко получается стать опытным специалистом.

Поступление в вуз или колледж

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

Минус: IT-индустрия развивается быстро, современные государственные программы не успевают под нее адаптироваться, и выпускники рискуют выйти в большой мир разработки с неактуальными или неполными знаниями.

Онлайн-курсы

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

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

Бесплатные курсы и материалы для самостоятельного обучения

На площадке Coursera можно найти бесплатные программы по разным направлениям в IT на русском и английском языках:

На площадке edX собраны бесплатные курсы Гарварда, Массачусетского университета, Беркли, Бостонского университета и других именитых учебных заведений. Например:

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

Советы выпускницы SkillFactory:

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

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

Лариса Петрова, бывший инженер-программист второй категории, стала fullstack-разработчиком. Читайте ее историю

Источник

Операционные системы и программное обеспечение