Как стать программистом?
Содержание:
Карьера информатика
Самая низкая зарплата программиста будет у оператора компьютерного набора. С этой должности обычно начинают новички со средним специальным образованием. Человек выполняет обычные задачи, например, следит за состоянием сервера и периодически чистит компьютер от пыли.
Карьерный рост
Дальнейший рост зависит от того, какая должность была выбрана. Обычный оператор может стать полноценным администратором. В таком случае он не просто следит за сетью, но и проектирует ее. Можно стать младшим программистом, дорасти до старшего и стать лидером команды.
Повышение квалификации
Повысить свою квалификацию можно самостоятельно. Для этого необходимо просто читать профессиональные книги и следить, что появилось нового на рынке. Можно получить вторую специальность. К примеру, чтобы быть не просто исполнителем, а получить роль управляющего командой, лучше поучиться на специальности «Менеджмент».
Международный уровень
Чтобы выйти на международный уровень и получить сертификат, который ценится во всем мире, достаточно пройти обучение на вечерних или субботних курсах
Лучше остановить свое внимание на курсах, обещающих впоследствии выдать сертификат от Cisco ― с ними сотрудничает немало компаний в России
Примеры мест работы
Работать программист может в любой крупной компании, где целесообразно держать IT-отдел. Все больше людей задает вопрос о том, где учат на программиста, и все больше компаний забирают к себе выпускников. Компьютеры есть почти в каждой фирме ― и их нужно обслуживать.
Совет
Еще один вариант ― попытаться устроиться в компанию по разработке софта. Можно подать свою заявку через сайт, например.
Карьера после окончания вуза по профилю «Программирование и электроника информационных систем», код специальности 11.03.04
Специалисты могут работать:
- электроником — специалистом, обслуживающим информационные системы, он выполняет тестирование работы систем, определяет возможные аппаратные и программные отклонения, устраняет неисправности
- разработчиком, конструктором информационных систем, он определяет архитектуру (аппаратную и программную составляющие) систем, конструирует аппаратную часть, разрабатывает алгоритмы программного обеспечения (ПО), распределяет
Специалисты могут работать:
- электроником — специалистом, обслуживающим информационные системы, он выполняет тестирование работы систем, определяет возможные аппаратные и программные отклонения, устраняет неисправности
- разработчиком, конструктором информационных систем, он определяет архитектуру (аппаратную и программную составляющие) систем, конструирует аппаратную часть, разрабатывает алгоритмы программного обеспечения (ПО), распределяет соотношение в ПО языков низкого и высокого уровня
- специалистом IT-технологий, он изучает архитектуру информационной системы, анализирует технологические требования к показателям работы системы, разрабатывает алгоритмы и программу управления, выполняет наладку и сопровождение системы
- специалистом радио- и сотовой связи, он выполняет тестирование работы систем радио- и сотовой связи, определяет возможные аппаратные и программные отклонения, устраняет неисправности систем радио- и сотовой связи
- менеджером инжиниринговых, it компаний, предприятий со сложными технологическими циклами, инновационных компаний, он изучает и определяет конкурентоспособные, инновационные параметры продукта., разрабатывает программу совершенствования существующего оборудования или новой технологической линии, разрабатывает планы по запуску нового оборудования, линий, координирует выполнение плана, руководит работами по получению нового продукта
- специалистом по обслуживанию и ремонту бытовой, авто-, сотовой, компьютерной, медицинской и т.д. техники, он выполняет тестирование работы техники, определяет возможные аппаратные и программные отклонения, устраняет неисправности.
Специалисты профиля смогут:
- Оценивать актуальность, перспективность и значимость объектов проектирования в области электронных средств (в зависимости от профиля обучения это могут быть электронные приборы, установки вакуумной, плазменной, твёрдотельной, микроволновой, оптической, микро- и наноэлектроники различного назначения)
- Собирать и анализировать исходные данные для расчета и проектирования деталей, узлов и модулей электронных приборов, схем и устройств
- Выполнять расчёты и проектирование электронных приборов, схем и устройств согласно техническому заданию
- Разрабатывать проектную и техническую документацию для создания оборудования высоких технологий, оформлять законченные проектно-конструкторские работы
- Контролировать соответствие разрабатываемых проектов стандартам и другим нормативным документам
- Внедрять результаты исследований и разработок в производство
- Организовывать процесс производства электронных средств (например, сверхпрочных тканей и покрытий, электронных запоминающих устройств, различных деталей квантовых компьютеров и т.д.)
- Разрабатывать программы испытания и системы контроля новых электронных средств
- Участвовать в наладке, испытаниях и сдаче в эксплуатацию опытных образцов и материалов в области электроники и наноэлектроники
- Анализировать причины брака и выпуска продукции низкого качества или пониженных сортов, принимать меры по их предупреждению
- Обслуживать оборудование и программные средства, используемые при производстве материалов и изделий электронной техники, настраивать, регулировать и осуществлять их текущий ремонт
- Составлять инструкции по использованию технологического оборудования
- Принимать участие в составлении патентных и лицензионных паспортов на новейшие изобретения
- Составлять план размещения оборудования на предприятии, организовывать рабочие места, рассчитывать производственные мощности и загрузку оборудования
- Организовывать защиту объектов интеллектуальной собственности, результатов исследований и разработок, так как это является коммерческой тайной предприятия
- Рассматривать поступающие рекламации (претензии покупателей или заказчиков) на выпускаемую продукцию
- Составлять заявки на запасные детали и расходные материалы, а также на калибровку аппаратуры
- Организовывать работу малых коллективов.
РазвернутьСвернуть
Стандартизация языков программирования[править | править вики-текст]
Типы данных
Статически типизированные языки могут быть в дальнейшем подразделены на языки с обязательной декларацией, где каждая переменная и объявление функции имеет обязательное объявление типа, и языки с выводимыми типами. Иногда динамически типизированные языки называют латентно типизированными.
Структуры данных
Основные структуры данных (списки, очереди, хеш-таблицы, двоичные деревья и пары) часто представлены особыми синтаксическими конструкциями в языках высокого уровня. Такие данные структурируются автоматически.
Семантика языков программирования
Существует несколько подходов к определению семантики языков программирования.
Наиболее широко распространены разновидности следующих трёх: операционного, деривационного (аксиоматического) и денотационного (математического).
При описании семантики в рамках операционного подхода обычно исполнение конструкций языка программирования интерпретируется с помощью некоторой воображаемой (абстрактной) ЭВМ.
Аксиоматическая (Деривационная) семантика описывает последствия выполнения конструкций языка с помощью языка логики и задания пред- и постусловий.
Денотационная семантика оперирует понятиями, типичными для математики — множества, соответствия, а также суждения, утверждения и др.
Способы реализации языков
Для любого интерпретируемого языка можно создать компилятор — например, язык Лисп, изначально интерпретируемый, может компилироваться без каких бы то ни было ограничений. Создаваемый во время исполнения программы код может так же динамически компилироваться во время исполнения.
Как правило, скомпилированные программы выполняются быстрее и не требуют для выполнения дополнительных программ, так как уже переведены на машинный язык. Вместе с тем, при каждом изменении текста программы требуется её перекомпиляция, что замедляет процесс разработки. Кроме того, скомпилированная программа может выполняться только на том же типе компьютеров и, как правило, под той же операционной системой, на которую был рассчитан компилятор. Чтобы создать исполняемый файл для машины другого типа, требуется новая компиляция.
Интерпретируемые языки обладают некоторыми специфическими дополнительными возможностями (см. выше), кроме того, программы на них можно запускать сразу же после изменения, что облегчает разработку. Программа на интерпретируемом языке может быть зачастую запущена на разных типах машин и операционных систем без дополнительных усилий.
Однако интерпретируемые программы выполняются заметно медленнее, чем компилируемые, кроме того, они не могут выполняться без программы-интерпретатора.
Языки программирования низкого уровня
Первые компьютеры приходилось программировать двоичными машинными кодами. Однако программировать таким образом — довольно трудоемкая и тяжелая задача. Для упрощения этой задачи начали появляться языки программирования низкого уровня, которые позволяли задавать машинные команды в понятном для человека виде. Для преобразования их в двоичный код были созданы специальные программы — трансляторы.
Трансляторы делятся на:
Языки низкого уровня, как правило, используют для написания небольших системных программ, драйверов устройств, модулей стыков с нестандартным оборудованием, программирование специализированных микропроцессоров, когда важнейшими требованиями являются компактность, быстродействие и возможность прямого доступа к аппаратным ресурсам.
Языки программирования высокого уровня
Особенности конкретных компьютерных архитектур в них не учитываются, поэтому созданные приложения легко переносятся с компьютера на компьютер. В большинстве случаев достаточно просто перекомпилировать программу под определенную компьютерную архитектурную и операционную систему. Разрабатывать программы на таких языках значительно проще и ошибок допускается меньше
Значительно сокращается время разработки программы, что особенно важно при работе над большими программными проектами
Сейчас в среде разработчиков считается, что языки программирования, которые имеют прямой доступ к памяти и регистров или имеют ассемблерные вставки, нужно считать языками программирования с низким уровнем абстракции. Поэтому большинство языков, считавшихся языками высокого уровня до 2000 года сейчас уже таковыми не считаются.
Адресный язык программирования
Фортран
ОБЩАЯ ЗАДАЧА ОБУЧЕНИЯ ПРОГРАММИРОВАНИЮ
Итак, мы хотим учить детей законам программирования. Еще не зная их, мы понимаем, что они неизбежно будут выражены в сумме некоторых достаточно специфических приемов. Нам еще предстоит разбираться, в какой мере они посильны детям, но общие наблюдения таковы, что интеллектуальный и операционный потенциал детей далеко не исчерпан. Посмотрите, как помолодели за последние годы технические виды спорта, в особенности, плавание, гимнастика. Не знаю, как на Западе, но у нас автомашины еще дороги и люди зачастую накапливают деньги для их покупки, когда уже, как говорится, лучшие годы позади. Многие с горечью спрашивают, сколько жизней, потерянных из-за дорожных происшествий мы сберегли бы, если бы все без исключения научились водить машину в 14-15 лет.
Нет, однако, никакой возможности нагружать детей конденсатом всего жизненного опыта, которым обогащено человечество. В этих попытках нас подстерегают и другие опасности. Каждый человек в СССР знает детскую песенку, которую поет Алла Пугачева, о горестной жизни школьника:
Все также знают романтическую историю Р. Киплинга о Маугли, мальчике, выросшем у волков, а потом вернувшемся к людям
В теплых странах похожие вещи иногда случались, но с гораздо более печальным исходом, и психологи называют «эффектом или синдромом Маугли» невозможность для ребенка восстановить свои позитивные возможности, погубленные чужеродной средой или перенапряжением душевных сил в раннем детском возрасте.
Этот импринтинг детских лет происходит, естественно, со всеми; можно сказать, что каждый из нас является Маугли своего детства, все дело в том, что с нами происходит и чему нас учат в эти годы.
В последние десятилетия психологи развития сделали немало важных наблюдений, подчеркивающих критическую важность раннего возраста в процессе обучения. Вопрос о том, как учить детей способности планировать свои действия и их последствия, какая операционная обстановка при этом нужна, очень далек от тех методических альтернатив, которые мы обсуждаем, например, при профессиональном обучении программированию
С одной стороны, мы должны сделать эту обстановку естественной для ребенка, с другой стороны, она должна быть достаточно богатой для того, чтобы он мог, как говорят психологи, сам создавать теорию познаваемого явления.
Законы программирования, законы обработки информации, по моему убеждению, существуют. С одной стороны, они появляются в форме операционных правил, отражающих непосредственный опыт человечества. Все мы знаем знаменитое римское изречение «Разделяй и властвуй», воспринимая его, главным образом, как образец политического цинизма. Однако лишь только современная математика и программирование придали ему (в виде метода ветвей и границ) совершенное выражение мощного по своей силе и продуктивности эвристического принципа решения задач. Каким бы случайным этот пример ни оказался, он иллюстрирует важное положение о глубокой и нерасторжимой связи операционного знания и алгоритмического мышления с другими компонентами образования.
Таким образом, с другой стороны, законы программирования смыкаются с математическим образованием, образуя единый, но еще не построенный фундамент воспитания операционного и комбинаторного мышления, способности к абстракции, рассуждению и действию.
На меня всегда производит сильное впечатление один простой пример задачи на программирование как демонстрация перехода от знания к действию. Я выпишу последовательные этапы перехода от спецификации, выражающей знание, к программе, выражающей действие, для задачи возведения числа x в целую степень n:
Предлагаю каждому дать свою интерпретацию того, какие законы и какое знание он применяет при переходе от этапа к этапу, для того чтобы перейти от очевидного знания к весьма нетривиальной программе. Хочу лишь сказать, что если бы мы умели в таком стиле строить любую программу, да при этом, рассуждая вслух, комментировать это построение, то это и была бы та фундаментализация программирования, о которой мы мечтаем.
Женщины в IT
Марисса Майер
Женщина, на которую стоит равняться всем людям, желающим пойти в IT-индустрию. Вплоть до 2008 года она регулярно попадала в списки журнала Fortune, как одна из самых влиятельных женщин. В свое время была одним из главных игроков Кремниевой Долины.
Вершина ее карьеры ― президент известной компании «Yahoo!». До этого она занимала руководящие должности в компании «Google».
Адель Голдберг
Одна из первых женщин-программисток, если не считать Аду Лавлейс. Несмотря на то, что она занималась теорией, а не практикой, ее работы помогли современной информационной науке достичь небывалых высот.
Она написала масштабную научную работу в области объектно-ориентированного программирования, смогла разработать принципы построения графического интерфейса и стала одной из разработчиков первого объектно-ориентированного языка ― Smalltalk.
Наталья Касперская
Эта женщина была одной из самых влиятельных персон в IT-индустрии в целом, несмотря на свой пол. Сейчас женщина не занимается практическим программированием, но держит в своих руках множество крупных компаний.
Она ― соучредитель той самой «Лаборатории Касперского», выпускающей знаменитые российский антивирусы. Кроме того, она генеральный директор компании InfoWatch, занимающейся разработкой систем защиты личных данных. Они контролируют большую часть рынка антивирусных и антихакерских систем.
Английский язык
Если вы пишете на 1С, сразу переходите к следующему пункту. Ну а всем остальным знание английского языка пригодится, чтобы:
- лучше понимать код;
- читать мануалы;
- взаимодействовать с иностранными заказчиками.
Кроме того, английский язык позволит задавать вопросы на зарубежных форумах и stackoverflow — это иногда единственный способ получить помощь, потому что на англоязычных ресурсах люди стараются помочь, в то время как на отечественных прежде всего поднимут на смех, спросят, зачем вам это нужно и для чего вообще вы пришли в программирование, и только потом, может быть, помогут.
Так что английский для IT-специалистов — мастхэв, иф ю вонт ту би э вери гуд программер. Но если вы не дружите с языками, не беда — знания терминов будет достаточно, чтобы нормально работать.
Полезная литература:
- English for Information Technology.
- Career path Software Engineering.
- Oxford English for Information Technology.
- Professional English in Use ICT.
- Check Your English Vocabulary for Computers and IT.
Нужно: всем.
Логика
$cost = $position;
$costMessage = «Цена: «.$cost;
if($position == $sale) { //Проверяем, участвует ли этот тип товаров в акции
if($date <= $sale) { //Проверяем, не прошел ли срок акции
$cost *= 0.7; //Снижаем цену на 30%
$costMessage = «Старая цена: «.$position.» | Новая цена: «.$cost.» (Выгода 30%)»;
}
}
echo $costMessage;
В коде две логических операции: первая проверяет, распространяется ли акция на товар, а вторая — не прошел ли срок ее действия. В зависимости от результата меняется цена и выводимое сообщение. Это банальный пример; в реальных программах логики очень много, поэтому в ней нужно разбираться хотя бы на базовом уровне.
Полезная литература:
- Непейвода Н.Н. «Прикладная логика».
- Владимиров Д.А. «Булевы алгебры».
Нужно: всем.