Регистрация / Вход

В России начали использовать встроенные сим-карты eSIM. Что это такое?

 

Что случилось?

Сотовый оператор Tele2 первым из «большой четверки» связи предложил своим клиентам использовать технологию встроенной сим-карты (eSIM). До этого eSIM в России можно было воспользо...

Майкл Льюис - Flash Boys. Высокочастотная революция на Уолл-стрит

Вышедшая в свет 1 апреля 2014 г. книга Flash Boys произвела фурор в финансовом мире Америки. В первую же неделю было продано 130 000 экземпляров, а ФБР объявило о начале расследования в отношении ...

Книга. Блокчейн: архитектура, криптовалюты, инструменты разработки, смарт-контракты

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

Как создать ноду Lightning Network

 

Мнение о том, что Lightning network (LN) — это альтернатива майнингу или мастернода биткоина, ошибочно. Молниеносная сеть — это только надстройка над основным блокчейном, призванная освободить би...

Криминальная революция криптовалют: о сомнительных персонажах, зарабатывающих на Биткойне

 

Трудно поверить, что {#emotions_dlg.art_alt}«криптовалютная революция»{#emotions_dlg.art_alt} началась десять лет назад. Я смутно припоминаю, как впервые услышал о Биткойне в одной из компьютерных лабораторий моего университета в 2008 г., в...

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

Бесплатная информация

Виджет показывает полезную и бесплатную информацию.

добавить на Яндекс

Можно ли стать программистом после сорока лет

Рейтинг:   / 1
ПлохоОтлично 

 

Можно ли стать программистом после сорока лет, имея за плечами лишь гуманитарное образование и профессию журналиста? «Вряд ли», - скажет читатель. Несколько лет назад я и сам посчитал бы это невозможным. Но жизнь убедила меня в обратном.


Почему наши люди меняют профессию?

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

 

Может ли гуманитарий стать программистом?

Потеряв за время кризисов работу не один, а целых три раза, вместе с ней я потерял и терпение. Работа не приносила доходов, но требовала все мое время. Найти хорошее место стало затруднительно. Мне исполнилось 40 лет, а работодатели с подозрением смотрят на потенциальных работников, которые перешагнули этот рубеж. В крупные редакции, где хорошо платили, попасть уже не удавалось - не проходил по возрасту. Зашоренные местечковые и отраслевые газетенки, где не хватало сотрудников, не подходили мне.

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

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

В принципе программирование в чем-то отдаленно похоже на работу с нашим обычным русским языком, на котором мы свободно пишем и общаемся. Русский, да и любой другой язык основаны на некотором, ограниченном количестве конструкций, схем и выражений, которые мы используем в повседневной жизни (помните Эллочку- людоедку Ильфа и Петрова, в лексиконе которой было всего 30 слов?). Написание программ также состоит из последовательного использования различных языковых конструкций, иногда довольно сложных.

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

С программированием дело обстоит еще хуже. Каждое ваше «слово» или «предложение» (это может быть выражение, функция - что угодно) должны быть безошибочны, логичны, последовательны и выверены. Здесь нельзя «сболтнуть лишнего». В таком случае, вся работа пойдет насмарку. И хорошо, если ошибка не будет фатальной и вы сможете быстро ее найти и исправить. И тем не менее человек, в совершенстве освоивший родной язык, вполне может разобраться и в «программинге». Естественно, я говорю лишь об основах профессии. Углубленное ее изучение от любого новичка потребует немалых усилий.

РНР как простейший путь в программирование

После долгих мук выбора мы с приятелем остановились на РНР. Сейчас это один из наиболее популярных скрип- товых языков программирования в Web, который имеет солидный набор встроенных средств для разработки веб-приложений, работает с многочисленными системами баз данных (на РНР построено едва ли не 80 процентов всех веб-сайтов Интернета). История РНР началась еще в середине девяностых, когда программист из Дании Расмус Лердорф «заменил» первой версией РНР другой язык - Perl. Синтаксис РНР напоминает язык Си, а кое-что взято из того самого устаревшего Perl.

Главным преимуществом РНР для нас, начинающих чайников, стал тот факт, что этот язык очень прост. Несложные его конструкции могут быть интуитивно понятны даже человеку несведущему (в этом смысле РНР чем-то напоминает HTML). В РНР не нужно объявлять переменные и даже можно не указывать их тип - интерпретатор все делает за вас.

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

Собрав все необходимые материалы, приступили к изучению программирования.. Разумеется, одного РНР тут было мало. Необходимо еще знать HTML, уметь работать ссервером (например, Apache), устанавливать интерпретатор РНР и сервер баз данных (мы пользовались MySQL). Но с этим дело обстояло проще. Ранее и я, и мой коллега занимались любительской сборкой сайтов на различных CMS, и работать с сервером и базами мы умели. Самостоятельное обучение мы строили по собственной оригинальной схеме. День или два проходили одну и ту же тему, выполняли упражнения по ней, а затем созванивались и пытались прояснить непонятные вопросы. Схема работала, мы понемногу продвигались вперед. Но, к сожалению, мой приятель вскоре остыл к учебе, и мне пришлось продолжать заниматься одному. Ощутив через несколько месяцев, что некоторые пробелы так и не удалось ликвидировать, я отправился на платные курсы. Впрочем, курсы - тоже не панацея. Если связываешь свою жизнь с программированием, то нужно отдавать себе отчет в том, что учиться придется всегда. Ведь языки (и РНР не исключение) постоянно обновляются. Выходят новые релизы баз данных и серверного программного обеспечения.

Очень краткие основы РНР

В книге Мартти Ларни «Четвертый позвонок» описаны хитроумные американские предприниматели, которые торговали сокращенными литературными произведениями. Собрание сочинений Виктора Гюго они умудрились сократить до 80 страниц (в настоящем собрании - 15 томов), мотивируя это тем, что читателям не стоит забивать голову дурацкими выдумками. Сейчас я попытаюсь сделать нечто подобное с мануалом РНР и расскажу вам о нем буквально в двух словах. Как вы обычно определяете, на каком языке написан текст? Вы видите множество букв русского алфавита, из которых состоят слова, в свою очередь, связанные знаками препинания в предложения и абзацы. А как показать интерпретатору РНР, что перед ним код, предназначенный для выполнения?

Единственный возможный способ - это ограничить код специальными служебными символами, например, такими: <?php... ?>, или такими: <?...?>. В свою очередь, сам код состоит из строк, каждая из которых заканчивается точкой с запятой - ; (мы тоже всегда ставим точку либо другой знак после окончания предложения). Важнейший элемент языковых конструкций - переменная (в переменных содержатся данные, которыми оперирует программа) обозначается значком $, после которого должна стоять буква, а далее - любой набор из букв, цифр и знака подчеркивания (например, $kvby).

В качестве данных в РНР могугбыть использованы строки, логика (истина, ложь), вещественные числа (с плавающей точкой) и NULL (он означает не ноль, а «неопределенное значение»). Выражения представляют собой набор арифметических и логических действий, выполняя которые РНР решает заложенные в программе (правильнее называть ее скриптом) задачи. В выражениях используются операторы, например «=». Правда, в РНР этот знак вовсе не означает «равно», это оператор присвоения. К примеру, чтобы функции $kvby присвоить значение «© Компьютерные вести , 2009-2012», надо написать $kvby = '© Компьютерные вести, 2009-2012';. Теперь этот текст можно использовать как угодно - выводить, присоединять к другому, передавать в функции и т. д.


<?php
$kvby = Компьютерные вести, 2009-2012';
echo $kvby;
?>


Скрипт, который вы видите выше, выведет на странице браузера текст: © Компьютерные вести, 2009-2012. При желании путем несложных манипуляций к тексту можно добавить соответствующую ссылку, установить тип, размер и цвет шрифта.

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

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

//Комментарий
Многострочный комментарий обозначается вот так:
/* это комментарий */

И еще один вариант обозначения однострочного комментария (взят из UNIX):
#Комментарий

Важнейший элемент любого языка (РНР не исключение) - это переменная. Кстати, переменные в РНР чувствительны к регистру: SKVBY и $kvby - будут разными переменными. О типах данных мы уже говорили, добавлю только, что переменную в РНР объявлять не надо. Она меняет тип сама, вместе с изменением значения.

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

<?php
//Создаем константу KVBY со значением cool
define ( 4CVBY',' cool', TRUE);
echo *Kv.by - это
echo KVBY,'!';
?>

В браузере видим - «Kv.by - это cool!»
To, что перечислено в скобках через запятую, называется аргументами. Первый аргумент-имя константы, второй - ее значение, а третий означает, что она регистронезависима. Константы удобно (но не обязательно) писать с большой буквы, так их видно в коде. Ну и перед константами нет обычного для переменных РНР знака $. Остановимся на создании простого, но полнофункционального веб-сайта. К сожалению, тема является столь обширной, что ее придется разделить на отдельные части (в одной «куче» такой урок будет абсолютно нечитабельным, и вы ничего не поймете).

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

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

Итак, создаем наш первый файл. Не мудрствуя лукаво, назовем его index.php
В нем пишем РНР-код

<?php
require 'header.html';
//Заготовка нашего сайта
requi re 'footer.html';
?>

Уже в этом маленьком примере видна мощь РНР, который дает возможность выводить сторонние файлы (даже расположенные удаленно, если это позволяет конфигурация РНР на сервере). Для этого используются конструкции require и include. Разница между ними заключается в том, что require подключает файлы до исполнения сценария РНР, a include - после. В некоторых случаях это может оказаться очень важным. Например, если подключаемый скрипт вычисляет некое выражение, значение которого затем используется для дальнейших действий в результирующем файле - тогда подойдет только конструкция require. И еще - файлы, которые мы выводим, должны быть расположены в одной директории с файлом index.php, иначе путь к ним придется указывать в явном виде или так (относительный путь):

require('../directory/config.php'); или так (полный путь от корневой папки): requireC/home/media/spt/config.php'); Первый вариант предпочтительнее, так как при переносе сайта другой сервер, где иная структура папок и другие их названия, он тоже будет работать.

Бывает, что подключаемых файлов достаточно много. Тогда к конструкциям можно добавить постфикс once (по-лучается require once и include_once). В этом случае вы можете быть уверены, что включенный однажды файл не будет выведен повторно. Добавлю, что это конструкции, а не функции и скобок они не требуют. Далее все просто: файл header представляет собой «шапку» страницы, a footer - «подвал». Именно в этих фай- лахи находится соответствующий код, атакже HTMLH все, что необходимо. В главном файле ничего лишнего нет. Такая конструкция дает возможность отделить код от раз-метки гипертекста и сделать его проще. Имея даже тысячи страниц сайта, вы легко сможете изменить «подвал», доработав единственный файл footer.

Содержание header.html может быть таким, для начала:

<html>
<headxtitle>Main portal</titlex/head> cbody bgcolor=blue>
<table bgcolor=blue width=50% height=3%> <tr>
CtdXa href=10.php style="color:tFFFFFF; text-decoration: none">COBHTMH</aX/td> CtdXa href=ll.php style="color:IFFFFFF;
text-decoration: none">HOBOCTH</ax/td> CtdXa href=12.php style="color:#FFFFFF; text-decoration :none">CTATbM</aX/td> <td><a href=13.php style="color:#FFFFFF; text-decoration:none">®OPyM</aX/td> <tdxa href=14.php style="color:#FFFFFF; text-decoration:попе">АРХИВ</а></td> </tr> </table>
В файл footer.html можно включить перемен¬ную, которую мы с вами создавали в первой части: <?php
$kvby = 'scopy; Компьютерные Вести, 2009- 2012.';
echo «<brxfont color = 'white' >$kvby</
font>« ?>
</body> </html>

Естественно, что мы пока рассматриваем простейшие варианты страничек, в которых нет ни метатегов, ни файлов подключения скриптов и стилей (все они хранятся между HTML-тегами <headx/head>), а также содержания (оно будет выводится между тегами <body></body>).

Стоит отметить, что по умолчанию сервер Apache из корневой и любой другой директории сайта обычно выводит файлы index.php или index.html. Эти настройки прописаны в конфигурационном файле сервера httpd.conf. Их можно изменить (если вам нужен другой индексный файл) в файлах с расширением .htaccess, для каждого каталога вашего сайта в отдельности. Строка в .htaccess будет выглядеть примерно так:

Directorylndex /katalog_4/dbs.php Теперь в наш файл index.php добавим еще одну строку (она выделена цветом):
<?php
//Заготовка нашего сайта require 'header.html'; require 'content.php';
require 'footer.html';
?>

Необходимо также создать файл content.php (пока пустой) и сохранить его в корневой папке сайта. Внешне ничего не изменится - ошибки не будет, так как файл content, php уже существует. Добавим в него только табличку, чтобы она заняла пустое место в центре сайта:

ctable width=100% height=85% style=«background-color:#ffffff; color:#000000»> <tr>
<td>KoHTeHT</td>
</tr>
</table>

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