Сегодня я позволю себе не вдаваться в повествование о том как сделать что нибудь интересное. Сегодня я хочу немного поделиться своим взглядом на вопрос: «Как стать программистом?» или «Как научиться программировать?«…
Стоит заметить, что эти два вопроса на самом деле сильно отличаются. По крайней мере мне так кажется. Первый вопрос как правило задают люди ни как не сталкивающиеся с программированием, второй же вопрос как правило слышаться от тех, кто успел разобраться в каком либо языке программирования на начальном уровне.
Первое что стоит осознавать, что стать программистом может далеко не каждый. Во первых у человека должна быть тяга к технологиям (необязательно всем, но какие-то определенные области интересов должны быть точно). Умение быстро освоить новый девайс, так же будет плюсом. Однако есть один момент, который судя по поим небольшим наблюдениям, играет роль немаловажного камня предкновения… Это желание и хорошее умение играть в игры жанра «Стратегия». Не знаю почему, но среди всего моего круга знакомых и друзей «стать программистом» смогли лишь заядлые любители «стратежек». Конечно объяснить почему так, я не могу, и, возможно, это совпадение. Однако очевидно, что стратегии развивают умение представлять картину в будущем, четко планировать что и как должно быть, развивают навыки оптимально рассчитывать свои действия и т.п. А это все очень важно для настоящего программиста.
Вообще, программисты люди крайне своеобразные. По большей части трудоголики. Пофигизм для программиста — стиль жизни, однако, данный «недуг» проявляется далеко не во всем и далеко не в полном объеме. Программист не будет париться по поводу своей одежды, однако никогда не позволит одеваться как бомж (за исключением дома, где можно себе позволить бегать хоть в трусах) ни себе, ни близким. К еде отношение так же крайне нейтральное, хочется вкусного, но главное лишь бы она была. Работа — это святое, если она есть. Если ее нет, пытаться что-то делать может заставить лишь нужда подзаработать денег на хороший отпуск, машину ну или на пиво, которое ожидается в ближайшие выходные.
Если вы еще не бросили читать данный пост, и у Вас есть все задатки программиста, то идем далее. Теперь для того что бы стать программистом нужно выучить какой нибудь язык программирования на уровне знания основных моментов. Так же крайне желательно, что бы данный язык был не мертвый. Так например если брать язык программирования C++. Но необходимо разобраться в следующих моментах:
— Базовый синтаксис. Умение без книжек решать задачи плана: вычислить пример при разных значениях ‘x’; уметь писать и пользоваться функциями;
— Так как язык С++ — объекто-ориентированный, то нужно понимать что это за концепция и как написать свой класс и использовать его (на самом примитивном уровне и с помощью интернета и книжек).
Таким образом научившись создавать примитив (а это как раз самое сложное начинающим), вы становитесь программистом, который не умеет программировать. И вот теперь речь касается второго вопроса, а как собственно научиться программировать? На самом деле это не так сложно, было бы желание.
Я не являюсь сторонником чтения толстых книг. Поэтому опишу немного другой подход. Вы ставите себе несколько средних по масштабности задач. Это может быть приложение «Записная книга», «Калькулятор», «Бот для игры» и т.п. Желательно что бы по сложности они все таки шли по нарастающей. Таких задач вы ставите штуки 3-4. Со скрипом в зубах, постоянным тырканием Интернета решаете первую, вторую с третей Вы справляетесь уже легче, с четвертой еще легче. После этого у Вас появляется опыт в написании законченных программ, однако он очень мал. Поэтому после решения всех задач, садитесь и решите их повторно с нуля. Почти всегда второе решение данных задач будет куда более компактно и красивее. Вы сами учитесь на своих ошибках.
После этого ставьте себе более сложные задачи, и так же решайте их по два подхода. Чем сложней задача, тем больше Вы будете сталкиваться с чтением документаций и статей, однако постепенно все это начнет откладываться у Вас в памяти. Стоит заметить, что пытаться специально запомнить все функции и их параметры не нужно. Для этого и есть документации, чтобы в них всегда можно было посмотреть. Вы запоминаете именно то, с чем сталкивались на практике. Этого не стоит бояться — знать все невозможно, а вот сориентироваться и найти решение в незнакомой ситуации нужно уметь.
Так же все таки не плохо будет почитать про алгоритмы. Самообучение это хорошо, но по крайней мере знать о том, что Вашу задачу можно решить более быстрым способом, нужно.
Спустя некоторое время Вы получаете ценный опыт разработки и перед Вами открывается безграничное пространство. Теперь изучение новых языков не будет вызывать у Вас много проблем и все сведется к изучению синтаксиса и возможно некоторых особенностей новых языков.