Что может мотивировать человека начать изучать программирование? Сейчас – это модная профессия, по всему миру открываются IT-школы и курсы, а регулярные сводки по зарплатам программистов только подогревают этот интерес. Но есть и другой, более действенный вид мотивации: о нем в своей статье рассказал разработчик из Ганы, сооснователь StoreFoundry Эдем Кумодзи (вначале программирование казалось ему довольно скучным занятием). Предлагаем вам ее перевод.
Многие программисты рассказывают: они всегда знали, что будут работать с компьютерами, ведь они начинали возиться с ними еще с детства. Или же ходили в компьютерные клубы в школе. Или родители купили им компьютер и им показалось, что кодить – это здорово.
Это все – очень популярные причины для инженеров в США или Европе, но что насчет Африки? Мы часто не видим компьютер, пока не доучимся до старших классов. И когда мой папа наконец-то купил ПК и установил его, это было не для баловства, а для работы!
Помню, как один мой дядя устанавливал операционную систему. Она совсем не походила на Windows 2000 или Windows XP, к которым я привык. Я спросил у него, что это, и он ответил: “Linux”. Он был сетевым администратором и в то время у него была массивная книга, полная команд, с ней он постоянно сверялся во время работы. Это выглядело для меня так устрашающе, что я подумал: “Это какой-то бред, пойду лучше пошпилю”.
Я не занимался программированием до вуза. C++ казался мне скучным. Я умел писать на нем, но мотивации делать что-то, выходящее за рамки учебных заданий, не было. Завершился первый семестр, и папа настоял, чтобы я занялся какими-нибудь внеурочными классами. Так я присоединился к классу по программированию, где мы изучали Visual Basic и .NET. Мне очень понравился Visual Studio и сам drag and drop-метод построения окон. Но и это не мотивировало меня.
Меня озарило, только когда я вернулся к учебе. За обучение нужно было платить. Для этого вы должны были идти в банк совершать платеж, затем возвращаться в финансовый отдел для выдачи официальной квитанции. Затем, используя эту квитанцию, можно было регистрироваться на курс, который вы хотели прослушивать. На каждом шагу приходилось ждать в очереди по 2-3 часа. Чтобы полностью закончить регистрацию, уходило от 3 до 5 дней.
Я – человек нетерпеливый, поэтому начал думать про себя: “Неужели нельзя организовать это лучше? Зачем мне подавать одни и те же данные, снова и снова, ходить по множеству офисов, чтобы завершить регистрацию?”. И я начал изучать веб-разработку, базы данных, разработку под Windows и наконец подумал, что смогу сам построить решение. Не для того, чтобы продавать его, а просто чтобы доказать свою мысль.
То, что меня сначала расстроило, на самом деле меня мотивировало. Именно так я по-серьезному начал учить код. Поскольку я уже был знаком с Visual Basic, я подумал, что, используя его, смогу построить Windows-приложение – систему Students Information System. Я начал создавать формы с полями для заполнения, провел валидации, а затем застрял с вопросом: “Где это хранить? Что мне нужно, чтобы хранить всю информацию и позже иметь возможность запрашивать ее?”.
Так что я приостановил работу с Visual Basic и бросился изучать, как работает Microsoft SQL Server и сам язык SQL. Как только я выучил все до вменяемого уровня, вернулся к разработке своего приложения, доделал его, чтобы оно могло соединяться с базой данных и совершать базовые функции CRUD.
На этом этапе у меня уже была рабочая система для управления данными студентов и курсов. Как теперь мотивировать студентов регистрироваться на курсы онлайн? Вряд ли мне стоит ожидать, что они сами начнут скачивать еще одно Windows-приложение. Эта проблема и привела меня к изучению веб-разработки с использованием ASP.net. На тот момент я вообще не знал HTML, так что я начал с него. Затем изучил CSS. Это было довольно мучительно, ведь тогда еще не было фреймворков CSS вроде Bootstrap. Но я не бросал это дело, ведь я на самом деле хотел достроить сервис.
И когда в результате все получилось, я был по-настоящему счастлив. Я достиг чего-то! И с тех пор я всегда подходил к изучению новых инструментов, фреймворков, технологий с точки зрения того, чего можно достичь с их помощью.
Так что, нет, я стал программистом не потому, что мне нравилось кодить, или из-за детского увлечения компьютерами. Я стал программистом, потому что с помощью кода можно было решить важные для меня проблемы.